| load("@rules_java//java:defs.bzl", "java_binary", "java_library") |
| load("//tools/bzl:genrule2.bzl", "genrule2") |
| load("//tools/bzl:javadoc.bzl", "java_doc") |
| load( |
| "//tools/bzl:plugins.bzl", |
| "CORE_PLUGINS", |
| "CUSTOM_PLUGINS", |
| ) |
| load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_test") |
| |
| package(default_visibility = ["//visibility:public"]) |
| |
| exports_files([ |
| ".eslintrc.js", |
| ".eslintignore", |
| ".prettierrc.js", |
| "rollup.config.js", |
| "tsconfig-plugins-base.json", |
| ]) |
| |
| genrule2( |
| name = "core", |
| srcs = ["//plugins/%s.jar" % (n if ":" in n else "%s:%s" % (n, n)) for n in CORE_PLUGINS + CUSTOM_PLUGINS], |
| outs = ["core.zip"], |
| cmd = "mkdir -p $$TMP/WEB-INF/plugins;" + |
| "for s in $(SRCS) ; do " + |
| "ln -s $$ROOT/$$s $$TMP/WEB-INF/plugins;done;" + |
| "cd $$TMP;" + |
| "zip -qr $$ROOT/$@ .", |
| ) |
| |
| PLUGIN_API = [ |
| "//java/com/google/gerrit/server", |
| "//java/com/google/gerrit/server/ioutil", |
| "//java/com/google/gerrit/server/restapi", |
| "//java/com/google/gerrit/pgm/init/api", |
| "//java/com/google/gerrit/httpd", |
| "//java/com/google/gerrit/sshd", |
| ] |
| |
| EXPORTS = [ |
| "//antlr3:query_parser", |
| "//java/com/google/gerrit/common:annotations", |
| "//java/com/google/gerrit/common:server", |
| "//java/com/google/gerrit/exceptions", |
| "//java/com/google/gerrit/extensions:api", |
| "//java/com/google/gerrit/git", |
| "//java/com/google/gerrit/index", |
| "//java/com/google/gerrit/index/project", |
| "//java/com/google/gerrit/index:query_exception", |
| "//java/com/google/gerrit/json", |
| "//java/com/google/gerrit/lifecycle", |
| "//java/com/google/gerrit/lucene", |
| "//java/com/google/gerrit/mail", |
| "//java/com/google/gerrit/metrics", |
| "//java/com/google/gerrit/metrics/dropwizard", |
| "//java/com/google/gerrit/entities", |
| "//java/com/google/gerrit/server/api", |
| "//java/com/google/gerrit/server/audit", |
| "//java/com/google/gerrit/server/cache/mem", |
| "//java/com/google/gerrit/server/cache/serialize", |
| "//java/com/google/gerrit/server/data", |
| "//java/com/google/gerrit/server/git/receive", |
| "//java/com/google/gerrit/server/logging", |
| "//java/com/google/gerrit/server/rules/prolog", |
| "//java/com/google/gerrit/server/schema", |
| "//java/com/google/gerrit/server/util/time", |
| "//java/com/google/gerrit/proto", |
| "//java/com/google/gerrit/util/cli", |
| "//java/com/google/gerrit/util/http", |
| "//java/com/google/gerrit/util/logging", |
| "//lib/antlr:java-runtime", |
| "//lib/auto:auto-value-annotations", |
| "//lib/auto:auto-value-gson", |
| "//lib/commons:compress", |
| "//lib/commons:dbcp", |
| "//lib/commons:lang3", |
| "//lib/dropwizard:dropwizard-core", |
| "//lib/flogger:api", |
| "//lib/guice:guice", |
| "//lib/guice:guice-assistedinject", |
| "//lib/guice:guice-servlet", |
| "//lib/guice:javax_inject", |
| "//lib/httpcomponents:httpclient", |
| "//lib/httpcomponents:httpcore", |
| "//lib:jgit-servlet", |
| "//lib:jgit", |
| "//lib:jsr305", |
| "//lib/log:api", |
| "//lib/log:log4j", |
| "//lib/mina:sshd", |
| "//lib/ow2:ow2-asm", |
| "//lib/ow2:ow2-asm-analysis", |
| "//lib/ow2:ow2-asm-commons", |
| "//lib/ow2:ow2-asm-util", |
| "//lib:args4j", |
| "//lib:blame-cache", |
| "//lib:guava", |
| "//lib:guava-retrying", |
| "//lib:gson", |
| "//lib:icu4j", |
| "//lib:mime-util", |
| "//lib:protobuf", |
| "//lib:servlet-api-without-neverlink", |
| "//lib:soy", |
| "//prolog:gerrit-prolog-common", |
| ] |
| |
| java_binary( |
| name = "bouncycastle-deploy-env", |
| main_class = "Dummy", |
| visibility = ["//visibility:private"], |
| runtime_deps = [ |
| "//lib/bouncycastle:bcpg", |
| "//lib/bouncycastle:bcpkix", |
| "//lib/bouncycastle:bcprov", |
| ], |
| ) |
| |
| java_binary( |
| name = "plugin-api", |
| deploy_env = ["bouncycastle-deploy-env"], |
| main_class = "Dummy", |
| runtime_deps = [":plugin-lib"], |
| ) |
| |
| java_library( |
| name = "plugin-lib", |
| exports = PLUGIN_API + EXPORTS, |
| ) |
| |
| java_library( |
| name = "plugin-lib-neverlink", |
| neverlink = 1, |
| exports = PLUGIN_API + EXPORTS, |
| ) |
| |
| java_binary( |
| name = "plugin-api-sources", |
| main_class = "Dummy", |
| runtime_deps = [ |
| "//antlr3:libquery_parser-src.jar", |
| "//java/com/google/gerrit/common:libannotations-src.jar", |
| "//java/com/google/gerrit/common:libserver-src.jar", |
| "//java/com/google/gerrit/entities:libentities-src.jar", |
| "//java/com/google/gerrit/extensions:libapi-src.jar", |
| "//java/com/google/gerrit/httpd:libhttpd-src.jar", |
| "//java/com/google/gerrit/index:libindex-src.jar", |
| "//java/com/google/gerrit/index:libquery_exception-src.jar", |
| "//java/com/google/gerrit/pgm/init/api:libapi-src.jar", |
| "//java/com/google/gerrit/server:libserver-src.jar", |
| "//java/com/google/gerrit/server/restapi:librestapi-src.jar", |
| "//java/com/google/gerrit/sshd:libsshd-src.jar", |
| "//java/com/google/gerrit/util/http:libhttp-src.jar", |
| ], |
| ) |
| |
| java_doc( |
| name = "plugin-api-javadoc", |
| libs = PLUGIN_API + [ |
| "//antlr3:query_parser", |
| "//java/com/google/gerrit/index", |
| "//java/com/google/gerrit/index:query_exception", |
| "//java/com/google/gerrit/common:annotations", |
| "//java/com/google/gerrit/common:server", |
| "//java/com/google/gerrit/extensions:api", |
| "//java/com/google/gerrit/entities", |
| "//java/com/google/gerrit/util/http", |
| ], |
| pkgs = ["com.google.gerrit"], |
| title = "Gerrit Review Plugin API Documentation", |
| ) |
| |
| # This is a generic test target for TypeScript plugins. |
| # |
| # `nodejs_test` needs to run in the directory where the `package.json` and |
| # `node_modules` are, so unfortunately we cannot move this target into the |
| # BUILD files of individual plugins. On the other hand one common target |
| # for all plugins also has the advantage of being re-usable. |
| # |
| # For making this work for a specific plugin you have make the source files |
| # of the plugin available as a `filegroup` and add it to the `data` attribute. |
| # And you have to specify the `PLUGIN_DIR` in the `env` attribute. |
| nodejs_test( |
| name = "web-test-runner", |
| size = "large", |
| chdir = package_name(), |
| data = [ |
| ":package.json", |
| ":web-test-runner.config.mjs", |
| # This is an example of how you could reference your plugin sources: |
| # "//plugins/codemirror-editor/web:codemirror-test-sources", |
| "@plugins_npm//:node_modules", |
| ], |
| entry_point = "@plugins_npm//:node_modules/@web/test-runner/dist/bin.js", |
| env = {"PLUGIN_DIR": "codemirror-editor"}, |
| tags = [ |
| "local", |
| "manual", |
| ], |
| ) |