You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 09:28:03 UTC
[sling-org-apache-sling-discovery-oak] 06/10: SLING-5286 :
re-activate fast topology change propagation
This is an automated email from the ASF dual-hosted git repository.
rombert pushed a commit to annotated tag org.apache.sling.discovery.oak-1.1.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-discovery-oak.git
commit 149589039bc8cb3c11348020ceb85eecddae4043
Author: Stefan Egli <st...@apache.org>
AuthorDate: Mon Nov 9 16:59:33 2015 +0000
SLING-5286 : re-activate fast topology change propagation
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/discovery/oak@1713478 13f79535-47bb-0310-9956-ffa450edef68
---
.../sling/discovery/oak/OakDiscoveryService.java | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/src/main/java/org/apache/sling/discovery/oak/OakDiscoveryService.java b/src/main/java/org/apache/sling/discovery/oak/OakDiscoveryService.java
index 49677c9..2beab3b 100644
--- a/src/main/java/org/apache/sling/discovery/oak/OakDiscoveryService.java
+++ b/src/main/java/org/apache/sling/discovery/oak/OakDiscoveryService.java
@@ -49,13 +49,14 @@ import org.apache.sling.commons.scheduler.Scheduler;
import org.apache.sling.discovery.DiscoveryService;
import org.apache.sling.discovery.InstanceDescription;
import org.apache.sling.discovery.PropertyProvider;
+import org.apache.sling.discovery.TopologyEvent;
+import org.apache.sling.discovery.TopologyEvent.Type;
import org.apache.sling.discovery.TopologyEventListener;
import org.apache.sling.discovery.base.commons.BaseDiscoveryService;
import org.apache.sling.discovery.base.commons.ClusterViewService;
import org.apache.sling.discovery.base.commons.DefaultTopologyView;
import org.apache.sling.discovery.base.connectors.announcement.AnnouncementRegistry;
import org.apache.sling.discovery.base.connectors.ping.ConnectorRegistry;
-import org.apache.sling.discovery.commons.providers.BaseTopologyView;
import org.apache.sling.discovery.commons.providers.DefaultClusterView;
import org.apache.sling.discovery.commons.providers.DefaultInstanceDescription;
import org.apache.sling.discovery.commons.providers.ViewStateManager;
@@ -149,6 +150,18 @@ public class OakDiscoveryService extends BaseDiscoveryService {
private final List<TopologyEventListener> pendingListeners = new LinkedList<TopologyEventListener>();
+ private TopologyEventListener changePropagationListener = new TopologyEventListener() {
+
+ public void handleTopologyEvent(TopologyEvent event) {
+ OakViewChecker checker = oakViewChecker;
+ if (activated && checker != null
+ && (event.getType() == Type.TOPOLOGY_CHANGED || event.getType() == Type.PROPERTIES_CHANGED)) {
+ logger.info("changePropagationListener.handleTopologyEvent: topology changed - propagate through connectors");
+ checker.triggerAsyncConnectorPing();
+ }
+ }
+ };
+
public static OakDiscoveryService testConstructor(SlingSettingsService settingsService,
AnnouncementRegistry announcementRegistry,
ConnectorRegistry connectorRegistry,
@@ -276,6 +289,8 @@ public class OakDiscoveryService extends BaseDiscoveryService {
viewStateManager.bind(listener);
}
pendingListeners.clear();
+
+ viewStateManager.bind(changePropagationListener);
} finally {
if (viewStateManagerLock!=null) {
viewStateManagerLock.unlock();
@@ -308,6 +323,8 @@ public class OakDiscoveryService extends BaseDiscoveryService {
logger.debug("OakDiscoveryService deactivated.");
viewStateManagerLock.lock();
try{
+ viewStateManager.unbind(changePropagationListener);
+
viewStateManager.handleDeactivated();
activated = false;
--
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.