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;
}