Repository: stratos
Updated Branches:
  refs/heads/master 98872dbb3 -> e1c34266a


Moving cloud controller configuration parameters from cloud controller context 
to cloud controller config


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

Branch: refs/heads/master
Commit: e1c34266ab6e332f358ed30bb7a4ac360065d095
Parents: 98872db
Author: Imesh Gunaratne <[email protected]>
Authored: Sun Nov 30 14:35:01 2014 +0530
Committer: Imesh Gunaratne <[email protected]>
Committed: Sun Nov 30 14:35:26 2014 +0530

----------------------------------------------------------------------
 .../config/CloudControllerConfig.java           | 112 +++++++++++++++++++
 .../parser/CloudControllerConfigParser.java     |  33 +++---
 .../context/CloudControllerContext.java         |  82 ++------------
 .../deployers/CloudControllerDeployer.java      |  15 ++-
 ...inerClusterContextToKubernetesContainer.java |   5 +-
 ...tainerClusterContextToKubernetesService.java |   6 +-
 ...erClusterContextToReplicationController.java |   4 +-
 .../CloudControllerServiceComponent.java        |   8 --
 .../CartridgeInstanceDataPublisher.java         |   7 +-
 .../TopologySynchronizerTaskScheduler.java      |   6 +-
 .../messaging/topology/TopologyBuilder.java     |  10 +-
 .../topology/TopologySynchronizerTask.java      |   5 +-
 .../impl/CloudControllerServiceImpl.java        |   3 +-
 .../controller/util/CloudControllerUtil.java    |   3 +-
 .../service/axiom/AxiomXpathParserTest.java     |  17 ++-
 .../balancer/context/LoadBalancerContext.java   |   1 +
 16 files changed, 178 insertions(+), 139 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/e1c34266/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/config/CloudControllerConfig.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/config/CloudControllerConfig.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/config/CloudControllerConfig.java
