Files
gerrit/gerrit-server/BUILD
Dave Borowitz bc3385e842 Don't expose RepoView#getRepository()
For the purposes of fusing BatchUpdateOp#updateChange and updateRepo
into a single batch update, implementations of updateChange need to be
able to observe the ref updates from updateRepo before they are
executed. If we expose the repository directly to updateRepo, it's too
easy for them use it in a wrong way that won't see the results of
updateRepo. That is why we limited the operations that are available
through RepoView.

Finish this refactoring by not exposing the Repository to any op phases,
including updateRepo.

The repo still needs to be directly accessed by the BatchUpdate
internals so it can actually do the writes, which is fine as it doesn't
escape this package.

Change-Id: I0959aa2d2bce346a9a6d493c23a38301b43d1e5d
2017-04-10 10:18:47 -04:00

267 lines
7.1 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",
],
)
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_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 + 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",
":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:truth-java8-extension",
"//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",
)