http://git-wip-us.apache.org/repos/asf/stratos/blob/218b5fdc/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceUtil.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceUtil.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceUtil.java
index 64c264a..3c6716c 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceUtil.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceUtil.java
@@ -42,71 +42,71 @@ import java.util.Properties;
  */
 public class CloudControllerServiceUtil {
 
-       private static final Log log = 
LogFactory.getLog(CloudControllerServiceUtil.class);
-
-       public static Iaas buildIaas(IaasProvider iaasProvider) throws 
InvalidIaasProviderException {
-               return iaasProvider.getIaas();
-       }
-
-       /**
-        * Update the topology, publish statistics to BAM, remove member context
-        * and persist cloud controller context.
-        *
-        * @param memberContext
-        */
-       public static void executeMemberTerminationPostProcess(MemberContext 
memberContext) {
-               if (memberContext == null) {
-                       return;
-               }
-
-               String partitionId = memberContext.getPartition() == null ? 
null : memberContext.getPartition().getId();
-
-               // Update the topology
-               
TopologyBuilder.handleMemberTerminated(memberContext.getCartridgeType(), 
memberContext.getClusterId(),
-                                                      
memberContext.getNetworkPartitionId(), partitionId,
-                                                      
memberContext.getMemberId());
-
-               Long timeStamp = System.currentTimeMillis();
-               // Publish statistics to BAM
-               BAMUsageDataPublisher.publish(memberContext.getMemberId(), 
partitionId, memberContext.getNetworkPartitionId(),
-                                             memberContext.getClusterId(), 
memberContext.getClusterInstanceId(),
-                                             memberContext.getCartridgeType(), 
MemberStatus.Terminated.toString(), timeStamp,
-                                             null, null, null);
-
-               // Remove member context
-               CloudControllerContext.getInstance()
-                                     
.removeMemberContext(memberContext.getClusterId(), memberContext.getMemberId());
-
-               // Persist cloud controller context
-               CloudControllerContext.getInstance().persist();
-       }
-
-       public static boolean isValidIpAddress(String ip) {
-               boolean isValid = InetAddresses.isInetAddress(ip);
-               return isValid;
-       }
-
-       public static IaasProvider 
validatePartitionAndGetIaasProvider(Partition partition, IaasProvider 
iaasProvider)
-                       throws InvalidPartitionException {
-               if (iaasProvider != null) {
-                       // if this is a IaaS based partition
-                       Iaas iaas = iaasProvider.getIaas();
-                       PartitionValidator validator = 
iaas.getPartitionValidator();
-                       validator.setIaasProvider(iaasProvider);
-                       Properties partitionProperties = 
CloudControllerUtil.toJavaUtilProperties(partition.getProperties());
-                       iaasProvider = validator.validate(partition, 
partitionProperties);
-                       return iaasProvider;
-
-               } else {
-                       String msg = "Partition is not valid: [partition-id] " 
+ partition.getId();
-                       log.error(msg);
-                       throw new InvalidPartitionException(msg);
-               }
-       }
-
-       public static boolean validatePartition(Partition partition, 
IaasProvider iaasProvider)
-                       throws InvalidPartitionException {
-               validatePartitionAndGetIaasProvider(partition, iaasProvider);
-               return true;
-       }
+    private static final Log log = 
LogFactory.getLog(CloudControllerServiceUtil.class);
+
+    public static Iaas buildIaas(IaasProvider iaasProvider) throws 
InvalidIaasProviderException {
+        return iaasProvider.getIaas();
+    }
+
+    /**
+     * Update the topology, publish statistics to BAM, remove member context
+     * and persist cloud controller context.
+     *
+     * @param memberContext
+     */
+    public static void executeMemberTerminationPostProcess(MemberContext 
memberContext) {
+        if (memberContext == null) {
+            return;
+        }
+
+        String partitionId = memberContext.getPartition() == null ? null : 
memberContext.getPartition().getId();
+
+        // Update the topology
+        
TopologyBuilder.handleMemberTerminated(memberContext.getCartridgeType(), 
memberContext.getClusterId(),
+                memberContext.getNetworkPartitionId(), partitionId,
+                memberContext.getMemberId());
+
+        Long timeStamp = System.currentTimeMillis();
+        // Publish statistics to BAM
+        BAMUsageDataPublisher.publish(memberContext.getMemberId(), 
partitionId, memberContext.getNetworkPartitionId(),
+                memberContext.getClusterId(), 
memberContext.getClusterInstanceId(),
+                memberContext.getCartridgeType(), 
MemberStatus.Terminated.toString(), timeStamp,
+                null, null, null);
+
+        // Remove member context
+        CloudControllerContext.getInstance()
+                .removeMemberContext(memberContext.getClusterId(), 
memberContext.getMemberId());
+
+        // Persist cloud controller context
+        CloudControllerContext.getInstance().persist();
+    }
+
+    public static boolean isValidIpAddress(String ip) {
+        boolean isValid = InetAddresses.isInetAddress(ip);
+        return isValid;
+    }
+
+    public static IaasProvider validatePartitionAndGetIaasProvider(Partition 
partition, IaasProvider iaasProvider)
+            throws InvalidPartitionException {
+        if (iaasProvider != null) {
+            // if this is a IaaS based partition
+            Iaas iaas = iaasProvider.getIaas();
+            PartitionValidator validator = iaas.getPartitionValidator();
+            validator.setIaasProvider(iaasProvider);
+            Properties partitionProperties = 
CloudControllerUtil.toJavaUtilProperties(partition.getProperties());
+            iaasProvider = validator.validate(partition, partitionProperties);
+            return iaasProvider;
+
+        } else {
+            String msg = "Partition is not valid: [partition-id] " + 
partition.getId();
+            log.error(msg);
+            throw new InvalidPartitionException(msg);
+        }
+    }
+
+    public static boolean validatePartition(Partition partition, IaasProvider 
iaasProvider)
+            throws InvalidPartitionException {
+        validatePartitionAndGetIaasProvider(partition, iaasProvider);
+        return true;
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/218b5fdc/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/statistics/publisher/BAMUsageDataPublisher.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/statistics/publisher/BAMUsageDataPublisher.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/statistics/publisher/BAMUsageDataPublisher.java
index c69feef..675de25 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/statistics/publisher/BAMUsageDataPublisher.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/statistics/publisher/BAMUsageDataPublisher.java
@@ -46,183 +46,183 @@ import java.util.List;
  */
 public class BAMUsageDataPublisher {
 
-       private static final Log log = 
LogFactory.getLog(BAMUsageDataPublisher.class);
-
-       private static AsyncDataPublisher dataPublisher;
-       private static StreamDefinition streamDefinition;
-       private static final String cloudControllerEventStreamVersion = "1.0.0";
-
-       public static void publish(String memberId, String partitionId, String 
networkId, String clusterId,
-                                  String clusterInstanceId, String 
serviceName, String status, Long timeStamp,
-                                  String autoscalingReason, Long scalingTime, 
InstanceMetadata metadata) {
-               if 
(!CloudControllerConfig.getInstance().isBAMDataPublisherEnabled()) {
-                       return;
-               }
-               log.debug(CloudControllerConstants.DATA_PUB_TASK_NAME + " cycle 
started.");
-
-               if (dataPublisher == null) {
-                       createDataPublisher();
-
-                       //If we cannot create a data publisher we should give up
-                       //this means data will not be published
-                       if (dataPublisher == null) {
-                               log.error("Data Publisher cannot be created or 
found.");
-                               release();
-                               return;
-                       }
-               }
-
-               MemberContext memberContext = 
CloudControllerContext.getInstance().getMemberContextOfMemberId(memberId);
-               String cartridgeType = memberContext.getCartridgeType();
-               Cartridge cartridge = 
CloudControllerContext.getInstance().getCartridge(cartridgeType);
-               String instanceType =
-                               
CloudControllerContext.getInstance().getIaasProviderOfPartition(cartridgeType, 
partitionId)
-                                                     
.getProperty(CloudControllerConstants.INSTANCE_TYPE);
-
-               //Construct the data to be published
-               List<Object> payload = new ArrayList<Object>();
-               // Payload values
-               payload.add(timeStamp);
-               payload.add(memberId);
-               payload.add(serviceName);
-               payload.add(clusterId);
-               payload.add(clusterInstanceId);
-               payload.add(handleNull(memberContext.getLbClusterId()));
-               payload.add(handleNull(partitionId));
-               payload.add(handleNull(networkId));
-               payload.add(handleNull(instanceType));
-               payload.add(handleNull(autoscalingReason));
-               payload.add(handleNull(scalingTime));
-               if (cartridge != null) {
-                       
payload.add(handleNull(String.valueOf(cartridge.isMultiTenant())));
-               } else {
-                       payload.add("");
-               }
-               
payload.add(handleNull(memberContext.getPartition().getProvider()));
-               payload.add(handleNull(status));
-
-               if (metadata != null) {
-                       payload.add(metadata.getHostname());
-                       payload.add(metadata.getHypervisor());
-                       payload.add(String.valueOf(metadata.getRam()));
-                       payload.add(metadata.getImageId());
-                       payload.add(metadata.getLoginPort());
-                       payload.add(metadata.getOperatingSystemName());
-                       payload.add(metadata.getOperatingSystemVersion());
-                       payload.add(metadata.getOperatingSystemArchitecture());
-                       
payload.add(String.valueOf(metadata.isOperatingSystem64bit()));
-               } else {
-                       payload.add("");
-                       payload.add("");
-                       payload.add("");
-                       payload.add("");
-                       payload.add(0);
-                       payload.add("");
-                       payload.add("");
-                       payload.add("");
-                       payload.add("");
-               }
-
-               
payload.add(handleNull(Arrays.toString(memberContext.getPrivateIPs())));
-               
payload.add(handleNull(Arrays.toString(memberContext.getPublicIPs())));
-               
payload.add(handleNull(Arrays.toString(memberContext.getAllocatedIPs())));
-
-               Event event = new Event();
-               event.setPayloadData(payload.toArray());
-               event.setArbitraryDataMap(new HashMap<String, String>());
-
-               try {
-                       if (log.isDebugEnabled()) {
-                               log.debug(String.format("Publishing BAM event: 
[stream] %s [version] %s", streamDefinition.getName(),
-                                                       
streamDefinition.getVersion()));
-                       }
-                       dataPublisher.publish(streamDefinition.getName(), 
streamDefinition.getVersion(), event);
-               } catch (AgentException e) {
-                       if (log.isErrorEnabled()) {
-                               log.error(String.format("Could not publish BAM 
event: [stream] %s [version] %s",
-                                                       
streamDefinition.getName(), streamDefinition.getVersion()), e);
-                       }
-               }
-       }
-
-       private static void release() {
-               CloudControllerContext.getInstance().setPublisherRunning(false);
-       }
-
-       private static StreamDefinition initializeStream() throws Exception {
-               streamDefinition = new 
StreamDefinition(CloudControllerConstants.CLOUD_CONTROLLER_EVENT_STREAM,
-                                                       
cloudControllerEventStreamVersion);
-               streamDefinition.setNickName("cloud.controller");
-               streamDefinition.setDescription("Instances booted up by the 
Cloud Controller");
-               // Payload definition
-               List<Attribute> payloadData = new ArrayList<Attribute>();
-               payloadData.add(new 
Attribute(CloudControllerConstants.TIME_STAMP, AttributeType.LONG));
-               payloadData.add(new 
Attribute(CloudControllerConstants.MEMBER_ID_COL, AttributeType.STRING));
-               payloadData.add(new 
Attribute(CloudControllerConstants.CARTRIDGE_TYPE_COL, AttributeType.STRING));
-               payloadData.add(new 
Attribute(CloudControllerConstants.CLUSTER_ID_COL, AttributeType.STRING));
-               payloadData.add(new 
Attribute(CloudControllerConstants.CLUSTER_INSTANCE_ID_COL, 
AttributeType.STRING));
-               payloadData.add(new 
Attribute(CloudControllerConstants.LB_CLUSTER_ID_COL, AttributeType.STRING));
-               payloadData.add(new 
Attribute(CloudControllerConstants.PARTITION_ID_COL, AttributeType.STRING));
-               payloadData.add(new 
Attribute(CloudControllerConstants.NETWORK_ID_COL, AttributeType.STRING));
-               payloadData.add(new 
Attribute(CloudControllerConstants.INSTANCE_TYPE, AttributeType.STRING));
-               payloadData.add(new 
Attribute(CloudControllerConstants.SCALING_REASON, AttributeType.STRING));
-               payloadData.add(new 
Attribute(CloudControllerConstants.SCALING_TIME, AttributeType.LONG));
-               payloadData.add(new 
Attribute(CloudControllerConstants.IS_MULTI_TENANT_COL, AttributeType.STRING));
-               payloadData.add(new 
Attribute(CloudControllerConstants.IAAS_COL, AttributeType.STRING));
-               payloadData.add(new 
Attribute(CloudControllerConstants.STATUS_COL, AttributeType.STRING));
-               payloadData.add(new 
Attribute(CloudControllerConstants.HOST_NAME_COL, AttributeType.STRING));
-               payloadData.add(new 
Attribute(CloudControllerConstants.HYPERVISOR_COL, AttributeType.STRING));
-               payloadData.add(new Attribute(CloudControllerConstants.RAM_COL, 
AttributeType.STRING));
-               payloadData.add(new 
Attribute(CloudControllerConstants.IMAGE_ID_COL, AttributeType.STRING));
-               payloadData.add(new 
Attribute(CloudControllerConstants.LOGIN_PORT_COL, AttributeType.INT));
-               payloadData.add(new 
Attribute(CloudControllerConstants.OS_NAME_COL, AttributeType.STRING));
-               payloadData.add(new 
Attribute(CloudControllerConstants.OS_VERSION_COL, AttributeType.STRING));
-               payloadData.add(new 
Attribute(CloudControllerConstants.OS_ARCH_COL, AttributeType.STRING));
-               payloadData.add(new 
Attribute(CloudControllerConstants.OS_BIT_COL, AttributeType.STRING));
-               payloadData.add(new 
Attribute(CloudControllerConstants.PRIV_IP_COL, AttributeType.STRING));
-               payloadData.add(new 
Attribute(CloudControllerConstants.PUB_IP_COL, AttributeType.STRING));
-               payloadData.add(new 
Attribute(CloudControllerConstants.ALLOCATE_IP_COL, AttributeType.STRING));
-               streamDefinition.setPayloadData(payloadData);
-               return streamDefinition;
-       }
-
-       private static void createDataPublisher() {
-               //creating the agent
-
-               ServerConfiguration serverConfig = 
CarbonUtils.getServerConfiguration();
-               String trustStorePath = 
serverConfig.getFirstProperty("Security.TrustStore.Location");
-               String trustStorePassword = 
serverConfig.getFirstProperty("Security.TrustStore.Password");
-               String bamServerUrl = 
serverConfig.getFirstProperty("BamServerURL");
-               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);
-
-               try {
-                       dataPublisher = new AsyncDataPublisher("tcp://" + 
bamServerUrl + "", adminUsername, adminPassword);
-                       
CloudControllerContext.getInstance().setDataPublisher(dataPublisher);
-                       initializeStream();
-                       dataPublisher.addStreamDefinition(streamDefinition);
-               } catch (Exception e) {
-                       String msg = "Unable to create a data publisher to " + 
bamServerUrl +
-                                    ". Usage Agent will not function properly. 
";
-                       log.error(msg, e);
-                       throw new CloudControllerException(msg, e);
-               }
-       }
-
-       private static String handleNull(String val) {
-               if (val == null) {
-                       return "";
-               }
-               return val;
-       }
-
-       private static Long handleNull(Long val) {
-               if (val == null) {
-                       return -1L;
-               }
-               return val;
-       }
+    private static final Log log = 
LogFactory.getLog(BAMUsageDataPublisher.class);
+
+    private static AsyncDataPublisher dataPublisher;
+    private static StreamDefinition streamDefinition;
+    private static final String cloudControllerEventStreamVersion = "1.0.0";
+
+    public static void publish(String memberId, String partitionId, String 
networkId, String clusterId,
+                               String clusterInstanceId, String serviceName, 
String status, Long timeStamp,
+                               String autoscalingReason, Long scalingTime, 
InstanceMetadata metadata) {
+        if (!CloudControllerConfig.getInstance().isBAMDataPublisherEnabled()) {
+            return;
+        }
+        log.debug(CloudControllerConstants.DATA_PUB_TASK_NAME + " cycle 
started.");
+
+        if (dataPublisher == null) {
+            createDataPublisher();
+
+            //If we cannot create a data publisher we should give up
+            //this means data will not be published
+            if (dataPublisher == null) {
+                log.error("Data Publisher cannot be created or found.");
+                release();
+                return;
+            }
+        }
+
+        MemberContext memberContext = 
CloudControllerContext.getInstance().getMemberContextOfMemberId(memberId);
+        String cartridgeType = memberContext.getCartridgeType();
+        Cartridge cartridge = 
CloudControllerContext.getInstance().getCartridge(cartridgeType);
+        String instanceType =
+                
CloudControllerContext.getInstance().getIaasProviderOfPartition(cartridgeType, 
partitionId)
+                        .getProperty(CloudControllerConstants.INSTANCE_TYPE);
+
+        //Construct the data to be published
+        List<Object> payload = new ArrayList<Object>();
+        // Payload values
+        payload.add(timeStamp);
+        payload.add(memberId);
+        payload.add(serviceName);
+        payload.add(clusterId);
+        payload.add(clusterInstanceId);
+        payload.add(handleNull(memberContext.getLbClusterId()));
+        payload.add(handleNull(partitionId));
+        payload.add(handleNull(networkId));
+        payload.add(handleNull(instanceType));
+        payload.add(handleNull(autoscalingReason));
+        payload.add(handleNull(scalingTime));
+        if (cartridge != null) {
+            payload.add(handleNull(String.valueOf(cartridge.isMultiTenant())));
+        } else {
+            payload.add("");
+        }
+        payload.add(handleNull(memberContext.getPartition().getProvider()));
+        payload.add(handleNull(status));
+
+        if (metadata != null) {
+            payload.add(metadata.getHostname());
+            payload.add(metadata.getHypervisor());
+            payload.add(String.valueOf(metadata.getRam()));
+            payload.add(metadata.getImageId());
+            payload.add(metadata.getLoginPort());
+            payload.add(metadata.getOperatingSystemName());
+            payload.add(metadata.getOperatingSystemVersion());
+            payload.add(metadata.getOperatingSystemArchitecture());
+            payload.add(String.valueOf(metadata.isOperatingSystem64bit()));
+        } else {
+            payload.add("");
+            payload.add("");
+            payload.add("");
+            payload.add("");
+            payload.add(0);
+            payload.add("");
+            payload.add("");
+            payload.add("");
+            payload.add("");
+        }
+
+        
payload.add(handleNull(Arrays.toString(memberContext.getPrivateIPs())));
+        payload.add(handleNull(Arrays.toString(memberContext.getPublicIPs())));
+        
payload.add(handleNull(Arrays.toString(memberContext.getAllocatedIPs())));
+
+        Event event = new Event();
+        event.setPayloadData(payload.toArray());
+        event.setArbitraryDataMap(new HashMap<String, String>());
+
+        try {
+            if (log.isDebugEnabled()) {
+                log.debug(String.format("Publishing BAM event: [stream] %s 
[version] %s", streamDefinition.getName(),
+                        streamDefinition.getVersion()));
+            }
+            dataPublisher.publish(streamDefinition.getName(), 
streamDefinition.getVersion(), event);
+        } catch (AgentException e) {
+            if (log.isErrorEnabled()) {
+                log.error(String.format("Could not publish BAM event: [stream] 
%s [version] %s",
+                        streamDefinition.getName(), 
streamDefinition.getVersion()), e);
+            }
+        }
+    }
+
+    private static void release() {
+        CloudControllerContext.getInstance().setPublisherRunning(false);
+    }
+
+    private static StreamDefinition initializeStream() throws Exception {
+        streamDefinition = new 
StreamDefinition(CloudControllerConstants.CLOUD_CONTROLLER_EVENT_STREAM,
+                cloudControllerEventStreamVersion);
+        streamDefinition.setNickName("cloud.controller");
+        streamDefinition.setDescription("Instances booted up by the Cloud 
Controller");
+        // Payload definition
+        List<Attribute> payloadData = new ArrayList<Attribute>();
+        payloadData.add(new Attribute(CloudControllerConstants.TIME_STAMP, 
AttributeType.LONG));
+        payloadData.add(new Attribute(CloudControllerConstants.MEMBER_ID_COL, 
AttributeType.STRING));
+        payloadData.add(new 
Attribute(CloudControllerConstants.CARTRIDGE_TYPE_COL, AttributeType.STRING));
+        payloadData.add(new Attribute(CloudControllerConstants.CLUSTER_ID_COL, 
AttributeType.STRING));
+        payloadData.add(new 
Attribute(CloudControllerConstants.CLUSTER_INSTANCE_ID_COL, 
AttributeType.STRING));
+        payloadData.add(new 
Attribute(CloudControllerConstants.LB_CLUSTER_ID_COL, AttributeType.STRING));
+        payloadData.add(new 
Attribute(CloudControllerConstants.PARTITION_ID_COL, AttributeType.STRING));
+        payloadData.add(new Attribute(CloudControllerConstants.NETWORK_ID_COL, 
AttributeType.STRING));
+        payloadData.add(new Attribute(CloudControllerConstants.INSTANCE_TYPE, 
AttributeType.STRING));
+        payloadData.add(new Attribute(CloudControllerConstants.SCALING_REASON, 
AttributeType.STRING));
+        payloadData.add(new Attribute(CloudControllerConstants.SCALING_TIME, 
AttributeType.LONG));
+        payloadData.add(new 
Attribute(CloudControllerConstants.IS_MULTI_TENANT_COL, AttributeType.STRING));
+        payloadData.add(new Attribute(CloudControllerConstants.IAAS_COL, 
AttributeType.STRING));
+        payloadData.add(new Attribute(CloudControllerConstants.STATUS_COL, 
AttributeType.STRING));
+        payloadData.add(new Attribute(CloudControllerConstants.HOST_NAME_COL, 
AttributeType.STRING));
+        payloadData.add(new Attribute(CloudControllerConstants.HYPERVISOR_COL, 
AttributeType.STRING));
+        payloadData.add(new Attribute(CloudControllerConstants.RAM_COL, 
AttributeType.STRING));
+        payloadData.add(new Attribute(CloudControllerConstants.IMAGE_ID_COL, 
AttributeType.STRING));
+        payloadData.add(new Attribute(CloudControllerConstants.LOGIN_PORT_COL, 
AttributeType.INT));
+        payloadData.add(new Attribute(CloudControllerConstants.OS_NAME_COL, 
AttributeType.STRING));
+        payloadData.add(new Attribute(CloudControllerConstants.OS_VERSION_COL, 
AttributeType.STRING));
+        payloadData.add(new Attribute(CloudControllerConstants.OS_ARCH_COL, 
AttributeType.STRING));
+        payloadData.add(new Attribute(CloudControllerConstants.OS_BIT_COL, 
AttributeType.STRING));
+        payloadData.add(new Attribute(CloudControllerConstants.PRIV_IP_COL, 
AttributeType.STRING));
+        payloadData.add(new Attribute(CloudControllerConstants.PUB_IP_COL, 
AttributeType.STRING));
+        payloadData.add(new 
Attribute(CloudControllerConstants.ALLOCATE_IP_COL, AttributeType.STRING));
+        streamDefinition.setPayloadData(payloadData);
+        return streamDefinition;
+    }
+
+    private static void createDataPublisher() {
+        //creating the agent
+
+        ServerConfiguration serverConfig = 
CarbonUtils.getServerConfiguration();
+        String trustStorePath = 
serverConfig.getFirstProperty("Security.TrustStore.Location");
+        String trustStorePassword = 
serverConfig.getFirstProperty("Security.TrustStore.Password");
+        String bamServerUrl = serverConfig.getFirstProperty("BamServerURL");
+        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);
+
+        try {
+            dataPublisher = new AsyncDataPublisher("tcp://" + bamServerUrl + 
"", adminUsername, adminPassword);
+            
CloudControllerContext.getInstance().setDataPublisher(dataPublisher);
+            initializeStream();
+            dataPublisher.addStreamDefinition(streamDefinition);
+        } catch (Exception e) {
+            String msg = "Unable to create a data publisher to " + 
bamServerUrl +
+                    ". Usage Agent will not function properly. ";
+            log.error(msg, e);
+            throw new CloudControllerException(msg, e);
+        }
+    }
+
+    private static String handleNull(String val) {
+        if (val == null) {
+            return "";
+        }
+        return val;
+    }
+
+    private static Long handleNull(Long val) {
+        if (val == null) {
+            return -1L;
+        }
+        return val;
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/218b5fdc/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/constants/StratosConstants.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/constants/StratosConstants.java
 
b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/constants/StratosConstants.java
index 9cf2007..669a96a 100644
--- 
a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/constants/StratosConstants.java
+++ 
b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/constants/StratosConstants.java
@@ -20,190 +20,190 @@ package org.apache.stratos.common.constants;
 
 public class StratosConstants {
 
-       public static final String CLOUD_SERVICE_IS_ACTIVE_PROP_KEY = "active";
-
-       public static final String CLOUD_SERVICE_INFO_STORE_PATH =
-                       
"/repository/components/org.apache.stratos/cloud-manager/cloud-services";
-
-       public static final String TENANT_USER_VALIDATION_STORE_PATH = 
"/repository/components/org.wso2.carbon.validations";
-       public static final String ADMIN_EMAIL_VERIFICATION_FLAG_PATH =
-                       
"/repository/components/org.wso2.carbon.email-confirmation-flag";
-       public static final String TENANT_DOMAIN_VERIFICATION_FLAG_PATH =
-                       
"/repository/components/org.wso2.carbon.domain-confirmation-flag";
-
-       public static final String DOMAIN_VALIDATOR_INFO_PATH =
-                       
"/repository/components/org.wso2.carbon.domain-validator-info";
-
-       public static final String TENANT_CREATION_THEME_PAGE_TOKEN =
-                       
"/repository/components/org.wso2.carbon.theme-page-token";
-
-       public static final String TENANT_PACKAGE_INFO_PATH = 
"/repository/components/org.wso2.carbon.package-info";
-
-       public static final String ALL_THEMES_PATH = 
"/repository/components/org.wso2.carbon.all-themes";
-
-       public static final String THROTTLING_RULES_PATH = 
"/repository/components/org.wso2.carbon.throttling-rules";
-
-       public static final String ORIGINATED_SERVICE_PATH = 
"/repository/components/org.wso2.carbon.originated-service";
-
-       public static final String PATH_SEPARATOR = "/";
-
-       public static final String CLOUD_SERVICE_ICONS_STORE_PATH =
-                       "/repository/components/org.wso2.carbon.cloud-manager/" 
+ "cloud-services-icons";
-
-       public static final String VALIDATION_KEY_RESOURCE_NAME = 
"validation-key";
-       public static final String INCOMING_PATH_DIR = "incoming";
-       public static final String OUTGOING_PATH_DIR = "outgoing";
-       public static final String MULTITENANCY_SCHEDULED_TASK_ID = 
"multitenancyScheduledTask";
-       public static final String MULTITENANCY_VIEWING_TASK_ID = 
"multitenancyViewingTask";
-
-       public static final String INVALID_TENANT = "invalidTenant";
-       public static final String INACTIVE_TENANT = "inactiveTenant";
-       public static final String ACTIVE_TENANT = "activeTenant";
-       public static final String IS_EMAIL_VALIDATED = "isEmailValidated";
-       public static final String IS_CREDENTIALS_ALREADY_RESET = 
"isCredentialsReset";
-       public static final String TENANT_ADMIN = "tenantAdminUsername";
-
-       public static final String CLOUD_MANAGER_SERVICE = "Apache Stratos 
Controller";
-       public static final String CLOUD_IDENTITY_SERVICE = "WSO2 Stratos 
Identity";
-       public static final String CLOUD_GOVERNANCE_SERVICE = "WSO2 Stratos 
Governance";
-       public static final String CLOUD_ESB_SERVICE = "WSO2 Stratos Enterprise 
Service Bus";
-
-       // keystore mgt related Constants
-       public static final String TENANT_KS = 
"/repository/security/key-stores/";
-       public static final String TENANT_PUB_KEY = 
"/repository/security/pub-key";
-       public static final String PROP_TENANT_KS_TYPE = "key-store-type";
-       public static final String PROP_TENANT_KS_PASSWD = "key-store-password";
-       public static final String PROP_TENANT_KS_PRIV_KEY_PASSWD = 
"priv-key-password";
-       public static final String PROP_TENANT_KS_ALIAS = "alias";
-
-       // constants related to redirection
-
-       public static final String UNVERIFIED_ACCOUNT_DOMAIN_SUFFIX = 
"-unverified";
-       public static final String TENANT_SPECIFIC_URL_RESOLVED = 
"tenant-sepcific-url-resolved";
-       public static final String SUFFIXED_UNVERIFIED_SESSION_FLAG = 
"temp-suffixed-unverified";
-
-       // metering constants
-       public static final String THROTTLING_ALL_ACTION = "all_actions";
-       public static final String THROTTLING_IN_DATA_ACTION = "in_data_action";
-       //this covers registry capacity + registry bandwidth
-       public static final String THROTTLING_OUT_DATA_ACTION = 
"out_data_action"; //this covers registry bandwidth
-       public static final String THROTTLING_ADD_USER_ACTION = 
"add_user_action";
-       public static final String THROTTLING_SERVICE_IN_BANDWIDTH_ACTION = 
"service_in_bandwith_action";
-       public static final String THROTTLING_SERVICE_OUT_BANDWIDTH_ACTION = 
"service_out_bandwith_action";
-       public static final String THROTTLING_WEBAPP_IN_BANDWIDTH_ACTION = 
"webapp_in_bandwith_action";
-       public static final String THROTTLING_WEBAPP_OUT_BANDWIDTH_ACTION = 
"webapp_out_bandwith_action";
-       public static final String THROTTLING_SERVICE_REQUEST_ACTION = 
"service_request_action";
-       public static final String THROTTLING_SERVICE_RESPONSE_ACTION = 
"service_response_action";
-
-       // the session attribute to keep track whether the registry action 
validated
-       // and the usage persisted
-       public static final String REGISTRY_ACTION_VALIDATED_SESSION_ATTR = 
"registryActionValidated";
-       public static final String REGISTRY_USAGE_PERSISTED_SESSION_ATTR = 
"usagePersited";
-
-       // Metering servlet attributes
-       public static final String SERVICE_NAME_SERVLET_ATTR = 
"meteringServiceName";
-       public static final String TENANT_ID_SERVLET_ATTR = "tenantId";
-       public static final String ADMIN_SERVICE_SERVLET_ATTR = "adminService";
-
-       // * as a Service impl related constants
-       public static final String ORIGINATED_SERVICE = "originatedService";
-
-       // Configuration file name
-       public static final String STRATOS_CONF_FILE = "stratos.xml";
-       //public static final String STRATOS_CONF_LOC = "repository/conf/";
-       //public static final String STRATOS_CONF_FILE_WITH_PATH = 
STRATOS_CONF_LOC + STRATOS_CONF_FILE;
-
-       // EULA location
-       public static final String STRATOS_EULA = "eula.xml";
-
-       // EULA default text.
-       public static final String STRATOS_EULA_DEFAULT_TEXT =
-                       "Please refer to: " + 
StratosConstants.STRATOS_TERMS_OF_USAGE +
-                       " for terms and usage and " + 
StratosConstants.STRATOS_PRIVACY_POLICY +
-                       " for privacy policy of WSO2 Stratos.";
-
-       // Web location of Terms of Usage and privacy policy
-       public static final String STRATOS_TERMS_OF_USAGE = 
"http://wso2.com/cloud/services/terms-of-use/";;
-       public static final String STRATOS_PRIVACY_POLICY = 
"http://wso2.com/cloud/services/privacy-policy/";;
-       public static final String MULTITENANCY_FREE_PLAN = "Demo";
-       public static final String MULTITENANCY_SMALL_PLAN = "SMB";
-       public static final String MULTITENANCY_MEDIUM_PLAN = "Professional";
-       public static final String MULTITENANCY_LARGE_PLAN = "Enterprise";
-       public static final String EMAIL_CONFIG = "email";
-       public static final String MULTITENANCY_CONFIG_FOLDER = "multitenancy";
-
-       // Cloud controller - payload
-       public static final String MEMBER_ID = "MEMBER_ID";
-       public static final String LB_CLUSTER_ID = "LB_CLUSTER_ID";
-       public static final String NETWORK_PARTITION_ID = 
"NETWORK_PARTITION_ID";
-
-       // Kubernetes related constants
-       public static final String KUBERNETES_CLUSTER_ID = 
"KUBERNETES_CLUSTER_ID";
-       public static final String KUBERNETES_MASTER_PORT = 
"KUBERNETES_MASTER_PORT";
-       public static final String KUBERNETES_MASTER_DEFAULT_PORT = "8080";
-
-       //drools related constants
-       public static final String DROOLS_DIR_NAME = "drools";
-       public static final String SCALE_CHECK_DROOL_FILE = "scaling.drl";
-       public static final String DEPENDENT_SCALE_CHECK_DROOL_FILE = 
"dependent-scaling.drl";
-       public static final String MIN_CHECK_DROOL_FILE = "mincheck.drl";
-       public static final String MAX_CHECK_DROOL_FILE = "maxcheck.drl";
-       public static final String OBSOLETE_CHECK_DROOL_FILE = 
"obsoletecheck.drl";
-       public static final String MIN_COUNT = "MIN_COUNT";
-       public static final String SCALING_REASON = "SCALING_REASON";
-       public static final String SCALING_TIME = "SCALING_TIME";
-
-       // Policy and definition related constants
-       public static final int PUBLIC_DEFINITION = 0;
-
-       // member expiry timeout constants
-       public static final String PENDING_MEMBER_EXPIRY_TIMEOUT = 
"autoscaler.member.pendingMemberExpiryTimeout";
-       public static final String OBSOLETED_MEMBER_EXPIRY_TIMEOUT = 
"autoscaler.member.obsoletedMemberExpiryTimeout";
-       public static final String PENDING_TERMINATION_MEMBER_EXPIRY_TIMEOUT =
-                       
"autoscaler.member.pendingTerminationMemberExpiryTimeout";
-
-       public static final String FILTER_VALUE_SEPARATOR = ",";
-       public static final String TOPOLOGY_APPLICATION_FILTER = 
"stratos.topology.application.filter";
-       public static final String TOPOLOGY_SERVICE_FILTER = 
"stratos.topology.service.filter";
-       public static final String TOPOLOGY_CLUSTER_FILTER = 
"stratos.topology.cluster.filter";
-       public static final String TOPOLOGY_MEMBER_FILTER = 
"stratos.topology.member.filter";
-       public static final String TOPOLOGY_NETWORK_PARTITION_FILTER = 
"stratos.topology.network.partition.filter";
-
-       // to identify a lb cluster
-       public static final String LOAD_BALANCER_REF = "load.balancer.ref";
-       public static final String SERVICE_AWARE_LOAD_BALANCER = 
"service.aware.load.balancer";
-       public static final String DEFAULT_LOAD_BALANCER = 
"default.load.balancer";
-       public static final String NO_LOAD_BALANCER = "no.load.balancer";
-       public static final String EXISTING_LOAD_BALANCERS = 
"existing.load.balancers";
-
-       public static final long HAZELCAST_INSTANCE_INIT_TIMEOUT = 300000; // 5 
min
-
-       public static final String AUTOSCALER_SERVICE_URL = 
"autoscaler.service.url";
-       public static final String CLOUD_CONTROLLER_SERVICE_URL = 
"cloud.controller.service.url";
-       public static final String STRATOS_MANAGER_SERVICE_URL = 
"stratos.manager.service.url";
-
-       public static final String CLOUD_CONTROLLER_CLIENT_SOCKET_TIMEOUT = 
"cc.socket.timeout";
-       public static final String CLOUD_CONTROLLER_CLIENT_CONNECTION_TIMEOUT = 
"cc.connection.timeout";
-       public static final String AUTOSCALER_CLIENT_SOCKET_TIMEOUT = 
"autoscaler.socket.timeout";
-       public static final String AUTOSCALER_CLIENT_CONNECTION_TIMEOUT = 
"autoscaler.connection.timeout";
-       public static final String STRATOS_MANAGER_CLIENT_SOCKET_TIMEOUT = 
"stratos.manager.socket.timeout";
-       public static final String STRATOS_MANAGER_CLIENT_CONNECTION_TIMEOUT = 
"stratos.manager.connection.timeout";
-
-       public static final String DEFAULT_CLIENT_SOCKET_TIMEOUT = "300000";
-       public static final String DEFAULT_CLIENT_CONNECTION_TIMEOUT = "300000";
-
-       // partition algorithm id constants
-       public static final String PARTITION_ROUND_ROBIN_ALGORITHM_ID = 
"round-robin";
-       public static final String PARTITION_WEIGHTED_ROUND_ROBIN_ALGORITHM_ID 
= "weighted-round-robin";
-       public static final String PARTITION_ONE_AFTER_ANOTHER_ALGORITHM_ID = 
"one-after-another";
-       // network partition algorithm id constants
-       public static final String 
NETWORK_PARTITION_ONE_AFTER_ANOTHER_ALGORITHM_ID = "one-after-another";
-       public static final String NETWORK_PARTITION_ALL_AT_ONCE_ALGORITHM_ID = 
"all-at-once";
-       public static final String APPLICATION_POLICY_NETWORK_PARTITION_GROUPS 
= "networkPartitionGroups";
-       public static final String 
APPLICATION_POLICY_NETWORK_PARTITIONS_SPLITTER = "\\|";
-       public static final String 
APPLICATION_POLICY_NETWORK_PARTITION_GROUPS_SPLITTER = ",";
-
-       public static final String NOT_DEFINED = "not-defined";
-       public static final String CLUSTER_INSTANCE_ID = "cluster.instance.id";
+    public static final String CLOUD_SERVICE_IS_ACTIVE_PROP_KEY = "active";
+
+    public static final String CLOUD_SERVICE_INFO_STORE_PATH =
+            
"/repository/components/org.apache.stratos/cloud-manager/cloud-services";
+
+    public static final String TENANT_USER_VALIDATION_STORE_PATH = 
"/repository/components/org.wso2.carbon.validations";
+    public static final String ADMIN_EMAIL_VERIFICATION_FLAG_PATH =
+            "/repository/components/org.wso2.carbon.email-confirmation-flag";
+    public static final String TENANT_DOMAIN_VERIFICATION_FLAG_PATH =
+            "/repository/components/org.wso2.carbon.domain-confirmation-flag";
+
+    public static final String DOMAIN_VALIDATOR_INFO_PATH =
+            "/repository/components/org.wso2.carbon.domain-validator-info";
+
+    public static final String TENANT_CREATION_THEME_PAGE_TOKEN =
+            "/repository/components/org.wso2.carbon.theme-page-token";
+
+    public static final String TENANT_PACKAGE_INFO_PATH = 
"/repository/components/org.wso2.carbon.package-info";
+
+    public static final String ALL_THEMES_PATH = 
"/repository/components/org.wso2.carbon.all-themes";
+
+    public static final String THROTTLING_RULES_PATH = 
"/repository/components/org.wso2.carbon.throttling-rules";
+
+    public static final String ORIGINATED_SERVICE_PATH = 
"/repository/components/org.wso2.carbon.originated-service";
+
+    public static final String PATH_SEPARATOR = "/";
+
+    public static final String CLOUD_SERVICE_ICONS_STORE_PATH =
+            "/repository/components/org.wso2.carbon.cloud-manager/" + 
"cloud-services-icons";
+
+    public static final String VALIDATION_KEY_RESOURCE_NAME = "validation-key";
+    public static final String INCOMING_PATH_DIR = "incoming";
+    public static final String OUTGOING_PATH_DIR = "outgoing";
+    public static final String MULTITENANCY_SCHEDULED_TASK_ID = 
"multitenancyScheduledTask";
+    public static final String MULTITENANCY_VIEWING_TASK_ID = 
"multitenancyViewingTask";
+
+    public static final String INVALID_TENANT = "invalidTenant";
+    public static final String INACTIVE_TENANT = "inactiveTenant";
+    public static final String ACTIVE_TENANT = "activeTenant";
+    public static final String IS_EMAIL_VALIDATED = "isEmailValidated";
+    public static final String IS_CREDENTIALS_ALREADY_RESET = 
"isCredentialsReset";
+    public static final String TENANT_ADMIN = "tenantAdminUsername";
+
+    public static final String CLOUD_MANAGER_SERVICE = "Apache Stratos 
Controller";
+    public static final String CLOUD_IDENTITY_SERVICE = "WSO2 Stratos 
Identity";
+    public static final String CLOUD_GOVERNANCE_SERVICE = "WSO2 Stratos 
Governance";
+    public static final String CLOUD_ESB_SERVICE = "WSO2 Stratos Enterprise 
Service Bus";
+
+    // keystore mgt related Constants
+    public static final String TENANT_KS = "/repository/security/key-stores/";
+    public static final String TENANT_PUB_KEY = "/repository/security/pub-key";
+    public static final String PROP_TENANT_KS_TYPE = "key-store-type";
+    public static final String PROP_TENANT_KS_PASSWD = "key-store-password";
+    public static final String PROP_TENANT_KS_PRIV_KEY_PASSWD = 
"priv-key-password";
+    public static final String PROP_TENANT_KS_ALIAS = "alias";
+
+    // constants related to redirection
+
+    public static final String UNVERIFIED_ACCOUNT_DOMAIN_SUFFIX = 
"-unverified";
+    public static final String TENANT_SPECIFIC_URL_RESOLVED = 
"tenant-sepcific-url-resolved";
+    public static final String SUFFIXED_UNVERIFIED_SESSION_FLAG = 
"temp-suffixed-unverified";
+
+    // metering constants
+    public static final String THROTTLING_ALL_ACTION = "all_actions";
+    public static final String THROTTLING_IN_DATA_ACTION = "in_data_action";
+    //this covers registry capacity + registry bandwidth
+    public static final String THROTTLING_OUT_DATA_ACTION = "out_data_action"; 
//this covers registry bandwidth
+    public static final String THROTTLING_ADD_USER_ACTION = "add_user_action";
+    public static final String THROTTLING_SERVICE_IN_BANDWIDTH_ACTION = 
"service_in_bandwith_action";
+    public static final String THROTTLING_SERVICE_OUT_BANDWIDTH_ACTION = 
"service_out_bandwith_action";
+    public static final String THROTTLING_WEBAPP_IN_BANDWIDTH_ACTION = 
"webapp_in_bandwith_action";
+    public static final String THROTTLING_WEBAPP_OUT_BANDWIDTH_ACTION = 
"webapp_out_bandwith_action";
+    public static final String THROTTLING_SERVICE_REQUEST_ACTION = 
"service_request_action";
+    public static final String THROTTLING_SERVICE_RESPONSE_ACTION = 
"service_response_action";
+
+    // the session attribute to keep track whether the registry action 
validated
+    // and the usage persisted
+    public static final String REGISTRY_ACTION_VALIDATED_SESSION_ATTR = 
"registryActionValidated";
+    public static final String REGISTRY_USAGE_PERSISTED_SESSION_ATTR = 
"usagePersited";
+
+    // Metering servlet attributes
+    public static final String SERVICE_NAME_SERVLET_ATTR = 
"meteringServiceName";
+    public static final String TENANT_ID_SERVLET_ATTR = "tenantId";
+    public static final String ADMIN_SERVICE_SERVLET_ATTR = "adminService";
+
+    // * as a Service impl related constants
+    public static final String ORIGINATED_SERVICE = "originatedService";
+
+    // Configuration file name
+    public static final String STRATOS_CONF_FILE = "stratos.xml";
+    //public static final String STRATOS_CONF_LOC = "repository/conf/";
+    //public static final String STRATOS_CONF_FILE_WITH_PATH = 
STRATOS_CONF_LOC + STRATOS_CONF_FILE;
+
+    // EULA location
+    public static final String STRATOS_EULA = "eula.xml";
+
+    // EULA default text.
+    public static final String STRATOS_EULA_DEFAULT_TEXT =
+            "Please refer to: " + StratosConstants.STRATOS_TERMS_OF_USAGE +
+                    " for terms and usage and " + 
StratosConstants.STRATOS_PRIVACY_POLICY +
+                    " for privacy policy of WSO2 Stratos.";
+
+    // Web location of Terms of Usage and privacy policy
+    public static final String STRATOS_TERMS_OF_USAGE = 
"http://wso2.com/cloud/services/terms-of-use/";;
+    public static final String STRATOS_PRIVACY_POLICY = 
"http://wso2.com/cloud/services/privacy-policy/";;
+    public static final String MULTITENANCY_FREE_PLAN = "Demo";
+    public static final String MULTITENANCY_SMALL_PLAN = "SMB";
+    public static final String MULTITENANCY_MEDIUM_PLAN = "Professional";
+    public static final String MULTITENANCY_LARGE_PLAN = "Enterprise";
+    public static final String EMAIL_CONFIG = "email";
+    public static final String MULTITENANCY_CONFIG_FOLDER = "multitenancy";
+
+    // Cloud controller - payload
+    public static final String MEMBER_ID = "MEMBER_ID";
+    public static final String LB_CLUSTER_ID = "LB_CLUSTER_ID";
+    public static final String NETWORK_PARTITION_ID = "NETWORK_PARTITION_ID";
+
+    // Kubernetes related constants
+    public static final String KUBERNETES_CLUSTER_ID = "KUBERNETES_CLUSTER_ID";
+    public static final String KUBERNETES_MASTER_PORT = 
"KUBERNETES_MASTER_PORT";
+    public static final String KUBERNETES_MASTER_DEFAULT_PORT = "8080";
+
+    //drools related constants
+    public static final String DROOLS_DIR_NAME = "drools";
+    public static final String SCALE_CHECK_DROOL_FILE = "scaling.drl";
+    public static final String DEPENDENT_SCALE_CHECK_DROOL_FILE = 
"dependent-scaling.drl";
+    public static final String MIN_CHECK_DROOL_FILE = "mincheck.drl";
+    public static final String MAX_CHECK_DROOL_FILE = "maxcheck.drl";
+    public static final String OBSOLETE_CHECK_DROOL_FILE = "obsoletecheck.drl";
+    public static final String MIN_COUNT = "MIN_COUNT";
+    public static final String SCALING_REASON = "SCALING_REASON";
+    public static final String SCALING_TIME = "SCALING_TIME";
+
+    // Policy and definition related constants
+    public static final int PUBLIC_DEFINITION = 0;
+
+    // member expiry timeout constants
+    public static final String PENDING_MEMBER_EXPIRY_TIMEOUT = 
"autoscaler.member.pendingMemberExpiryTimeout";
+    public static final String OBSOLETED_MEMBER_EXPIRY_TIMEOUT = 
"autoscaler.member.obsoletedMemberExpiryTimeout";
+    public static final String PENDING_TERMINATION_MEMBER_EXPIRY_TIMEOUT =
+            "autoscaler.member.pendingTerminationMemberExpiryTimeout";
+
+    public static final String FILTER_VALUE_SEPARATOR = ",";
+    public static final String TOPOLOGY_APPLICATION_FILTER = 
"stratos.topology.application.filter";
+    public static final String TOPOLOGY_SERVICE_FILTER = 
"stratos.topology.service.filter";
+    public static final String TOPOLOGY_CLUSTER_FILTER = 
"stratos.topology.cluster.filter";
+    public static final String TOPOLOGY_MEMBER_FILTER = 
"stratos.topology.member.filter";
+    public static final String TOPOLOGY_NETWORK_PARTITION_FILTER = 
"stratos.topology.network.partition.filter";
+
+    // to identify a lb cluster
+    public static final String LOAD_BALANCER_REF = "load.balancer.ref";
+    public static final String SERVICE_AWARE_LOAD_BALANCER = 
"service.aware.load.balancer";
+    public static final String DEFAULT_LOAD_BALANCER = "default.load.balancer";
+    public static final String NO_LOAD_BALANCER = "no.load.balancer";
+    public static final String EXISTING_LOAD_BALANCERS = 
"existing.load.balancers";
+
+    public static final long HAZELCAST_INSTANCE_INIT_TIMEOUT = 300000; // 5 min
+
+    public static final String AUTOSCALER_SERVICE_URL = 
"autoscaler.service.url";
+    public static final String CLOUD_CONTROLLER_SERVICE_URL = 
"cloud.controller.service.url";
+    public static final String STRATOS_MANAGER_SERVICE_URL = 
"stratos.manager.service.url";
+
+    public static final String CLOUD_CONTROLLER_CLIENT_SOCKET_TIMEOUT = 
"cc.socket.timeout";
+    public static final String CLOUD_CONTROLLER_CLIENT_CONNECTION_TIMEOUT = 
"cc.connection.timeout";
+    public static final String AUTOSCALER_CLIENT_SOCKET_TIMEOUT = 
"autoscaler.socket.timeout";
+    public static final String AUTOSCALER_CLIENT_CONNECTION_TIMEOUT = 
"autoscaler.connection.timeout";
+    public static final String STRATOS_MANAGER_CLIENT_SOCKET_TIMEOUT = 
"stratos.manager.socket.timeout";
+    public static final String STRATOS_MANAGER_CLIENT_CONNECTION_TIMEOUT = 
"stratos.manager.connection.timeout";
+
+    public static final String DEFAULT_CLIENT_SOCKET_TIMEOUT = "300000";
+    public static final String DEFAULT_CLIENT_CONNECTION_TIMEOUT = "300000";
+
+    // partition algorithm id constants
+    public static final String PARTITION_ROUND_ROBIN_ALGORITHM_ID = 
"round-robin";
+    public static final String PARTITION_WEIGHTED_ROUND_ROBIN_ALGORITHM_ID = 
"weighted-round-robin";
+    public static final String PARTITION_ONE_AFTER_ANOTHER_ALGORITHM_ID = 
"one-after-another";
+    // network partition algorithm id constants
+    public static final String 
NETWORK_PARTITION_ONE_AFTER_ANOTHER_ALGORITHM_ID = "one-after-another";
+    public static final String NETWORK_PARTITION_ALL_AT_ONCE_ALGORITHM_ID = 
"all-at-once";
+    public static final String APPLICATION_POLICY_NETWORK_PARTITION_GROUPS = 
"networkPartitionGroups";
+    public static final String APPLICATION_POLICY_NETWORK_PARTITIONS_SPLITTER 
= "\\|";
+    public static final String 
APPLICATION_POLICY_NETWORK_PARTITION_GROUPS_SPLITTER = ",";
+
+    public static final String NOT_DEFINED = "not-defined";
+    public static final String CLUSTER_INSTANCE_ID = "cluster.instance.id";
 }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/218b5fdc/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/healthstatspublisher/healthstats.py
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/healthstatspublisher/healthstats.py
 
b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/healthstatspublisher/healthstats.py
index 711fe43..855f732 100644
--- 
a/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/healthstatspublisher/healthstats.py
+++ 
b/components/org.apache.stratos.python.cartridge.agent/src/main/python/cartridge.agent/cartridge.agent/modules/healthstatspublisher/healthstats.py
@@ -162,7 +162,7 @@ class HealthStatisticsPublisher:
         """
 
         event = ThriftEvent()
-        #Sevent.payloadData.append(int(round(time.time() * 1000)))
+        #event.payloadData.append(int(round(time.time() * 1000)))
         event.payloadData.append(self.cartridge_agent_config.cluster_id)
         
event.payloadData.append(self.cartridge_agent_config.cluster_instance_id)
         
event.payloadData.append(self.cartridge_agent_config.network_partition_id)

http://git-wip-us.apache.org/repos/asf/stratos/blob/218b5fdc/products/stratos/modules/distribution/src/main/conf/drools/scaling.drl
----------------------------------------------------------------------
diff --git 
a/products/stratos/modules/distribution/src/main/conf/drools/scaling.drl 
b/products/stratos/modules/distribution/src/main/conf/drools/scaling.drl
index ca532de..167711f 100644
--- a/products/stratos/modules/distribution/src/main/conf/drools/scaling.drl
+++ b/products/stratos/modules/distribution/src/main/conf/drools/scaling.drl
@@ -165,9 +165,6 @@ dialect "mvel"
                     int count = 0;
                     String autoscalingReason = (numberOfRequiredInstances == 
numberOfInstancesReuquiredBasedOnRif)?"Scaling up due to 
RIF":(numberOfRequiredInstances== 
numberOfInstancesReuquiredBasedOnMemoryConsumption)?"Scaling up due to 
MC":"Scaling up due to LA";
 
-                    String autoscalingReason = (numberOfRequiredInstances == 
numberOfInstancesReuquiredBasedOnRif)?"Scaling up due to 
RIF":(numberOfRequiredInstances== 
numberOfInstancesReuquiredBasedOnMemoryConsumption)?"Scaling up due to 
MC":"Scaling up due to LA";
-
-
                     while(count != additionalInstances && partitionsAvailable){
 
                         ClusterLevelPartitionContext partitionContext = 
(ClusterLevelPartitionContext) 
partitionAlgorithm.getNextScaleUpPartitionContext(clusterInstanceContext.getPartitionCtxtsAsAnArray());

Reply via email to