| # 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 `bazelisk build plugins/global-refdb` | |
| Example: | |
| ``` | |
| bazelisk build plugins/global-refdb | |
| ``` | |
| The libModule jar file is created under `bazel-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. |