You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2013/05/14 17:15:54 UTC

svn commit: r1482376 - in /sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl: ./ cluster/ common/ common/resource/ topology/

Author: cziegeler
Date: Tue May 14 15:15:54 2013
New Revision: 1482376

URL: http://svn.apache.org/r1482376
Log:
SLING-2868 :  Improve and cleanup implementation : Create new instances for cluster view, update logging statements

Modified:
    sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/DiscoveryServiceImpl.java
    sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/cluster/ClusterViewServiceImpl.java
    sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/common/DefaultInstanceDescriptionImpl.java
    sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/common/resource/EstablishedInstanceDescription.java
    sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/topology/TopologyViewImpl.java

Modified: sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/DiscoveryServiceImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/DiscoveryServiceImpl.java?rev=1482376&r1=1482375&r2=1482376&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/DiscoveryServiceImpl.java (original)
+++ sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/DiscoveryServiceImpl.java Tue May 14 15:15:54 2013
@@ -174,8 +174,8 @@ public class DiscoveryServiceImpl implem
                 	try{
                 		logger.info("activate: registering outgoing topology connector to "+aURL);
                 		connectorRegistry.registerOutgoingConnector(clusterViewService, aURL);
-                	} catch(Exception e) {
-                		logger.info("activate: could not register url: "+aURL+" due to: "+e);
+                	} catch (final Exception e) {
+                		logger.info("activate: could not register url: "+aURL+" due to: "+e, e);
                 	}
                 }
             }