new file mode 100644
index 0000000..6af58fb
--- /dev/null
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/config/CloudControllerConfig.java
@@ -0,0 +1,112 @@
+/*
+ * 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.cloud.controller.config;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.cloud.controller.domain.DataPublisherConfig;
+import org.apache.stratos.cloud.controller.domain.IaasProvider;
+import org.apache.stratos.cloud.controller.domain.TopologyConfig;
+
+import java.util.List;
+
+/**
+ * Cloud controller config parser parse the cloud-controller.xml and stores
+ * the configuration in this singleton class to be used in the runtime.
+ */
+public class CloudControllerConfig {
+
+    private static final Log log = 
LogFactory.getLog(CloudControllerConfig.class);
+
+    private static volatile CloudControllerConfig instance;
+
+    private List<IaasProvider> iaasProviders;
+    private boolean enableBAMDataPublisher;
+    private DataPublisherConfig dataPubConfig;
+    private boolean enableTopologySync;
+    private TopologyConfig topologyConfig;
+
+    private CloudControllerConfig() {
+    }
+
+    public static CloudControllerConfig getInstance() {
+        if (instance == null) {
+            synchronized (CloudControllerConfig.class) {
+                if (instance == null) {
+                    instance = new CloudControllerConfig();
+                }
+            }
+        }
+        return instance;
+    }
+
+    public void setIaasProviders(List<IaasProvider> iaasProviders) {
+        this.iaasProviders = iaasProviders;
+    }
+
+    public List<IaasProvider> getIaasProviders() {
+        return iaasProviders;
+    }
+
+    public IaasProvider getIaasProvider(String type) {
+        if(type == null) {
+            return null;
+        }
+
+        for (IaasProvider iaasProvider : iaasProviders) {
+            if(type.equals(iaasProvider.getType())) {
+                return iaasProvider;
+            }
+        }
+        return null;
+    }
+
+    public void setEnableBAMDataPublisher(boolean enableBAMDataPublisher) {
+        this.enableBAMDataPublisher = enableBAMDataPublisher;
+    }
+
+    public boolean isBAMDataPublisherEnabled() {
+        return enableBAMDataPublisher;
+    }
+
+    public void setDataPubConfig(DataPublisherConfig dataPubConfig) {
+        this.dataPubConfig = dataPubConfig;
+    }
+
+    public DataPublisherConfig getDataPubConfig() {
+        return dataPubConfig;
+    }
+
+    public void setEnableTopologySync(boolean enableTopologySync) {
+        this.enableTopologySync = enableTopologySync;
+    }
+
+    public boolean isTopologySyncEnabled() {
+        return enableTopologySync;
+    }
+
+    public void setTopologyConfig(TopologyConfig topologyConfig) {
+        this.topologyConfig = topologyConfig;
+    }
+
+    public TopologyConfig getTopologyConfig() {
+        return topologyConfig;
+    }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/e1c34266/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/config/parser/CloudControllerConfigParser.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/config/parser/CloudControllerConfigParser.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/config/parser/CloudControllerConfigParser.java
index f657ef4..8e9ba26 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/config/parser/CloudControllerConfigParser.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/config/parser/CloudControllerConfigParser.java
@@ -16,6 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+
 package org.apache.stratos.cloud.controller.config.parser;
 
 import java.util.ArrayList;
@@ -26,7 +27,7 @@ import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMNode;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.cloud.controller.context.CloudControllerContext;
+import org.apache.stratos.cloud.controller.config.CloudControllerConfig;
 import org.apache.stratos.cloud.controller.util.AxiomXpathParserUtil;
 import 
org.apache.stratos.cloud.controller.exception.MalformedConfigurationFileException;
 import org.apache.stratos.cloud.controller.domain.DataPublisherConfig;
@@ -61,10 +62,10 @@ public class CloudControllerConfigParser {
 
 
     private static void extractIaasProviders(OMElement elt, List<OMNode> 
nodeList) {
-        List<IaasProvider> iaasProviders = 
CloudControllerContext.getInstance().getIaasProviders();
+        List<IaasProvider> iaasProviders = 
CloudControllerConfig.getInstance().getIaasProviders();
 
         if (iaasProviders == null) {
-            CloudControllerContext.getInstance()
+            CloudControllerConfig.getInstance()
                     .setIaasProviders((iaasProviders = new 
ArrayList<IaasProvider>()));
         }
 
@@ -86,12 +87,12 @@ public class CloudControllerConfigParser {
             return;
         }
 
-        CloudControllerContext dataHolder = 
CloudControllerContext.getInstance();
+        CloudControllerConfig config = CloudControllerConfig.getInstance();
         // get enable attribute
         boolean isEnable =
                 Boolean.parseBoolean(element.getAttributeValue(new QName(
                         CloudControllerConstants.ENABLE_ATTR)));
-        dataHolder.setEnableBAMDataPublisher(isEnable);
+        config.setEnableBAMDataPublisher(isEnable);
 
         if (isEnable) {
             // get bam server info
@@ -100,8 +101,8 @@ public class CloudControllerConfigParser {
                             CloudControllerConstants.BAM_SERVER_ELEMENT);
             OMElement elt;
 
-            DataPublisherConfig config = new DataPublisherConfig();
-            dataHolder.setDataPubConfig(config);
+            DataPublisherConfig dataPublisherConfig = new 
DataPublisherConfig();
+            config.setDataPubConfig(dataPublisherConfig);
             
             if (childElement != null) {
                 // set bam user name
@@ -109,7 +110,7 @@ public class CloudControllerConfigParser {
                         AxiomXpathParserUtil.getFirstChildElement(childElement,
                                 
CloudControllerConstants.BAM_SERVER_ADMIN_USERNAME_ELEMENT);
                 if (elt != null) {
-                    config.setBamUsername(elt.getText());
+                    dataPublisherConfig.setBamUsername(elt.getText());
                 }
                 // set bam password
                 elt =
@@ -123,7 +124,7 @@ public class CloudControllerConfigParser {
                     }
 
                     if (password != null) {
-                        config.setBamPassword(password);
+                        dataPublisherConfig.setBamPassword(password);
                     }
                 }
             }
@@ -131,7 +132,7 @@ public class CloudControllerConfigParser {
             // set cron
             childElement = AxiomXpathParserUtil.getFirstChildElement(element, 
CloudControllerConstants.CRON_ELEMENT);
             if (childElement != null) {
-                config.setDataPublisherCron(childElement.getText());
+                
dataPublisherConfig.setDataPublisherCron(childElement.getText());
             }
 
             // set cassandra info
@@ -141,13 +142,13 @@ public class CloudControllerConfigParser {
                 // set connection url
                 elt = AxiomXpathParserUtil.getFirstChildElement(childElement, 
CloudControllerConstants.CONNECTION_URL_ELEMENT);
                 if (elt != null) {
-                    config.setCassandraConnUrl(elt.getText());
+                    dataPublisherConfig.setCassandraConnUrl(elt.getText());
                 }
 
                 // set user name
                 elt = AxiomXpathParserUtil.getFirstChildElement(childElement, 
CloudControllerConstants.USER_NAME_ELEMENT);
                 if (elt != null) {
-                    config.setCassandraUser(elt.getText());
+                    dataPublisherConfig.setCassandraUser(elt.getText());
                 }
                 // set password
                 elt = AxiomXpathParserUtil.getFirstChildElement(childElement, 
CloudControllerConstants.PASSWORD_ELEMENT);
@@ -159,7 +160,7 @@ public class CloudControllerConfigParser {
                     }
 
                     if (password != null) {
-                        config.setCassandraPassword(password);
+                        dataPublisherConfig.setCassandraPassword(password);
                     }
                 }
             }
@@ -179,9 +180,9 @@ public class CloudControllerConfigParser {
                 Boolean.parseBoolean(element.getAttributeValue(new QName(
                         CloudControllerConstants.ENABLE_ATTR)));
 
-        CloudControllerContext dataHolder = 
CloudControllerContext.getInstance();
+        CloudControllerConfig config = CloudControllerConfig.getInstance();
 
-        dataHolder.setEnableTopologySync(isEnable);
+        config.setEnableTopologySync(isEnable);
         if (!isEnable) {
             if (log.isWarnEnabled()) {
                 log.warn("Topology synchronization is disabled!");
@@ -193,7 +194,7 @@ public class CloudControllerConfigParser {
             // load properties
             IaasProviderConfigParser.loadProperties(FILE_NAME, element, 
topologyConfig.getProperties());
 
-            dataHolder.setTopologyConfig(topologyConfig);
+            config.setTopologyConfig(topologyConfig);
         }
     }
     

http://git-wip-us.apache.org/repos/asf/stratos/blob/e1c34266/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/context/CloudControllerContext.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/context/CloudControllerContext.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/context/CloudControllerContext.java
index c967680..9a1cdc2 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/context/CloudControllerContext.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/context/CloudControllerContext.java
@@ -42,7 +42,7 @@ public class CloudControllerContext implements Serializable{
     private static final long serialVersionUID = -2662307358852779897L;
     private static final Log log = 
LogFactory.getLog(CloudControllerContext.class);
 
-       private static volatile CloudControllerContext instance;
+    private static volatile CloudControllerContext instance;
 
        /* We keep following maps in order to make the look up time, small. */
        
@@ -98,32 +98,28 @@ public class CloudControllerContext implements Serializable{
         */
        private List<ServiceGroup> serviceGroups;
 
-       /**
-        * List of IaaS Providers.
-        */
-       private List<IaasProvider> iaasProviders;
-
        private String serializationDir;
-       private boolean enableBAMDataPublisher;
-       private transient DataPublisherConfig dataPubConfig;
-       private boolean enableTopologySync;
-       private transient TopologyConfig topologyConfig;
-       private transient AsyncDataPublisher dataPublisher;
        private String streamId;
        private boolean isPublisherRunning;
        private boolean isTopologySyncRunning;
     private boolean clustered;
 
+    private transient AsyncDataPublisher dataPublisher;
+
     private CloudControllerContext() {
+        // Initialize cloud controller context
         clusterIdToMemberContext = new ConcurrentHashMap<String, 
List<MemberContext>>();
         memberIdToContext = new ConcurrentHashMap<String, MemberContext>();
         memberIdToScheduledTask = new ConcurrentHashMap<String, 
ScheduledFuture<?>>();
         kubClusterIdToKubClusterContext = new ConcurrentHashMap<String, 
KubernetesClusterContext>();
         clusterIdToContext = new ConcurrentHashMap<String, ClusterContext>();
         cartridgeTypeToPartitionIds = new ConcurrentHashMap<String, 
List<String>>();
-
         cartridges = new ArrayList<Cartridge>();
         serviceGroups = new ArrayList<ServiceGroup>();
+
+        if (log.isInfoEnabled()) {
+            log.info("Cloud controller context initialized locally");
+        }
     }
 
        public static CloudControllerContext getInstance() {
@@ -135,7 +131,7 @@ public class CloudControllerContext implements Serializable{
                                                if (obj instanceof 
CloudControllerContext) {
                                                        instance = 
(CloudControllerContext) obj;
                                                }
-                                       } 
+                                       }
                                }
                                if(instance == null) {
                                        instance = new CloudControllerContext();
@@ -168,12 +164,10 @@ public class CloudControllerContext implements 
Serializable{
                                return cartridge;
                        }
                }
-
                return null;
        }
        
        public void addCartridge(Cartridge newCartridges) {
-       
                cartridges.add(newCartridges);
        }
 
@@ -203,27 +197,6 @@ public class CloudControllerContext implements 
Serializable{
                        this.serviceGroups.removeAll(serviceGroup);
                }
        }
-       
-       public IaasProvider getIaasProvider(String type) {
-           if(type == null) {
-               return null;
-           }
-           
-           for (IaasProvider iaasProvider : iaasProviders) {
-            if(type.equals(iaasProvider.getType())) {
-                return iaasProvider;
-            }
-        }
-           return null;
-       }
-
-       public List<IaasProvider> getIaasProviders() {
-               return iaasProviders;
-       }
-
-       public void setIaasProviders(List<IaasProvider> iaasProviders) {
-               this.iaasProviders = iaasProviders;
-       }
 
        public String getSerializationDir() {
                return serializationDir;
@@ -249,14 +222,6 @@ public class CloudControllerContext implements 
Serializable{
                this.streamId = streamId;
        }
 
-       public boolean getEnableBAMDataPublisher() {
-               return enableBAMDataPublisher;
-       }
-
-       public void setEnableBAMDataPublisher(boolean enableBAMDataPublisher) {
-               this.enableBAMDataPublisher = enableBAMDataPublisher;
-       }
-
        public boolean isPublisherRunning() {
                return isPublisherRunning;
        }
@@ -265,14 +230,6 @@ public class CloudControllerContext implements 
Serializable{
                this.isPublisherRunning = isPublisherRunning;
        }
 
-       public boolean getEnableTopologySync() {
-               return enableTopologySync;
-       }
-
-       public void setEnableTopologySync(boolean enableTopologySync) {
-               this.enableTopologySync = enableTopologySync;
-       }
-
        public boolean isTopologySyncRunning() {
            return isTopologySyncRunning;
     }
@@ -281,22 +238,6 @@ public class CloudControllerContext implements 
Serializable{
            this.isTopologySyncRunning = isTopologySyncRunning;
     }
 
-       public TopologyConfig getTopologyConfig() {
-               return topologyConfig;
-       }
-
-       public void setTopologyConfig(TopologyConfig topologyConfig) {
-               this.topologyConfig = topologyConfig;
-       }
-
-    public DataPublisherConfig getDataPubConfig() {
-        return dataPubConfig;
-    }
-
-    public void setDataPubConfig(DataPublisherConfig dataPubConfig) {
-        this.dataPubConfig = dataPubConfig;
-    }
-    
     public void addMemberContext(MemberContext ctxt) {
         memberIdToContext.put(ctxt.getMemberId(), ctxt);
         
@@ -362,7 +303,6 @@ public class CloudControllerContext implements Serializable{
         stopTask(memberIdToScheduledTask.remove(memberId));
         
         return returnedCtxt;
-        
     }
     
     private void stopTask(ScheduledFuture<?> task) {
@@ -474,10 +414,6 @@ public class CloudControllerContext implements 
Serializable{
         this.memberIdToScheduledTask = memberIdToScheduledTask;
     }
 
-    public void setClustered(boolean clustered) {
-        this.clustered = clustered;
-    }
-
     public boolean isClustered() {
         return clustered;
     }

http://git-wip-us.apache.org/repos/asf/stratos/blob/e1c34266/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployers/CloudControllerDeployer.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployers/CloudControllerDeployer.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployers/CloudControllerDeployer.java
index 5684ef8..6c299bb 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployers/CloudControllerDeployer.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployers/CloudControllerDeployer.java
@@ -25,6 +25,7 @@ import org.apache.axis2.deployment.DeploymentException;
 import org.apache.axis2.deployment.repository.util.DeploymentFileData;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.cloud.controller.config.CloudControllerConfig;
 import org.apache.stratos.cloud.controller.context.CloudControllerContext;
 import org.apache.stratos.cloud.controller.util.AxiomXpathParserUtil;
 import 
org.apache.stratos.cloud.controller.config.parser.CloudControllerConfigParser;
@@ -74,7 +75,7 @@ public class CloudControllerDeployer extends AbstractDeployer 
{
             // update map
             fileToIaasProviderListMap.put(deploymentFileData.getAbsolutePath(),
                                           new ArrayList<IaasProvider>(
-                                                                      
CloudControllerContext.getInstance()
+                                                                      
CloudControllerConfig.getInstance()
                                                                                
             .getIaasProviders()));
 
             log.info("Successfully deployed the cloud-controller XML file 
located at " +
@@ -87,23 +88,21 @@ public class CloudControllerDeployer extends 
AbstractDeployer {
 
         if (file.contains(FILE_NAME)) {
             // reset
-            CloudControllerContext dataHolder = 
CloudControllerContext.getInstance();
-            dataHolder.setSerializationDir("");
+            CloudControllerContext context = 
CloudControllerContext.getInstance();
+            context.setSerializationDir("");
 
             // grab the entry from Map
             if (fileToIaasProviderListMap.containsKey(file)) {
                 // remove 'em
-                
dataHolder.getIaasProviders().removeAll(fileToIaasProviderListMap.get(file));
+                
CloudControllerConfig.getInstance().getIaasProviders().removeAll(fileToIaasProviderListMap.get(file));
 
                 log.info("Successfully undeployed the cloud-controller XML 
file specified at " +
                          file);
             }
 
-            dataHolder.setDataPubConfig(null);
-            dataHolder.setTopologyConfig(null);
-
+            CloudControllerConfig.getInstance().setDataPubConfig(null);
+            CloudControllerConfig.getInstance().setTopologyConfig(null);
         }
-
     }
 
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/e1c34266/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/ContainerClusterContextToKubernetesContainer.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/ContainerClusterContextToKubernetesContainer.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/ContainerClusterContextToKubernetesContainer.java
index c33748a..4c80d4f 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/ContainerClusterContextToKubernetesContainer.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/ContainerClusterContextToKubernetesContainer.java
@@ -45,17 +45,16 @@ import com.google.common.base.Function;
 public class ContainerClusterContextToKubernetesContainer implements 
Function<ContainerClusterContext, Container> {
 
     private static final Log log = 
LogFactory.getLog(ContainerClusterContextToKubernetesContainer.class);
-    private CloudControllerContext dataHolder = 
CloudControllerContext.getInstance();
 
     @Override
     public Container apply(ContainerClusterContext memberContext) {
         String clusterId = memberContext.getClusterId();
-        ClusterContext clusterContext = 
dataHolder.getClusterContext(clusterId);
+        ClusterContext clusterContext = 
CloudControllerContext.getInstance().getClusterContext(clusterId);
 
         Container container = new Container();
         container.setName(getCompatibleName(clusterContext.getHostName()));
 
-        Cartridge cartridge = 
dataHolder.getCartridge(clusterContext.getCartridgeType());
+        Cartridge cartridge = 
CloudControllerContext.getInstance().getCartridge(clusterContext.getCartridgeType());
 
         if (cartridge == null) {
             log.error("Cannot find a Cartridge of type : " + 
clusterContext.getCartridgeType());

http://git-wip-us.apache.org/repos/asf/stratos/blob/e1c34266/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/ContainerClusterContextToKubernetesService.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/ContainerClusterContextToKubernetesService.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/ContainerClusterContextToKubernetesService.java
index 282e5af..50f61bd 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/ContainerClusterContextToKubernetesService.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/ContainerClusterContextToKubernetesService.java
@@ -35,17 +35,15 @@ import com.google.common.base.Function;
  */
 public class ContainerClusterContextToKubernetesService implements 
Function<ContainerClusterContext, Service> {
 
-    private CloudControllerContext dataHolder = 
CloudControllerContext.getInstance();
-
     @Override
     public Service apply(ContainerClusterContext memberContext) {
 
         String clusterId = memberContext.getClusterId();
-        ClusterContext clusterContext = 
dataHolder.getClusterContext(clusterId);
+        ClusterContext clusterContext = 
CloudControllerContext.getInstance().getClusterContext(clusterId);
 
         String kubernetesClusterId = CloudControllerUtil.getProperty(
                 clusterContext.getProperties(), 
StratosConstants.KUBERNETES_CLUSTER_ID);
-        KubernetesClusterContext kubClusterContext = dataHolder
+        KubernetesClusterContext kubClusterContext = 
CloudControllerContext.getInstance()
                 .getKubernetesClusterContext(kubernetesClusterId);
 
         Service service = new Service();

http://git-wip-us.apache.org/repos/asf/stratos/blob/e1c34266/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/ContainerClusterContextToReplicationController.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/ContainerClusterContextToReplicationController.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/ContainerClusterContextToReplicationController.java
index 39833e2..e01c474 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/ContainerClusterContextToReplicationController.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/ContainerClusterContextToReplicationController.java
@@ -40,13 +40,11 @@ import com.google.common.base.Function;
 public class ContainerClusterContextToReplicationController implements
         Function<ContainerClusterContext, ReplicationController> {
 
-    private CloudControllerContext dataHolder = 
CloudControllerContext.getInstance();
-
     @Override
     public ReplicationController apply(ContainerClusterContext memberContext) {
 
         String clusterId = memberContext.getClusterId();
-        ClusterContext clusterContext = 
dataHolder.getClusterContext(clusterId);
+        ClusterContext clusterContext = 
CloudControllerContext.getInstance().getClusterContext(clusterId);
 
         ReplicationController contr = new ReplicationController();
         contr.setId(clusterContext.getClusterId());

http://git-wip-us.apache.org/repos/asf/stratos/blob/e1c34266/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
index 8f826e3..9d8a7c5 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/internal/CloudControllerServiceComponent.java
@@ -69,14 +69,6 @@ public class CloudControllerServiceComponent {
 
     protected void activate(ComponentContext context) {
         try {
-            ClusteringAgent clusteringAgent = 
ServiceReferenceHolder.getInstance().getAxisConfiguration().getClusteringAgent();
-            boolean clusteringEnabled = (clusteringAgent != null);
-            
CloudControllerContext.getInstance().setClustered(clusteringEnabled);
-
-            if(log.isInfoEnabled()) {
-                log.info(String.format("Cloud controller clustering is %s", 
(clusteringEnabled ? "enabled" : "disabled")));
-            }
-
             applicationTopicReceiver = new ApplicationTopicReceiver();
             Thread tApplicationTopicReceiver = new 
Thread(applicationTopicReceiver);
             tApplicationTopicReceiver.start();

http://git-wip-us.apache.org/repos/asf/stratos/blob/e1c34266/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/publisher/CartridgeInstanceDataPublisher.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/publisher/CartridgeInstanceDataPublisher.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/publisher/CartridgeInstanceDataPublisher.java
index 9f5b4bc..5f27a7a 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/publisher/CartridgeInstanceDataPublisher.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/publisher/CartridgeInstanceDataPublisher.java
@@ -20,6 +20,7 @@ package 
org.apache.stratos.cloud.controller.messaging.publisher;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.cloud.controller.config.CloudControllerConfig;
 import org.apache.stratos.cloud.controller.context.CloudControllerContext;
 import org.apache.stratos.cloud.controller.exception.CloudControllerException;
 import org.apache.stratos.cloud.controller.domain.Cartridge;
@@ -56,7 +57,7 @@ public class CartridgeInstanceDataPublisher {
                                String serviceName,
                                String status,
                                NodeMetadata metadata) {
-        if(!CloudControllerContext.getInstance().getEnableBAMDataPublisher()){
+        if(!CloudControllerConfig.getInstance().isBAMDataPublisherEnabled()){
             return;
         }
         log.debug(CloudControllerConstants.DATA_PUB_TASK_NAME+" cycle 
started.");
@@ -182,8 +183,8 @@ public class CartridgeInstanceDataPublisher {
         String trustStorePath = 
serverConfig.getFirstProperty("Security.TrustStore.Location");
         String trustStorePassword = 
serverConfig.getFirstProperty("Security.TrustStore.Password");
         String bamServerUrl = serverConfig.getFirstProperty("BamServerURL");
-        String adminUsername = 
CloudControllerContext.getInstance().getDataPubConfig().getBamUsername();
-        String adminPassword = 
CloudControllerContext.getInstance().getDataPubConfig().getBamPassword();
+        String adminUsername = 
CloudControllerConfig.getInstance().getDataPubConfig().getBamUsername();
+        String adminPassword = 
CloudControllerConfig.getInstance().getDataPubConfig().getBamPassword();
 
         System.setProperty("javax.net.ssl.trustStore", trustStorePath);
         System.setProperty("javax.net.ssl.trustStorePassword", 
trustStorePassword);

http://git-wip-us.apache.org/repos/asf/stratos/blob/e1c34266/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/publisher/TopologySynchronizerTaskScheduler.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/publisher/TopologySynchronizerTaskScheduler.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/publisher/TopologySynchronizerTaskScheduler.java
index 7b473f8..ccadf58 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/publisher/TopologySynchronizerTaskScheduler.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/publisher/TopologySynchronizerTaskScheduler.java
@@ -23,6 +23,7 @@ import java.util.HashMap;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.cloud.controller.config.CloudControllerConfig;
 import org.apache.stratos.cloud.controller.context.CloudControllerContext;
 import 
org.apache.stratos.cloud.controller.messaging.topology.TopologySynchronizerTask;
 import org.apache.stratos.cloud.controller.util.CloudControllerConstants;
@@ -39,8 +40,6 @@ public class TopologySynchronizerTaskScheduler {
 
     private static final Log log = 
LogFactory.getLog(TopologySynchronizerTaskScheduler.class);
 
-    private static final CloudControllerContext dataHolder = 
CloudControllerContext.getInstance();
-
     public static void schedule(TaskService taskService) {
         TaskManager taskManager = null;
         try {
@@ -51,7 +50,8 @@ public class TopologySynchronizerTaskScheduler {
 
                 // Register task
                 taskManager = 
taskService.getTaskManager(CloudControllerConstants.TOPOLOGY_SYNC_TASK_TYPE);
-                String cronProp = 
dataHolder.getTopologyConfig().getProperty(CloudControllerConstants.CRON_PROPERTY);
+                String cronProp = CloudControllerConfig.getInstance().
+                        
getTopologyConfig().getProperty(CloudControllerConstants.CRON_PROPERTY);
                                String cron = cronProp != null ?  cronProp 
:CloudControllerConstants.TOPOLOGY_SYNC_CRON ;
                 TaskInfo.TriggerInfo triggerInfo = new 
TaskInfo.TriggerInfo(cron);
                 TaskInfo taskInfo = new 
TaskInfo(CloudControllerConstants.TOPOLOGY_SYNC_TASK_NAME,

http://git-wip-us.apache.org/repos/asf/stratos/blob/e1c34266/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java
index 7dd2b22..739469b 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java
@@ -183,7 +183,7 @@ public class TopologyBuilder {
         TopologyManager.acquireWriteLock();
 
         List<Cluster> removedClusters = new ArrayList<Cluster>();
-        CloudControllerContext dataHolder = 
CloudControllerContext.getInstance();
+        CloudControllerContext context = CloudControllerContext.getInstance();
         try {
             Topology topology = TopologyManager.getTopology();
 
@@ -197,12 +197,12 @@ public class TopologyBuilder {
                         log.warn("Service " + aClusterData.getServiceType() + 
" not found, unable to remove Cluster " + aClusterData.getClusterId());
                     }
                     // remove runtime data
-                    
dataHolder.removeClusterContext(aClusterData.getClusterId());
+                    context.removeClusterContext(aClusterData.getClusterId());
 
                     log.info("Removed application [ " + appId + " ]'s Cluster 
[ " + aClusterData.getClusterId() + " ] from the topology");
                 }
                 // persist runtime data changes
-                persist(dataHolder);
+                persist(context);
             } else {
                 log.info("No cluster data found for application " + appId + " 
to remove");
             }
@@ -220,10 +220,10 @@ public class TopologyBuilder {
     /**
      * Persist data in registry.
      */
-    private static void persist(CloudControllerContext dataHolder) {
+    private static void persist(CloudControllerContext context) {
         try {
             RegistryManager.getInstance().persist(
-                    dataHolder);
+                    context);
         } catch (RegistryException e) {
 
             String msg = "Failed to persist the Cloud Controller data in 
registry. Further, transaction roll back also failed.";

http://git-wip-us.apache.org/repos/asf/stratos/blob/e1c34266/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologySynchronizerTask.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologySynchronizerTask.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologySynchronizerTask.java
index 733214f..94843bc 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologySynchronizerTask.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologySynchronizerTask.java
@@ -22,6 +22,7 @@ import java.util.Map;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.cloud.controller.config.CloudControllerConfig;
 import org.apache.stratos.cloud.controller.context.CloudControllerContext;
 import org.wso2.carbon.ntask.core.Task;
 
@@ -36,7 +37,7 @@ public class TopologySynchronizerTask implements Task{
         
         if(CloudControllerContext.getInstance().isTopologySyncRunning() ||
                        // this is a temporary fix to avoid task execution - 
limitation with ntask
-                
(!CloudControllerContext.getInstance().getEnableTopologySync())){
+                
(!CloudControllerConfig.getInstance().isTopologySyncEnabled())){
             if(log.isWarnEnabled()) {
                 log.warn("Topology synchronization is disabled.");
             }
@@ -53,7 +54,7 @@ public class TopologySynchronizerTask implements Task{
     public void init() {
 
        // this is a temporary fix to avoid task execution - limitation with 
ntask
-               
if(!CloudControllerContext.getInstance().getEnableTopologySync()){
+               
if(!CloudControllerConfig.getInstance().isTopologySyncEnabled()){
             if(log.isWarnEnabled()) {
                 log.warn("Topology synchronization is disabled.");
             }

http://git-wip-us.apache.org/repos/asf/stratos/blob/e1c34266/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
index abec364..d1ef730 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
@@ -28,6 +28,7 @@ import org.apache.commons.logging.LogFactory;
 import 
org.apache.stratos.cloud.controller.concurrent.PartitionValidatorCallable;
 import org.apache.stratos.cloud.controller.concurrent.ScheduledThreadExecutor;
 import org.apache.stratos.cloud.controller.concurrent.ThreadExecutor;
+import org.apache.stratos.cloud.controller.config.CloudControllerConfig;
 import org.apache.stratos.cloud.controller.context.CloudControllerContext;
 import org.apache.stratos.cloud.controller.domain.*;
 import org.apache.stratos.cloud.controller.domain.Cartridge;
@@ -1533,7 +1534,7 @@ public class CloudControllerServiceImpl implements 
CloudControllerService {
         handleNullObject(partition, "Partition validation failed. Partition is 
null.");
         String provider = partition.getProvider();
         handleNullObject(provider, "Partition [" + partition.getId() + "] 
validation failed. Partition provider is null.");
-        IaasProvider iaasProvider = dataHolder.getIaasProvider(provider);
+        IaasProvider iaasProvider = 
CloudControllerConfig.getInstance().getIaasProvider(provider);
 
         if (iaasProvider == null) {
             String msg =

http://git-wip-us.apache.org/repos/asf/stratos/blob/e1c34266/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java
index 5360545..8b88301 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java
@@ -21,6 +21,7 @@ package org.apache.stratos.cloud.controller.util;
 import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.cloud.controller.config.CloudControllerConfig;
 import org.apache.stratos.cloud.controller.context.CloudControllerContext;
 import org.apache.stratos.cloud.controller.domain.*;
 import org.apache.stratos.cloud.controller.domain.Partition;
@@ -87,7 +88,7 @@ public class CloudControllerUtil {
         // populate LB config
         cartridge.setLbConfig(config.getLbConfig());
 
-        List<IaasProvider> iaases = 
CloudControllerContext.getInstance().getIaasProviders();
+        List<IaasProvider> iaases = 
CloudControllerConfig.getInstance().getIaasProviders();
 
         // populate IaaSes
         IaasConfig[] iaasConfigs = config.getIaasConfigs();

http://git-wip-us.apache.org/repos/asf/stratos/blob/e1c34266/components/org.apache.stratos.cloud.controller/src/test/java/org/apache/cartridge/autoscaler/service/axiom/AxiomXpathParserTest.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/test/java/org/apache/cartridge/autoscaler/service/axiom/AxiomXpathParserTest.java
 
b/components/org.apache.stratos.cloud.controller/src/test/java/org/apache/cartridge/autoscaler/service/axiom/AxiomXpathParserTest.java
index 44c0fc7..f2eded6 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/test/java/org/apache/cartridge/autoscaler/service/axiom/AxiomXpathParserTest.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/test/java/org/apache/cartridge/autoscaler/service/axiom/AxiomXpathParserTest.java
@@ -19,12 +19,11 @@
 package org.apache.cartridge.autoscaler.service.axiom;
 
 import junit.framework.TestCase;
-
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMNode;
-import org.apache.stratos.cloud.controller.context.CloudControllerContext;
-import org.apache.stratos.cloud.controller.util.AxiomXpathParserUtil;
+import org.apache.stratos.cloud.controller.config.CloudControllerConfig;
 import 
org.apache.stratos.cloud.controller.config.parser.CloudControllerConfigParser;
+import org.apache.stratos.cloud.controller.util.AxiomXpathParserUtil;
 
 import java.io.File;
 import java.util.List;
@@ -47,18 +46,18 @@ public class AxiomXpathParserTest extends TestCase {
     public void testGetMatchingNodes(){
         List<OMNode> list = 
AxiomXpathParserUtil.getMatchingNodes("/cloudController/iaasProviders/iaasProvider/provider",
 docElt);
         assertEquals(1, list.size());
-        assertEquals(1, 
CloudControllerContext.getInstance().getIaasProviders().size());
+        assertEquals(1, 
CloudControllerConfig.getInstance().getIaasProviders().size());
     }
     
     public void testDataPublisherConfig() {
-               assertEquals(true, 
CloudControllerContext.getInstance().getEnableBAMDataPublisher());
-               assertEquals("nirmal", 
CloudControllerContext.getInstance().getDataPubConfig().getBamUsername());
-               assertEquals("nirmal", 
CloudControllerContext.getInstance().getDataPubConfig().getBamPassword());
+               assertEquals(true, 
CloudControllerConfig.getInstance().isBAMDataPublisherEnabled());
+               assertEquals("nirmal", 
CloudControllerConfig.getInstance().getDataPubConfig().getBamUsername());
+               assertEquals("nirmal", 
CloudControllerConfig.getInstance().getDataPubConfig().getBamPassword());
        }
     
     public void testTopologySynchParser() {
-               
assertNotNull(CloudControllerContext.getInstance().getTopologyConfig());
-               assertEquals("1 * * * * ? *", 
CloudControllerContext.getInstance().getTopologyConfig().getProperty("cron"));
+               
assertNotNull(CloudControllerConfig.getInstance().getTopologyConfig());
+               assertEquals("1 * * * * ? *", 
CloudControllerConfig.getInstance().getTopologyConfig().getProperty("cron"));
        }
 
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/e1c34266/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/context/LoadBalancerContext.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/context/LoadBalancerContext.java
 
b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/context/LoadBalancerContext.java
index a3a694c..4638754 100644
--- 
a/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/context/LoadBalancerContext.java
+++ 
b/components/org.apache.stratos.load.balancer/src/main/java/org/apache/stratos/load/balancer/context/LoadBalancerContext.java
@@ -29,6 +29,7 @@ import org.apache.stratos.load.balancer.context.map.*;
 public class LoadBalancerContext {
 
     private static final Log log = 
LogFactory.getLog(LoadBalancerContext.class);
+
     private static volatile LoadBalancerContext instance;
 
     // Following map is updated by the service component.

Reply via email to