blob: 81da677cc5855f0c9d1514d6ec2bd9f4a17d6a87 [file] [log] [blame] [view]
# 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](https://gerrit.googlesource.com/plugins/multi-site/+/refs/heads/master/DESIGN.md#global-ref_db-plugin)
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](./bindings.md).
## Metrics
Global ref-database expose metrics to measure the global ref-database operation latency.
List of the available metrics can be found [here](./metrics.md).
## 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.