Incorporate ExtendedBrokerApi into BrokerApi
With Gerrit v3.10 the BrokerApi is amended to include
the extra methods introduced in earlier versions as part
of the ExtendedBrokerApi interface.
Plugin referring to ExtendedBrokerApi needs to be amended
and just use BrokerApi directly, binary compatibility is not guaranteed.
Bug:Issue 327226782
Change-Id: I7a87358a345c676975b8bb257baa80c60879ce41
diff --git a/src/main/java/com/gerritforge/gerrit/eventbroker/BrokerApi.java b/src/main/java/com/gerritforge/gerrit/eventbroker/BrokerApi.java
index 0894436..a0d218d 100644
--- a/src/main/java/com/gerritforge/gerrit/eventbroker/BrokerApi.java
+++ b/src/main/java/com/gerritforge/gerrit/eventbroker/BrokerApi.java
@@ -55,4 +55,22 @@
* @param topic topic name
*/
void replayAllEvents(String topic);
+
+ /**
+ * Receive asynchronously a message from a topic using a consumer's group id.
+ *
+ * @param topic topic name
+ * @param groupId the group identifier that consumer belongs to for that topic
+ * @param consumer an operation that accepts and process a single message
+ * @since 3.10
+ */
+ void receiveAsync(String topic, String groupId, Consumer<Event> consumer);
+
+ /**
+ * Get the active subscribers with their consumer's group id.
+ *
+ * @return {@link Set} of the topics subscribers using a consumer's group id.
+ * @since 3.10
+ */
+ Set<TopicSubscriberWithGroupId> topicSubscribersWithGroupId();
}
diff --git a/src/main/java/com/gerritforge/gerrit/eventbroker/ExtendedBrokerApi.java b/src/main/java/com/gerritforge/gerrit/eventbroker/ExtendedBrokerApi.java
deleted file mode 100644
index fa7cb74..0000000
--- a/src/main/java/com/gerritforge/gerrit/eventbroker/ExtendedBrokerApi.java
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright (C) 2023 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.gerritforge.gerrit.eventbroker;
-
-import com.google.gerrit.server.events.Event;
-import java.util.Set;
-import java.util.function.Consumer;
-
-public interface ExtendedBrokerApi extends BrokerApi {
-
- /**
- * Receive asynchronously a message from a topic using a consumer's group id.
- *
- * @param topic topic name
- * @param groupId the group identifier that consumer belongs to for that topic
- * @param consumer an operation that accepts and process a single message
- */
- void receiveAsync(String topic, String groupId, Consumer<Event> consumer);
-
- /**
- * Get the active subscribers with their consumer's group id.
- *
- * @return {@link Set} of the topics subscribers using a consumer's group id..
- */
- Set<TopicSubscriberWithGroupId> topicSubscribersWithGroupId();
-}
diff --git a/src/main/java/com/gerritforge/gerrit/eventbroker/InProcessBrokerApi.java b/src/main/java/com/gerritforge/gerrit/eventbroker/InProcessBrokerApi.java
index 804a2fd..4128375 100644
--- a/src/main/java/com/gerritforge/gerrit/eventbroker/InProcessBrokerApi.java
+++ b/src/main/java/com/gerritforge/gerrit/eventbroker/InProcessBrokerApi.java
@@ -25,7 +25,7 @@
import java.util.Set;
import java.util.function.Consumer;
-public class InProcessBrokerApi implements ExtendedBrokerApi {
+public class InProcessBrokerApi implements BrokerApi {
private static final FluentLogger log = FluentLogger.forEnclosingClass();
private final Set<TopicSubscriber> topicSubscribers;
private final Set<TopicSubscriberWithGroupId> topicSubscribersWithGroupId;