You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ab...@apache.org on 2020/10/27 18:44:27 UTC
[lucene-solr] branch jira/solr-14749-api updated: SOLR-14749: Some
cleanup + fix some issues from the review.
This is an automated email from the ASF dual-hosted git repository.
ab pushed a commit to branch jira/solr-14749-api
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
The following commit(s) were added to refs/heads/jira/solr-14749-api by this push:
new d65a5ef SOLR-14749: Some cleanup + fix some issues from the review.
d65a5ef is described below
commit d65a5efe5d3af18cad41633a63f73a0455841e0b
Author: Andrzej Bialecki <ab...@apache.org>
AuthorDate: Tue Oct 27 19:43:31 2020 +0100
SOLR-14749: Some cleanup + fix some issues from the review.
---
.../solr/cluster/events/ClusterEventProducer.java | 44 +++++++++++++++++++++-
.../events/impl/DefaultClusterEventProducer.java | 5 ---
.../solr/core/ClusterEventProducerFactory.java | 7 +---
.../java/org/apache/solr/core/CoreContainer.java | 6 ++-
4 files changed, 49 insertions(+), 13 deletions(-)
diff --git a/solr/core/src/java/org/apache/solr/cluster/events/ClusterEventProducer.java b/solr/core/src/java/org/apache/solr/cluster/events/ClusterEventProducer.java
index 519f539..a39e751 100644
--- a/solr/core/src/java/org/apache/solr/cluster/events/ClusterEventProducer.java
+++ b/solr/core/src/java/org/apache/solr/cluster/events/ClusterEventProducer.java
@@ -23,9 +23,14 @@ import org.apache.solr.cloud.ClusterSingleton;
*/
public interface ClusterEventProducer extends ClusterSingleton {
- /** Unique name for the registration of plugin-based implementation. */
+ /** Unique name for the registration of a plugin-based implementation. */
String PLUGIN_NAME = "clusterEventProducer";
+ @Override
+ default String getName() {
+ return PLUGIN_NAME;
+ }
+
/**
* Register an event listener for processing the specified event types.
* @param listener non-null listener. If the same instance of the listener is
@@ -51,4 +56,41 @@ public interface ClusterEventProducer extends ClusterSingleton {
* is null or empty then all event types will be used
*/
void unregisterListener(ClusterEventListener listener, ClusterEvent.EventType... eventTypes);
+
+ /**
+ * No-op implementation of {@link ClusterEventProducer}. This implementation is always in
+ * RUNNING state.
+ */
+ final class NoOpProducer implements ClusterEventProducer {
+
+ @Override
+ public void registerListener(ClusterEventListener listener, ClusterEvent.EventType... eventTypes) {
+ // no-op
+ }
+
+ @Override
+ public void unregisterListener(ClusterEventListener listener, ClusterEvent.EventType... eventTypes) {
+ // no-op
+ }
+
+ @Override
+ public String getName() {
+ return ClusterEventProducer.PLUGIN_NAME;
+ }
+
+ @Override
+ public void start() throws Exception {
+ // no-op
+ }
+
+ @Override
+ public State getState() {
+ return State.RUNNING;
+ }
+
+ @Override
+ public void stop() {
+ // no-op
+ }
+ }
}
diff --git a/solr/core/src/java/org/apache/solr/cluster/events/impl/DefaultClusterEventProducer.java b/solr/core/src/java/org/apache/solr/cluster/events/impl/DefaultClusterEventProducer.java
index a9cb55d..f47d576 100644
--- a/solr/core/src/java/org/apache/solr/cluster/events/impl/DefaultClusterEventProducer.java
+++ b/solr/core/src/java/org/apache/solr/cluster/events/impl/DefaultClusterEventProducer.java
@@ -75,11 +75,6 @@ public class DefaultClusterEventProducer implements ClusterEventProducer, Cluste
this.coreContainer = coreContainer;
}
- @Override
- public String getName() {
- return PLUGIN_NAME;
- }
-
// ClusterSingleton lifecycle methods
@Override
public void start() {
diff --git a/solr/core/src/java/org/apache/solr/core/ClusterEventProducerFactory.java b/solr/core/src/java/org/apache/solr/core/ClusterEventProducerFactory.java
index f4b2974..b0b658e 100644
--- a/solr/core/src/java/org/apache/solr/core/ClusterEventProducerFactory.java
+++ b/solr/core/src/java/org/apache/solr/core/ClusterEventProducerFactory.java
@@ -157,11 +157,6 @@ public class ClusterEventProducerFactory implements ClusterEventProducer {
}
@Override
- public String getName() {
- return ClusterEventProducer.PLUGIN_NAME;
- }
-
- @Override
public void start() throws Exception {
throw new UnsupportedOperationException("start not implemented");
}
@@ -175,4 +170,6 @@ public class ClusterEventProducerFactory implements ClusterEventProducer {
public void stop() {
throw new UnsupportedOperationException("stop not implemented");
}
+
+
}
diff --git a/solr/core/src/java/org/apache/solr/core/CoreContainer.java b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
index 40d6ab3..137e26a 100644
--- a/solr/core/src/java/org/apache/solr/core/CoreContainer.java
+++ b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
@@ -254,9 +254,8 @@ public class CoreContainer {
!getZkController().getOverseer().isClosed(),
(r) -> this.runAsync(r));
- private final ClusterEventProducerFactory clusterEventProducerFactory = new ClusterEventProducerFactory(this);
// initially these are the same to collect the plugin-based listeners during init
- private ClusterEventProducer clusterEventProducer = clusterEventProducerFactory;
+ private ClusterEventProducer clusterEventProducer;
private PackageStoreAPI packageStoreAPI;
private PackageLoader packageLoader;
@@ -676,6 +675,9 @@ public class CoreContainer {
loader.reloadLuceneSPI();
}
+ ClusterEventProducerFactory clusterEventProducerFactory = new ClusterEventProducerFactory(this);
+ clusterEventProducer = clusterEventProducerFactory;
+
customContainerPlugins.registerListener(clusterSingletons.getPluginRegistryListener());
customContainerPlugins.registerListener(clusterEventProducerFactory.getPluginRegistryListener());