Merge branch 'stable-2.13'
* stable-2.13:
Use queue to hold Events during connection glitches
Remove obsolete manifest entries
Tidy up dependencies
Build with plugin API 2.13.2
Change-Id: I32aa58836e0d4f1dc01e30ee7cbedf93aeef65ee
diff --git a/.buckconfig b/.buckconfig
deleted file mode 100644
index 5238f0d..0000000
--- a/.buckconfig
+++ /dev/null
@@ -1,13 +0,0 @@
-[alias]
- rabbitmq = //:rabbitmq
- plugin = //:rabbitmq
-
-[java]
- src_roots = java, resources
-
-[project]
- ignore = .git
-
-[cache]
- mode = dir
- dir = buck-out/cache
diff --git a/.gitignore b/.gitignore
index 73faeb9..5c795fd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,15 +1,6 @@
-work/
-buck-out/
-bucklets
-build/
-bin/
-target/
-.buckd/
-.buckversion
.classpath
.checkstyle
.project
.settings/
.idea/
-.watchmanconfig
*.iml
diff --git a/BUCK b/BUCK
deleted file mode 100644
index b80fa41..0000000
--- a/BUCK
+++ /dev/null
@@ -1,64 +0,0 @@
-include_defs('//bucklets/gerrit_plugin.bucklet')
-include_defs('//bucklets/maven_jar.bucklet')
-
-gerrit_plugin(
- name = 'rabbitmq',
- srcs = glob(['src/main/java/**/*.java']),
- resources = glob(['src/main/resources/**/*']),
- manifest_entries = [
- 'Gerrit-PluginName: rabbitmq',
- 'Gerrit-Module: com.googlesource.gerrit.plugins.rabbitmq.Module',
- 'Implementation-Title: Gerrit rabbitmq plugin',
- ],
- deps = [
- ':amqp-client',
- ':commons-codec',
- ':commons-io',
- ':guice-multibindings',
- ],
-)
-
-java_library(
- name = 'classpath',
- deps = [':rabbitmq__plugin'],
-)
-
-maven_jar(
- name = 'commons-codec',
- id = 'commons-codec:commons-codec:1.4',
- sha1 = '4216af16d38465bbab0f3dff8efa14204f7a399a',
- license = 'Apache2.0',
- exclude = ['META-INF/LICENSE.txt', 'META-INF/NOTICE.txt'],
-)
-
-maven_jar(
- name = 'commons-io',
- id = 'commons-io:commons-io:1.4',
- sha1 = 'a8762d07e76cfde2395257a5da47ba7c1dbd3dce',
- license = 'Apache2.0',
-)
-
-maven_jar(
- name = 'amqp-client',
- id = 'com.rabbitmq:amqp-client:3.5.2',
- sha1 = '8d10edd29e08f78349bd1da9d18f81c9f8b90567',
- license = 'MPL1.1',
- exclude_java_sources = True,
- visibility = [],
-)
-
-maven_jar(
- name = 'guice-multibindings',
- id = 'com.google.inject.extensions:guice-multibindings:4.0',
- sha1 = 'f4509545b4470bbcc865aa500ad6fef2e97d28bf',
- license = 'Apache2.0',
- exclude_java_sources = True,
- exclude = [
- 'META-INF/DEPENDENCIES',
- 'META-INF/LICENSE',
- 'META-INF/NOTICE',
- 'META-INF/maven/com.google.guava/guava/pom.properties',
- 'META-INF/maven/com.google.guava/guava/pom.xml',
- ],
- visibility = [],
-)
diff --git a/BUILD b/BUILD
new file mode 100644
index 0000000..3f40714
--- /dev/null
+++ b/BUILD
@@ -0,0 +1,20 @@
+load("//tools/bzl:plugin.bzl", "gerrit_plugin")
+
+gerrit_plugin(
+ name = "rabbitmq",
+ srcs = glob(["src/main/java/**/*.java"]),
+ resources = glob(["src/main/resources/**/*"]),
+ manifest_entries = [
+ "Gerrit-PluginName: rabbitmq",
+ "Gerrit-Module: com.googlesource.gerrit.plugins.rabbitmq.Module",
+ "Implementation-Title: Gerrit rabbitmq plugin",
+ "Implementation-URL: https://gerrit-review.googlesource.com/#/admin/projects/plugins/rabbitmq",
+ ],
+ deps = [
+ "@amqp_client//jar",
+ "@commons_codec//jar:neverlink",
+ "@commons_io//jar",
+ "@commons_lang//jar:neverlink",
+ "@gson//jar:neverlink",
+ ],
+)
diff --git a/README.md b/README.md
index 6b8c33f..b3b6665 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,6 @@
gerrit-rabbitmq-plugin: Gerrit event publish plugin via RabbitMQ
=======================
-* Author: rinrinne a.k.a. rin_ne
-* Repository: http://github.com/rinrinne/gerrit-rabbitmq-plugin
-* Release: http://github.com/rinrinne/gerrit-rabbitmq-plugin/releases
-
-[![Build Status](https://travis-ci.org/rinrinne/gerrit-rabbitmq-plugin.png?branch=master)](https://travis-ci.org/rinrinne/gerrit-rabbitmq-plugin)
-
Synopsis
----------------------
@@ -15,36 +9,25 @@
This can publish gerrit events to message queue provided by RabbitMQ.
Published events are the same as Gerrit stream evnets.
-This plugin works on Gerrit 2.8 - 2.10.
+This plugin works on Gerrit 2.8 - 2.13.
Environments
---------------------
* `linux`
-* `java-1.7`
-* `Buck`
-
-Build
----------------------
-
-Clone or link this plugin to the plugins directory of Gerrit's source
-tree, and issue the command:
-
-
- buck build plugins/rabbitmq
-
-The output is created in
-
- buck-out/gen/plugins/rabbitmq/rabbitmq.jar
+* `java-1.8`
+* `Bazel`
Reference
---------------------
+* [Build]
* [Configuration]
* [Message Format]
-[Configuration]: https://github.com/rinrinne/gerrit-rabbitmq-plugin/blob/master/src/main/resources/Documentation/config.md
-[Message Format]: https://github.com/rinrinne/gerrit-rabbitmq-plugin/blob/master/src/main/resources/Documentation/message.md
+[Build]: src/main/resources/Documentation/build.md
+[Configuration]: src/main/resources/Documentation/config.md
+[Message Format]: src/main/resources/Documentation/message.md
Minimum Configuration
---------------------
diff --git a/external_plugin_deps.bzl b/external_plugin_deps.bzl
new file mode 100644
index 0000000..70ed9e6
--- /dev/null
+++ b/external_plugin_deps.bzl
@@ -0,0 +1,8 @@
+load("//tools/bzl:maven_jar.bzl", "maven_jar")
+
+def external_plugin_deps():
+ maven_jar(
+ name = "amqp_client",
+ artifact = "com.rabbitmq:amqp-client:3.5.2",
+ sha1 = "8d10edd29e08f78349bd1da9d18f81c9f8b90567",
+ )
diff --git a/lib/BUCK b/lib/BUCK
deleted file mode 100644
index 07a8031..0000000
--- a/lib/BUCK
+++ /dev/null
@@ -1 +0,0 @@
-include_defs('//bucklets/maven_jar.bucklet')
diff --git a/lib/gerrit/BUCK b/lib/gerrit/BUCK
deleted file mode 100644
index 1ae48ff..0000000
--- a/lib/gerrit/BUCK
+++ /dev/null
@@ -1,13 +0,0 @@
-include_defs('//bucklets/maven_jar.bucklet')
-
-VER = '2.13.2'
-REPO = MAVEN_CENTRAL
-
-maven_jar(
- name = 'plugin-api',
- id = 'com.google.gerrit:gerrit-plugin-api:' + VER,
- sha1 = '3cdeb17c2b0f945e71135ef6abe5a1db59b9d313',
- license = 'Apache2.0',
- attach_source = False,
- repository = REPO,
-)
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/AMQProperties.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/AMQProperties.java
index 5d1c553..ceaef0a 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/AMQProperties.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/AMQProperties.java
@@ -32,8 +32,8 @@
public class AMQProperties {
- public final static String EVENT_APPID = "gerrit";
- public final static String CONTENT_TYPE_JSON = "application/json";
+ public static final String EVENT_APPID = "gerrit";
+ public static final String CONTENT_TYPE_JSON = "application/json";
private static final Logger LOGGER = LoggerFactory.getLogger(AMQProperties.class);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/PluginProperties.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/PluginProperties.java
index 36ba106..09661ca 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/PluginProperties.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/PluginProperties.java
@@ -40,7 +40,7 @@
private static final Logger LOGGER = LoggerFactory.getLogger(PluginProperties.class);
- private final static int MINIMUM_CONNECTION_MONITOR_INTERVAL = 5000;
+ private static final int MINIMUM_CONNECTION_MONITOR_INTERVAL = 5000;
private final Set<Section> sections;
private final Path propertiesFile;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/Properties.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/Properties.java
index d81379b..635d3ad 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/Properties.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/Properties.java
@@ -8,12 +8,12 @@
import java.util.Set;
public interface Properties extends Cloneable {
- public Config toConfig();
- public boolean load();
- public boolean load(Properties baseProperties);
- public Path getPath();
- public String getName();
- public Set<Section> getSections();
- public <T extends Section> T getSection(Class<T> clazz);
- public AMQProperties getAMQProperties();
+ Config toConfig();
+ boolean load();
+ boolean load(Properties baseProperties);
+ Path getPath();
+ String getName();
+ Set<Section> getSections();
+ <T extends Section> T getSection(Class<T> clazz);
+ AMQProperties getAMQProperties();
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/internal/GerritFrontUrl.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/internal/GerritFrontUrl.java
index 233c156..9b7a84d 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/internal/GerritFrontUrl.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/internal/GerritFrontUrl.java
@@ -3,5 +3,5 @@
import org.eclipse.jgit.lib.Config;
public interface GerritFrontUrl {
- public void setGerritFrontUrlFromConfig(Config config);
+ void setGerritFrontUrlFromConfig(Config config);
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/section/Sections.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/section/Sections.java
index 759ef03..ba6f220 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/section/Sections.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/section/Sections.java
@@ -27,11 +27,11 @@
public final class Sections {
private static final Logger LOGGER = LoggerFactory.getLogger(Sections.class);
- public static final <T extends Section> String getName(T section) {
+ public static <T extends Section> String getName(T section) {
return section.getClass().getSimpleName().toLowerCase();
}
- public static final <T extends Section> T initialize(T section) {
+ public static <T extends Section> T initialize(T section) {
Field[] fs = section.getClass().getFields();
for (Field f : fs) {
try {
@@ -56,11 +56,11 @@
return section;
}
- public static final <T extends Section> Config toConfig(T section) {
+ public static <T extends Section> Config toConfig(T section) {
return toConfig(section, new Config());
}
- public static final <T extends Section> Config toConfig(T section, Config config) {
+ public static <T extends Section> Config toConfig(T section, Config config) {
Field[] fs = section.getClass().getFields();
for (Field f : fs) {
try {
@@ -85,7 +85,7 @@
return config;
}
- public static final <T extends Section> Section fromConfig(T section, Config... configs) {
+ public static <T extends Section> Section fromConfig(T section, Config... configs) {
for (Config config : configs) {
if (config != null) {
Set<String> names = config.getNames(getName(section));
@@ -115,7 +115,7 @@
return section;
}
- public static final <T extends Section> T normalize(T section) {
+ public static <T extends Section> T normalize(T section) {
Field[] fs = section.getClass().getFields();
for (Field f : fs) {
try {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/message/MessagePublisher.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/message/MessagePublisher.java
index 81ad042..48465bc 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/message/MessagePublisher.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/message/MessagePublisher.java
@@ -41,7 +41,7 @@
private static final Logger LOGGER = LoggerFactory.getLogger(MessagePublisher.class);
- private final static int MONITOR_FIRSTTIME_DELAY = 15000;
+ private static final int MONITOR_FIRSTTIME_DELAY = 15000;
private static final int MAX_EVENTS = 16384;
private final Session session;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/message/Publisher.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/message/Publisher.java
index e6eaae3..b729dd3 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/message/Publisher.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/message/Publisher.java
@@ -6,13 +6,13 @@
import com.googlesource.gerrit.plugins.rabbitmq.session.Session;
public interface Publisher {
- public void start();
- public void stop();
- public void enable();
- public void disable();
- public boolean isEnable();
- public Session getSession();
- public Properties getProperties();
- public String getName();
- public EventListener getEventListener();
+ void start();
+ void stop();
+ void enable();
+ void disable();
+ boolean isEnable();
+ Session getSession();
+ Properties getProperties();
+ String getName();
+ EventListener getEventListener();
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/session/Session.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/session/Session.java
index 6cd7e81..5aa03fb 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/session/Session.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/session/Session.java
@@ -14,8 +14,8 @@
package com.googlesource.gerrit.plugins.rabbitmq.session;
public interface Session {
- public boolean isOpen();
- public void connect();
- public void disconnect();
- public void publish(String message);
+ boolean isOpen();
+ void connect();
+ void disconnect();
+ void publish(String message);
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/session/type/AMQPSession.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/session/type/AMQPSession.java
index 6afec87..d5389dc 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/session/type/AMQPSession.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/session/type/AMQPSession.java
@@ -46,7 +46,7 @@
private final Class<?> clazz;
- public <T extends ShutdownNotifier> ShutdownListenerImpl(Class<T> clazz) {
+ <T extends ShutdownNotifier> ShutdownListenerImpl(Class<T> clazz) {
this.clazz = clazz;
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/worker/EventWorker.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/worker/EventWorker.java
index 332b9cd..1a46663 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/worker/EventWorker.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/worker/EventWorker.java
@@ -3,8 +3,8 @@
import com.googlesource.gerrit.plugins.rabbitmq.message.Publisher;
public interface EventWorker {
- public void addPublisher(Publisher publisher);
- public void addPublisher(Publisher publisher, String userName);
- public void removePublisher(Publisher publisher);
- public void clear();
+ void addPublisher(Publisher publisher);
+ void addPublisher(Publisher publisher, String userName);
+ void removePublisher(Publisher publisher);
+ void clear();
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/worker/EventWorkerFactory.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/worker/EventWorkerFactory.java
index 92c36b9..46b9c7c 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/worker/EventWorkerFactory.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/worker/EventWorkerFactory.java
@@ -15,5 +15,5 @@
package com.googlesource.gerrit.plugins.rabbitmq.worker;
public interface EventWorkerFactory {
- public EventWorker create();
+ EventWorker create();
}
diff --git a/src/main/resources/Documentation/build.md b/src/main/resources/Documentation/build.md
index 38c3bb5..f6656f0 100644
--- a/src/main/resources/Documentation/build.md
+++ b/src/main/resources/Documentation/build.md
@@ -1,73 +1,37 @@
Build
=====
-This plugin is built with Buck.
+This @PLUGIN@ plugin is built with Bazel.
-Two build modes are supported: Standalone and in Gerrit tree. Standalone
-build mode is recommended, as this mode doesn't require local Gerrit
-tree to exist.
+Clone (or link) this plugin to the `plugins` directory of Gerrit's source tree.
-Build standalone
-----------------
-
-Clone bucklets library:
+Put the external dependency Bazel build file into the Gerrit /plugins directory,
+replacing the existing empty one.
```
- git clone https://gerrit.googlesource.com/bucklets
-
-```
-and link it to rabbitmq directory:
-
-```
- cd rabbitmq && ln -s ../bucklets .
+ cd gerrit/plugins
+ rm external_plugin_deps.bzl
+ ln -s @PLUGIN@/external_plugin_deps.bzl .
```
-Add link to the .buckversion file:
+Then issue
```
- cd rabbitmq && ln -s bucklets/buckversion .buckversion
+ bazel build plugins/@PLUGIN@
```
-Add link to the .watchmanconfig file:
-
-```
- cd rabbitmq && ln -s bucklets/watchmanconfig .watchmanconfig
-```
-
-To build the plugin, issue the following command:
-
-
-```
- buck build plugin
-```
+in the root of Gerrit's source tree to build
The output is created in
```
- buck-out/gen/rabbitmq.jar
+ bazel-genfiles/plugins/@PLUGIN@/@PLUGIN@.jar
```
-Build in Gerrit tree
---------------------
-
-Clone or link this plugin to the plugins directory of Gerrit's source
-tree, and issue the command:
-
-```
- buck build plugins/rabbitmq
-```
-
-The output is created in
-
-```
- buck-out/gen/plugins/rabbitmq/rabbitmq.jar
-```
-
-This project can be imported into the Eclipse IDE:
+This project can be imported into the Eclipse IDE.
+Add the plugin name to the `CUSTOM_PLUGINS` set in
+Gerrit core in `tools/bzl/plugins.bzl`, and execute:
```
./tools/eclipse/project.py
```
-
-How to build the Gerrit Plugin API is described in the [Gerrit
-documentation](../../../Documentation/dev-buck.html#_extension_and_plugin_api_jar_files).