You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ni...@apache.org on 2013/12/16 06:28:42 UTC

[2/2] git commit: making PartitonManager Singleton, efficiently

making PartitonManager Singleton, efficiently


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

Branch: refs/heads/master
Commit: 902f06c654331f4f96c9247946e878f67ac82d70
Parents: a1b99dd
Author: Nirmal Fernando <ni...@apache.org>
Authored: Mon Dec 16 10:16:14 2013 +0530
Committer: Nirmal Fernando <ni...@apache.org>
Committed: Mon Dec 16 10:17:23 2013 +0530

----------------------------------------------------------------------
 .../autoscaler/partition/PartitionManager.java  | 69 ++------------------
 1 file changed, 7 insertions(+), 62 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/902f06c6/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java
index b80e46e..55205a9 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/partition/PartitionManager.java
@@ -43,39 +43,24 @@ private static final Log log = LogFactory.getLog(PartitionManager.class);
 	// Partitions against partitionID
 	private static Map<String,Partition> partitions = new HashMap<String, Partition>();
 	
-//	private List<NetworkPartitionContext> networkPartitions;
-	
-	/*
-	 * Key - partition id
-	 * Value - reference to NetworkPartition 
-	 */
-//	private Map<String, NetworkPartitionContext> partitionIdToNetworkPartition;
-
-
 	/*
 	 * Key - network partition id
 	 * Value - reference to NetworkPartition
 	 */
 	private Map<String, NetworkPartitionContext> networkPartitionContexts;
 
-	private static PartitionManager instance;
+	private static class Holder {
+        static final PartitionManager INSTANCE = new PartitionManager();
+    }
+	
+	public static PartitionManager getInstance(){
+	    return Holder.INSTANCE;
+	}
 	
 	private PartitionManager(){
         networkPartitionContexts = new HashMap<String, NetworkPartitionContext>();
-//	    networkPartitions = new ArrayList<NetworkPartitionContext>();
-//	    partitionIdToNetworkPartition = new HashMap<String, NetworkPartitionContext>();
 	}
 	
-	public static PartitionManager getInstance(){
-	    if (instance == null) {
-            synchronized (PartitionManager.class) {
-                if (instance == null) {
-                    instance = new PartitionManager();
-                }
-            }
-        }
-        return instance;
-	}
 	
 	public boolean partitionExist(String partitionId){
 		return partitions.containsKey(partitionId);
@@ -110,49 +95,10 @@ private static final Log log = LogFactory.getLog(PartitionManager.class);
 		partitions.put(partition.getId(), partition);
 	}
 
-//	public NetworkPartitionContext getNetworkPartitionOfPartition(String partitionId) {
-//	    return this.partitionIdToNetworkPartition.get(partitionId);
-//	}
-	
 	public NetworkPartitionContext getNetworkPartition(String networkPartitionId) {
 	    return this.networkPartitionContexts.get(networkPartitionId);
 	}
 
-//	public List<NetworkPartitionContext> getAllNetworkPartitions() {
-//	    return this.networkPartitions;
-//	}
-
-//	/**
-//	 * TODO make {@link NetworkPartitionContext}s extensible.
-//	 * @param partition
-//	 */
-//	protected NetworkPartitionContext getOrAddNetworkPartition(Partition partition) {
-//
-//	    if(partition == null) {
-//	        return null;
-//	    }
-//	    String provider = partition.getProvider();
-//	    String region = null;
-//	    Properties properties = partition.getProperties();
-//        if (properties != null) {
-//            for (Property prop : properties.getProperties()) {
-//                if(Constants.REGION_PROPERTY.equals(prop.getName())) {
-//                    region = prop.getValue();
-//                    break;
-//                }
-//            }
-//        }
-//        NetworkPartitionContext networkPar = new NetworkPartitionContext(provider, region);
-//        if(!this.networkPartitions.contains(networkPar)){
-//            this.networkPartitions.add(networkPar);
-//        } else {
-//            int idx = this.networkPartitions.indexOf(networkPar);
-//            networkPar = this.networkPartitions.get(idx);
-//        }
-//
-//        return networkPar;
-//    }
-
     public Partition getPartitionById(String partitionId){
 		if(partitionExist(partitionId))
 			return partitions.get(partitionId);
@@ -161,7 +107,6 @@ private static final Log log = LogFactory.getLog(PartitionManager.class);
 	}
 	
 	public Partition[] getAllPartitions(){
-		//return Collections.unmodifiableList(new ArrayList<Partition>(partitions.values()));
 		return partitions.values().toArray(new Partition[0]);
 		
 	}