load('//tools/bzl:junit.bzl', 'junit_tests')

CONSTANTS_SRC = [
  'src/main/java/com/google/gerrit/server/documentation/Constants.java',
]

SRCS = glob(
  ['src/main/java/**/*.java'],
  exclude = CONSTANTS_SRC,
)
RESOURCES =  glob(['src/main/resources/**/*'])

java_library(
  name = 'constants',
  srcs = CONSTANTS_SRC,
  visibility = ['//visibility:public'],
)

java_library(
  name = 'server',
  srcs = SRCS,
  resources = RESOURCES,
  deps = [
    ':constants',
    '//gerrit-antlr:query_exception',
    '//gerrit-antlr:query_parser',
    '//gerrit-common:annotations',
    '//gerrit-common:server',
    '//gerrit-extension-api:api',
    '//gerrit-patch-commonsnet:commons-net',
    '//gerrit-patch-jgit:server',
    '//gerrit-prettify:server',
    '//gerrit-reviewdb:server',
    '//gerrit-util-cli:cli',
    '//gerrit-util-ssl:ssl',
    '//lib:args4j',
    '//lib:automaton',
    '//lib:blame-cache',
    '//lib:grappa',
    '//lib:gson',
    '//lib:guava',
    '//lib:guava-retrying',
    '//lib:gwtjsonrpc',
    '//lib:gwtorm',
    '//lib:jsch',
    '//lib:juniversalchardet',
    '//lib:mime-util',
    '//lib:pegdown',
    '//lib:protobuf',
    '//lib:servlet-api-3_1',
    '//lib:tukaani-xz',
    '//lib:velocity',
    '//lib/antlr:java_runtime',
    '//lib/auto:auto-value',
    '//lib/commons:codec',
    '//lib/commons:compress',
    '//lib/commons:dbcp',
    '//lib/commons:lang',
    '//lib/commons:net',
    '//lib/commons:validator',
    '//lib/dropwizard:dropwizard-core',
    '//lib/guice:guice',
    '//lib/guice:guice-assistedinject',
    '//lib/guice:guice-servlet',
    '//lib/jgit/org.eclipse.jgit:jgit',
    '//lib/jgit/org.eclipse.jgit.archive:jgit-archive',
    '//lib/joda:joda-time',
    '//lib/log:api',
    '//lib/log:jsonevent-layout',
    '//lib/log:log4j',
    '//lib/lucene:lucene-analyzers-common',
    '//lib/lucene:lucene-core-and-backward-codecs',
    '//lib/lucene:lucene-queryparser',
    '//lib/ow2:ow2-asm',
    '//lib/ow2:ow2-asm-tree',
    '//lib/ow2:ow2-asm-util',
    '//lib/prolog:runtime',
  ],
  visibility = ['//visibility:public'],
)

TESTUTIL_DEPS = [
  ':server',
  '//gerrit-common:server',
  '//gerrit-cache-h2:cache-h2',
  '//gerrit-extension-api:api',
  '//gerrit-gpg:gpg',
  '//gerrit-lucene:lucene',
  '//gerrit-reviewdb:server',
  '//lib:gwtorm',
  '//lib:h2',
  '//lib:truth',
  '//lib/guice:guice',
  '//lib/guice:guice-servlet',
  '//lib/jgit/org.eclipse.jgit:jgit',
  '//lib/jgit/org.eclipse.jgit.junit:junit',
  '//lib/joda:joda-time',
  '//lib/log:api',
  '//lib/log:impl_log4j',
  '//lib/log:log4j',
]

TESTUTIL = glob([
  'src/test/java/com/google/gerrit/testutil/**/*.java',
  'src/test/java/com/google/gerrit/server/project/Util.java',
])

java_library(
  name = 'testutil',
  srcs = TESTUTIL,
  deps = TESTUTIL_DEPS + [
    '//lib/auto:auto-value',
    '//lib/easymock:easymock',
    '//lib/powermock:powermock-api-easymock',
    '//lib/powermock:powermock-api-support',
    '//lib/powermock:powermock-core',
    '//lib/powermock:powermock-module-junit4',
    '//lib/powermock:powermock-module-junit4-common',
  ],
  exports = [
    '//lib/easymock:easymock',
    '//lib/powermock:powermock-api-easymock',
    '//lib/powermock:powermock-api-support',
    '//lib/powermock:powermock-core',
    '//lib/powermock:powermock-module-junit4',
    '//lib/powermock:powermock-module-junit4-common',
  ],
  visibility = ['//visibility:public'],
)

PROLOG_TEST_CASE = [
  'src/test/java/com/google/gerrit/rules/PrologTestCase.java',
]
PROLOG_TESTS = glob(
  ['src/test/java/com/google/gerrit/rules/**/*.java'],
  exclude = PROLOG_TEST_CASE,
)

java_library(
  name = 'prolog_test_case',
  srcs = PROLOG_TEST_CASE,
  deps = [
    ':server',
    ':testutil',
    '//gerrit-common:server',
    '//gerrit-extension-api:api',
    '//lib:guava',
    '//lib:junit',
    '//lib:truth',
    '//lib/guice:guice',
    '//lib/prolog:runtime',
  ],
)

junit_tests(
  name = 'prolog_tests',
  srcs = PROLOG_TESTS,
  resources = glob(['src/test/resources/com/google/gerrit/rules/**/*']),
  deps = TESTUTIL_DEPS + [
    ':prolog_test_case',
    ':testutil',
    '//gerrit-server/src/main/prolog:common',
    '//lib/prolog:runtime',
  ],
)

QUERY_TESTS = glob(
  ['src/test/java/com/google/gerrit/server/query/**/*.java'],
)

junit_tests(
  name = 'query_tests',
  srcs = QUERY_TESTS,
  deps = TESTUTIL_DEPS + [
    ':testutil',
    '//gerrit-antlr:query_exception',
    '//gerrit-antlr:query_parser',
    '//gerrit-common:annotations',
    '//gerrit-server/src/main/prolog:common',
    '//lib/antlr:java_runtime',
  ],
  visibility = ['//visibility:public'],
)

junit_tests(
  name = 'server_tests',
  srcs = glob(
    ['src/test/java/**/*.java'],
    exclude = TESTUTIL + PROLOG_TESTS + PROLOG_TEST_CASE + QUERY_TESTS
  ),
  deps = TESTUTIL_DEPS + [
    ':testutil',
    '//gerrit-antlr:query_exception',
    '//gerrit-common:annotations',
    '//gerrit-patch-jgit:server',
    '//gerrit-server/src/main/prolog:common',
    '//lib:args4j',
    '//lib:grappa',
    '//lib:gson',
    '//lib:guava',
    '//lib:guava-retrying',
    '//lib:protobuf',
    '//lib/dropwizard:dropwizard-core',
    '//lib/guice:guice-assistedinject',
    '//lib/prolog:runtime',
  ],
  visibility = ['//visibility:public'],
)
