SLING-5251 : adding debug infos to the topology webconsole re the SyncTokenService History
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1713675 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/sling/discovery/impl/TopologyWebConsolePlugin.java b/src/main/java/org/apache/sling/discovery/impl/TopologyWebConsolePlugin.java
index 41d54d2..d99984d 100644
--- a/src/main/java/org/apache/sling/discovery/impl/TopologyWebConsolePlugin.java
+++ b/src/main/java/org/apache/sling/discovery/impl/TopologyWebConsolePlugin.java
@@ -44,6 +44,7 @@
import org.apache.felix.scr.annotations.Properties;
import org.apache.felix.scr.annotations.Property;
import org.apache.felix.scr.annotations.Reference;
+import org.apache.felix.scr.annotations.ReferenceCardinality;
import org.apache.felix.scr.annotations.Service;
import org.apache.felix.webconsole.AbstractWebConsolePlugin;
import org.apache.felix.webconsole.WebConsoleConstants;
@@ -52,14 +53,16 @@
import org.apache.sling.discovery.InstanceFilter;
import org.apache.sling.discovery.TopologyEvent;
import org.apache.sling.discovery.TopologyEvent.Type;
+import org.apache.sling.discovery.TopologyEventListener;
+import org.apache.sling.discovery.TopologyView;
import org.apache.sling.discovery.base.commons.ClusterViewService;
import org.apache.sling.discovery.base.connectors.announcement.Announcement;
import org.apache.sling.discovery.base.connectors.announcement.AnnouncementRegistry;
import org.apache.sling.discovery.base.connectors.announcement.CachedAnnouncement;
import org.apache.sling.discovery.base.connectors.ping.ConnectorRegistry;
import org.apache.sling.discovery.base.connectors.ping.TopologyConnectorClientInformation;
-import org.apache.sling.discovery.TopologyEventListener;
-import org.apache.sling.discovery.TopologyView;
+import org.apache.sling.discovery.commons.providers.spi.base.ClusterSyncHistory;
+import org.apache.sling.discovery.commons.providers.spi.base.SyncTokenService;
import org.osgi.framework.BundleContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -104,6 +107,12 @@
@Reference
private ConnectorRegistry connectorRegistry;
+ @Reference(cardinality = ReferenceCardinality.OPTIONAL_UNARY)
+ private SyncTokenService syncTokenService;
+
+ @Reference
+ private Config config;
+
private TopologyView currentView;
@Override
@@ -280,6 +289,25 @@
}
pw.println("</pre>");
pw.println("</br>");
+
+ pw.println("<p class=\"statline ui-state-highlight\">SyncTokenService History</p>");
+ pw.println("<pre>");
+ if (!config.useSyncTokenService()) {
+ pw.println("(disabled - useSyncTokenService flag is false)");
+ } else if (syncTokenService == null) {
+ pw.println("(no SyncTokenService available)");
+ } else {
+ ClusterSyncHistory clusterSyncHistory = syncTokenService.getClusterSyncHistory();
+ if (clusterSyncHistory == null) {
+ pw.println("(no history available)");
+ } else {
+ for (String syncHistoryEntry : clusterSyncHistory.getSyncHistory()) {
+ pw.println(syncHistoryEntry);
+ }
+ }
+ }
+ pw.println("</pre>");
+ pw.println("<br/>");
}
/**
@@ -873,6 +901,26 @@
}
pw.println();
}
+
+ pw.println("SyncTokenService History");
+ pw.println("---------------------------------------");
+ if (!config.useSyncTokenService()) {
+ pw.println("(disabled - useSyncTokenService flag is false)");
+ } else if (syncTokenService == null) {
+ pw.println("(no SyncTokenService available)");
+ } else {
+ ClusterSyncHistory clusterSyncHistory = syncTokenService.getClusterSyncHistory();
+ if (clusterSyncHistory == null) {
+ pw.println("(no history available)");
+ } else {
+ for (String syncHistoryEntry : clusterSyncHistory.getSyncHistory()) {
+ pw.println(syncHistoryEntry);
+ }
+ }
+ }
+ pw.println();
+ pw.println();
+
}
/**