renaming InstanceContext and subclasses in messaging comp. to Instance*

Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/f3736f36
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/f3736f36
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/f3736f36

Branch: refs/heads/master
Commit: f3736f36031b6bb9ebf79331e6464d70b15ef342
Parents: 17ed0b5
Author: Isuru Haththotuwa <[email protected]>
Authored: Fri Nov 28 12:41:36 2014 +0530
Committer: Isuru Haththotuwa <[email protected]>
Committed: Fri Nov 28 12:41:36 2014 +0530

----------------------------------------------------------------------
 ...ApplicationLevelNetworkPartitionContext.java |  14 +--
 .../ClusterLevelNetworkPartitionContext.java    |  12 +-
 .../autoscaler/GroupLevelPartitionContext.java  | 112 +++++++++----------
 .../applications/topic/ApplicationBuilder.java  |  22 ++--
 .../monitor/ParentComponentMonitor.java         |   7 +-
 .../autoscaler/monitor/group/GroupMonitor.java  |  11 +-
 .../status/processor/StatusChecker.java         |  10 +-
 .../group/GroupStatusInActiveProcessor.java     |   8 +-
 .../processor/group/GroupStatusProcessor.java   |  16 +--
 .../controller/topology/TopologyBuilder.java    |  14 +--
 .../domain/applications/Application.java        |   6 +-
 .../messaging/domain/applications/Group.java    |   6 +-
 .../domain/applications/ParentComponent.java    |  10 +-
 .../domain/instance/ApplicationInstance.java    |  55 +++++++++
 .../domain/instance/ClusterInstance.java        |  56 ++++++++++
 .../domain/instance/GroupInstance.java          |  55 +++++++++
 .../messaging/domain/instance/Instance.java     |  99 ++++++++++++++++
 .../context/ApplicationInstanceContext.java     |  55 ---------
 .../context/ClusterInstanceContext.java         |  56 ----------
 .../instance/context/GroupInstanceContext.java  |  55 ---------
 .../instance/context/InstanceContext.java       |  99 ----------------
 .../messaging/domain/topology/Cluster.java      |  11 +-
 .../ApplicationActivatedMessageProcessor.java   |   4 +-
 .../ApplicationInactivatedMessageProcessor.java |   4 +-
 .../ApplicationTerminatingMessageProcessor.java |   4 +-
 .../applications/GroupActivatedProcessor.java   |   4 +-
 .../applications/GroupInActivateProcessor.java  |   4 +-
 .../applications/GroupResetProcessor.java       |   4 +-
 .../applications/GroupTerminatedProcessor.java  |   4 +-
 .../applications/GroupTerminatingProcessor.java |   4 +-
 .../topology/ClusterActivatedProcessor.java     |   4 +-
 .../topology/ClusterInActivateProcessor.java    |   4 +-
 .../ClusterInstanceCreatedMessageProcessor.java |   6 +-
 .../topology/ClusterResetMessageProcessor.java  |   4 +-
 .../topology/ClusterTerminatedProcessor.java    |   4 +-
 .../topology/ClusterTerminatingProcessor.java   |   4 +-
 36 files changed, 419 insertions(+), 428 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/f3736f36/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ApplicationLevelNetworkPartitionContext.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ApplicationLevelNetworkPartitionContext.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ApplicationLevelNetworkPartitionContext.java
index cb400f8..282e304 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ApplicationLevelNetworkPartitionContext.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ApplicationLevelNetworkPartitionContext.java
@@ -20,13 +20,9 @@ package org.apache.stratos.autoscaler;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.cloud.controller.stub.deployment.partition.Partition;
-import 
org.apache.stratos.messaging.domain.instance.context.ApplicationInstanceContext;
-import org.apache.stratos.messaging.domain.instance.context.InstanceContext;
+import org.apache.stratos.messaging.domain.instance.ApplicationInstance;
 
 import java.io.Serializable;
