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/11/21 06:50:26 UTC
stratos git commit: putting and getting from the InstanceContext map
Repository: stratos
Updated Branches:
refs/heads/master ba1d6f381 -> b00e58387
putting and getting from the InstanceContext map
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/b00e5838
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/b00e5838
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/b00e5838
Branch: refs/heads/master
Commit: b00e5838795bc4b59379c3256d67470f5d05105f
Parents: ba1d6f3
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Fri Nov 21 11:20:12 2014 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Fri Nov 21 11:20:12 2014 +0530
----------------------------------------------------------------------
.../domain/applications/ParentComponent.java | 82 ++++++++++++++------
1 file changed, 59 insertions(+), 23 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/b00e5838/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 b92a854..664ffa5 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,6 @@
package org.apache.stratos.messaging.domain.applications;
-import org.apache.stratos.messaging.domain.applications.scaling.instance.context.GroupInstanceContext;
import org.apache.stratos.messaging.domain.applications.scaling.instance.context.InstanceContext;
import java.io.Serializable;
@@ -39,13 +38,13 @@ public abstract class ParentComponent implements Serializable {
// Cluster Id map, key = subscription alias for the cartridge type
private Map<String, ClusterDataHolder> aliasToClusterDataMap;
// Group/Cluster Instance Context map
- private Map<AliasAndGroupInstanceId, InstanceContext> aliasAndGroupInstanceIdInstanceContextMap;
+ private Map<AliasAndInstanceId, InstanceContext> aliasAndInstanceIdToInstanceContextMap;
public ParentComponent () {
aliasToGroupMap = new HashMap<String, Group>();
aliasToClusterDataMap = new HashMap<String, ClusterDataHolder>();
- aliasAndGroupInstanceIdInstanceContextMap =
- new HashMap<AliasAndGroupInstanceId, InstanceContext>();
+ aliasAndInstanceIdToInstanceContextMap =
+ new HashMap<AliasAndInstanceId, InstanceContext>();
}
/**
@@ -204,6 +203,43 @@ public abstract class ParentComponent implements Serializable {
return appClusterData;
}
+ /**
+ * Adds InstanceContext of a child to the aliasAndInstanceIdToInstanceContextMap.
+ *
+ * @param alias alias of child
+ * @param instanceId instance id of child
+ * @param instanceContext InstanceContext object
+ */
+ public void addInstanceContext (String alias, String instanceId, InstanceContext instanceContext) {
+
+ if (aliasAndInstanceIdToInstanceContextMap == null) {
+ synchronized (this) {
+ if (aliasAndInstanceIdToInstanceContextMap == null) {
+ aliasAndInstanceIdToInstanceContextMap = new HashMap<AliasAndInstanceId, InstanceContext>();
+ }
+ }
+ }
+
+ aliasAndInstanceIdToInstanceContextMap.put(new AliasAndInstanceId(alias, instanceId), instanceContext);
+ }
+
+ /**
+ * Retrieves InstanceContext obj. for the given alias and instance id
+ *
+ * @param alias alias
+ * @param instanceId instance id
+ * @return InstanceContext obj if exists, else null
+ */
+ public InstanceContext getInstanceContext (String alias, String instanceId) {
+
+ // if the map is not initialized, return null
+ if (aliasAndInstanceIdToInstanceContextMap == null) {
+ return null;
+ }
+
+ return aliasAndInstanceIdToInstanceContextMap.get(new AliasAndInstanceId(alias, instanceId));
+ }
+
private void getClusterData (Set<ClusterDataHolder> clusterData, Collection<Group> groups) {
for (Group group : groups) {
@@ -216,35 +252,35 @@ public abstract class ParentComponent implements Serializable {
}
}
- private class AliasAndGroupInstanceId {
+ private class AliasAndInstanceId {
- private String groupAlias;
- private String groupInstanceId;
+ private String alias;
+ private String instanceId;
- public AliasAndGroupInstanceId (String groupAlias, String groupInstanceId) {
- this.groupAlias = groupAlias;
- this.groupInstanceId = groupInstanceId;
+ public AliasAndInstanceId(String alias, String instanceId) {
+ this.alias = alias;
+ this.instanceId = instanceId;
}
- public String getGroupAlias() {
- return groupAlias;
+ public String getAlias() {
+ return alias;
}
- public void setGroupAlias(String groupAlias) {
- this.groupAlias = groupAlias;
+ public void setAlias(String alias) {
+ this.alias = alias;
}
- public String getGroupInstanceId() {
- return groupInstanceId;
+ public String getInstanceId() {
+ return instanceId;
}
- public void setGroupInstanceId(String groupInstanceId) {
- this.groupInstanceId = groupInstanceId;
+ public void setInstanceId(String instanceId) {
+ this.instanceId = instanceId;
}
public boolean equals(Object other) {
- if(other == null || !(other instanceof AliasAndGroupInstanceId)) {
+ if(other == null || !(other instanceof AliasAndInstanceId)) {
return false;
}
@@ -252,13 +288,13 @@ public abstract class ParentComponent implements Serializable {
return true;
}
- AliasAndGroupInstanceId that = (AliasAndGroupInstanceId)other;
- return this.groupAlias.equals(that.groupAlias) &&
- this.groupInstanceId.equals(that.groupInstanceId);
+ AliasAndInstanceId that = (AliasAndInstanceId)other;
+ return this.alias.equals(that.alias) &&
+ this.instanceId.equals(that.instanceId);
}
public int hashCode () {
- return groupAlias.hashCode() + groupInstanceId.hashCode();
+ return alias.hashCode() + instanceId.hashCode();
}
}
}