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());