-import java.util.Arrays;
-import java.util.HashMap;
 import java.util.Map;
 
 /**
@@ -38,21 +34,21 @@ public class ApplicationLevelNetworkPartitionContext 
extends NetworkPartitionCon
     private final String id;
 
     //group instances kept inside a partition
-    private Map<String, ApplicationInstanceContext> 
instanceIdToInstanceContextMap;
+    private Map<String, ApplicationInstance> instanceIdToInstanceContextMap;
 
     public ApplicationLevelNetworkPartitionContext(String id) {
         this.id = id;
     }
 
-    public Map<String, ApplicationInstanceContext> 
getInstanceIdToInstanceContextMap() {
+    public Map<String, ApplicationInstance> 
getInstanceIdToInstanceContextMap() {
         return instanceIdToInstanceContextMap;
     }
 
-    public void setInstanceIdToInstanceContextMap(Map<String, 
ApplicationInstanceContext> instanceIdToInstanceContextMap) {
+    public void setInstanceIdToInstanceContextMap(Map<String, 
ApplicationInstance> instanceIdToInstanceContextMap) {
         this.instanceIdToInstanceContextMap = instanceIdToInstanceContextMap;
     }
 
-    public void addInstanceContext(ApplicationInstanceContext context) {
+    public void addInstanceContext(ApplicationInstance context) {
         this.instanceIdToInstanceContextMap.put(context.getInstanceId(), 
context);
 
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/f3736f36/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ClusterLevelNetworkPartitionContext.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ClusterLevelNetworkPartitionContext.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ClusterLevelNetworkPartitionContext.java
index afe193e..aa835ab 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ClusterLevelNetworkPartitionContext.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/ClusterLevelNetworkPartitionContext.java
@@ -24,7 +24,7 @@ import org.apache.stratos.autoscaler.policy.model.LoadAverage;
 import org.apache.stratos.autoscaler.policy.model.MemoryConsumption;
 import org.apache.stratos.autoscaler.policy.model.RequestsInFlight;
 import org.apache.stratos.cloud.controller.stub.deployment.partition.Partition;
-import org.apache.stratos.messaging.domain.instance.context.InstanceContext;
+import org.apache.stratos.messaging.domain.instance.Instance;
 
 import java.io.Serializable;
 import java.util.Arrays;
@@ -48,7 +48,7 @@ public class ClusterLevelNetworkPartitionContext extends 
NetworkPartitionContext
     private int requiredInstanceCountBasedOnStats;
     private int requiredInstanceCountBasedOnDependencies;
 
-    private Map<String, InstanceContext> instanceIdToInstanceContextMap;
+    private Map<String, Instance> instanceIdToInstanceContextMap;
 
 
     private final String partitionAlgorithm;
@@ -97,7 +97,7 @@ public class ClusterLevelNetworkPartitionContext extends 
NetworkPartitionContext
         }
         requiredInstanceCountBasedOnStats = minInstanceCount;
         requiredInstanceCountBasedOnDependencies = minInstanceCount;
-        instanceIdToInstanceContextMap = new HashMap<String, 
InstanceContext>();
+        instanceIdToInstanceContextMap = new HashMap<String, Instance>();
 
     }
 
@@ -427,15 +427,15 @@ public class ClusterLevelNetworkPartitionContext extends 
NetworkPartitionContext
         this.requiredInstanceCountBasedOnDependencies = 
requiredInstanceCountBasedOnDependencies;
     }
 
-    public Map<String, InstanceContext> getInstanceIdToInstanceContextMap() {
+    public Map<String, Instance> getInstanceIdToInstanceContextMap() {
         return instanceIdToInstanceContextMap;
     }
 
-    public void setInstanceIdToInstanceContextMap(Map<String, InstanceContext> 
instanceIdToInstanceContextMap) {
+    public void setInstanceIdToInstanceContextMap(Map<String, Instance> 
instanceIdToInstanceContextMap) {
         this.instanceIdToInstanceContextMap = instanceIdToInstanceContextMap;
     }
 
-    public void addInstanceContext(InstanceContext context) {
+    public void addInstanceContext(Instance context) {
         this.instanceIdToInstanceContextMap.put(context.getInstanceId(), 
context);
 
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/f3736f36/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/GroupLevelPartitionContext.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/GroupLevelPartitionContext.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/GroupLevelPartitionContext.java
index 09a2783..c9e3ab7 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/GroupLevelPartitionContext.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/GroupLevelPartitionContext.java
@@ -24,7 +24,7 @@ import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.autoscaler.util.ConfUtil;
 import org.apache.stratos.cloud.controller.stub.deployment.partition.Partition;
 import org.apache.stratos.common.constants.StratosConstants;
-import org.apache.stratos.messaging.domain.instance.context.InstanceContext;
+import org.apache.stratos.messaging.domain.instance.Instance;
 
 import java.io.Serializable;
 import java.util.*;
@@ -52,7 +52,7 @@ public class GroupLevelPartitionContext implements 
Serializable {
     // 15 mints as the default
     private long pendingInstanceExpiryTime = 900000;
     // pending instances
-    private List<InstanceContext> pendingInstances;
+    private List<Instance> pendingInstances;
 
     // 1 day as default
     private long obsoltedInstanceExpiryTime = 1 * 24 * 60 * 60 * 1000;
@@ -61,13 +61,13 @@ public class GroupLevelPartitionContext implements 
Serializable {
     private long terminationPendingInstanceExpiryTime = 1800000;
 
     // instances to be terminated
-    private Map<String, InstanceContext> obsoletedInstances;
+    private Map<String, Instance> obsoletedInstances;
 
     // active instances
-    private List<InstanceContext> activeInstances;
+    private List<Instance> activeInstances;
 
     // termination pending instances, instance is added to this when 
Autoscaler send grace fully shut down event
-    private List<InstanceContext> terminationPendingInstances;
+    private List<Instance> terminationPendingInstances;
 
     //instance id: time that instance is moved to termination pending status
     private Map<String, Long> terminationPendingStartedTime;
@@ -76,13 +76,13 @@ public class GroupLevelPartitionContext implements 
Serializable {
     private Map<String, MemberStatsContext> instanceStatsContexts;
 
     //group instances kept inside a partition
-    private Map<String, InstanceContext> instanceIdToInstanceContextMap;
+    private Map<String, Instance> instanceIdToInstanceContextMap;
 
     // for the use of tests
     public GroupLevelPartitionContext(long instanceExpiryTime) {
 
-        this.activeInstances = new ArrayList<InstanceContext>();
-        this.terminationPendingInstances = new ArrayList<InstanceContext>();
+        this.activeInstances = new ArrayList<Instance>();
+        this.terminationPendingInstances = new ArrayList<Instance>();
         pendingInstanceExpiryTime = instanceExpiryTime;
     }
 
@@ -90,12 +90,12 @@ public class GroupLevelPartitionContext implements 
Serializable {
         this.setPartition(partition);
         this.minimumInstanceCount = partition.getPartitionMin();
         this.partitionId = partition.getId();
-        this.pendingInstances = new ArrayList<InstanceContext>();
-        this.activeInstances = new ArrayList<InstanceContext>();
-        this.terminationPendingInstances = new ArrayList<InstanceContext>();
-        this.obsoletedInstances = new ConcurrentHashMap<String, 
InstanceContext>();
+        this.pendingInstances = new ArrayList<Instance>();
+        this.activeInstances = new ArrayList<Instance>();
+        this.terminationPendingInstances = new ArrayList<Instance>();
+        this.obsoletedInstances = new ConcurrentHashMap<String, Instance>();
         instanceStatsContexts = new ConcurrentHashMap<String, 
MemberStatsContext>();
-        instanceIdToInstanceContextMap = new HashMap<String, 
InstanceContext>();
+        instanceIdToInstanceContextMap = new HashMap<String, Instance>();
 
 
         terminationPendingStartedTime = new HashMap<String, Long>();
@@ -120,24 +120,24 @@ public class GroupLevelPartitionContext implements 
Serializable {
         return terminationPendingStartedTime.get(instanceId);
     }
 
-    public Map<String, InstanceContext> getInstanceIdToInstanceContextMap() {
+    public Map<String, Instance> getInstanceIdToInstanceContextMap() {
         return instanceIdToInstanceContextMap;
     }
 
-    public void setInstanceIdToInstanceContextMap(Map<String, InstanceContext> 
instanceIdToInstanceContextMap) {
+    public void setInstanceIdToInstanceContextMap(Map<String, Instance> 
instanceIdToInstanceContextMap) {
         this.instanceIdToInstanceContextMap = instanceIdToInstanceContextMap;
     }
 
-    public void addInstanceContext(InstanceContext context) {
+    public void addInstanceContext(Instance context) {
         this.instanceIdToInstanceContextMap.put(context.getInstanceId(), 
context);
 
     }
 
-    public List<InstanceContext> getPendingInstances() {
+    public List<Instance> getPendingInstances() {
         return pendingInstances;
     }
 
-    public void setPendingInstances(List<InstanceContext> pendingInstances) {
+    public void setPendingInstances(List<Instance> pendingInstances) {
         this.pendingInstances = pendingInstances;
     }
 
@@ -169,7 +169,7 @@ public class GroupLevelPartitionContext implements 
Serializable {
         this.partition = partition;
     }
 
-    public void addPendingInstance(InstanceContext ctxt) {
+    public void addPendingInstance(Instance ctxt) {
         this.pendingInstances.add(ctxt);
     }
 
@@ -178,8 +178,8 @@ public class GroupLevelPartitionContext implements 
Serializable {
             return false;
         }
         synchronized (pendingInstances) {
-            for (Iterator<InstanceContext> iterator = 
pendingInstances.iterator(); iterator.hasNext(); ) {
-                InstanceContext pendingInstance = (InstanceContext) 
iterator.next();
+            for (Iterator<Instance> iterator = pendingInstances.iterator(); 
iterator.hasNext(); ) {
+                Instance pendingInstance = (Instance) iterator.next();
                 if (id.equals(pendingInstance.getInstanceId())) {
                     iterator.remove();
                     return true;
@@ -196,9 +196,9 @@ public class GroupLevelPartitionContext implements 
Serializable {
             return;
         }
         synchronized (pendingInstances) {
-            Iterator<InstanceContext> iterator = 
pendingInstances.listIterator();
+            Iterator<Instance> iterator = pendingInstances.listIterator();
             while (iterator.hasNext()) {
-                InstanceContext pendingInstance = iterator.next();
+                Instance pendingInstance = iterator.next();
                 if (pendingInstance == null) {
                     iterator.remove();
                     continue;
@@ -221,7 +221,7 @@ public class GroupLevelPartitionContext implements 
Serializable {
     }
 
     public boolean activeInstanceAvailable(String instanceId) {
-        for (InstanceContext activeInstance : activeInstances) {
+        for (Instance activeInstance : activeInstances) {
             if (instanceId.equals(activeInstance.getInstanceId())) {
                 return true;
             }
@@ -231,7 +231,7 @@ public class GroupLevelPartitionContext implements 
Serializable {
 
     public boolean pendingInstanceAvailable(String instanceId) {
 
-        for (InstanceContext pendingInstance : pendingInstances) {
+        for (Instance pendingInstance : pendingInstances) {
             if (instanceId.equals(pendingInstance.getInstanceId())) {
                 return true;
             }
@@ -244,9 +244,9 @@ public class GroupLevelPartitionContext implements 
Serializable {
             return;
         }
         synchronized (activeInstances) {
-            Iterator<InstanceContext> iterator = 
activeInstances.listIterator();
+            Iterator<Instance> iterator = activeInstances.listIterator();
             while (iterator.hasNext()) {
-                InstanceContext activeInstance = iterator.next();
+                Instance activeInstance = iterator.next();
                 if (activeInstance == null) {
                     iterator.remove();
                     continue;
@@ -268,21 +268,21 @@ public class GroupLevelPartitionContext implements 
Serializable {
     }
 
     /**
-     * Removes the {@link 
org.apache.stratos.messaging.domain.instance.context.InstanceContext} object 
mapping
+     * Removes the {@link 
org.apache.stratos.messaging.domain.instance.Instance} object mapping
      * to the specified instance id from the specified InstanceContext 
collection
      *
      * @param iterator   The {@link java.util.Iterator} for the collection 
containing
-     *                   {@link 
org.apache.stratos.messaging.domain.instance.context.InstanceContext}
+     *                   {@link 
org.apache.stratos.messaging.domain.instance.Instance}
      *                   objects
      * @param instanceId Instance Id {@link String} for the
-     *                   {@link 
org.apache.stratos.messaging.domain.instance.context.InstanceContext}
+     *                   {@link 
org.apache.stratos.messaging.domain.instance.Instance}
      *                   to be removed
-     * @return {@link 
org.apache.stratos.messaging.domain.instance.context.InstanceContext} object if
+     * @return {@link org.apache.stratos.messaging.domain.instance.Instance} 
object if
      * object found and removed, null if otherwise.
      */
