This plugin is built with Bazel in-tree build. This plugin depends on the Elasticsearch Java Low Level REST Client (abbreviated as LLRC by the ES dev team) for integration with an Elasticsearch cluster. The LLRC is licensed as Apache v2 (even after ES itself has moved to SSPL) and is compatible with all ES versions. See the LLRC docs for more information.
Create a symbolic link of the repository source to the Gerrit source tree plugins/index-elasticsearch directory, and the external_plugin_deps.bzl dependencies linked to plugins/external_plugin_deps.bzl.
Example:
git clone https://gerrit.googlesource.com/gerrit git clone https://gerrit.googlesource.com/modules/index-elasticsearch cd gerrit/plugins ln -s ../../index-elasticsearch index-elasticsearch ln -sf ../../external_plugin_deps.bzl .
From the Gerrit source tree issue the command bazelisk build plugins/index-elasticsearch
.
Example:
bazelisk build plugins/index-elasticsearch
The libModule jar file is created under bazel-bin/plugins/index-elasticsearch/index-elasticsearch.jar
There are two different ways to run tests for this module. You can either run only the tests provided by the module or you can run all Gerrit core acceptance tests with the indexing backend set to this module.
To run only the tests provided by this plugin:
bazelisk test plugins/index-elasticsearch/...
Gerrit acceptance tests allow the execution with an alternate implementation of the indexing backend using the GERRIT_INDEX_MODULE
environment variable.
bazelisk test --test_env=GERRIT_INDEX_MODULE=com.google.gerrit.elasticsearch.ElasticIndexModule //...
This project can be imported into the Eclipse IDE. Add the plugin name to the CUSTOM_PLUGINS
and to the CUSTOM_PLUGINS_TEST_DEPS
set in Gerrit core in tools/bzl/plugins.bzl
, and execute:
./tools/eclipse/project.py
More information about Bazel can be found in the Gerrit documentation.