@@ -392,17 +392,16 @@ public class DiscoveryServiceImpl implem
      * @see DiscoveryService#getTopology()
      */
     public TopologyView getTopology() {
-        TopologyViewImpl topology = new TopologyViewImpl();
-
         if (clusterViewService == null) {
             throw new IllegalStateException(
                     "DiscoveryService not yet initialized with IClusterViewService");
         }
+        // create a new topology view
+        final TopologyViewImpl topology = new TopologyViewImpl();
 
-        ClusterView localClusterView = clusterViewService.getClusterView();
+        final ClusterView localClusterView = clusterViewService.getClusterView();
 
-        List<InstanceDescription> localInstances = localClusterView
-                .getInstances();
+        final List<InstanceDescription> localInstances = localClusterView.getInstances();
         topology.addInstances(localInstances);
 
         Collection<InstanceDescription> attachedInstances = announcementRegistry
@@ -452,7 +451,7 @@ public class DiscoveryServiceImpl implem
         Type difference = newView.compareTopology(oldView);
         if (difference == null) {
             // then dont send any event then
-            logger.debug("handlePotentialTopologyChange: identical views. not informing listeners.");
+            logger.debug("handlePotentialTopologyChange: identical views. not informing listeners");
             return;
         } else {
             if (logger.isDebugEnabled()) {

Modified: sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/cluster/ClusterViewServiceImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/cluster/ClusterViewServiceImpl.java?rev=1482376&r1=1482375&r2=1482376&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/cluster/ClusterViewServiceImpl.java (original)
+++ sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/cluster/ClusterViewServiceImpl.java Tue May 14 15:15:54 2013
@@ -23,7 +23,6 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.UUID;
 
-import org.apache.felix.scr.annotations.Activate;
 import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.Service;
@@ -63,20 +62,14 @@ public class ClusterViewServiceImpl impl
     @Reference
     private Config config;
 
-    /** the cluster view representing the isolated mode - ie only my own instance in one cluster. used at bootstrap **/
-    private ClusterView isolatedClusterView;
-
-    /** the cluster view id of the isolatedClusterView **/
+    /** the cluster view id of the isolated cluster view */
     private String isolatedClusterViewId = UUID.randomUUID().toString();
 
-    private IsolatedInstanceDescription ownInstance;
-
     public String getIsolatedClusterViewId() {
         return isolatedClusterViewId;
     }
 
-    @Activate
-    protected void activate() {
+    private ClusterView getIsolatedClusterView() {
         ResourceResolver resourceResolver = null;
         try {
             resourceResolver = resourceResolverFactory
@@ -84,9 +77,9 @@ public class ClusterViewServiceImpl impl
             Resource instanceResource = resourceResolver
                     .getResource(config.getClusterInstancesPath() + "/"
                             + getSlingId());
-            ownInstance = new IsolatedInstanceDescription(instanceResource,
+            IsolatedInstanceDescription ownInstance = new IsolatedInstanceDescription(instanceResource,
                     isolatedClusterViewId, getSlingId());
-            isolatedClusterView = ownInstance.getClusterView();
+            return ownInstance.getClusterView();
         } catch (LoginException e) {
             logger.error("Could not do a login: " + e, e);
             throw new RuntimeException("Could not do a login", e);
@@ -142,11 +135,7 @@ public class ClusterViewServiceImpl impl
             View view = ViewHelper.getEstablishedView(resourceResolver, config);
             if (view == null) {
                 logger.debug("getEstablishedView: no view established at the moment. isolated mode");
-                Resource instanceResource = resourceResolver
-                        .getResource(config.getClusterInstancesPath() + "/"
-                                + getSlingId());
-                ownInstance.readProperties(instanceResource);
-                return isolatedClusterView;
+                return getIsolatedClusterView();
             }
 
             EstablishedClusterView clusterViewImpl = new EstablishedClusterView(
@@ -163,11 +152,7 @@ public class ClusterViewServiceImpl impl
                 return clusterViewImpl;
             } else {
                 logger.error("getEstablishedView: the existing established view does not incude the local instance yet! Assming isolated mode.");
-                Resource instanceResource = resourceResolver
-                        .getResource(config.getClusterInstancesPath() + "/"
-                                + getSlingId());
-                ownInstance.readProperties(instanceResource);
-                return isolatedClusterView;
+                return getIsolatedClusterView();
             }
         } catch (LoginException e) {
             logger.error(

Modified: sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/common/DefaultInstanceDescriptionImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/common/DefaultInstanceDescriptionImpl.java?rev=1482376&r1=1482375&r2=1482376&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/common/DefaultInstanceDescriptionImpl.java (original)
+++ sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/common/DefaultInstanceDescriptionImpl.java Tue May 14 15:15:54 2013
@@ -35,16 +35,16 @@ public class DefaultInstanceDescriptionI
 
     /** the cluster view of which this instance is part of **/
     private ClusterView clusterView;
-    
+
     /** whether this instance is the leader in the cluster **/
     private boolean isLeader;
-    
+
     /** whether this instance is the local/own one **/
     private boolean isLocal;
-    
+
     /** the sling id of this instance **/
     private String slingId;
-    
+
     /** the properties of this instance **/
     private Map<String, String> properties;
 
@@ -77,7 +77,7 @@ public class DefaultInstanceDescriptionI
     		clusterInfo = ", clusterViewId="+clusterView.getId();
     	}
         return "an InstanceDescription[slindId=" + slingId + ", isLeader="
-                + isLeader + ", isOwn=" + isLocal + clusterInfo + "]";
+                + isLeader + ", isOwn=" + isLocal + clusterInfo + ", properties=" + this.properties + "]";
     }
 
     @Override
@@ -164,5 +164,4 @@ public class DefaultInstanceDescriptionI
         }
         this.properties = properties;
     }
-
 }

Modified: sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/common/resource/EstablishedInstanceDescription.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/common/resource/EstablishedInstanceDescription.java?rev=1482376&r1=1482375&r2=1482376&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/common/resource/EstablishedInstanceDescription.java (original)
+++ sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/common/resource/EstablishedInstanceDescription.java Tue May 14 15:15:54 2013
@@ -44,7 +44,7 @@ public class EstablishedInstanceDescript
     /**
      * Read the properties from the repository
      */
-    public void readProperties(final Resource res) {
+    private void readProperties(final Resource res) {
         final Map<String, String> props = new HashMap<String, String>();
         if (res != null) {
             final Resource propertiesChild = res.getChild("properties");

Modified: sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/topology/TopologyViewImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/topology/TopologyViewImpl.java?rev=1482376&r1=1482375&r2=1482376&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/topology/TopologyViewImpl.java (original)
+++ sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/topology/TopologyViewImpl.java Tue May 14 15:15:54 2013
@@ -72,14 +72,12 @@ public class TopologyViewImpl implements
             return Type.TOPOLOGY_CHANGED;
         }
         boolean propertiesChanged = false;
-        for (Iterator<InstanceDescription> it = instances.iterator(); it
-                .hasNext();) {
-            InstanceDescription instance = it.next();
+        for(final InstanceDescription instance : this.instances) {
 
-            Iterator<InstanceDescription> it2 = other.instances.iterator();
+            final Iterator<InstanceDescription> it2 = other.instances.iterator();
             InstanceDescription matchingInstance = null;
             while (it2.hasNext()) {
-                InstanceDescription otherInstance = it2.next();
+                final InstanceDescription otherInstance = it2.next();
                 if (instance.getSlingId().equals(otherInstance.getSlingId())) {
                     matchingInstance = otherInstance;
                     break;
@@ -87,7 +85,7 @@ public class TopologyViewImpl implements
             }
             if (matchingInstance == null) {
             	if (logger.isDebugEnabled()) {
-	            	logger.debug("compareTopology: no matching instance found for "+instance);
+	            	logger.debug("compareTopology: no matching instance found for {}", instance);
             	}
                 return Type.TOPOLOGY_CHANGED;
             }