| load( |
| "@com_googlesource_gerrit_bazlets//:gerrit_plugin.bzl", |
| "gerrit_plugin", |
| "gerrit_plugin_dependency_tests", |
| "gerrit_plugin_test_util", |
| "gerrit_plugin_tests", |
| ) |
| load("@rules_java//java:defs.bzl", "java_library") |
| |
| OPENSEARCH_DEPS = [ |
| "com.fasterxml.jackson.core:jackson-core", |
| "org.apache.httpcomponents.client5:httpclient5", |
| "org.apache.httpcomponents.core5:httpcore5", |
| "org.opensearch.client:opensearch-rest-client", |
| ] |
| |
| OPENSEARCH_TEST_DEPS = OPENSEARCH_DEPS + [ |
| "org.opensearch:opensearch-testcontainers", |
| "org.testcontainers:testcontainers", |
| ] |
| |
| gerrit_plugin( |
| plugin = "index-opensearch", |
| srcs = glob(["src/main/java/**/*.java"]), |
| ext_deps = OPENSEARCH_DEPS, |
| deps = [ |
| ":proto-converter-neverlink", |
| ], |
| ) |
| |
| java_library( |
| name = "proto-converter-neverlink", |
| neverlink = 1, |
| exports = [ |
| "//java/com/google/gerrit/entities/converter:converters", |
| "//java/com/google/gerrit/entities/converter:proto_converter", |
| ], |
| ) |
| |
| gerrit_plugin_test_util( |
| name = "opensearch_test_utils", |
| plugin = "index-opensearch", |
| srcs = glob( |
| ["src/test/java/**/*.java"], |
| exclude = ["src/test/java/**/*Test.java"], |
| ), |
| visibility = ["//visibility:public"], |
| ext_deps = OPENSEARCH_TEST_DEPS, |
| ) |
| |
| QUERY_TESTS_DEP = "//javatests/com/google/gerrit/server/query/%s:abstract_query_tests" |
| |
| TYPES = [ |
| "account", |
| "change", |
| "group", |
| "project", |
| ] |
| |
| SUFFIX = "sTest.java" |
| |
| # Compiles the abstract base classes (e.g. AbstractOpenQueryChangesTest) |
| # into a library so the concrete version-specific test targets can depend on them. |
| ABSTRACT_OPENSEARCH_TESTS = {i: "OpenSearchAbstractQuery*" + i.capitalize() + SUFFIX for i in TYPES} |
| |
| [gerrit_plugin_test_util( |
| name = "abstract_open_query_%ss_test" % name, |
| plugin = "index-opensearch", |
| srcs = glob(["src/test/java/com/google/gerrit/opensearch/" + src]), |
| visibility = ["//visibility:public"], |
| ext_deps = OPENSEARCH_TEST_DEPS, |
| deps = [ |
| QUERY_TESTS_DEP % name, |
| ":opensearch_test_utils", |
| ], |
| ) for name, src in ABSTRACT_OPENSEARCH_TESTS.items()] |
| |
| # One dict per supported OpenSearch major version. |
| OPENSEARCH_TESTS_V3 = {i: "OpenSearchV3Query" + i.capitalize() + SUFFIX for i in TYPES} |
| |
| [gerrit_plugin_tests( |
| name = "open_query_%ss_test_V3" % name, |
| plugin = "index-opensearch", |
| size = "enormous", |
| srcs = ["src/test/java/com/google/gerrit/opensearch/" + src], |
| tags = [ |
| "docker", |
| "exclusive", |
| "opensearch", |
| "opensearch_V3", |
| ], |
| ext_deps = OPENSEARCH_TEST_DEPS, |
| deps = [ |
| QUERY_TESTS_DEP % name, |
| ":opensearch_test_utils", |
| ":abstract_open_query_%ss_test" % name, |
| ], |
| skip_dependency_tests = True, |
| ) for name, src in OPENSEARCH_TESTS_V3.items()] |
| |
| # Small unit tests (version/config/etc.) — excludes the large query integration tests. |
| gerrit_plugin_tests( |
| plugin = "index-opensearch", |
| size = "small", |
| srcs = glob( |
| [ |
| "src/test/java/**/*IT.java", |
| "src/test/java/**/*Test.java", |
| ], |
| exclude = ["src/test/java/**/Open*Query*" + SUFFIX], |
| ), |
| tags = ["opensearch"], |
| ext_deps = OPENSEARCH_TEST_DEPS, |
| deps = [ |
| ":opensearch_test_utils", |
| ], |
| ) |