gerrit/gerrit-server/BUILD
David Ostrovsky c5f8066629 Don't ship bouncycastle libraries in plugin API
We cannot shade bouncycastle in the plugin API. Still we need it to be
included in the gerrit.war, licenses file and Eclipse classpath.

Expose bouncycastle libraries in PLUGIN_TEST_DEPS constant, so that
the plugins don't need to change anything in tree build mode.

gerrit_api() bazlet in bazlets repository is extended too, so that the
plugins don't need to change anything in standalone build mode.

One side effect of this change, is that bouncycastle libraries are
now listed with neverlink suffix, e.g.:

* bouncycastle:bcprov-neverlink

Bug: Issue 5826
Change-Id: Idb8051e16b14e20c8dd528783ab297ee25707bb3
2017-04-07 07:38:04 +02:00

249 lines
6.6 KiB
Python

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,
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",
],
)
TESTUTIL_DEPS = [
":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",
],
)
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_test_case",
":testutil",
"//gerrit-server/src/main/prolog:common",
"//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 + [
":testutil",
"//gerrit-antlr:query_exception",
"//gerrit-antlr:query_parser",
"//gerrit-server/src/main/prolog:common",
"//lib/antlr:java_runtime",
],
)
junit_tests(
name = "query_tests",
size = "large",
srcs = QUERY_TESTS,
visibility = ["//visibility:public"],
deps = TESTUTIL_DEPS + [
":testutil",
"//gerrit-antlr:query_exception",
"//gerrit-antlr:query_parser",
"//gerrit-server/src/main/prolog:common",
"//lib/antlr:java_runtime",
],
)
junit_tests(
name = "server_tests",
size = "large",
srcs = glob(
["src/test/java/**/*.java"],
exclude = TESTUTIL + PROLOG_TESTS + PROLOG_TEST_CASE + QUERY_TESTS,
),
resources = glob(["src/test/resources/com/google/gerrit/server/**/*"]),
visibility = ["//visibility:public"],
deps = TESTUTIL_DEPS + [
":testutil",
"//gerrit-antlr:query_exception",
"//gerrit-patch-jgit:server",
"//gerrit-server/src/main/prolog:common",
"//gerrit-test-util:test_util",
"//lib:args4j",
"//lib:grappa",
"//lib:gson",
"//lib:guava",
"//lib:guava-retrying",
"//lib:protobuf",
"//lib/bouncycastle:bcprov",
"//lib/bouncycastle:bcpkix",
"//lib/dropwizard:dropwizard-core",
"//lib/guice:guice-assistedinject",
"//lib/prolog:runtime",
"//lib/commons:codec",
],
)
load("//tools/bzl:javadoc.bzl", "java_doc")
java_doc(
name = "doc",
libs = [":server"],
pkgs = ["com.google.gerrit"],
title = "Gerrit Review Server Documentation",
)