commit | 106c7f43d1e893702a4e11b89b1fa10a9e2bf710 | [log] [tgz] |
---|---|---|
author | Alvaro Vilaplana Garcia <alvaro.vilaplana@gmail.com> | Thu Sep 21 15:16:03 2023 +0100 |
committer | Alvaro Vilaplana Garcia <alvaro.vilaplana@gmail.com> | Tue Oct 03 20:54:58 2023 +0100 |
tree | 1e7ce1ea4924eea5c881478e724122219261bbb9 | |
parent | 64ac4fe8288dc5205832bfc932d24066da659960 [diff] |
Consume events-broker from source Also amend the README.md with the explicit mention to the events-broker as pre-requisite for building the plugin. Change-Id: Ib84e50dafe1728f0d867017a5776a02f9ce4cc72
This plugins allows to define a distributed stream of events published by Gerrit.
Events can be anything, from the traditional stream events to the Gerrit metrics.
This plugin requires NATS Jetstream and Gerrit 3.6 or later.
linux
java-11
Bazel
The events-nats plugin can be built as a regular ‘in-tree’ plugin. That means it is required to clone a Gerrit source tree first and then to clone the events-nats plugin source directory into the /plugins path. Additionally, the plugins/external_plugin_deps.bzl
file needs to be updated to include the events-nats plugin external dependencies. The plugin depends on events-broker which is linked directly from source with the same ‘in-tree’ plugin structure.
git clone --recursive https://gerrit.googlesource.com/gerrit git clone https://gerrit.googlesource.com/plugins/events-nats gerrit/plugins/events-nats git clone https://gerrit.googlesource.com/modules/events-broker gerrit/plugins/events-broker cd gerrit rm plugins/external_plugin_deps.bzl ln -s ./events-nats/external_plugin_deps.bzl plugins/.
If your build includes multiple plugins requiring external dependencies edit plugins/external_plugin_deps.bzl
. E.g. to include dependencies of both the events-nats and the multi-site plugin:
load("//tools/bzl:maven_jar.bzl", "GERRIT", "MAVEN_CENTRAL", "MAVEN_LOCAL", "maven_jar") load("//plugins/events-nats:external_plugin_deps.bzl", deps_events_nats = "external_plugin_deps") load("//plugins/multi-site:external_plugin_deps.bzl", deps_multi_site = "external_plugin_deps") def external_plugin_deps(): deps_events_nats() deps_multi_site()
To build the events-nats plugins, issue this command from the Gerrit source path:
bazel build plugins/events-nats
The output is created in
bazel-genfiles/plugins/events-nats/events-nats.jar
Assuming a running NATS JetStream broker on the same Gerrit host, add the following settings to etc/gerrit.config
:
[plugin "events-nats"] server = nats://localhost:4222
Starting a local NATS JetStream server for testing:
docker run -d --name nats-main -p 4222:4222 -p 6222:6222 -p 8222:8222 nats -js
You can use the NATS command line client to inspect and manage NATS.