Build

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.

Build in Gerrit tree

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 ../../index-elasticsearch/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

Integration test

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 //...

IDE setup

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.

Back to @PLUGIN@ documentation index