-    private InstanceContext removeInstanceFrom(Iterator<InstanceContext> 
iterator, String instanceId) {
+    private Instance removeInstanceFrom(Iterator<Instance> iterator, String 
instanceId) {
         while (iterator.hasNext()) {
-            InstanceContext activeInstance = iterator.next();
+            Instance activeInstance = iterator.next();
             if (activeInstance == null) {
                 iterator.remove();
                 continue;
@@ -347,18 +347,18 @@ public class GroupLevelPartitionContext implements 
Serializable {
         }
     }
 */
-    public void addActiveInstance(InstanceContext ctxt) {
+    public void addActiveInstance(Instance ctxt) {
         this.activeInstances.add(ctxt);
     }
 
-    public void removeActiveInstance(InstanceContext ctxt) {
+    public void removeActiveInstance(Instance ctxt) {
         this.activeInstances.remove(ctxt);
     }
 
     public boolean removeTerminationPendingInstance(String instanceId) {
         boolean terminationPendingInstanceAvailable = false;
         synchronized (terminationPendingInstances) {
-            for (InstanceContext instanceContext : 
terminationPendingInstances) {
+            for (Instance instanceContext : terminationPendingInstances) {
                 if (instanceContext.getInstanceId().equals(instanceId)) {
                     terminationPendingInstanceAvailable = true;
                     terminationPendingInstances.remove(instanceContext);
@@ -377,7 +377,7 @@ public class GroupLevelPartitionContext implements 
Serializable {
         this.obsoltedInstanceExpiryTime = obsoltedInstanceExpiryTime;
     }
 
-    public void addObsoleteInstance(InstanceContext ctxt) {
+    public void addObsoleteInstance(Instance ctxt) {
         this.obsoletedInstances.put(ctxt.getInstanceId(), ctxt);
     }
 
@@ -396,11 +396,11 @@ public class GroupLevelPartitionContext implements 
Serializable {
         this.pendingInstanceExpiryTime = pendingInstanceExpiryTime;
     }
 
-    public Map<String, InstanceContext> getObsoletedInstances() {
+    public Map<String, Instance> getObsoletedInstances() {
         return obsoletedInstances;
     }
 
-    public void setObsoletedInstances(Map<String, InstanceContext> 
obsoletedInstances) {
+    public void setObsoletedInstances(Map<String, Instance> 
obsoletedInstances) {
         this.obsoletedInstances = obsoletedInstances;
     }
 
@@ -452,11 +452,11 @@ public class GroupLevelPartitionContext implements 
Serializable {
         this.serviceName = serviceName;
     }
 
-    public List<InstanceContext> getTerminationPendingInstances() {
+    public List<Instance> getTerminationPendingInstances() {
         return terminationPendingInstances;
     }
 
-    public void setTerminationPendingInstances(List<InstanceContext> 
terminationPendingInstances) {
+    public void setTerminationPendingInstances(List<Instance> 
terminationPendingInstances) {
         this.terminationPendingInstances = terminationPendingInstances;
     }
 
@@ -469,20 +469,20 @@ public class GroupLevelPartitionContext implements 
Serializable {
         return activeInstances.size() + pendingInstances.size();
     }
 
-    public List<InstanceContext> getActiveInstances() {
+    public List<Instance> getActiveInstances() {
         return activeInstances;
     }
 
-    public void setActiveInstances(List<InstanceContext> activeInstances) {
+    public void setActiveInstances(List<Instance> activeInstances) {
         this.activeInstances = activeInstances;
     }
 
     public boolean removeActiveInstanceById(String instanceId) {
         boolean removeActiveInstance = false;
         synchronized (activeInstances) {
-            Iterator<InstanceContext> iterator = 
activeInstances.listIterator();
+            Iterator<Instance> iterator = activeInstances.listIterator();
             while (iterator.hasNext()) {
-                InstanceContext instanceContext = iterator.next();
+                Instance instanceContext = iterator.next();
                 if (instanceId.equals(instanceContext.getInstanceId())) {
                     iterator.remove();
                     removeActiveInstance = true;
@@ -496,7 +496,7 @@ public class GroupLevelPartitionContext implements 
Serializable {
 
     public boolean activeInstanceExist(String instanceId) {
 
-        for (InstanceContext instanceContext : activeInstances) {
+        for (Instance instanceContext : activeInstances) {
             if (instanceId.equals(instanceContext.getInstanceId())) {
                 return true;
             }
@@ -515,7 +515,7 @@ public class GroupLevelPartitionContext implements 
Serializable {
     // Map<String, InstanceStatsContext> getInstanceStatsContexts().keySet()
     public Set<String> getAllInstanceForTermination() {
 
-        List<InstanceContext> merged = new ArrayList<InstanceContext>();
+        List<Instance> merged = new ArrayList<Instance>();
 
 
         merged.addAll(activeInstances);
@@ -524,7 +524,7 @@ public class GroupLevelPartitionContext implements 
Serializable {
 
         Set<String> results = new HashSet<String>(merged.size());
 
-        for (InstanceContext ctx : merged) {
+        for (Instance ctx : merged) {
             results.add(ctx.getInstanceId());
         }
 
@@ -545,9 +545,9 @@ public class GroupLevelPartitionContext implements 
Serializable {
         if (instanceId == null) {
             return;
         }
-        Iterator<InstanceContext> iterator = 
terminationPendingInstances.listIterator();
+        Iterator<Instance> iterator = 
terminationPendingInstances.listIterator();
         while (iterator.hasNext()) {
-            InstanceContext terminationPendingInstance = iterator.next();
+            Instance terminationPendingInstance = iterator.next();
             if (terminationPendingInstance == null) {
                 iterator.remove();
                 continue;
@@ -572,8 +572,8 @@ public class GroupLevelPartitionContext implements 
Serializable {
         }
     }
 
-    public InstanceContext getPendingTerminationInstance(String instanceId) {
-        for (InstanceContext instanceContext : terminationPendingInstances) {
+    public Instance getPendingTerminationInstance(String instanceId) {
+        for (Instance instanceContext : terminationPendingInstances) {
             if (instanceId.equals(instanceContext.getInstanceId())) {
                 return instanceContext;
             }
@@ -589,9 +589,9 @@ public class GroupLevelPartitionContext implements 
Serializable {
         if (instanceId == null) {
             return;
         }
-        Iterator<InstanceContext> iterator = pendingInstances.listIterator();
+        Iterator<Instance> iterator = pendingInstances.listIterator();
         while (iterator.hasNext()) {
-            InstanceContext pendingInstance = iterator.next();
+            Instance pendingInstance = iterator.next();
             if (pendingInstance == null) {
                 iterator.remove();
                 continue;
@@ -712,10 +712,10 @@ public class GroupLevelPartitionContext implements 
Serializable {
             while (true) {
                 long terminationPendingInstanceExpiryTime = 
ctxt.getTerminationPendingInstanceExpiryTime();
 
-                Iterator<InstanceContext> iterator = 
ctxt.getTerminationPendingInstances().listIterator();
+                Iterator<Instance> iterator = 
ctxt.getTerminationPendingInstances().listIterator();
                 while (iterator.hasNext()) {
 
-                    InstanceContext terminationPendingInstance = 
iterator.next();
+                    Instance terminationPendingInstance = iterator.next();
                     if (terminationPendingInstance == null) {
                         continue;
                     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/f3736f36/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
index 31f5763..8651966 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/applications/topic/ApplicationBuilder.java
@@ -27,8 +27,8 @@ import 
org.apache.stratos.autoscaler.client.CloudControllerClient;
 import org.apache.stratos.autoscaler.monitor.application.ApplicationMonitor;
 import org.apache.stratos.autoscaler.monitor.group.GroupMonitor;
 import org.apache.stratos.messaging.domain.applications.*;
-import 
org.apache.stratos.messaging.domain.instance.context.ApplicationInstanceContext;
-import 
org.apache.stratos.messaging.domain.instance.context.GroupInstanceContext;
+import org.apache.stratos.messaging.domain.instance.ApplicationInstance;
+import org.apache.stratos.messaging.domain.instance.GroupInstance;
 import org.apache.stratos.messaging.domain.topology.Cluster;
 import org.apache.stratos.messaging.domain.topology.Service;
 import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
@@ -98,7 +98,7 @@ public class ApplicationBuilder {
 
         if (!application.containsInstanceContext(instanceId)) {
             //setting the status, persist and publish
-            ApplicationInstanceContext context = new 
ApplicationInstanceContext(appId, instanceId);
+            ApplicationInstance context = new ApplicationInstance(appId, 
instanceId);
             context.setStatus(status);
             context.setNetworkPartitionId(networkPartitionId);
             application.addInstanceContext(instanceId, context);
@@ -126,7 +126,7 @@ public class ApplicationBuilder {
         }
 
         ApplicationStatus status = ApplicationStatus.Active;
-        ApplicationInstanceContext context = 
application.getInstanceContexts(instanceId);
+        ApplicationInstance context = 
application.getInstanceContexts(instanceId);
         if (context.isStateTransitionValid(status)) {
             //setting the status, persist and publish
             application.setStatus(status, instanceId);
@@ -156,10 +156,10 @@ public class ApplicationBuilder {
                 return;
             }
             clusterData = application.getClusterDataRecursively();
-            Collection<ApplicationInstanceContext> context = application.
+            Collection<ApplicationInstance> context = application.
                     getInstanceIdToInstanceContextMap().values();
             ApplicationStatus status = ApplicationStatus.Terminating;
-            for (ApplicationInstanceContext context1 : context) {
+            for (ApplicationInstance context1 : context) {
                 if (context1.isStateTransitionValid(status)) {
                     //setting the status, persist and publish
                     application.setStatus(status, context1.getInstanceId());
@@ -258,7 +258,7 @@ public class ApplicationBuilder {
             return;
         }
 
-        GroupInstanceContext context = group.getInstanceContexts(instanceId);
+        GroupInstance context = group.getInstanceContexts(instanceId);
         GroupStatus status = GroupStatus.Terminated;
         if (context != null) {
             if (context.isStateTransitionValid(status)) {
@@ -301,7 +301,7 @@ public class ApplicationBuilder {
             return;
         }
 
-        GroupInstanceContext context = group.getInstanceContexts(instanceId);
+        GroupInstance context = group.getInstanceContexts(instanceId);
         GroupStatus status = GroupStatus.Active;
         if (context != null) {
             if (context.isStateTransitionValid(status)) {
@@ -382,7 +382,7 @@ public class ApplicationBuilder {
 
         if (!group.containsInstanceContext(instanceId)) {
             //setting the status, persist and publish
-            GroupInstanceContext context = new GroupInstanceContext(groupId, 
instanceId);
+            GroupInstance context = new GroupInstance(groupId, instanceId);
             context.setParentId(parentId);
             context.setStatus(status);
             group.addInstanceContext(instanceId, context);
@@ -418,7 +418,7 @@ public class ApplicationBuilder {
             return;
         }
 
-        GroupInstanceContext context = group.getInstanceContexts(instanceId);
+        GroupInstance context = group.getInstanceContexts(instanceId);
         GroupStatus status = GroupStatus.Inactive;
         if (context != null) {
             if (context.isStateTransitionValid(status)) {
@@ -462,7 +462,7 @@ public class ApplicationBuilder {
 
         try {
             ApplicationHolder.acquireWriteLock();
-            GroupInstanceContext context = 
group.getInstanceContexts(instanceId);
+            GroupInstance context = group.getInstanceContexts(instanceId);
             GroupStatus status = GroupStatus.Terminating;
             if (context != null) {
                 if (context.isStateTransitionValid(status)) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/f3736f36/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ParentComponentMonitor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ParentComponentMonitor.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ParentComponentMonitor.java
index efe639f..8368580 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ParentComponentMonitor.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/ParentComponentMonitor.java
@@ -21,7 +21,6 @@ package org.apache.stratos.autoscaler.monitor;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.autoscaler.Constants;
-import org.apache.stratos.autoscaler.GroupLevelNetworkPartitionContext;
 import org.apache.stratos.autoscaler.algorithm.AutoscaleAlgorithm;
 import org.apache.stratos.autoscaler.algorithm.OneAfterAnother;
 import org.apache.stratos.autoscaler.algorithm.RoundRobin;
@@ -43,7 +42,7 @@ import 
org.apache.stratos.autoscaler.monitor.group.GroupMonitor;
 import org.apache.stratos.autoscaler.status.processor.StatusChecker;
 import org.apache.stratos.messaging.domain.applications.GroupStatus;
 import org.apache.stratos.messaging.domain.applications.ParentComponent;
-import org.apache.stratos.messaging.domain.instance.context.InstanceContext;
+import org.apache.stratos.messaging.domain.instance.Instance;
 import org.apache.stratos.messaging.domain.topology.ClusterStatus;
 import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
 
@@ -101,10 +100,10 @@ public abstract class ParentComponentMonitor extends 
Monitor {
         //start the first dependency
         List<ApplicationChildContext> applicationContexts = 
this.startupDependencyTree.
                 getStarAbleDependencies();
-        Collection<InstanceContext> contexts = 
component.getInstanceIdToInstanceContextMap().values();
+        Collection<Instance> contexts = 
component.getInstanceIdToInstanceContextMap().values();
         //traversing through all the Instance context and start them
         List<String> instanceIds = new ArrayList<String>();
-        for(InstanceContext context : contexts) {
+        for(Instance context : contexts) {
             instanceIds.add(context.getInstanceId());
         }
         startDependency(applicationContexts, instanceIds);

http://git-wip-us.apache.org/repos/asf/stratos/blob/f3736f36/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/group/GroupMonitor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/group/GroupMonitor.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/group/GroupMonitor.java
index 3fc78bb..e3e88bb 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/group/GroupMonitor.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/group/GroupMonitor.java
@@ -38,10 +38,9 @@ import org.apache.stratos.autoscaler.monitor.events.*;
 import org.apache.stratos.autoscaler.partition.PartitionGroup;
 import org.apache.stratos.autoscaler.policy.PolicyManager;
 import org.apache.stratos.autoscaler.policy.model.DeploymentPolicy;
-import org.apache.stratos.cloud.controller.stub.deployment.partition.Partition;
 import org.apache.stratos.messaging.domain.applications.*;
-import 
org.apache.stratos.messaging.domain.instance.context.GroupInstanceContext;
-import org.apache.stratos.messaging.domain.instance.context.InstanceContext;
+import org.apache.stratos.messaging.domain.instance.GroupInstance;
+import org.apache.stratos.messaging.domain.instance.Instance;
 import org.apache.stratos.messaging.domain.topology.ClusterStatus;
 import org.apache.stratos.messaging.domain.topology.lifecycle.LifeCycleState;
 
@@ -102,7 +101,7 @@ public class GroupMonitor extends ParentComponentMonitor 
implements EventHandler
                         // as it has group scaling enabled.
                         Group group = application.getGroupRecursively(this.id);
                         if(group != null) {
-                            GroupInstanceContext context = 
group.getInstanceContexts(instanceId);
+                            GroupInstance context = 
group.getInstanceContexts(instanceId);
                             
MonitorStatusEventBuilder.handleGroupStatusEvent(this.parent,
                                     status, this.id, context.getParentId());
 
@@ -247,7 +246,7 @@ public class GroupMonitor extends ParentComponentMonitor 
implements EventHandler
             if(group.getInstanceContextCount() > 0) {
                 List<String> instanceIds = new ArrayList<String>();
                 for(String parentInstanceId : parentInstanceIds) {
-                    List<InstanceContext> contexts1 =  
group.getInstanceContextsWithParentId(parentInstanceId);
+                    List<Instance> contexts1 =  
group.getInstanceContextsWithParentId(parentInstanceId);
                     //Finding the non startable instance ids
                     if(group.getInstanceContexts(parentInstanceId) == null || 
contexts1.isEmpty() ||
                             contexts1.size() == 0) {
@@ -275,7 +274,7 @@ public class GroupMonitor extends ParentComponentMonitor 
implements EventHandler
         String instanceId;
         for(String parentInstanceId : parentInstanceIds) {
             Application application = 
ApplicationHolder.getApplications().getApplication(this.appId);
-            InstanceContext parentInstanceContext;
+            Instance parentInstanceContext;
             if(this.id.equals(appId)) {
                parentInstanceContext = 
application.getInstanceContexts(parentInstanceId);
             } else {

http://git-wip-us.apache.org/repos/asf/stratos/blob/f3736f36/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/StatusChecker.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/StatusChecker.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/StatusChecker.java
index bd0109c..b11ef46 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/StatusChecker.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/StatusChecker.java
@@ -28,8 +28,8 @@ import 
org.apache.stratos.autoscaler.applications.topic.ApplicationBuilder;
 import 
org.apache.stratos.autoscaler.event.publisher.ClusterStatusEventPublisher;
 import org.apache.stratos.autoscaler.monitor.cluster.VMClusterMonitor;
 import org.apache.stratos.messaging.domain.applications.*;
-import 
org.apache.stratos.messaging.domain.instance.context.ClusterInstanceContext;
-import 
org.apache.stratos.messaging.domain.instance.context.GroupInstanceContext;
+import org.apache.stratos.messaging.domain.instance.ClusterInstance;
+import org.apache.stratos.messaging.domain.instance.GroupInstance;
 import org.apache.stratos.messaging.domain.topology.Cluster;
 import org.apache.stratos.messaging.domain.topology.ClusterStatus;
 import org.apache.stratos.messaging.domain.topology.Service;
@@ -404,7 +404,7 @@ public class StatusChecker {
 
     private boolean getAllInstancesOfGroupActive(Group group) {
         int activeGroupInstances = 0;
-        for(GroupInstanceContext context : 
group.getInstanceIdToInstanceContextMap().values()) {
+        for(GroupInstance context : 
group.getInstanceIdToInstanceContextMap().values()) {
             if(context.getStatus() == GroupStatus.Active) {
                 activeGroupInstances++;
             }
@@ -442,7 +442,7 @@ public class StatusChecker {
     private boolean getAllGroupInSameState(Map<String, Group> groups, 
GroupStatus status, String instanceId) {
         boolean groupStat = false;
         for (Group group : groups.values()) {
-            GroupInstanceContext context = 
group.getInstanceContexts(instanceId);
+            GroupInstance context = group.getInstanceContexts(instanceId);
             if(context != null) {
                 if(context.getStatus() == status) {
                     groupStat = true;
@@ -498,7 +498,7 @@ public class StatusChecker {
             try {
                 Service service = 
TopologyManager.getTopology().getService(serviceName);
                 Cluster cluster = service.getCluster(clusterId);
-                ClusterInstanceContext context = 
cluster.getInstanceContexts(instanceId);
+                ClusterInstance context = 
cluster.getInstanceContexts(instanceId);
                 if (context.getStatus() == status) {
                     clusterStat = true;
                 } else {

http://git-wip-us.apache.org/repos/asf/stratos/blob/f3736f36/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusInActiveProcessor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusInActiveProcessor.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusInActiveProcessor.java
index 7cab60e..eb201f2 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusInActiveProcessor.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusInActiveProcessor.java
@@ -24,8 +24,8 @@ import 
org.apache.stratos.autoscaler.applications.ApplicationHolder;
 import org.apache.stratos.autoscaler.applications.topic.ApplicationBuilder;
 import org.apache.stratos.autoscaler.status.processor.StatusProcessor;
 import org.apache.stratos.messaging.domain.applications.*;
-import 
org.apache.stratos.messaging.domain.instance.context.ClusterInstanceContext;
-import 
org.apache.stratos.messaging.domain.instance.context.GroupInstanceContext;
+import org.apache.stratos.messaging.domain.instance.ClusterInstance;
+import org.apache.stratos.messaging.domain.instance.GroupInstance;
 import org.apache.stratos.messaging.domain.topology.Cluster;
 import org.apache.stratos.messaging.domain.topology.ClusterStatus;
 import org.apache.stratos.messaging.domain.topology.Service;
@@ -129,7 +129,7 @@ public class GroupStatusInActiveProcessor extends 
GroupStatusProcessor {
         for (Map.Entry<String, ClusterDataHolder> clusterDataHolderEntry : 
clusterData.entrySet()) {
             Service service = 
TopologyManager.getTopology().getService(clusterDataHolderEntry.getValue().getServiceType());
             Cluster cluster = 
service.getCluster(clusterDataHolderEntry.getValue().getClusterId());
-            ClusterInstanceContext context = 
cluster.getInstanceContexts(instanceId);
+            ClusterInstance context = cluster.getInstanceContexts(instanceId);
             if (context.getStatus() == ClusterStatus.Inactive) {
                 clusterStat = true;
                 return clusterStat;
@@ -151,7 +151,7 @@ public class GroupStatusInActiveProcessor extends 
GroupStatusProcessor {
     private boolean getAllGroupInActive(Map<String, Group> groups, String 
instanceId) {
         boolean groupStat = false;
         for (Group group : groups.values()) {
-            GroupInstanceContext context = 
group.getInstanceContexts(instanceId);
+            GroupInstance context = group.getInstanceContexts(instanceId);
             if (context.getStatus() == GroupStatus.Inactive) {
                 groupStat = true;
                 return groupStat;

http://git-wip-us.apache.org/repos/asf/stratos/blob/f3736f36/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusProcessor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusProcessor.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusProcessor.java
index ca4b158..7687294 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusProcessor.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/status/processor/group/GroupStatusProcessor.java
@@ -22,9 +22,9 @@ import 
org.apache.stratos.autoscaler.status.processor.StatusProcessor;
 import org.apache.stratos.messaging.domain.applications.ClusterDataHolder;
 import org.apache.stratos.messaging.domain.applications.Group;
 import org.apache.stratos.messaging.domain.applications.GroupStatus;
-import 
org.apache.stratos.messaging.domain.instance.context.ClusterInstanceContext;
-import 
org.apache.stratos.messaging.domain.instance.context.GroupInstanceContext;
-import org.apache.stratos.messaging.domain.instance.context.InstanceContext;
+import org.apache.stratos.messaging.domain.instance.ClusterInstance;
+import org.apache.stratos.messaging.domain.instance.GroupInstance;
+import org.apache.stratos.messaging.domain.instance.Instance;
 import org.apache.stratos.messaging.domain.topology.Cluster;
 import org.apache.stratos.messaging.domain.topology.ClusterStatus;
 import org.apache.stratos.messaging.domain.topology.Service;
@@ -57,7 +57,7 @@ public abstract class GroupStatusProcessor extends 
StatusProcessor {
     protected boolean getAllGroupInSameState(Map<String, Group> groups, 
GroupStatus status, String instanceId) {
         boolean groupStat = false;
         for (Group group : groups.values()) {
-            GroupInstanceContext context = 
group.getInstanceContexts(instanceId);
+            GroupInstance context = group.getInstanceContexts(instanceId);
             if(context != null) {
                 if(context.getStatus() == status) {
                     groupStat = true;
@@ -67,11 +67,11 @@ public abstract class GroupStatusProcessor extends 
StatusProcessor {
                 }
             } else {
                 //Checking the minimum of the group instances to be satisfied
-                List<InstanceContext> contexts = 
group.getInstanceContextsWithParentId(instanceId);
+                List<Instance> contexts = 
group.getInstanceContextsWithParentId(instanceId);
                 int minGroupInstances = group.getGroupMinInstances();
                 int sameStateInstances = 0;
-                for(InstanceContext context1 : contexts) {
-                   
if(((GroupInstanceContext)context1).getStatus().equals(status)) {
+                for(Instance context1 : contexts) {
+                   if(((GroupInstance)context1).getStatus().equals(status)) {
                        sameStateInstances++;
                    }
                 }
@@ -104,7 +104,7 @@ public abstract class GroupStatusProcessor extends 
StatusProcessor {
             try {
                 Service service = 
TopologyManager.getTopology().getService(serviceName);
                 Cluster cluster = service.getCluster(clusterId);
-                ClusterInstanceContext context = 
cluster.getInstanceContexts(instanceId);
+                ClusterInstance context = 
cluster.getInstanceContexts(instanceId);
                 if (context.getStatus() == status) {
                     clusterStat = true;
                 } else {

http://git-wip-us.apache.org/repos/asf/stratos/blob/f3736f36/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java
index af98c1e..d72c552 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java
@@ -32,7 +32,7 @@ import 
org.apache.stratos.cloud.controller.runtime.FasterLookUpDataHolder;
 import org.apache.stratos.cloud.controller.util.CloudControllerUtil;
 import org.apache.stratos.common.constants.StratosConstants;
 import org.apache.stratos.messaging.domain.applications.ClusterDataHolder;
-import 
org.apache.stratos.messaging.domain.instance.context.ClusterInstanceContext;
+import org.apache.stratos.messaging.domain.instance.ClusterInstance;
 import org.apache.stratos.messaging.domain.topology.*;
 import 
org.apache.stratos.messaging.event.applications.ApplicationTerminatedEvent;
 import org.apache.stratos.messaging.event.cluster.status.*;
@@ -252,7 +252,7 @@ public class TopologyBuilder {
                 return;
             }
 
-            ClusterInstanceContext context = 
cluster.getInstanceContexts(event.getInstanceId());
+            ClusterInstance context = 
cluster.getInstanceContexts(event.getInstanceId());
             if (context == null) {
                 log.warn("Cluster Instance Context is not found for [cluster] 
" +
                         event.getClusterId() + " [instance-id] " +
@@ -308,7 +308,7 @@ public class TopologyBuilder {
             }
 
             //context.setStatus(ClusterStatus.Created);
-            cluster.addInstanceContext(instanceId, new 
ClusterInstanceContext(alias, clusterId, instanceId));
+            cluster.addInstanceContext(instanceId, new ClusterInstance(alias, 
clusterId, instanceId));
             TopologyManager.updateTopology(topology);
 
             ClusterInstanceCreatedEvent clusterInstanceCreatedEvent =
@@ -789,7 +789,7 @@ public class TopologyBuilder {
                         clusterActivatedEvent.getInstanceId());
         try {
             TopologyManager.acquireWriteLock();
-            ClusterInstanceContext context = 
cluster.getInstanceContexts(clusterActivatedEvent.getInstanceId());
+            ClusterInstance context = 
cluster.getInstanceContexts(clusterActivatedEvent.getInstanceId());
             if (context == null) {
                 log.warn("Cluster Instance Context is not found for [cluster] 
" +
                         clusterActivatedEvent.getClusterId() + " [instance-id] 
" +
@@ -841,7 +841,7 @@ public class TopologyBuilder {
                         clusterInActivateEvent.getInstanceId());
         try {
             TopologyManager.acquireWriteLock();
-            ClusterInstanceContext context = 
cluster.getInstanceContexts(clusterInActivateEvent.getInstanceId());
+            ClusterInstance context = 
cluster.getInstanceContexts(clusterInActivateEvent.getInstanceId());
             if (context == null) {
                 log.warn("Cluster Instance Context is not found for [cluster] 
" +
                         clusterInActivateEvent.getClusterId() + " 
[instance-id] " +
@@ -889,7 +889,7 @@ public class TopologyBuilder {
                 log.error("Invalid state transfer from " + 
cluster.getStatus(null) + " to " +
                         ClusterStatus.Terminated);
             }
-            ClusterInstanceContext context = 
cluster.getInstanceContexts(event.getInstanceId());
+            ClusterInstance context = 
cluster.getInstanceContexts(event.getInstanceId());
             if (context == null) {
                 log.warn("Cluster Instance Context is not found for [cluster] 
" +
                         event.getClusterId() + " [instance-id] " +
@@ -932,7 +932,7 @@ public class TopologyBuilder {
                 log.error("Invalid state transfer from " + 
cluster.getStatus(null) + " to " +
                         ClusterStatus.Terminating);
             }
-            ClusterInstanceContext context = 
cluster.getInstanceContexts(event.getInstanceId());
+            ClusterInstance context = 
cluster.getInstanceContexts(event.getInstanceId());
             if (context == null) {
                 log.warn("Cluster Instance Context is not found for [cluster] 
" +
                         event.getClusterId() + " [instance-id] " +

http://git-wip-us.apache.org/repos/asf/stratos/blob/f3736f36/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/Application.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/Application.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/Application.java
index 5e72917..e0238ea 100644
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/Application.java
+++ 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/Application.java
@@ -20,7 +20,7 @@
 package org.apache.stratos.messaging.domain.applications;
 
 import org.apache.commons.lang3.RandomStringUtils;
-import 
org.apache.stratos.messaging.domain.instance.context.ApplicationInstanceContext;
+import org.apache.stratos.messaging.domain.instance.ApplicationInstance;
 
 import java.util.*;
 
@@ -28,7 +28,7 @@ import java.util.*;
  * Represents an Application in the Topology
  */
 
-public class Application extends ParentComponent<ApplicationInstanceContext> {
+public class Application extends ParentComponent<ApplicationInstance> {
 
     private static final long serialVersionUID = -5092959597171649688L;
     // Unique id for the Application, defined in Application Definition
@@ -48,7 +48,7 @@ public class Application extends 
ParentComponent<ApplicationInstanceContext> {
         super();
         this.id = id;
         this.key = RandomStringUtils.randomAlphanumeric(16);
-        this.instanceIdToInstanceContextMap = new HashMap<String, 
ApplicationInstanceContext>();
+        this.instanceIdToInstanceContextMap = new HashMap<String, 
ApplicationInstance>();
         //this.applicationStateManager =
                 //new 
LifeCycleStateManager<ApplicationStatus>(ApplicationStatus.Created, id);
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/f3736f36/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/Group.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/Group.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/Group.java
index f49306f..0be8207 100644
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/Group.java
+++ 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/Group.java
@@ -19,7 +19,7 @@
 
 package org.apache.stratos.messaging.domain.applications;
 
-import 
org.apache.stratos.messaging.domain.instance.context.GroupInstanceContext;
+import org.apache.stratos.messaging.domain.instance.GroupInstance;
 
 import java.util.*;
 
@@ -27,7 +27,7 @@ import java.util.*;
  * Represents a Group/nested Group in an Application/Group
  */
 
-public class Group extends ParentComponent<GroupInstanceContext> {
+public class Group extends ParentComponent<GroupInstance> {
 
     private static final long serialVersionUID = 8347096598203655846L;
     // Name of the Group, specified in Group Definition
@@ -53,7 +53,7 @@ public class Group extends 
ParentComponent<GroupInstanceContext> {
         this.applicationId = applicationId;
         this.name = name;
         this.alias = alias;
-        this.instanceIdToInstanceContextMap = new HashMap<String, 
GroupInstanceContext>();
+        this.instanceIdToInstanceContextMap = new HashMap<String, 
GroupInstance>();
         //instanceIdToInstanceContextMap = new HashMap<String, 
Set<InstanceContext>>();
         //this.groupStateManager = new 
LifeCycleStateManager<GroupStatus>(GroupStatus.Created, alias);
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/f3736f36/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/ParentComponent.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/ParentComponent.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/ParentComponent.java
index 75777f0..954ebc1 100644
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/ParentComponent.java
+++ 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/ParentComponent.java
@@ -19,7 +19,7 @@
 
 package org.apache.stratos.messaging.domain.applications;
 
-import org.apache.stratos.messaging.domain.instance.context.InstanceContext;
+import org.apache.stratos.messaging.domain.instance.Instance;
 
 import java.io.Serializable;
 import java.util.*;
@@ -29,7 +29,7 @@ import java.util.*;
  * in an Application within the Topology
  */
 
-public abstract class ParentComponent<T extends InstanceContext> implements 
Serializable {
+public abstract class ParentComponent<T extends Instance> implements 
Serializable {
 
     // Dependency Order
     private DependencyOrder dependencyOrder;
@@ -255,16 +255,16 @@ public abstract class ParentComponent<T extends 
InstanceContext> implements Seri
      * @param parentInstanceId parent instance id
      * @return InstanceContext obj. if exists, else null
      */
-    public List<InstanceContext> getInstanceContextsWithParentId (String 
parentInstanceId) {
+    public List<Instance> getInstanceContextsWithParentId (String 
parentInstanceId) {
         // if map is empty, return null
         if (getInstanceIdToInstanceContextMap().isEmpty()) {
             return null;
         }
-        List<InstanceContext> contexts = new ArrayList<InstanceContext>();
+        List<Instance> contexts = new ArrayList<Instance>();
 
         // if instanceId is null, just get the first InstanceContext
         if (parentInstanceId == null) {
-            for(InstanceContext context : 
instanceIdToInstanceContextMap.values()) {
+            for(Instance context : instanceIdToInstanceContextMap.values()) {
                 if(parentInstanceId.equals(context.getParentId())) {
                     contexts.add(context);
                 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/f3736f36/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/instance/ApplicationInstance.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/instance/ApplicationInstance.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/instance/ApplicationInstance.java
new file mode 100644
index 0000000..ce3578b
--- /dev/null
+++ 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/instance/ApplicationInstance.java
@@ -0,0 +1,55 @@
+/*
+ * 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.domain.instance;
+
+import org.apache.stratos.messaging.domain.applications.ApplicationStatus;
+import 
org.apache.stratos.messaging.domain.topology.LifeCycleStateTransitionBehavior;
+import 
org.apache.stratos.messaging.domain.topology.lifecycle.LifeCycleStateManager;
+
+import java.util.Stack;
+
+public class ApplicationInstance extends Instance<ApplicationStatus> 
implements LifeCycleStateTransitionBehavior<ApplicationStatus> {
+
+    public ApplicationInstance(String alias, String instanceId) {
+        super(alias, instanceId);
+        this.lifeCycleStateManager = new 
LifeCycleStateManager<ApplicationStatus>(ApplicationStatus.Created,
+                alias + "_" + instanceId);
+    }
+
+    @Override
+    public boolean isStateTransitionValid(ApplicationStatus newState) {
+        return lifeCycleStateManager.isStateTransitionValid(newState);
+    }
+
+    @Override
+    public Stack<ApplicationStatus> getTransitionedStates() {
+        return lifeCycleStateManager.getStateStack();
+    }
+
+    @Override
+    public ApplicationStatus getStatus() {
+        return lifeCycleStateManager.getCurrentState();
+    }
+
+    @Override
+    public boolean setStatus(ApplicationStatus newState) {
+        return this.lifeCycleStateManager.changeState(newState);
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/f3736f36/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/instance/ClusterInstance.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/instance/ClusterInstance.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/instance/ClusterInstance.java
new file mode 100644
index 0000000..8654970
--- /dev/null
+++ 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/instance/ClusterInstance.java
@@ -0,0 +1,56 @@
+/*
+ * 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.domain.instance;
+
+import org.apache.stratos.messaging.domain.topology.ClusterStatus;
+import 
org.apache.stratos.messaging.domain.topology.LifeCycleStateTransitionBehavior;
+import 
org.apache.stratos.messaging.domain.topology.lifecycle.LifeCycleStateManager;
+
+import java.util.Stack;
+
+public class ClusterInstance extends Instance<ClusterStatus> implements 
LifeCycleStateTransitionBehavior<ClusterStatus> {
+
+
+    public ClusterInstance(String alias, String clusterId, String instanceId) {
+        super(alias, instanceId);
+        this.lifeCycleStateManager = new 
LifeCycleStateManager<ClusterStatus>(ClusterStatus.Created,
+                clusterId + "_" + instanceId);
+    }
+
+    @Override
+    public boolean isStateTransitionValid(ClusterStatus newState) {
+        return lifeCycleStateManager.isStateTransitionValid(newState);
+    }
+
+    @Override
+    public Stack<ClusterStatus> getTransitionedStates() {
+        return lifeCycleStateManager.getStateStack();
+    }
+
+    @Override
+    public ClusterStatus getStatus() {
+        return lifeCycleStateManager.getCurrentState();
+    }
+
+    @Override
+    public boolean setStatus(ClusterStatus newState) {
+        return this.lifeCycleStateManager.changeState(newState);
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/f3736f36/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/instance/GroupInstance.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/instance/GroupInstance.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/instance/GroupInstance.java
new file mode 100644
index 0000000..fc3eea5
--- /dev/null
+++ 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/instance/GroupInstance.java
@@ -0,0 +1,55 @@
+/*
+ * 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.domain.instance;
+
+import org.apache.stratos.messaging.domain.applications.GroupStatus;
+import 
org.apache.stratos.messaging.domain.topology.LifeCycleStateTransitionBehavior;
+import 
org.apache.stratos.messaging.domain.topology.lifecycle.LifeCycleStateManager;
+
+import java.util.Stack;
+
+public class GroupInstance extends Instance<GroupStatus> implements 
LifeCycleStateTransitionBehavior<GroupStatus> {
+
+    public GroupInstance(String alias, String instanceId) {
+        super(alias, instanceId);
+        this.lifeCycleStateManager = new 
LifeCycleStateManager<GroupStatus>(GroupStatus.Created,
+                alias + "_" + instanceId);
+    }
+
+    @Override
+    public boolean isStateTransitionValid(GroupStatus newState) {
+        return lifeCycleStateManager.isStateTransitionValid(newState);
+    }
+
+    @Override
+    public Stack<GroupStatus> getTransitionedStates() {
+        return lifeCycleStateManager.getStateStack();
+    }
+
+    @Override
+    public GroupStatus getStatus() {
+        return lifeCycleStateManager.getCurrentState();
+    }
+
+    @Override
+    public boolean setStatus(GroupStatus newState) {
+        return this.lifeCycleStateManager.changeState(newState);
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/f3736f36/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/instance/Instance.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/instance/Instance.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/instance/Instance.java
new file mode 100644
index 0000000..60d15ff
--- /dev/null
+++ 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/instance/Instance.java
@@ -0,0 +1,99 @@
+/*
+ * 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.domain.instance;
+
+import org.apache.stratos.messaging.domain.topology.lifecycle.LifeCycleState;
+import 
org.apache.stratos.messaging.domain.topology.lifecycle.LifeCycleStateManager;
+
+import java.io.Serializable;
+import java.util.Properties;
+
+public abstract class Instance<T extends LifeCycleState> implements 
Serializable {
+
+    // group/cluster level alias
+    protected String alias;
+    // instance id
+    protected String instanceId;
+    // instance properties
+    protected Properties instanceProperties;
+    // Life cycle state manager
+    protected LifeCycleStateManager<T> lifeCycleStateManager;
+    //Parent instance id
+    private String parentId;
+    //Network partition id
+    private String networkPartitionId;
+
+    public Instance(String alias, String instanceId) {
+        this.alias = alias;
+        this.instanceId = instanceId;
+        this.instanceProperties = new Properties();
+    }
+
+    public void addProperty (String name, String value) {
+        instanceProperties.put(name, value);
+    }
+
+    public String getProperty (String name) {
+        return instanceProperties.getProperty(name);
+    }
+
+    public String getAlias() {
+        return alias;
+    }
+
+    public String getInstanceId() {
+        return instanceId;
+    }
+
+    public boolean equals(Object other) {
+        if(other == null || !(other instanceof Instance)) {
+            return false;
+        }
+
+        if(this == other) {
+            return true;
+        }
+
+        Instance that = (Instance)other;
+        return this.alias.equals(that.alias) &&
+                this.instanceId.equals(that.instanceId);
+    }
+
+    public int hashCode () {
+        return alias.hashCode() + instanceId.hashCode();
+    }
+
+    public String getParentId() {
+        return parentId;
+    }
+
+    public void setParentId(String parentId) {
+        this.parentId = parentId;
+    }
+
+    public String getNetworkPartitionId() {
+        return networkPartitionId;
+    }
+
+    public void setNetworkPartitionId(String networkPartitionId) {
+        this.networkPartitionId = networkPartitionId;
+    }
+}
+

http://git-wip-us.apache.org/repos/asf/stratos/blob/f3736f36/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/instance/context/ApplicationInstanceContext.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/instance/context/ApplicationInstanceContext.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/instance/context/ApplicationInstanceContext.java
deleted file mode 100644
index 64d1704..0000000
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/instance/context/ApplicationInstanceContext.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * 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.domain.instance.context;
-
-import org.apache.stratos.messaging.domain.applications.ApplicationStatus;
-import 
org.apache.stratos.messaging.domain.topology.LifeCycleStateTransitionBehavior;
-import 
org.apache.stratos.messaging.domain.topology.lifecycle.LifeCycleStateManager;
-
-import java.util.Stack;
-
-public class ApplicationInstanceContext extends 
InstanceContext<ApplicationStatus> implements 
LifeCycleStateTransitionBehavior<ApplicationStatus> {
-
-    public ApplicationInstanceContext(String alias, String instanceId) {
-        super(alias, instanceId);
-        this.lifeCycleStateManager = new 
LifeCycleStateManager<ApplicationStatus>(ApplicationStatus.Created,
-                alias + "_" + instanceId);
-    }
-
-    @Override
-    public boolean isStateTransitionValid(ApplicationStatus newState) {
-        return lifeCycleStateManager.isStateTransitionValid(newState);
-    }
-
-    @Override
-    public Stack<ApplicationStatus> getTransitionedStates() {
-        return lifeCycleStateManager.getStateStack();
-    }
-
-    @Override
-    public ApplicationStatus getStatus() {
-        return lifeCycleStateManager.getCurrentState();
-    }
-
-    @Override
-    public boolean setStatus(ApplicationStatus newState) {
-        return this.lifeCycleStateManager.changeState(newState);
-    }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/f3736f36/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/instance/context/ClusterInstanceContext.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/instance/context/ClusterInstanceContext.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/instance/context/ClusterInstanceContext.java
deleted file mode 100644
index 93e2d10..0000000
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/instance/context/ClusterInstanceContext.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * 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.domain.instance.context;
-
-import org.apache.stratos.messaging.domain.topology.ClusterStatus;
-import 
org.apache.stratos.messaging.domain.topology.LifeCycleStateTransitionBehavior;
-import 
org.apache.stratos.messaging.domain.topology.lifecycle.LifeCycleStateManager;
-
-import java.util.Stack;
-
-public class ClusterInstanceContext extends InstanceContext<ClusterStatus> 
implements LifeCycleStateTransitionBehavior<ClusterStatus> {
-
-
-    public ClusterInstanceContext(String alias, String clusterId, String 
instanceId) {
-        super(alias, instanceId);
-        this.lifeCycleStateManager = new 
LifeCycleStateManager<ClusterStatus>(ClusterStatus.Created,
-                clusterId + "_" + instanceId);
-    }
-
-    @Override
-    public boolean isStateTransitionValid(ClusterStatus newState) {
-        return lifeCycleStateManager.isStateTransitionValid(newState);
-    }
-
-    @Override
-    public Stack<ClusterStatus> getTransitionedStates() {
-        return lifeCycleStateManager.getStateStack();
-    }
-
-    @Override
-    public ClusterStatus getStatus() {
-        return lifeCycleStateManager.getCurrentState();
-    }
-
-    @Override
-    public boolean setStatus(ClusterStatus newState) {
-        return this.lifeCycleStateManager.changeState(newState);
-    }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/f3736f36/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/instance/context/GroupInstanceContext.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/instance/context/GroupInstanceContext.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/instance/context/GroupInstanceContext.java
deleted file mode 100644
index 56161af..0000000
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/instance/context/GroupInstanceContext.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * 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.domain.instance.context;
-
-import org.apache.stratos.messaging.domain.applications.GroupStatus;
-import 
org.apache.stratos.messaging.domain.topology.LifeCycleStateTransitionBehavior;
-import 
org.apache.stratos.messaging.domain.topology.lifecycle.LifeCycleStateManager;
-
-import java.util.Stack;
-
-public class GroupInstanceContext extends InstanceContext<GroupStatus> 
implements LifeCycleStateTransitionBehavior<GroupStatus> {
-
-    public GroupInstanceContext(String alias, String instanceId) {
-        super(alias, instanceId);
-        this.lifeCycleStateManager = new 
LifeCycleStateManager<GroupStatus>(GroupStatus.Created,
-                alias + "_" + instanceId);
-    }
-
-    @Override
-    public boolean isStateTransitionValid(GroupStatus newState) {
-        return lifeCycleStateManager.isStateTransitionValid(newState);
-    }
-
-    @Override
-    public Stack<GroupStatus> getTransitionedStates() {
-        return lifeCycleStateManager.getStateStack();
-    }
-
-    @Override
-    public GroupStatus getStatus() {
-        return lifeCycleStateManager.getCurrentState();
-    }
-
-    @Override
-    public boolean setStatus(GroupStatus newState) {
-        return this.lifeCycleStateManager.changeState(newState);
-    }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/f3736f36/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/instance/context/InstanceContext.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/instance/context/InstanceContext.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/instance/context/InstanceContext.java
deleted file mode 100644
index 8385de3..0000000
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/instance/context/InstanceContext.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * 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.domain.instance.context;
-
-import org.apache.stratos.messaging.domain.topology.lifecycle.LifeCycleState;
-import 
org.apache.stratos.messaging.domain.topology.lifecycle.LifeCycleStateManager;
-
-import java.io.Serializable;
-import java.util.Properties;
-
-public abstract class InstanceContext<T extends LifeCycleState> implements 
Serializable {
-
-    // group/cluster level alias
-    protected String alias;
-    // instance id
-    protected String instanceId;
-    // instance properties
-    protected Properties instanceProperties;
-    // Life cycle state manager
-    protected LifeCycleStateManager<T> lifeCycleStateManager;
-    //Parent instance id
-    private String parentId;
-    //Network partition id
-    private String networkPartitionId;
-
-    public InstanceContext (String alias, String instanceId) {
-        this.alias = alias;
-        this.instanceId = instanceId;
-        this.instanceProperties = new Properties();
-    }
-
-    public void addProperty (String name, String value) {
-        instanceProperties.put(name, value);
-    }
-
-    public String getProperty (String name) {
-        return instanceProperties.getProperty(name);
-    }
-
-    public String getAlias() {
-        return alias;
-    }
-
-    public String getInstanceId() {
-        return instanceId;
-    }
-
-    public boolean equals(Object other) {
-        if(other == null || !(other instanceof InstanceContext)) {
-            return false;
-        }
-
-        if(this == other) {
-            return true;
-        }
-
-        InstanceContext that = (InstanceContext)other;
-        return this.alias.equals(that.alias) &&
-                this.instanceId.equals(that.instanceId);
-    }
-
-    public int hashCode () {
-        return alias.hashCode() + instanceId.hashCode();
-    }
-
-    public String getParentId() {
-        return parentId;
-    }
-
-    public void setParentId(String parentId) {
-        this.parentId = parentId;
-    }
-
-    public String getNetworkPartitionId() {
-        return networkPartitionId;
-    }
-
-    public void setNetworkPartitionId(String networkPartitionId) {
-        this.networkPartitionId = networkPartitionId;
-    }
-}
-

http://git-wip-us.apache.org/repos/asf/stratos/blob/f3736f36/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Cluster.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Cluster.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Cluster.java
index 156c6b5..1a6aaf6 100644
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Cluster.java
+++ 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Cluster.java
@@ -20,8 +20,7 @@
 package org.apache.stratos.messaging.domain.topology;
 
 import org.apache.commons.lang.StringUtils;
-import 
org.apache.stratos.messaging.domain.instance.context.ClusterInstanceContext;
-import 
org.apache.stratos.messaging.domain.topology.lifecycle.LifeCycleStateManager;
+import org.apache.stratos.messaging.domain.instance.ClusterInstance;
 import org.apache.stratos.messaging.util.Util;
 import org.apache.stratos.messaging.util.bean.type.map.MapAdapter;
 
@@ -59,7 +58,7 @@ public class Cluster implements Serializable {
     private String loadBalanceAlgorithmName;
     @XmlJavaTypeAdapter(MapAdapter.class)
     private Properties properties;
-    protected Map<String, ClusterInstanceContext> 
instanceIdToInstanceContextMap;
+    protected Map<String, ClusterInstance> instanceIdToInstanceContextMap;
     //private LifeCycleStateManager<ClusterStatus> clusterStateManager;
 
     public Cluster(String serviceName, String clusterId, String 
deploymentPolicyName,
@@ -71,7 +70,7 @@ public class Cluster implements Serializable {
         this.setHostNames(new ArrayList<String>());
         this.memberMap = new HashMap<String, Member>();
         this.appId = appId;
-        this.instanceIdToInstanceContextMap = new HashMap<String, 
ClusterInstanceContext>();
+        this.instanceIdToInstanceContextMap = new HashMap<String, 
ClusterInstance>();
         //this.clusterStateManager = new 
LifeCycleStateManager<ClusterStatus>(ClusterStatus.Created, clusterId);
         // temporary; should be removed
         //this.status = ClusterStatus.Created;
@@ -230,12 +229,12 @@ public class Cluster implements Serializable {
         return 
instanceIdToInstanceContextMap.get(applicationInstanceId).setStatus(newStatus);
     }
 
-    public void addInstanceContext (String instanceId, ClusterInstanceContext 
instanceContext) {
+    public void addInstanceContext (String instanceId, ClusterInstance 
instanceContext) {
 
         instanceIdToInstanceContextMap.put(instanceId, instanceContext);
     }
 
-    public ClusterInstanceContext getInstanceContexts (String instanceId) {
+    public ClusterInstance getInstanceContexts (String instanceId) {
         // if map is empty, return null
         if (instanceIdToInstanceContextMap.isEmpty()) {
             return null;

http://git-wip-us.apache.org/repos/asf/stratos/blob/f3736f36/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/ApplicationActivatedMessageProcessor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/ApplicationActivatedMessageProcessor.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/ApplicationActivatedMessageProcessor.java
index 0a2a953..401e206 100644
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/ApplicationActivatedMessageProcessor.java
+++ 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/applications/ApplicationActivatedMessageProcessor.java
@@ -23,7 +23,7 @@ import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.messaging.domain.applications.Application;
 import org.apache.stratos.messaging.domain.applications.ApplicationStatus;
 import org.apache.stratos.messaging.domain.applications.Applications;
-import 
org.apache.stratos.messaging.domain.instance.context.ApplicationInstanceContext;
+import org.apache.stratos.messaging.domain.instance.ApplicationInstance;
 import 
org.apache.stratos.messaging.event.applications.ApplicationActivatedEvent;
 import org.apache.stratos.messaging.message.processor.MessageProcessor;
 import 
org.apache.stratos.messaging.message.processor.applications.updater.ApplicationsUpdater;
@@ -89,7 +89,7 @@ public class ApplicationActivatedMessageProcessor extends 
MessageProcessor {
             return false;
         } else {
             // Apply changes to the applications
-            ApplicationInstanceContext context = 
application.getInstanceContexts(event.getInstanceId());
+            ApplicationInstance context = 
application.getInstanceContexts(event.getInstanceId());
             if(context == null) {
                 if (log.isWarnEnabled()) {
                     log.warn(String.format("Application Instance not exists in 
Group: [AppId] %s" +

Reply via email to