Merge branch 'stable-3.5' into stable-3.6

* stable-3.5:
  Remove dependency on //java/com/google/gerrit/proto
  Restore dockerized integration tests
  Adapt Bazel build and deps to latest stable-3.5
  Adapt to the latest Index interface in stable-3.5

Since Ia64a599440 TimestampRangePredicate is migrated to use Instant
instead of obsolete Date class. Adapt the ElasticQueryBuilder for this
migration.

ElasticV7QueryChangesTest overrides byTopic() method to adjust to ES
behaviour for "prefixtopic" predicate. "prefixtopic" predicate was added
in release 3.6 and that's why this is done in the merge commit.

Change-Id: Ie7c4ba0d3ddb4c50a79f51bb328fbaefc15df7ed
tree: f72fbda724b9e7f1981e685b81186a5260434607
  1. src/
  2. BUILD
  3. external_plugin_deps.bzl
  4. Jenkinsfile
  5. LICENSE
  6. README.md
README.md

Index backend for Gerrit, based on ElasticSearch

Indexing backend libModule for Gerrit Code Review based on ElasticSearch.

This module was original part of Gerrit core and then extracted into a separate component from v3.5.0-rc3 as part of Change-Id: Ib7b5167ce.

How to build

This libModule is built like a Gerrit in-tree plugin, using Bazelisk. See the build instructions for more details.

Setup

  • Install index-elasticsearch module

Install the index-elasticsearch.jar into the $GERRIT_SITE/lib directory.

Add the index-elasticsearch module to $GERRIT_SITE/etc/gerrit.config as follows:

[gerrit]
  installIndexModule = com.google.gerrit.elasticsearch.ElasticIndexModule

When installing the module on Gerrit replicas, use following example:

[gerrit]
  installIndexModule = com.google.gerrit.elasticsearch.ReplicaElasticIndexModule

For further information and supported options, refer to config documentation.

Integration test

Gerrit acceptance tests allow the execution with an alternate implementation of the indexing backend using the GERRIT_INDEX_MODULE environment variable.

bazel test --test_env=GERRIT_INDEX_MODULE=com.google.gerrit.elasticsearch.ElasticIndexModule //...