You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by is...@apache.org on 2014/10/09 12:02:32 UTC
git commit: removing Topology write locks to an messaging-internal
class
Repository: stratos
Updated Branches:
refs/heads/4.0.0-grouping f11401a34 -> 035939901
removing Topology write locks to an messaging-internal class
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/03593990
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/03593990
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/03593990
Branch: refs/heads/4.0.0-grouping
Commit: 03593990145938ef1355444a7abd64264ed4e575
Parents: f11401a
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Thu Oct 9 15:26:31 2014 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Thu Oct 9 15:31:45 2014 +0530
----------------------------------------------------------------------
.../conf/LoadBalancerConfiguration.java | 7 +-
.../StratosManagerTopologyEventReceiver.java | 67 +++--
components/org.apache.stratos.messaging/pom.xml | 7 +-
.../domain/topology/locking/TopologyLock.java | 4 +-
.../topology/locking/TopologyLockHierarchy.java | 7 +
.../ApplicationActivatedMessageProcessor.java | 6 +-
.../ApplicationCreatedMessageProcessor.java | 10 +-
.../ApplicationRemovedMessageProcessor.java | 10 +-
.../topology/ClusterActivatedProcessor.java | 6 +-
.../ClusterCreatedMessageProcessor.java | 6 +-
.../ClusterMaintenanceModeMessageProcessor.java | 6 +-
.../ClusterRemovedMessageProcessor.java | 6 +-
.../CompleteTopologyMessageProcessor.java | 12 +-
.../topology/GroupActivatedProcessor.java | 6 +-
.../InstanceSpawnedMessageProcessor.java | 6 +-
.../MemberActivatedMessageProcessor.java | 6 +-
.../MemberMaintenanceModeProcessor.java | 6 +-
.../MemberReadyToShutdownMessageProcessor.java | 6 +-
.../topology/MemberStartedMessageProcessor.java | 6 +-
.../MemberSuspendedMessageProcessor.java | 6 +-
.../MemberTerminatedMessageProcessor.java | 6 +-
.../ServiceCreatedMessageProcessor.java | 6 +-
.../ServiceRemovedMessageProcessor.java | 6 +-
.../topology/updater/TopologyUpdater.java | 272 +++++++++++++++++++
.../receiver/topology/TopologyManager.java | 245 +----------------
.../topology/locking/TopologyLockingTest.java | 41 +--
26 files changed, 411 insertions(+), 361 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/03593990/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/conf/LoadBalancerConfiguration.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/conf/LoadBalancerConfiguration.java b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/conf/LoadBalancerConfiguration.java
index c269419..ed8aa05 100644
--- a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/conf/LoadBalancerConfiguration.java
+++ b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/conf/LoadBalancerConfiguration.java
@@ -496,12 +496,15 @@ public class LoadBalancerConfiguration {
// Add service to topology manager if not exists
try {
- TopologyManager.acquireWriteLock();
+ // TODO - fix properly!
+ // this lock is not needed since, this Topology is not shared. This is
+ // used by LB only
+ //TopologyManager.acquireWriteLock();
if (!TopologyManager.getTopology().serviceExists(service.getServiceName())) {
TopologyManager.getTopology().addService(service);
}
} finally {
- TopologyManager.releaseWriteLock();
+ //TopologyManager.releaseWriteLock();
}
// Add cluster to load balancer context
http://git-wip-us.apache.org/repos/asf/stratos/blob/03593990/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/topology/receiver/StratosManagerTopologyEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/topology/receiver/StratosManagerTopologyEventReceiver.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/topology/receiver/StratosManagerTopologyEventReceiver.java
index e7bc5a2..699af72 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/topology/receiver/StratosManagerTopologyEventReceiver.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/topology/receiver/StratosManagerTopologyEventReceiver.java
@@ -28,7 +28,6 @@ import org.apache.stratos.manager.subscription.ApplicationSubscription;
import org.apache.stratos.manager.topology.model.TopologyClusterInformationModel;
import org.apache.stratos.messaging.domain.topology.Application;
import org.apache.stratos.messaging.domain.topology.Cluster;
-import org.apache.stratos.messaging.domain.topology.Member;
import org.apache.stratos.messaging.domain.topology.Service;
import org.apache.stratos.messaging.event.Event;
import org.apache.stratos.messaging.event.topology.*;
@@ -265,39 +264,39 @@ public class StratosManagerTopologyEventReceiver implements Runnable {
Cluster cluster = TopologyManager.getTopology().getService(serviceType).getCluster(clusterDomain);
// check and remove terminated member
- if (cluster.memberExists(memberTerminatedEvent.getMemberId())) {
- // release the read lock and acquire the write lock
-// TopologyManager.releaseReadLock();
-// TopologyManager.acquireWriteLock();
- TopologyManager.releaseReadLockForCluster(memberTerminatedEvent.getServiceName(),
- memberTerminatedEvent.getClusterId());
- TopologyManager.acquireWriteLockForCluster(memberTerminatedEvent.getServiceName(),
- memberTerminatedEvent.getClusterId());
-
- try {
- // re-check the state; another thread might have acquired the write lock and modified
- if (cluster.memberExists(memberTerminatedEvent.getMemberId())) {
- // remove the member from the cluster
- Member terminatedMember = cluster.getMember(memberTerminatedEvent.getMemberId());
- cluster.removeMember(terminatedMember);
- if (log.isDebugEnabled()) {
- log.debug("Removed the terminated member with id " + memberTerminatedEvent.getMemberId() + " from the cluster");
- }
- }
-
- // downgrade to read lock - 1. acquire read lock, 2. release write lock
- // acquire read lock
- //TopologyManager.acquireReadLock();
- TopologyManager.acquireReadLockForCluster(memberTerminatedEvent.getServiceName(),
- memberTerminatedEvent.getClusterId());
-
- } finally {
- // release the write lock
- // TopologyManager.releaseWriteLock();
- TopologyManager.releaseWriteLockForCluster(memberTerminatedEvent.getServiceName(),
- memberTerminatedEvent.getClusterId());
- }
- }
+// if (cluster.memberExists(memberTerminatedEvent.getMemberId())) {
+// // release the read lock and acquire the write lock
+//// TopologyManager.releaseReadLock();
+//// TopologyManager.acquireWriteLock();
+// TopologyManager.releaseReadLockForCluster(memberTerminatedEvent.getServiceName(),
+// memberTerminatedEvent.getClusterId());
+// TopologyManager.acquireWriteLockForCluster(memberTerminatedEvent.getServiceName(),
+// memberTerminatedEvent.getClusterId());
+//
+// try {
+// // re-check the state; another thread might have acquired the write lock and modified
+// if (cluster.memberExists(memberTerminatedEvent.getMemberId())) {
+// // remove the member from the cluster
+// Member terminatedMember = cluster.getMember(memberTerminatedEvent.getMemberId());
+// cluster.removeMember(terminatedMember);
+// if (log.isDebugEnabled()) {
+// log.debug("Removed the terminated member with id " + memberTerminatedEvent.getMemberId() + " from the cluster");
+// }
+// }
+//
+// // downgrade to read lock - 1. acquire read lock, 2. release write lock
+// // acquire read lock
+// //TopologyManager.acquireReadLock();
+// TopologyManager.acquireReadLockForCluster(memberTerminatedEvent.getServiceName(),
+// memberTerminatedEvent.getClusterId());
+//
+// } finally {
+// // release the write lock
+// // TopologyManager.releaseWriteLock();
+// TopologyManager.releaseWriteLockForCluster(memberTerminatedEvent.getServiceName(),
+// memberTerminatedEvent.getClusterId());
+// }
+// }
TopologyClusterInformationModel.getInstance().addCluster(cluster);
} finally {
//release read lock
http://git-wip-us.apache.org/repos/asf/stratos/blob/03593990/components/org.apache.stratos.messaging/pom.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/pom.xml b/components/org.apache.stratos.messaging/pom.xml
index 4ff4cb8..2143925 100644
--- a/components/org.apache.stratos.messaging/pom.xml
+++ b/components/org.apache.stratos.messaging/pom.xml
@@ -104,11 +104,12 @@
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
<Bundle-Name>${project.artifactId}</Bundle-Name>
<Export-Package>
+ !org.apache.stratos.messaging.message.processor.topology.updater,
org.apache.stratos.messaging.*,
</Export-Package>
- <!--Private-Package>
- org.apache.stratos.messaging.internal;
- </Private-Package-->
+ <Private-Package>
+ org.apache.stratos.messaging.message.processor.topology.updater;
+ </Private-Package>
<Import-Package>
!org.apache.commons.logging,
org.apache.commons.logging; version=0.0.0,
http://git-wip-us.apache.org/repos/asf/stratos/blob/03593990/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/locking/TopologyLock.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/locking/TopologyLock.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/locking/TopologyLock.java
index e1b90ad..92a2f0a 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/locking/TopologyLock.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/locking/TopologyLock.java
@@ -34,9 +34,7 @@ public class TopologyLock {
}
public void releaseWritelock() {
- if (lock.isWriteLockedByCurrentThread()) {
- lock.writeLock().unlock();
- }
+ lock.writeLock().unlock();
}
public void acquireReadLock() {
http://git-wip-us.apache.org/repos/asf/stratos/blob/03593990/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/locking/TopologyLockHierarchy.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/locking/TopologyLockHierarchy.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/locking/TopologyLockHierarchy.java
index aa0f7a1..d7ab0a1 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/locking/TopologyLockHierarchy.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/locking/TopologyLockHierarchy.java
@@ -29,6 +29,8 @@ public class TopologyLockHierarchy {
private static final Log log = LogFactory.getLog(TopologyLockHierarchy.class);
+ private TopologyLock completeTopologyLock;
+
// lock for Services
private TopologyLock serviceLock;
@@ -48,6 +50,7 @@ public class TopologyLockHierarchy {
private TopologyLockHierarchy () {
+ this.completeTopologyLock = new TopologyLock();
this.serviceLock = new TopologyLock();
this.applicatioLock = new TopologyLock();
this.serviceNameToTopologyLockMap = new ConcurrentHashMap<String, TopologyLock>();
@@ -144,4 +147,8 @@ public class TopologyLockHierarchy {
public TopologyLock getApplicatioLock() {
return applicatioLock;
}
+
+ public TopologyLock getCompleteTopologyLock() {
+ return completeTopologyLock;
+ }
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/03593990/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ApplicationActivatedMessageProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ApplicationActivatedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ApplicationActivatedMessageProcessor.java
index 4211830..d32cecf 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ApplicationActivatedMessageProcessor.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ApplicationActivatedMessageProcessor.java
@@ -25,7 +25,7 @@ import org.apache.stratos.messaging.domain.topology.Status;
import org.apache.stratos.messaging.domain.topology.Topology;
import org.apache.stratos.messaging.event.topology.ApplicationActivatedEvent;
import org.apache.stratos.messaging.message.processor.MessageProcessor;
-import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
+import org.apache.stratos.messaging.message.processor.topology.updater.TopologyUpdater;
import org.apache.stratos.messaging.util.Util;
/**
@@ -57,13 +57,13 @@ public class ApplicationActivatedMessageProcessor extends MessageProcessor {
ApplicationActivatedEvent event = (ApplicationActivatedEvent) Util.
jsonToObject(message, ApplicationActivatedEvent.class);
- TopologyManager.acquireWriteLockForApplication(event.getAppId());
+ TopologyUpdater.acquireWriteLockForApplication(event.getAppId());
try {
return doProcess(event, topology);
} finally {
- TopologyManager.releaseWriteLockForApplication(event.getAppId());
+ TopologyUpdater.releaseWriteLockForApplication(event.getAppId());
}
} else {
http://git-wip-us.apache.org/repos/asf/stratos/blob/03593990/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ApplicationCreatedMessageProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ApplicationCreatedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ApplicationCreatedMessageProcessor.java
index 55786fa..7d06fd5 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ApplicationCreatedMessageProcessor.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ApplicationCreatedMessageProcessor.java
@@ -26,7 +26,7 @@ import org.apache.stratos.messaging.domain.topology.ClusterDataHolder;
import org.apache.stratos.messaging.domain.topology.Topology;
import org.apache.stratos.messaging.event.topology.ApplicationCreatedEvent;
import org.apache.stratos.messaging.message.processor.MessageProcessor;
-import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
+import org.apache.stratos.messaging.message.processor.topology.updater.TopologyUpdater;
import org.apache.stratos.messaging.util.Util;
import java.util.Set;
@@ -57,12 +57,12 @@ public class ApplicationCreatedMessageProcessor extends MessageProcessor {
return false;
}
- TopologyManager.acquireWriteLockForApplications();
+ TopologyUpdater.acquireWriteLockForApplications();
// since the Clusters will also get modified, acquire write locks for each Service Type
Set<ClusterDataHolder> clusterDataHolders = event.getApplication().getClusterDataRecursively();
if (clusterDataHolders != null) {
for (ClusterDataHolder clusterData : clusterDataHolders) {
- TopologyManager.acquireWriteLockForService(clusterData.getServiceType());
+ TopologyUpdater.acquireWriteLockForService(clusterData.getServiceType());
}
}
@@ -72,10 +72,10 @@ public class ApplicationCreatedMessageProcessor extends MessageProcessor {
} finally {
if (clusterDataHolders != null) {
for (ClusterDataHolder clusterData : clusterDataHolders) {
- TopologyManager.releaseWriteLockForService(clusterData.getServiceType());
+ TopologyUpdater.releaseWriteLockForService(clusterData.getServiceType());
}
}
- TopologyManager.releaseWriteLockForApplications();
+ TopologyUpdater.releaseWriteLockForApplications();
}
} else {
http://git-wip-us.apache.org/repos/asf/stratos/blob/03593990/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ApplicationRemovedMessageProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ApplicationRemovedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ApplicationRemovedMessageProcessor.java
index 062c7e1..5e02565 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ApplicationRemovedMessageProcessor.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ApplicationRemovedMessageProcessor.java
@@ -26,7 +26,7 @@ import org.apache.stratos.messaging.domain.topology.Service;
import org.apache.stratos.messaging.domain.topology.Topology;
import org.apache.stratos.messaging.event.topology.ApplicationRemovedEvent;
import org.apache.stratos.messaging.message.processor.MessageProcessor;
-import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
+import org.apache.stratos.messaging.message.processor.topology.updater.TopologyUpdater;
import org.apache.stratos.messaging.util.Util;
import java.util.Set;
@@ -65,11 +65,11 @@ public class ApplicationRemovedMessageProcessor extends MessageProcessor {
return false;
}
- TopologyManager.acquireWriteLockForApplications();
+ TopologyUpdater.acquireWriteLockForApplications();
Set<ClusterDataHolder> clusterDataHolders = event.getClusterData();
if (clusterDataHolders != null) {
for (ClusterDataHolder clusterData : clusterDataHolders) {
- TopologyManager.acquireWriteLockForService(clusterData.getServiceType());
+ TopologyUpdater.acquireWriteLockForService(clusterData.getServiceType());
}
}
@@ -79,10 +79,10 @@ public class ApplicationRemovedMessageProcessor extends MessageProcessor {
} finally {
if (clusterDataHolders != null) {
for (ClusterDataHolder clusterData : clusterDataHolders) {
- TopologyManager.releaseWriteLockForService(clusterData.getServiceType());
+ TopologyUpdater.releaseWriteLockForService(clusterData.getServiceType());
}
}
- TopologyManager.releaseWriteLockForApplications();
+ TopologyUpdater.releaseWriteLockForApplications();
}
} else {
http://git-wip-us.apache.org/repos/asf/stratos/blob/03593990/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterActivatedProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterActivatedProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterActivatedProcessor.java
index ef4bba2..cb8eb5f 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterActivatedProcessor.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterActivatedProcessor.java
@@ -28,7 +28,7 @@ import org.apache.stratos.messaging.event.topology.ClusterActivatedEvent;
import org.apache.stratos.messaging.message.filter.topology.TopologyClusterFilter;
import org.apache.stratos.messaging.message.filter.topology.TopologyServiceFilter;
import org.apache.stratos.messaging.message.processor.MessageProcessor;
-import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
+import org.apache.stratos.messaging.message.processor.topology.updater.TopologyUpdater;
import org.apache.stratos.messaging.util.Util;
/**
@@ -58,12 +58,12 @@ public class ClusterActivatedProcessor extends MessageProcessor {
ClusterActivatedEvent event = (ClusterActivatedEvent) Util.
jsonToObject(message, ClusterActivatedEvent.class);
- TopologyManager.acquireWriteLockForCluster(event.getServiceName(), event.getClusterId());
+ TopologyUpdater.acquireWriteLockForCluster(event.getServiceName(), event.getClusterId());
try {
return doProcess(event, topology);
} finally {
- TopologyManager.releaseWriteLockForCluster(event.getServiceName(), event.getClusterId());
+ TopologyUpdater.releaseWriteLockForCluster(event.getServiceName(), event.getClusterId());
}
} else {
http://git-wip-us.apache.org/repos/asf/stratos/blob/03593990/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterCreatedMessageProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterCreatedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterCreatedMessageProcessor.java
index 6eddfd3..71df7ce 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterCreatedMessageProcessor.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterCreatedMessageProcessor.java
@@ -27,7 +27,7 @@ import org.apache.stratos.messaging.event.topology.ClusterCreatedEvent;
import org.apache.stratos.messaging.message.filter.topology.TopologyClusterFilter;
import org.apache.stratos.messaging.message.filter.topology.TopologyServiceFilter;
import org.apache.stratos.messaging.message.processor.MessageProcessor;
-import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
+import org.apache.stratos.messaging.message.processor.topology.updater.TopologyUpdater;
import org.apache.stratos.messaging.util.Util;
public class ClusterCreatedMessageProcessor extends MessageProcessor {
@@ -53,12 +53,12 @@ public class ClusterCreatedMessageProcessor extends MessageProcessor {
// Parse complete message and build event
ClusterCreatedEvent event = (ClusterCreatedEvent) Util.jsonToObject(message, ClusterCreatedEvent.class);
- TopologyManager.acquireWriteLockForService(event.getServiceName());
+ TopologyUpdater.acquireWriteLockForService(event.getServiceName());
try {
return doProcess(event, topology);
} finally {
- TopologyManager.releaseWriteLockForService(event.getServiceName());
+ TopologyUpdater.releaseWriteLockForService(event.getServiceName());
}
} else {
http://git-wip-us.apache.org/repos/asf/stratos/blob/03593990/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterMaintenanceModeMessageProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterMaintenanceModeMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterMaintenanceModeMessageProcessor.java
index 15819ff..57d7c45 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterMaintenanceModeMessageProcessor.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterMaintenanceModeMessageProcessor.java
@@ -25,7 +25,7 @@ import org.apache.stratos.messaging.event.topology.ClusterMaintenanceModeEvent;
import org.apache.stratos.messaging.message.filter.topology.TopologyClusterFilter;
import org.apache.stratos.messaging.message.filter.topology.TopologyServiceFilter;
import org.apache.stratos.messaging.message.processor.MessageProcessor;
-import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
+import org.apache.stratos.messaging.message.processor.topology.updater.TopologyUpdater;
import org.apache.stratos.messaging.util.Util;
public class ClusterMaintenanceModeMessageProcessor extends MessageProcessor {
@@ -50,12 +50,12 @@ public class ClusterMaintenanceModeMessageProcessor extends MessageProcessor {
ClusterMaintenanceModeEvent event = (ClusterMaintenanceModeEvent) Util.
jsonToObject(message, ClusterMaintenanceModeEvent.class);
- TopologyManager.acquireWriteLockForCluster(event.getServiceName(), event.getClusterId());
+ TopologyUpdater.acquireWriteLockForCluster(event.getServiceName(), event.getClusterId());
try {
return doProcess(event, topology);
} finally {
- TopologyManager.releaseWriteLockForCluster(event.getServiceName(), event.getClusterId());
+ TopologyUpdater.releaseWriteLockForCluster(event.getServiceName(), event.getClusterId());
}
} else {
http://git-wip-us.apache.org/repos/asf/stratos/blob/03593990/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterRemovedMessageProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterRemovedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterRemovedMessageProcessor.java
index fb45cd3..d81f484 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterRemovedMessageProcessor.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterRemovedMessageProcessor.java
@@ -26,7 +26,7 @@ import org.apache.stratos.messaging.event.topology.ClusterRemovedEvent;
import org.apache.stratos.messaging.message.filter.topology.TopologyClusterFilter;
import org.apache.stratos.messaging.message.filter.topology.TopologyServiceFilter;
import org.apache.stratos.messaging.message.processor.MessageProcessor;
-import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
+import org.apache.stratos.messaging.message.processor.topology.updater.TopologyUpdater;
import org.apache.stratos.messaging.util.Util;
public class ClusterRemovedMessageProcessor extends MessageProcessor {
@@ -51,12 +51,12 @@ public class ClusterRemovedMessageProcessor extends MessageProcessor {
// Parse complete message and build event
ClusterRemovedEvent event = (ClusterRemovedEvent) Util.jsonToObject(message, ClusterRemovedEvent.class);
- TopologyManager.acquireWriteLockForService(event.getServiceName());
+ TopologyUpdater.acquireWriteLockForService(event.getServiceName());
try {
return doProcess(event, topology);
} finally {
- TopologyManager.releaseWriteLockForService(event.getServiceName());
+ TopologyUpdater.releaseWriteLockForService(event.getServiceName());
}
} else {
http://git-wip-us.apache.org/repos/asf/stratos/blob/03593990/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/CompleteTopologyMessageProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/CompleteTopologyMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/CompleteTopologyMessageProcessor.java
index 999415d..f0df6eb 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/CompleteTopologyMessageProcessor.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/CompleteTopologyMessageProcessor.java
@@ -26,7 +26,7 @@ import org.apache.stratos.messaging.message.filter.topology.TopologyClusterFilte
import org.apache.stratos.messaging.message.filter.topology.TopologyMemberFilter;
import org.apache.stratos.messaging.message.filter.topology.TopologyServiceFilter;
import org.apache.stratos.messaging.message.processor.MessageProcessor;
-import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
+import org.apache.stratos.messaging.message.processor.topology.updater.TopologyUpdater;
import org.apache.stratos.messaging.util.Util;
import java.util.ArrayList;
@@ -52,17 +52,13 @@ public class CompleteTopologyMessageProcessor extends MessageProcessor {
CompleteTopologyEvent event = (CompleteTopologyEvent) Util.jsonToObject(message, CompleteTopologyEvent.class);
if (!topology.isInitialized()) {
- TopologyManager.acquireWriteLock();
+ TopologyUpdater.acquireWriteLock();
try {
- if (!topology.isInitialized()) {
- return doProcess(event, topology);
- } else {
- return true;
- }
+ return topology.isInitialized() || doProcess(event, topology);
} finally {
- TopologyManager.releaseWriteLock();
+ TopologyUpdater.releaseWriteLock();
}
} else {
return true;
http://git-wip-us.apache.org/repos/asf/stratos/blob/03593990/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/GroupActivatedProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/GroupActivatedProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/GroupActivatedProcessor.java
index 3bf5fad..ba9554f 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/GroupActivatedProcessor.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/GroupActivatedProcessor.java
@@ -23,7 +23,7 @@ import org.apache.commons.logging.LogFactory;
import org.apache.stratos.messaging.domain.topology.*;
import org.apache.stratos.messaging.event.topology.GroupActivatedEvent;
import org.apache.stratos.messaging.message.processor.MessageProcessor;
-import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
+import org.apache.stratos.messaging.message.processor.topology.updater.TopologyUpdater;
import org.apache.stratos.messaging.util.Util;
/**
@@ -51,13 +51,13 @@ public class GroupActivatedProcessor extends MessageProcessor {
GroupActivatedEvent event = (GroupActivatedEvent) Util.
jsonToObject(message, GroupActivatedEvent.class);
- TopologyManager.acquireWriteLockForApplication(event.getAppId());
+ TopologyUpdater.acquireWriteLockForApplication(event.getAppId());
try {
return doProcess(event, topology);
} finally {
- TopologyManager.releaseWriteLockForApplication(event.getAppId());
+ TopologyUpdater.releaseWriteLockForApplication(event.getAppId());
}
} else {
http://git-wip-us.apache.org/repos/asf/stratos/blob/03593990/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/InstanceSpawnedMessageProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/InstanceSpawnedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/InstanceSpawnedMessageProcessor.java
index 2d3f8b3..3135ba5 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/InstanceSpawnedMessageProcessor.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/InstanceSpawnedMessageProcessor.java
@@ -26,7 +26,7 @@ import org.apache.stratos.messaging.message.filter.topology.TopologyClusterFilte
import org.apache.stratos.messaging.message.filter.topology.TopologyMemberFilter;
import org.apache.stratos.messaging.message.filter.topology.TopologyServiceFilter;
import org.apache.stratos.messaging.message.processor.MessageProcessor;
-import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
+import org.apache.stratos.messaging.message.processor.topology.updater.TopologyUpdater;
import org.apache.stratos.messaging.util.Util;
public class InstanceSpawnedMessageProcessor extends MessageProcessor {
@@ -51,12 +51,12 @@ public class InstanceSpawnedMessageProcessor extends MessageProcessor {
// Parse complete message and build event
InstanceSpawnedEvent event = (InstanceSpawnedEvent) Util.jsonToObject(message, InstanceSpawnedEvent.class);
- TopologyManager.acquireWriteLockForCluster(event.getServiceName(), event.getClusterId());
+ TopologyUpdater.acquireWriteLockForCluster(event.getServiceName(), event.getClusterId());
try {
return doProcess(event, topology);
} finally {
- TopologyManager.releaseWriteLockForCluster(event.getServiceName(), event.getClusterId());
+ TopologyUpdater.releaseWriteLockForCluster(event.getServiceName(), event.getClusterId());
}
} else {
http://git-wip-us.apache.org/repos/asf/stratos/blob/03593990/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberActivatedMessageProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberActivatedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberActivatedMessageProcessor.java
index ec1b5ec..c3f8844 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberActivatedMessageProcessor.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberActivatedMessageProcessor.java
@@ -30,7 +30,7 @@ import org.apache.stratos.messaging.message.filter.topology.TopologyClusterFilte
import org.apache.stratos.messaging.message.filter.topology.TopologyMemberFilter;
import org.apache.stratos.messaging.message.filter.topology.TopologyServiceFilter;
import org.apache.stratos.messaging.message.processor.MessageProcessor;
-import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
+import org.apache.stratos.messaging.message.processor.topology.updater.TopologyUpdater;
import org.apache.stratos.messaging.util.Util;
public class MemberActivatedMessageProcessor extends MessageProcessor {
@@ -55,12 +55,12 @@ public class MemberActivatedMessageProcessor extends MessageProcessor {
// Parse complete message and build event
MemberActivatedEvent event = (MemberActivatedEvent) Util.jsonToObject(message, MemberActivatedEvent.class);
- TopologyManager.acquireWriteLockForCluster(event.getServiceName(), event.getClusterId());
+ TopologyUpdater.acquireWriteLockForCluster(event.getServiceName(), event.getClusterId());
try {
return doProcess(event, topology);
} finally {
- TopologyManager.releaseWriteLockForCluster(event.getServiceName(), event.getClusterId());
+ TopologyUpdater.releaseWriteLockForCluster(event.getServiceName(), event.getClusterId());
}
} else {
http://git-wip-us.apache.org/repos/asf/stratos/blob/03593990/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberMaintenanceModeProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberMaintenanceModeProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberMaintenanceModeProcessor.java
index b252a61..2a080fe 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberMaintenanceModeProcessor.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberMaintenanceModeProcessor.java
@@ -27,7 +27,7 @@ import org.apache.stratos.messaging.message.filter.topology.TopologyClusterFilte
import org.apache.stratos.messaging.message.filter.topology.TopologyMemberFilter;
import org.apache.stratos.messaging.message.filter.topology.TopologyServiceFilter;
import org.apache.stratos.messaging.message.processor.MessageProcessor;
-import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
+import org.apache.stratos.messaging.message.processor.topology.updater.TopologyUpdater;
import org.apache.stratos.messaging.util.Util;
public class MemberMaintenanceModeProcessor extends MessageProcessor {
@@ -52,12 +52,12 @@ public class MemberMaintenanceModeProcessor extends MessageProcessor {
MemberMaintenanceModeEvent event = (MemberMaintenanceModeEvent) Util.
jsonToObject(message, MemberMaintenanceModeEvent.class);
- TopologyManager.acquireWriteLockForCluster(event.getServiceName(), event.getClusterId());
+ TopologyUpdater.acquireWriteLockForCluster(event.getServiceName(), event.getClusterId());
try {
return doProcess(event, topology);
} finally {
- TopologyManager.releaseWriteLockForCluster(event.getServiceName(), event.getClusterId());
+ TopologyUpdater.releaseWriteLockForCluster(event.getServiceName(), event.getClusterId());
}
} else {
http://git-wip-us.apache.org/repos/asf/stratos/blob/03593990/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberReadyToShutdownMessageProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberReadyToShutdownMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberReadyToShutdownMessageProcessor.java
index f0c3580..8f9f149 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberReadyToShutdownMessageProcessor.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberReadyToShutdownMessageProcessor.java
@@ -26,7 +26,7 @@ import org.apache.stratos.messaging.message.filter.topology.TopologyClusterFilte
import org.apache.stratos.messaging.message.filter.topology.TopologyMemberFilter;
import org.apache.stratos.messaging.message.filter.topology.TopologyServiceFilter;
import org.apache.stratos.messaging.message.processor.MessageProcessor;
-import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
+import org.apache.stratos.messaging.message.processor.topology.updater.TopologyUpdater;
import org.apache.stratos.messaging.util.Util;
public class MemberReadyToShutdownMessageProcessor extends MessageProcessor{
@@ -51,12 +51,12 @@ public class MemberReadyToShutdownMessageProcessor extends MessageProcessor{
MemberReadyToShutdownEvent event = (MemberReadyToShutdownEvent) Util.
jsonToObject(message, MemberReadyToShutdownEvent.class);
- TopologyManager.acquireWriteLockForCluster(event.getServiceName(), event.getClusterId());
+ TopologyUpdater.acquireWriteLockForCluster(event.getServiceName(), event.getClusterId());
try {
return doProcess(event, topology);
} finally {
- TopologyManager.releaseWriteLockForCluster(event.getServiceName(), event.getClusterId());
+ TopologyUpdater.releaseWriteLockForCluster(event.getServiceName(), event.getClusterId());
}
} else {
http://git-wip-us.apache.org/repos/asf/stratos/blob/03593990/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberStartedMessageProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberStartedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberStartedMessageProcessor.java
index 508ec39..649a5b2 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberStartedMessageProcessor.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberStartedMessageProcessor.java
@@ -30,7 +30,7 @@ import org.apache.stratos.messaging.message.filter.topology.TopologyClusterFilte
import org.apache.stratos.messaging.message.filter.topology.TopologyMemberFilter;
import org.apache.stratos.messaging.message.filter.topology.TopologyServiceFilter;
import org.apache.stratos.messaging.message.processor.MessageProcessor;
-import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
+import org.apache.stratos.messaging.message.processor.topology.updater.TopologyUpdater;
import org.apache.stratos.messaging.util.Util;
public class MemberStartedMessageProcessor extends MessageProcessor {
@@ -55,12 +55,12 @@ public class MemberStartedMessageProcessor extends MessageProcessor {
// Parse complete message and build event
MemberStartedEvent event = (MemberStartedEvent) Util.jsonToObject(message, MemberStartedEvent.class);
- TopologyManager.acquireWriteLockForCluster(event.getServiceName(), event.getClusterId());
+ TopologyUpdater.acquireWriteLockForCluster(event.getServiceName(), event.getClusterId());
try {
return doProcess(event, topology);
} finally {
- TopologyManager.releaseWriteLockForCluster(event.getServiceName(), event.getClusterId());
+ TopologyUpdater.releaseWriteLockForCluster(event.getServiceName(), event.getClusterId());
}
} else {
http://git-wip-us.apache.org/repos/asf/stratos/blob/03593990/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberSuspendedMessageProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberSuspendedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberSuspendedMessageProcessor.java
index 4473add..b342104 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberSuspendedMessageProcessor.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberSuspendedMessageProcessor.java
@@ -30,7 +30,7 @@ import org.apache.stratos.messaging.message.filter.topology.TopologyClusterFilte
import org.apache.stratos.messaging.message.filter.topology.TopologyMemberFilter;
import org.apache.stratos.messaging.message.filter.topology.TopologyServiceFilter;
import org.apache.stratos.messaging.message.processor.MessageProcessor;
-import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
+import org.apache.stratos.messaging.message.processor.topology.updater.TopologyUpdater;
import org.apache.stratos.messaging.util.Util;
public class MemberSuspendedMessageProcessor extends MessageProcessor {
@@ -55,12 +55,12 @@ public class MemberSuspendedMessageProcessor extends MessageProcessor {
// Parse complete message and build event
MemberSuspendedEvent event = (MemberSuspendedEvent) Util.jsonToObject(message, MemberSuspendedEvent.class);
- TopologyManager.acquireWriteLockForCluster(event.getServiceName(), event.getClusterId());
+ TopologyUpdater.acquireWriteLockForCluster(event.getServiceName(), event.getClusterId());
try {
return doProcess(event, topology);
} finally {
- TopologyManager.releaseWriteLockForCluster(event.getServiceName(), event.getClusterId());
+ TopologyUpdater.releaseWriteLockForCluster(event.getServiceName(), event.getClusterId());
}
} else {
http://git-wip-us.apache.org/repos/asf/stratos/blob/03593990/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberTerminatedMessageProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberTerminatedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberTerminatedMessageProcessor.java
index 3619b53..c7a910e 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberTerminatedMessageProcessor.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/MemberTerminatedMessageProcessor.java
@@ -29,7 +29,7 @@ import org.apache.stratos.messaging.message.filter.topology.TopologyClusterFilte
import org.apache.stratos.messaging.message.filter.topology.TopologyMemberFilter;
import org.apache.stratos.messaging.message.filter.topology.TopologyServiceFilter;
import org.apache.stratos.messaging.message.processor.MessageProcessor;
-import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
+import org.apache.stratos.messaging.message.processor.topology.updater.TopologyUpdater;
import org.apache.stratos.messaging.util.Util;
public class MemberTerminatedMessageProcessor extends MessageProcessor {
@@ -54,12 +54,12 @@ public class MemberTerminatedMessageProcessor extends MessageProcessor {
// Parse complete message and build event
MemberTerminatedEvent event = (MemberTerminatedEvent) Util.jsonToObject(message, MemberTerminatedEvent.class);
- TopologyManager.acquireWriteLockForCluster(event.getServiceName(), event.getClusterId());
+ TopologyUpdater.acquireWriteLockForCluster(event.getServiceName(), event.getClusterId());
try {
return doProcess(event, topology);
} finally {
- TopologyManager.releaseWriteLockForCluster(event.getServiceName(), event.getClusterId());
+ TopologyUpdater.releaseWriteLockForCluster(event.getServiceName(), event.getClusterId());
}
} else {
http://git-wip-us.apache.org/repos/asf/stratos/blob/03593990/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ServiceCreatedMessageProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ServiceCreatedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ServiceCreatedMessageProcessor.java
index 1c4be8f..b93d7c2 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ServiceCreatedMessageProcessor.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ServiceCreatedMessageProcessor.java
@@ -25,7 +25,7 @@ import org.apache.stratos.messaging.domain.topology.Topology;
import org.apache.stratos.messaging.event.topology.ServiceCreatedEvent;
import org.apache.stratos.messaging.message.filter.topology.TopologyServiceFilter;
import org.apache.stratos.messaging.message.processor.MessageProcessor;
-import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
+import org.apache.stratos.messaging.message.processor.topology.updater.TopologyUpdater;
import org.apache.stratos.messaging.util.Util;
public class ServiceCreatedMessageProcessor extends MessageProcessor {
@@ -51,12 +51,12 @@ public class ServiceCreatedMessageProcessor extends MessageProcessor {
// Parse complete message and build event
ServiceCreatedEvent event = (ServiceCreatedEvent) Util.jsonToObject(message, ServiceCreatedEvent.class);
- TopologyManager.acquireWriteLockForServices();
+ TopologyUpdater.acquireWriteLockForServices();
try {
return doProcess(event, topology);
} finally {
- TopologyManager.releaseWriteLockForServices();
+ TopologyUpdater.releaseWriteLockForServices();
}
} else {
http://git-wip-us.apache.org/repos/asf/stratos/blob/03593990/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ServiceRemovedMessageProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ServiceRemovedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ServiceRemovedMessageProcessor.java
index a38cbdc..d609812 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ServiceRemovedMessageProcessor.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ServiceRemovedMessageProcessor.java
@@ -25,7 +25,7 @@ import org.apache.stratos.messaging.domain.topology.Topology;
import org.apache.stratos.messaging.event.topology.ServiceRemovedEvent;
import org.apache.stratos.messaging.message.filter.topology.TopologyServiceFilter;
import org.apache.stratos.messaging.message.processor.MessageProcessor;
-import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
+import org.apache.stratos.messaging.message.processor.topology.updater.TopologyUpdater;
import org.apache.stratos.messaging.util.Util;
public class ServiceRemovedMessageProcessor extends MessageProcessor {
@@ -50,12 +50,12 @@ public class ServiceRemovedMessageProcessor extends MessageProcessor {
// Parse complete message and build event
ServiceRemovedEvent event = (ServiceRemovedEvent) Util.jsonToObject(message, ServiceRemovedEvent.class);
- TopologyManager.acquireWriteLockForServices();
+ TopologyUpdater.acquireWriteLockForServices();
try {
return doProcess(event, topology);
} finally {
- TopologyManager.releaseWriteLockForServices();
+ TopologyUpdater.releaseWriteLockForServices();
}
} else {
http://git-wip-us.apache.org/repos/asf/stratos/blob/03593990/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/updater/TopologyUpdater.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/updater/TopologyUpdater.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/updater/TopologyUpdater.java
new file mode 100644
index 0000000..3da5835
--- /dev/null
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/updater/TopologyUpdater.java
@@ -0,0 +1,272 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.stratos.messaging.message.processor.topology.updater;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.messaging.domain.topology.locking.TopologyLock;
+import org.apache.stratos.messaging.domain.topology.locking.TopologyLockHierarchy;
+import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
+
+/**
+ * Used to lock the Topology for writes by messaging component
+ *
+ * Acquire a write lock:
+ *
+ * From root level, acquire read lock, and acquire a write lock only for the
+ * relevant sub tree.
+ *
+ * Example 1: Acquiring write lock for a Cluster to modify the Cluster object -
+ * acquiring:
+ * public static void acquireWriteLockForCluster (String serviceName, String clusterId)
+ *
+ * releasing:
+ * public static void releaseWriteLockForCluster (String serviceName, String clusterId)
+ *
+ * Example 2: Acquiring write lock to add a new Cluster object -
+ * acquiring:
+ * public static void acquireWriteLockForService (String serviceName)
+ *
+ * releasing:
+ * public static void releaseWriteLockForService (String serviceName)
+ *
+ * Example 3: Acquiring the write lock to add a deploy a Cartridge (add a new Service)
+ * acquire:
+ * public static void acquireWriteLockForServices()
+ *
+ * release:
+ * public static void releaseWriteLockForServices()
+ */
+
+public class TopologyUpdater {
+
+ private static final Log log = LogFactory.getLog(TopologyUpdater.class);
+
+ private static final TopologyLockHierarchy topologyLockHierarchy = TopologyLockHierarchy.getInstance();
+
+ // Top level locks - should be used to lock the entire Topology
+
+ /**
+ * Acquires write lock for the Complete Topology
+ */
+ public static void acquireWriteLock() {
+ if(log.isDebugEnabled()) {
+ log.debug("Write lock acquired for Topology");
+ }
+ topologyLockHierarchy.getCompleteTopologyLock().acquireWriteLock();
+ }
+
+ /**
+ * Releases write lock for the Complete Topology
+ */
+ public static void releaseWriteLock() {
+ if(log.isDebugEnabled()) {
+ log.debug("Write lock released for Topology");
+ }
+ topologyLockHierarchy.getCompleteTopologyLock().releaseWritelock();
+ }
+
+ // Application and Service write locks
+ /**
+ * Acquires write lock for the all Applications
+ */
+ public static void acquireWriteLockForApplications() {
+ if(log.isDebugEnabled()) {
+ log.debug("Write lock acquired for Applications");
+ }
+ topologyLockHierarchy.getApplicatioLock().acquireWriteLock();
+ }
+
+ /**
+ * Releases write lock for the all Applications
+ */
+ public static void releaseWriteLockForApplications() {
+ if(log.isDebugEnabled()) {
+ log.debug("Write lock released for Applications");
+ }
+ topologyLockHierarchy.getApplicatioLock().releaseWritelock();
+ }
+
+ /**
+ * Acquires write lock for the all Services
+ */
+ public static void acquireWriteLockForServices() {
+ if(log.isDebugEnabled()) {
+ log.debug("Write lock acquired for Services");
+ }
+ topologyLockHierarchy.getServiceLock().acquireWriteLock();
+ }
+
+ /**
+ * Releases write lock for the all Services
+ */
+ public static void releaseWriteLockForServices() {
+ if(log.isDebugEnabled()) {
+ log.debug("Write lock released for Services");
+ }
+ topologyLockHierarchy.getServiceLock().releaseWritelock();
+ }
+
+ /**
+ * Acquires write lock for a Service
+ *
+ * @param serviceName service name to acquire write lock
+ */
+ public static void acquireWriteLockForService (String serviceName) {
+
+ // acquire read lock for all Applications
+ TopologyManager.acquireReadLockForServices();
+
+ TopologyLock topologyServiceLock = topologyLockHierarchy.getTopologyLockForService(serviceName);
+ if (topologyServiceLock == null) {
+ handleLockNotFound("Topology lock not found for Service " + serviceName);
+
+ } else {
+ topologyServiceLock.acquireWriteLock();
+ if(log.isDebugEnabled()) {
+ log.debug("Write lock acquired for Service " + serviceName);
+ }
+ }
+ }
+
+ /**
+ * Releases write lock for a Service
+ *
+ * @param serviceName service name to release write lock
+ */
+ public static void releaseWriteLockForService (String serviceName) {
+
+ TopologyLock topologyServiceLock = topologyLockHierarchy.getTopologyLockForService(serviceName);
+ if (topologyServiceLock == null) {
+ handleLockNotFound("Topology lock not found for Service " + serviceName);
+
+ } else {
+ topologyServiceLock.releaseWritelock();
+ if(log.isDebugEnabled()) {
+ log.debug("Write lock released for Service " + serviceName);
+ }
+ }
+
+ // release read lock for all Services
+ TopologyManager.releaseReadLockForServices();
+ }
+
+ /**
+ * Acquires write lock for a Cluster. This will acquire the write lock in the following order
+ * 1. for the Service
+ * 2. for the Cluster
+ *
+ * @param serviceName service name to acquire write lock
+ * @param clusterId cluster id to acquire write lock
+ */
+ public static void acquireWriteLockForCluster (String serviceName, String clusterId) {
+
+ // acquire read lock for the relevant Services
+ TopologyManager.acquireReadLockForService(serviceName);
+
+ TopologyLock topologyClusterLock = topologyLockHierarchy.getTopologyLockForCluster(clusterId);
+ if (topologyClusterLock == null) {
+ handleLockNotFound("Topology lock not found for Cluster " + clusterId);
+
+ } else {
+ topologyClusterLock.acquireWriteLock();
+ if(log.isDebugEnabled()) {
+ log.debug("Write lock acquired for Cluster " + clusterId);
+ }
+ }
+ }
+
+ /**
+ * Releases write lock for a Cluster. This will release the write lock in the following order
+ * 1. for the Cluster
+ * 2. for the Service
+ *
+ * @param serviceName service name to release write lock
+ * @param clusterId cluster id to release write lock
+ */
+ public static void releaseWriteLockForCluster (String serviceName, String clusterId) {
+
+ TopologyLock topologyClusterLock = topologyLockHierarchy.getTopologyLockForCluster(clusterId);
+ if (topologyClusterLock == null) {
+ handleLockNotFound("Topology lock not found for Cluster " + clusterId);
+
+ } else {
+ topologyClusterLock.releaseWritelock();
+ if(log.isDebugEnabled()) {
+ log.debug("Write lock released for Cluster " + clusterId);
+ }
+ }
+
+ // release read lock for relevant Service
+ TopologyManager.releaseReadLockForService(serviceName);
+ }
+
+ /**
+ * Acquires write lock for the Application
+ *
+ * @param appId Application id
+ */
+ public static void acquireWriteLockForApplication (String appId) {
+
+ // acquire read lock for all Applications
+ TopologyManager.acquireReadLockForApplications();
+
+ TopologyLock topologyAppLock = topologyLockHierarchy.getTopologyLockForApplication(appId);
+ if (topologyAppLock == null) {
+ handleLockNotFound("Topology lock not found for Application " + appId);
+
+ } else {
+ // now, lock Application
+ topologyAppLock.acquireWriteLock();
+ if(log.isDebugEnabled()) {
+ log.debug("Write lock acquired for Application " + appId);
+ }
+ }
+ }
+
+ /**
+ * Releases write lock for the Application
+ *
+ * @param appId Application id
+ */
+ public static void releaseWriteLockForApplication (String appId) {
+
+ TopologyLock topologyAppLock = topologyLockHierarchy.getTopologyLockForApplication(appId);
+ if (topologyAppLock == null) {
+ handleLockNotFound("Topology lock not found for Application " + appId);
+
+ } else {
+ // release App lock
+ topologyAppLock.releaseWritelock();
+ if(log.isDebugEnabled()) {
+ log.debug("Write lock released for Application " + appId);
+ }
+ }
+
+ // release read lock for all Applications
+ TopologyManager.releaseReadLockForApplications();
+ }
+
+ private static void handleLockNotFound (String errorMsg) {
+ log.warn(errorMsg);
+ //throw new RuntimeException(errorMsg);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/stratos/blob/03593990/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyManager.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyManager.java
index d636912..fbb2faf 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyManager.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/receiver/topology/TopologyManager.java
@@ -25,8 +25,6 @@ import org.apache.stratos.messaging.domain.topology.Topology;
import org.apache.stratos.messaging.domain.topology.locking.TopologyLock;
import org.apache.stratos.messaging.domain.topology.locking.TopologyLockHierarchy;
-import java.util.concurrent.locks.ReentrantReadWriteLock;
-
/**
* A singleton class for managing the topology data structure.
*
@@ -39,44 +37,26 @@ import java.util.concurrent.locks.ReentrantReadWriteLock;
* Stratos supports hierarchical locking. As per the practice, we need to lock the
* hierarchy from root level till the relevant sub tree.
*
- * Acquire a write lock:
- *
- * From root level, acquire read lock, and acquire a write lock only for the
- * relevant sub tree.
- *
* Acquire a read lock:
*
* From root level, acquire read locks till the relevant sub tree
*
* Examples -
*
- * Example 1: Acquiring write lock for a Cluster to modify the Cluster object -
- * acquiring:
- * public static void acquireWriteLockForCluster (String serviceName, String clusterId)
- *
- * releasing:
- * public static void releaseWriteLockForCluster (String serviceName, String clusterId)
- *
- * Example 2: Acquiring write lock to add a new Cluster object -
- * acquiring:
- * public static void acquireWriteLockForService (String serviceName)
- *
- * releasing:
- * public static void releaseWriteLockForService (String serviceName)
- *
- * Example 3: Acquiring read lock to read Cluster information
+ * Example 1: Acquiring read lock to read Cluster information
* acquiring:
* public static void acquireReadLockForCluster (String serviceName, String clusterId)
*
* releasing:
* public static void releaseReadLockForCluster (String serviceName, String clusterId)
*
- * Example 4: Acquiring the write lock to add a deploy a Cartridge (add a new Service)
- * acquire:
- * public static void acquireWriteLockForServices()
*
- * release:
- * public static void releaseWriteLockForServices()
+ * Example 2: Acquiring read lock for a particular Service
+ * acquiring:
+ * public static void acquireReadLockForService (String serviceName)
+ *
+ * releasing:
+ * public static void releaseReadLockForService (String serviceName)
*/
public class TopologyManager {
private static final Log log = LogFactory.getLog(TopologyManager.class);
@@ -84,12 +64,6 @@ public class TopologyManager {
private static volatile Topology topology;
private static final TopologyLockHierarchy topologyLockHierarchy =
TopologyLockHierarchy.getInstance();
- private static volatile ReentrantReadWriteLock lock = new ReentrantReadWriteLock(true);
- private static volatile ReentrantReadWriteLock.ReadLock readLock = lock.readLock();
- private static volatile ReentrantReadWriteLock.WriteLock writeLock = lock.writeLock();
-
-
- // Top level locks - should be used to lock the entire Topology
/**
* Acquires read lock for the Complete Topology
@@ -98,7 +72,7 @@ public class TopologyManager {
if(log.isDebugEnabled()) {
log.debug("Read lock acquired for Topology");
}
- readLock.lock();
+ topologyLockHierarchy.getCompleteTopologyLock().acquireReadLock();
}
/**
@@ -108,27 +82,7 @@ public class TopologyManager {
if(log.isDebugEnabled()) {
log.debug("Read lock released for Topology");
}
- readLock.unlock();
- }
-
- /**
- * Acquires write lock for the Complete Topology
- */
- public static void acquireWriteLock() {
- if(log.isDebugEnabled()) {
- log.debug("Write lock acquired for Topology");
- }
- writeLock.lock();
- }
-
- /**
- * Releases write lock for the Complete Topology
- */
- public static void releaseWriteLock() {
- if(log.isDebugEnabled()) {
- log.debug("Write lock released for Topology");
- }
- writeLock.unlock();
+ topologyLockHierarchy.getCompleteTopologyLock().releaseReadLock();
}
// Application and Service read locks
@@ -172,47 +126,6 @@ public class TopologyManager {
topologyLockHierarchy.getServiceLock().releaseReadLock();
}
- // Application and Service write locks
- /**
- * Acquires write lock for the all Applications
- */
- public static void acquireWriteLockForApplications() {
- if(log.isDebugEnabled()) {
- log.debug("Write lock acquired for Applications");
- }
- topologyLockHierarchy.getApplicatioLock().acquireWriteLock();
- }
-
- /**
- * Releases write lock for the all Applications
- */
- public static void releaseWriteLockForApplications() {
- if(log.isDebugEnabled()) {
- log.debug("Write lock released for Applications");
- }
- topologyLockHierarchy.getApplicatioLock().releaseWritelock();
- }
-
- /**
- * Acquires write lock for the all Services
- */
- public static void acquireWriteLockForServices() {
- if(log.isDebugEnabled()) {
- log.debug("Write lock acquired for Services");
- }
- topologyLockHierarchy.getServiceLock().acquireWriteLock();
- }
-
- /**
- * Releases write lock for the all Services
- */
- public static void releaseWriteLockForServices() {
- if(log.isDebugEnabled()) {
- log.debug("Write lock released for Services");
- }
- topologyLockHierarchy.getServiceLock().releaseWritelock();
- }
-
/**
* Acquires read lock for a Service
*
@@ -258,50 +171,6 @@ public class TopologyManager {
}
/**
- * Acquires write lock for a Service
- *
- * @param serviceName service name to acquire write lock
- */
- public static void acquireWriteLockForService (String serviceName) {
-
- // acquire read lock for all Applications
- acquireReadLockForServices();
-
- TopologyLock topologyServiceLock = topologyLockHierarchy.getTopologyLockForService(serviceName);
- if (topologyServiceLock == null) {
- handleLockNotFound("Topology lock not found for Service " + serviceName);
-
- } else {
- topologyServiceLock.acquireWriteLock();
- if(log.isDebugEnabled()) {
- log.debug("Write lock acquired for Service " + serviceName);
- }
- }
- }
-
- /**
- * Releases write lock for a Service
- *
- * @param serviceName service name to release write lock
- */
- public static void releaseWriteLockForService (String serviceName) {
-
- TopologyLock topologyServiceLock = topologyLockHierarchy.getTopologyLockForService(serviceName);
- if (topologyServiceLock == null) {
- handleLockNotFound("Topology lock not found for Service " + serviceName);
-
- } else {
- topologyServiceLock.releaseWritelock();
- if(log.isDebugEnabled()) {
- log.debug("Write lock released for Service " + serviceName);
- }
- }
-
- // release read lock for all Services
- releaseReadLockForServices();
- }
-
- /**
* Acquires read lock for a Cluster. This will acquire the read lock in the following order
* 1. for the Service
* 2. for the Cluster
@@ -354,56 +223,6 @@ public class TopologyManager {
}
/**
- * Acquires write lock for a Cluster. This will acquire the write lock in the following order
- * 1. for the Service
- * 2. for the Cluster
- *
- * @param serviceName service name to acquire write lock
- * @param clusterId cluster id to acquire write lock
- */
- public static void acquireWriteLockForCluster (String serviceName, String clusterId) {
-
- // acquire read lock for the relevant Services
- acquireReadLockForService(serviceName);
-
- TopologyLock topologyClusterLock = topologyLockHierarchy.getTopologyLockForCluster(clusterId);
- if (topologyClusterLock == null) {
- handleLockNotFound("Topology lock not found for Cluster " + clusterId);
-
- } else {
- topologyClusterLock.acquireWriteLock();
- if(log.isDebugEnabled()) {
- log.debug("Write lock acquired for Cluster " + clusterId);
- }
- }
- }
-
- /**
- * Releases write lock for a Cluster. This will release the write lock in the following order
- * 1. for the Cluster
- * 2. for the Service
- *
- * @param serviceName service name to release write lock
- * @param clusterId cluster id to release write lock
- */
- public static void releaseWriteLockForCluster (String serviceName, String clusterId) {
-
- TopologyLock topologyClusterLock = topologyLockHierarchy.getTopologyLockForCluster(clusterId);
- if (topologyClusterLock == null) {
- handleLockNotFound("Topology lock not found for Cluster " + clusterId);
-
- } else {
- topologyClusterLock.releaseWritelock();
- if(log.isDebugEnabled()) {
- log.debug("Write lock released for Cluster " + clusterId);
- }
- }
-
- // release read lock for relevant Service
- releaseReadLockForService(serviceName);
- }
-
- /**
* Acquires read lock for the Application
*
* @param appId Application id
@@ -449,52 +268,6 @@ public class TopologyManager {
releaseReadLockForApplications();
}
- /**
- * Acquires write lock for the Application
- *
- * @param appId Application id
- */
- public static void acquireWriteLockForApplication (String appId) {
-
- // acquire read lock for all Applications
- acquireReadLockForApplications();
-
- TopologyLock topologyAppLock = topologyLockHierarchy.getTopologyLockForApplication(appId);
- if (topologyAppLock == null) {
- handleLockNotFound("Topology lock not found for Application " + appId);
-
- } else {
- // now, lock Application
- topologyAppLock.acquireWriteLock();
- if(log.isDebugEnabled()) {
- log.debug("Write lock acquired for Application " + appId);
- }
- }
- }
-
- /**
- * Releases write lock for the Application
- *
- * @param appId Application id
- */
- public static void releaseWriteLockForApplication (String appId) {
-
- TopologyLock topologyAppLock = topologyLockHierarchy.getTopologyLockForApplication(appId);
- if (topologyAppLock == null) {
- handleLockNotFound("Topology lock not found for Application " + appId);
-
- } else {
- // release App lock
- topologyAppLock.releaseWritelock();
- if(log.isDebugEnabled()) {
- log.debug("Write lock released for Application " + appId);
- }
- }
-
- // release read lock for all Applications
- releaseReadLockForApplications();
- }
-
private static void handleLockNotFound (String errorMsg) {
log.warn(errorMsg);
//throw new RuntimeException(errorMsg);
http://git-wip-us.apache.org/repos/asf/stratos/blob/03593990/components/org.apache.stratos.messaging/src/test/java/org/apache/stratos/messaging/topology/locking/TopologyLockingTest.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/test/java/org/apache/stratos/messaging/topology/locking/TopologyLockingTest.java b/components/org.apache.stratos.messaging/src/test/java/org/apache/stratos/messaging/topology/locking/TopologyLockingTest.java
index cde7b47..8f25af1 100644
--- a/components/org.apache.stratos.messaging/src/test/java/org/apache/stratos/messaging/topology/locking/TopologyLockingTest.java
+++ b/components/org.apache.stratos.messaging/src/test/java/org/apache/stratos/messaging/topology/locking/TopologyLockingTest.java
@@ -20,6 +20,7 @@
package org.apache.stratos.messaging.topology.locking;
import org.apache.stratos.messaging.domain.topology.*;
+import org.apache.stratos.messaging.message.processor.topology.updater.TopologyUpdater;
import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
import org.junit.*;
@@ -114,21 +115,21 @@ public class TopologyLockingTest {
@Test(timeout=10000)
public void testAqcuireAndReleaseWriteLocksForServices1To2 () {
- TopologyManager.acquireWriteLockForService("service1");
- TopologyManager.acquireWriteLockForService("service2");
+ TopologyUpdater.acquireWriteLockForService("service1");
+ TopologyUpdater.acquireWriteLockForService("service2");
- TopologyManager.releaseWriteLockForService("service1");
- TopologyManager.releaseWriteLockForService("service2");
+ TopologyUpdater.releaseWriteLockForService("service1");
+ TopologyUpdater.releaseWriteLockForService("service2");
}
@Test(timeout=10000)
public void testAqcuireAndReleaseWriteLocksForServices3To4 () {
- TopologyManager.acquireWriteLockForService("service3");
- TopologyManager.acquireWriteLockForService("service4");
+ TopologyUpdater.acquireWriteLockForService("service3");
+ TopologyUpdater.acquireWriteLockForService("service4");
- TopologyManager.releaseWriteLockForService("service3");
- TopologyManager.releaseWriteLockForService("service4");
+ TopologyUpdater.releaseWriteLockForService("service3");
+ TopologyUpdater.releaseWriteLockForService("service4");
}
@Test(timeout=10000)
@@ -154,21 +155,21 @@ public class TopologyLockingTest {
@Test(timeout=10000)
public void testAqcuireAndReleaseWriteLocksForClustersOfService1 () {
- TopologyManager.acquireWriteLockForCluster("service1", "service1.cluster1.domain");
- TopologyManager.acquireWriteLockForCluster("service1", "service1.cluster2.domain");
+ TopologyUpdater.acquireWriteLockForCluster("service1", "service1.cluster1.domain");
+ TopologyUpdater.acquireWriteLockForCluster("service1", "service1.cluster2.domain");
- TopologyManager.releaseWriteLockForCluster("service1", "service1.cluster1.domain");
- TopologyManager.releaseWriteLockForCluster("service1", "service1.cluster2.domain");
+ TopologyUpdater.releaseWriteLockForCluster("service1", "service1.cluster1.domain");
+ TopologyUpdater.releaseWriteLockForCluster("service1", "service1.cluster2.domain");
}
@Test(timeout=10000)
public void testAqcuireAndReleaseWriteLocksForClustersOfService2 () {
- TopologyManager.acquireWriteLockForCluster("service2", "service2.cluster1.domain");
- TopologyManager.acquireWriteLockForCluster("service2", "service2.cluster2.domain");
+ TopologyUpdater.acquireWriteLockForCluster("service2", "service2.cluster1.domain");
+ TopologyUpdater.acquireWriteLockForCluster("service2", "service2.cluster2.domain");
- TopologyManager.releaseWriteLockForCluster("service2", "service2.cluster1.domain");
- TopologyManager.releaseWriteLockForCluster("service2", "service2.cluster2.domain");
+ TopologyUpdater.releaseWriteLockForCluster("service2", "service2.cluster1.domain");
+ TopologyUpdater.releaseWriteLockForCluster("service2", "service2.cluster2.domain");
}
@Test(timeout=10000)
@@ -181,8 +182,8 @@ public class TopologyLockingTest {
@Test(timeout=10000)
public void testAcquireAndReleaseWriteLockForApp1 () {
- TopologyManager.acquireWriteLockForApplication("app1");
- TopologyManager.releaseWriteLockForApplication("app1");
+ TopologyUpdater.acquireWriteLockForApplication("app1");
+ TopologyUpdater.releaseWriteLockForApplication("app1");
}
@Test(timeout=10000)
@@ -195,8 +196,8 @@ public class TopologyLockingTest {
@Test(timeout=10000)
public void testAcquireAndReleaseWriteLockForApp2 () {
- TopologyManager.acquireWriteLockForApplication("app2");
- TopologyManager.releaseWriteLockForApplication("app2");
+ TopologyUpdater.acquireWriteLockForApplication("app2");
+ TopologyUpdater.releaseWriteLockForApplication("app2");
}
@AfterClass