Files
gerrit/gerrit-server/BUILD
Dave Borowitz 798b883b40 Move ReceiveCommits and related classes to their own package
After naively moving the classes, there were almost no incoming
references from the rest of the server packages into the new
server.receive package. This means with only a little more work, it was
possible to create a new java_library target containing just the srcs
in this new package. This is a modest step in the direction of breaking
up the giant //gerrit-server:server package, which will improve compile
times when making modifications that don't change the interface.

Change-Id: I449018a4933a999c688611142dc7ed9c18b4c828
2017-08-08 10:50:06 -04:00

341 lines
9.0 KiB
Python

load("//lib/prolog:prolog.bzl", "prolog_cafe_library")
load("//tools/bzl:junit.bzl", "junit_tests")
CONSTANTS_SRC = [
"src/main/java/com/google/gerrit/server/documentation/Constants.java",
]
GERRIT_GLOBAL_MODULE_SRC = [
"src/main/java/com/google/gerrit/server/config/GerritGlobalModule.java",
]
RECEIVE_SRCS = glob(["src/main/java/com/google/gerrit/server/git/receive/**/*.java"])
SRCS = glob(
["src/main/java/**/*.java"],
exclude = CONSTANTS_SRC + GERRIT_GLOBAL_MODULE_SRC + RECEIVE_SRCS,
)
RESOURCES = glob(["src/main/resources/**/*"])
java_library(
name = "constants",
srcs = CONSTANTS_SRC,
visibility = ["//visibility:public"],
)
prolog_cafe_library(
name = "prolog-common",
srcs = ["src/main/prolog/gerrit_common.pl"],
visibility = ["//visibility:public"],
deps = [":server"],
)
# Giant kitchen-sink target.
#
# The only reason this hasn't been split up further is because we have too many
# tangled dependencies (and Guice unfortunately makes it quite easy to get into
# this state). Which means if you see an opportunity to split something off, you
# should seize it.
java_library(
name = "server",
srcs = SRCS,
resources = RESOURCES,
visibility = ["//visibility:public"],
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:soy",
"//lib:tukaani-xz",
"//lib:velocity",
"//lib/antlr:java_runtime",
"//lib/auto:auto-value",
"//lib/bouncycastle:bcpkix-neverlink",
"//lib/bouncycastle:bcprov-neverlink",
"//lib/commons:codec",
"//lib/commons:compress",
"//lib/commons:dbcp",
"//lib/commons:lang",
"//lib/commons:net",
"//lib/commons:validator",
"//lib/dropwizard:dropwizard-core",
"//lib/guice",
"//lib/guice:guice-assistedinject",
"//lib/guice:guice-servlet",
"//lib/jgit/org.eclipse.jgit.archive:jgit-archive",
"//lib/jgit/org.eclipse.jgit:jgit",
"//lib/joda:joda-time",
"//lib/jsoup",
"//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/mime4j:core",
"//lib/mime4j:dom",
"//lib/ow2:ow2-asm",
"//lib/ow2:ow2-asm-tree",
"//lib/ow2:ow2-asm-util",
"//lib/prolog:runtime",
],
)
# Large modules that import things from all across the server package
# hierarchy, so they need lots of dependencies.
java_library(
name = "module",
srcs = GERRIT_GLOBAL_MODULE_SRC,
visibility = ["//visibility:public"],
deps = [
":receive",
":server",
"//gerrit-extension-api:api",
"//lib:blame-cache",
"//lib:guava",
"//lib:soy",
"//lib:velocity",
"//lib/guice",
"//lib/jgit/org.eclipse.jgit:jgit",
],
)
java_library(
name = "receive",
srcs = RECEIVE_SRCS,
visibility = ["//visibility:public"],
deps = [
":server",
"//gerrit-common:annotations",
"//gerrit-common:server",
"//gerrit-extension-api:api",
"//gerrit-reviewdb:server",
"//gerrit-util-cli:cli",
"//lib:args4j",
"//lib:guava",
"//lib:gwtorm",
"//lib/auto:auto-value",
"//lib/guice",
"//lib/guice:guice-assistedinject",
"//lib/jgit/org.eclipse.jgit:jgit",
"//lib/log:api",
],
)
TESTUTIL_DEPS = [
":module",
":server",
"//gerrit-common:annotations",
"//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",
testonly = 1,
srcs = TESTUTIL,
visibility = ["//visibility:public"],
exports = [
"//lib/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",
],
deps = TESTUTIL_DEPS + [
"//gerrit-pgm:init",
"//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",
],
)
CUSTOM_TRUTH_SUBJECTS = glob([
"src/test/java/com/google/gerrit/server/**/*Subject.java",
])
java_library(
name = "custom-truth-subjects",
testonly = 1,
srcs = CUSTOM_TRUTH_SUBJECTS,
deps = [
":server",
"//gerrit-extension-api:api",
"//gerrit-test-util:test_util",
"//lib:truth",
],
)
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",
testonly = 1,
srcs = PROLOG_TEST_CASE,
deps = [
":server",
":testutil",
"//gerrit-common:server",
"//gerrit-extension-api:api",
"//lib:guava",
"//lib:junit",
"//lib:truth",
"//lib/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-common",
":prolog_test_case",
":testutil",
"//lib/prolog:runtime",
],
)
QUERY_TESTS = glob(
["src/test/java/com/google/gerrit/server/query/**/*.java"],
)
java_library(
name = "query_tests_code",
testonly = 1,
srcs = QUERY_TESTS,
visibility = ["//visibility:public"],
deps = TESTUTIL_DEPS + [
":prolog-common",
":testutil",
"//gerrit-antlr:query_exception",
"//gerrit-antlr:query_parser",
"//lib/antlr:java_runtime",
],
)
junit_tests(
name = "query_tests",
size = "large",
srcs = QUERY_TESTS,
visibility = ["//visibility:public"],
deps = TESTUTIL_DEPS + [
":prolog-common",
":testutil",
"//gerrit-antlr:query_exception",
"//gerrit-antlr:query_parser",
"//lib/antlr:java_runtime",
],
)
junit_tests(
name = "server_tests",
size = "large",
srcs = glob(
["src/test/java/**/*.java"],
exclude = TESTUTIL + CUSTOM_TRUTH_SUBJECTS + PROLOG_TESTS + PROLOG_TEST_CASE + QUERY_TESTS,
),
resources = glob(["src/test/resources/com/google/gerrit/server/**/*"]),
visibility = ["//visibility:public"],
deps = TESTUTIL_DEPS + [
":custom-truth-subjects",
":prolog-common",
":testutil",
"//gerrit-antlr:query_exception",
"//gerrit-patch-jgit:server",
"//gerrit-test-util:test_util",
"//lib:args4j",
"//lib:grappa",
"//lib:gson",
"//lib:guava",
"//lib:guava-retrying",
"//lib:protobuf",
"//lib:truth-java8-extension",
"//lib/bouncycastle:bcprov",
"//lib/bouncycastle:bcpkix",
"//lib/dropwizard:dropwizard-core",
"//lib/guice:guice-assistedinject",
"//lib/prolog:runtime",
"//lib/commons:codec",
],
)
junit_tests(
name = "testutil_test",
size = "small",
srcs = [
"src/test/java/com/google/gerrit/testutil/IndexVersionsTest.java",
],
visibility = ["//visibility:public"],
deps = TESTUTIL_DEPS + [
":testutil",
],
)
load("//tools/bzl:javadoc.bzl", "java_doc")
java_doc(
name = "doc",
libs = [":server"],
pkgs = ["com.google.gerrit"],
title = "Gerrit Review Server Documentation",
)