Merge branch 'stable-3.7'

* stable-3.7:
  Bump Gerrit and plugin version to v3.7.4
  Bump version to v3.6.3.4
  Fix duplicate log appender creation
  Bump version to v3.5.4.4
  Bump version to v3.4.8.6
  Consider robot comments as mutable ref for validation
  Introduce isUpToDateUnchecked for silent global-refdb checks
  Add Bazel build instructions
  Define the artifact as Gerrit plugin
  Set version to 3.7.2.1
  Set version to v3.5.4.3
  Don't unnecessarily format error message
  [errorprone] Fix FloggerLogString errors
  Set version to 3.4.8.4
  Configure the set of refs prefixes to be ignored by the global-refdb
  Fix flogger formatting issues spotted by errorprone
  Set Gerrit and project version to 3.7.2
  Bump the global-refdb version to 3.4.8.3
  Make SharedRefDatabaseWrapper a singleton
  Add warning when the GlobalRefDatabase is not injected
  Bump the global-refdb version to 3.4.8.2
  Add default implementation for the global-refdb logger

Change-Id: I4334b1065203d8f2e13e4d07e47e832e50934fea
tree: 94fceecb3a1100cfb4b0d4251a1752fa3c894b83
  1. src/
  2. .gitignore
  3. bindings.md
  4. BUILD
  5. config.md
  6. Jenkinsfile
  7. LICENSE
  8. metrics.md
  9. pom.xml
  10. README.md
README.md

Gerrit interface to a global-refdb

Global ref-database interface for use with Gerrit Code Review.

Enables the de-coupling between Gerrit, its libModules and the different implementations of a globally shared ref-database.

Design

The design for a global ref-db interface can be found as part of the multi-site design documentation, where it first originated and was approved by the community.

Bindings

In order to consume this library, some Guice bindings need to be registered appropriately. More information in the relevant documentation.

Metrics

Global ref-database expose metrics to measure the global ref-database operation latency. List of the available metrics can be found here.

How to build

This libModule is built like a Gerrit in-tree plugin, using Bazelisk.

Build in Gerrit tree

Create a symbolic link of the repository source to the Gerrit source tree /plugins/global-refdb directory.

Example:

git clone https://gerrit.googlesource.com/gerrit git clone https://gerrit.googlesource.com/modules/global-refdb cd gerrit/plugins ln -s ../../global-refdb . From the Gerrit source tree issue the command bazelsk build plugins/global-refdb

Example:

bazelisk build plugins/global-refdb

The libModule jar file is created under basel-bin/plugins/global-refdb/global-refdb.jar

To execute the tests run bazelisk test plugins/global-refdb/... from the Gerrit source tree.

Example:

bazelisk test plugins/global-refdb/...

How to import into Eclipse as a project

Add global-refdb in the CUSTOM_PLUGINS section of the tools/bzl/plugins.bzl.

Example:

CUSTOM_PLUGINS = [
    "global-refdb",
]

Run tools/eclipse/project.py for generating or updating the Eclipse project.