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/26 11:50:10 UTC
[lucene-solr] 02/02: SOLR-14749: Fix some merge snafus.
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
commit 4e89ad26e6412b3943b683f25d07bc7fa56ad4e5
Author: Andrzej Bialecki <ab...@apache.org>
AuthorDate: Mon Oct 26 12:49:19 2020 +0100
SOLR-14749: Fix some merge snafus.
---
.../org/apache/solr/cluster/events/impl/package-info.java | 7 ++++++-
.../src/java/org/apache/solr/core/ClusterSingletons.java | 6 +++---
solr/core/src/java/org/apache/solr/core/CoreContainer.java | 13 +++++++++++++
3 files changed, 22 insertions(+), 4 deletions(-)
diff --git a/solr/core/src/java/org/apache/solr/cluster/events/impl/package-info.java b/solr/core/src/java/org/apache/solr/cluster/events/impl/package-info.java
index 4eb6bf6..fc00246 100644
--- a/solr/core/src/java/org/apache/solr/cluster/events/impl/package-info.java
+++ b/solr/core/src/java/org/apache/solr/cluster/events/impl/package-info.java
@@ -15,4 +15,9 @@
* limitations under the License.
*/
-description = 'Lucene HTML documentation'
+/**
+ * Default implementation of {@link org.apache.solr.cluster.events.ClusterEventProducer}.
+ */
+package org.apache.solr.cluster.events.impl;
+
+
diff --git a/solr/core/src/java/org/apache/solr/core/ClusterSingletons.java b/solr/core/src/java/org/apache/solr/core/ClusterSingletons.java
index 84acb4f..0487540 100644
--- a/solr/core/src/java/org/apache/solr/core/ClusterSingletons.java
+++ b/solr/core/src/java/org/apache/solr/core/ClusterSingletons.java
@@ -151,9 +151,6 @@ public class ClusterSingletons {
*/
public void startClusterSingletons() {
final Runnable initializer = () -> {
- if (!runSingletons.get()) {
- return;
- }
try {
waitUntilReady(DEFAULT_WAIT_TIMEOUT_SEC, TimeUnit.SECONDS);
} catch (InterruptedException e) {
@@ -163,6 +160,9 @@ public class ClusterSingletons {
log.warn("Timed out during initialization of ClusterSingleton-s (waited {} sec)", DEFAULT_WAIT_TIMEOUT_SEC);
return;
}
+ if (!runSingletons.get()) {
+ return;
+ }
singletonMap.forEach((name, singleton) -> {
if (!runSingletons.get()) {
return;
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 0a92a4e..40d6ab3 100644
--- a/solr/core/src/java/org/apache/solr/core/CoreContainer.java
+++ b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
@@ -253,6 +253,11 @@ public class CoreContainer {
getZkController().getOverseer() != null &&
!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 PackageStoreAPI packageStoreAPI;
private PackageLoader packageLoader;
@@ -672,6 +677,7 @@ public class CoreContainer {
}
customContainerPlugins.registerListener(clusterSingletons.getPluginRegistryListener());
+ customContainerPlugins.registerListener(clusterEventProducerFactory.getPluginRegistryListener());
packageStoreAPI = new PackageStoreAPI(this);
containerHandlers.getApiBag().registerObject(packageStoreAPI.readAPI);
@@ -887,6 +893,9 @@ public class CoreContainer {
containerHandlers.getApiBag().registerObject(containerPluginsApi.readAPI);
containerHandlers.getApiBag().registerObject(containerPluginsApi.editAPI);
+ // create target ClusterEventProducer (possibly from plugins)
+ clusterEventProducer = clusterEventProducerFactory.create(customContainerPlugins);
+
// init ClusterSingleton-s
// register the handlers that are also ClusterSingleton
@@ -2127,6 +2136,10 @@ public class CoreContainer {
return clusterSingletons;
}
+ public ClusterEventProducer getClusterEventProducer() {
+ return clusterEventProducer;
+ }
+
static {
ExecutorUtil.addThreadLocalProvider(SolrRequestInfo.getInheritableThreadLocalProvider());
}