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 <[email protected]> Authored: Fri Nov 21 11:20:12 2014 +0530 Committer: Isuru Haththotuwa <[email protected]> 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(); } } }
