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

[1/5] subscription and payload models to provide support for service deploying

Updated Branches:
  refs/heads/master 14b891ede -> 8d995e243


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdaabd7/components/org.apache.stratos.adc.mgt/src/test/java/org/apache/stratos/adc/mgt/test/PayloadTest.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/test/java/org/apache/stratos/adc/mgt/test/PayloadTest.java b/components/org.apache.stratos.adc.mgt/src/test/java/org/apache/stratos/adc/mgt/test/PayloadTest.java
index a8c81a7..768592b 100644
--- a/components/org.apache.stratos.adc.mgt/src/test/java/org/apache/stratos/adc/mgt/test/PayloadTest.java
+++ b/components/org.apache.stratos.adc.mgt/src/test/java/org/apache/stratos/adc/mgt/test/PayloadTest.java
@@ -1,196 +1,196 @@
-/*
- * 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.adc.mgt.test;
-
-import junit.framework.TestCase;
-
-import org.apache.stratos.adc.mgt.dto.Policy;
-import org.apache.stratos.adc.mgt.exception.ADCException;
-import org.apache.stratos.adc.mgt.payload.Payload;
-import org.apache.stratos.adc.mgt.payload.PayloadArg;
-import org.apache.stratos.adc.mgt.payload.PayloadFactory;
-import org.apache.stratos.adc.mgt.utils.CartridgeConstants;
-import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
-import org.apache.stratos.cloud.controller.pojo.PortMapping;
-
-import java.math.BigDecimal;
-
-public class PayloadTest extends TestCase {
-
-    protected void setUp() throws java.lang.Exception {
-
-        System.setProperty(CartridgeConstants.REPO_INFO_EPR, "https://sm.stratos.com:9445/repository_info_service");
-        System.setProperty(CartridgeConstants.CARTRIDGE_AGENT_EPR, "https://sm.stratos.com:9445/cartridge_agent_service");
-        System.setProperty(CartridgeConstants.BAM_IP, "10.10.10.10");
-        System.setProperty(CartridgeConstants.BAM_PORT, "7714");
-        System.setProperty("carbon.home", "/tmp/dummy-carbon-server");
-    }
-
-    private Payload createPayload (PayloadArg payloadArg, String provider, String cartridgeType, String tenantDomain,
-                                   String cartridgeAlias) {
-
-        Payload payload = null;
-        try {
-            payload = PayloadFactory.getPayloadInstance(provider, cartridgeType,
-                    "/tmp/" + tenantDomain + "-" + cartridgeAlias + ".zip");
-
-        } catch (ADCException e) {
-            throw new RuntimeException(e);
-        }
-        payload.populatePayload(payloadArg);
-        try {
-            payload.createPayload();
-
-        } catch (ADCException e) {
-            throw new RuntimeException(e);
-        }
-
-        return payload;
-    }
-
-    private PayloadArg createBasePayloadArg (CartridgeInfo cartridgeInfo, boolean isMultitenant, String alias,
-                                             String type) {
-
-        PayloadArg payloadArg = new PayloadArg();
-        payloadArg.setCartridgeInfo(cartridgeInfo);
-        payloadArg.setMultitenant(isMultitenant);
-        payloadArg.setTenantId(1);
-        payloadArg.setTenantDomain("foo.com");
-        payloadArg.setCartridgeAlias(alias);
-        payloadArg.setServiceName(type);
-
-        return payloadArg;
-    }
-
-    public void testMultitenantCarbonPayload() {
-
-        CartridgeInfo cartridgeInfo = new CartridgeInfo();
-        cartridgeInfo.setMultiTenant(true);
-        cartridgeInfo.setType("esb");
-        PayloadArg payloadArg = createBasePayloadArg(cartridgeInfo, true, "carbon1", "esb");
-        payloadArg.setDeployment("default");
-        payloadArg.setHostName("esb.test.com");
-        payloadArg.setServiceDomain("esb.domain");
-        payloadArg.setServiceDomain("__$default");
-        Payload payload = createPayload(payloadArg, "wso2", "esb", "foo.com", "carbon1");
-        assertNotNull(payload);
-        //assertTrue(payload.delete());
-    }
-
-    public void testSingleTenantCarbonPayload() {
-
-        CartridgeInfo cartridgeInfo = new CartridgeInfo();
-        cartridgeInfo.setMultiTenant(false);
-        cartridgeInfo.setType("as");
-        PayloadArg payloadArg = createBasePayloadArg(cartridgeInfo, false, "carbon2", "as");
-        payloadArg.setDeployment("default");
-        payloadArg.setHostName("as.test.com");
-        payloadArg.setServiceDomain("as.domain");
-        payloadArg.setServiceDomain("__$default");
-        Payload payload = createPayload(payloadArg, "wso2", "as", "foo.com", "carbon2");
-        assertNotNull(payload);
-        //assertTrue(payload.delete());
-    }
-
-    public void testNonCarbonPayload() {
-
-        CartridgeInfo cartridgeInfo = new CartridgeInfo();
-        cartridgeInfo.setType("php");
-        //http port mapping
-        PortMapping httpPortMapping = new PortMapping();
-        httpPortMapping.setProtocol("http");
-        httpPortMapping.setPort("80");
-        httpPortMapping.setProxyPort("8280");
-        //https port mapping
-        PortMapping httpsPortMapping = new PortMapping();
-        httpsPortMapping.setProtocol("https");
-        httpsPortMapping.setPort("443");
-        httpsPortMapping.setProxyPort("8243");
-
-        PortMapping[] portMappings = new PortMapping[]{httpPortMapping, httpsPortMapping};
-        cartridgeInfo.setPortMappings(portMappings);
-
-        //auto scaling parameters
-        Policy autoScalePolicy = new Policy();
-        autoScalePolicy.setMinAppInstances(1);
-        autoScalePolicy.setMaxAppInstances(2);
-        autoScalePolicy.setAlarmingLowerRate(BigDecimal.valueOf(0.2));
-        autoScalePolicy.setAlarmingUpperRate(BigDecimal.valueOf(0.7));
-        autoScalePolicy.setMaxRequestsPerSecond(5);
-        autoScalePolicy.setScaleDownFactor(BigDecimal.valueOf(0.25));
-        autoScalePolicy.setRoundsToAverage(2);
-
-        PayloadArg payloadArg = createBasePayloadArg(cartridgeInfo, false, "php1", "php");
-        payloadArg.setPolicy(autoScalePolicy);
-        payloadArg.setHostName("php.test.com");
-        payloadArg.setServiceDomain("php.domain");
-        payloadArg.setServiceDomain("__$default");
-        Payload payload = createPayload(payloadArg, "php-provider", "php", "foo.com", "php1");
-        assertNotNull(payload);
-        //assertTrue(payload.delete());
-    }
-
-    public void testDataPayload() {
-
-        CartridgeInfo cartridgeInfo = new CartridgeInfo();
-        cartridgeInfo.setType("php");
-        //http port mapping
-        PortMapping httpPortMapping = new PortMapping();
-        httpPortMapping.setProtocol("http");
-        httpPortMapping.setPort("80");
-        httpPortMapping.setProxyPort("8280");
-        //https port mapping
-        PortMapping httpsPortMapping = new PortMapping();
-        httpsPortMapping.setProtocol("https");
-        httpsPortMapping.setPort("443");
-        httpsPortMapping.setProxyPort("8243");
-
-        PortMapping[] portMappings = new PortMapping[]{httpPortMapping, httpsPortMapping};
-        cartridgeInfo.setPortMappings(portMappings);
-
-        //auto scaling parameters
-        Policy autoScalePolicy = new Policy();
-        autoScalePolicy.setMinAppInstances(1);
-        autoScalePolicy.setMaxAppInstances(2);
-        autoScalePolicy.setAlarmingLowerRate(BigDecimal.valueOf(0.2));
-        autoScalePolicy.setAlarmingUpperRate(BigDecimal.valueOf(0.7));
-        autoScalePolicy.setMaxRequestsPerSecond(5);
-        autoScalePolicy.setScaleDownFactor(BigDecimal.valueOf(0.25));
-        autoScalePolicy.setRoundsToAverage(2);
-
-        PayloadArg payloadArg = createBasePayloadArg(cartridgeInfo, false, "mysql1", "mysql");
-        payloadArg.setPolicy(autoScalePolicy);
-        payloadArg.setHostName("mysql.test.com");
-        payloadArg.setServiceDomain("mysql.domain");
-        payloadArg.setServiceDomain("__$default");
-        Payload payload = createPayload(payloadArg, "mysql-provider", "mysql", "foo.com", "mysql1");
-        assertNotNull(payload);
-        //assertTrue(payload.delete());
-    }
-
-    protected void tearDown() throws java.lang.Exception {
-
-        System.clearProperty(CartridgeConstants.REPO_INFO_EPR);
-        System.clearProperty(CartridgeConstants.CARTRIDGE_AGENT_EPR);
-        System.clearProperty(CartridgeConstants.BAM_IP);
-        System.clearProperty(CartridgeConstants.BAM_PORT);
-        System.clearProperty("carbon.home");
-    }
-}
+///*
+// * 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.adc.mgt.test;
+//
+//import junit.framework.TestCase;
+//
+//import org.apache.stratos.adc.mgt.dto.Policy;
+//import org.apache.stratos.adc.mgt.exception.ADCException;
+//import org.apache.stratos.adc.mgt.payload.Payload;
+//import org.apache.stratos.adc.mgt.payload.PayloadArg;
+//import org.apache.stratos.adc.mgt.payload.PayloadFactory;
+//import org.apache.stratos.adc.mgt.utils.CartridgeConstants;
+//import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
+//import org.apache.stratos.cloud.controller.pojo.PortMapping;
+//
+//import java.math.BigDecimal;
+//
+//public class PayloadTest extends TestCase {
+//
+//    protected void setUp() throws java.lang.Exception {
+//
+//        System.setProperty(CartridgeConstants.REPO_INFO_EPR, "https://sm.stratos.com:9445/repository_info_service");
+//        System.setProperty(CartridgeConstants.CARTRIDGE_AGENT_EPR, "https://sm.stratos.com:9445/cartridge_agent_service");
+//        System.setProperty(CartridgeConstants.BAM_IP, "10.10.10.10");
+//        System.setProperty(CartridgeConstants.BAM_PORT, "7714");
+//        System.setProperty("carbon.home", "/tmp/dummy-carbon-server");
+//    }
+//
+//    private Payload createPayload (PayloadArg payloadArg, String provider, String cartridgeType, String tenantDomain,
+//                                   String cartridgeAlias) {
+//
+//        Payload payload = null;
+//        try {
+//            payload = PayloadFactory.getPayloadDataInstance(provider, cartridgeType,
+//                    "/tmp/" + tenantDomain + "-" + cartridgeAlias + ".zip");
+//
+//        } catch (ADCException e) {
+//            throw new RuntimeException(e);
+//        }
+//        payload.populatePayload(payloadArg);
+//        try {
+//            payload.createPayload();
+//
+//        } catch (ADCException e) {
+//            throw new RuntimeException(e);
+//        }
+//
+//        return payload;
+//    }
+//
+//    private PayloadArg createBasePayloadArg (CartridgeInfo cartridgeInfo, boolean isMultitenant, String alias,
+//                                             String type) {
+//
+//        PayloadArg payloadArg = new PayloadArg();
+//        payloadArg.setCartridgeInfo(cartridgeInfo);
+//        payloadArg.setMultitenant(isMultitenant);
+//        payloadArg.setTenantId(1);
+//        payloadArg.setTenantDomain("foo.com");
+//        payloadArg.setCartridgeAlias(alias);
+//        payloadArg.setServiceName(type);
+//
+//        return payloadArg;
+//    }
+//
+//    public void testMultitenantCarbonPayload() {
+//
+//        CartridgeInfo cartridgeInfo = new CartridgeInfo();
+//        cartridgeInfo.setMultiTenant(true);
+//        cartridgeInfo.setType("esb");
+//        PayloadArg payloadArg = createBasePayloadArg(cartridgeInfo, true, "carbon1", "esb");
+//        payloadArg.setDeployment("default");
+//        payloadArg.setHostName("esb.test.com");
+//        payloadArg.setServiceDomain("esb.domain");
+//        payloadArg.setServiceDomain("__$default");
+//        Payload payload = createPayload(payloadArg, "wso2", "esb", "foo.com", "carbon1");
+//        assertNotNull(payload);
+//        //assertTrue(payload.delete());
+//    }
+//
+//    public void testSingleTenantCarbonPayload() {
+//
+//        CartridgeInfo cartridgeInfo = new CartridgeInfo();
+//        cartridgeInfo.setMultiTenant(false);
+//        cartridgeInfo.setType("as");
+//        PayloadArg payloadArg = createBasePayloadArg(cartridgeInfo, false, "carbon2", "as");
+//        payloadArg.setDeployment("default");
+//        payloadArg.setHostName("as.test.com");
+//        payloadArg.setServiceDomain("as.domain");
+//        payloadArg.setServiceDomain("__$default");
+//        Payload payload = createPayload(payloadArg, "wso2", "as", "foo.com", "carbon2");
+//        assertNotNull(payload);
+//        //assertTrue(payload.delete());
+//    }
+//
+//    public void testNonCarbonPayload() {
+//
+//        CartridgeInfo cartridgeInfo = new CartridgeInfo();
+//        cartridgeInfo.setType("php");
+//        //http port mapping
+//        PortMapping httpPortMapping = new PortMapping();
+//        httpPortMapping.setProtocol("http");
+//        httpPortMapping.setPort("80");
+//        httpPortMapping.setProxyPort("8280");
+//        //https port mapping
+//        PortMapping httpsPortMapping = new PortMapping();
+//        httpsPortMapping.setProtocol("https");
+//        httpsPortMapping.setPort("443");
+//        httpsPortMapping.setProxyPort("8243");
+//
+//        PortMapping[] portMappings = new PortMapping[]{httpPortMapping, httpsPortMapping};
+//        cartridgeInfo.setPortMappings(portMappings);
+//
+//        //auto scaling parameters
+//        Policy autoScalePolicy = new Policy();
+//        autoScalePolicy.setMinAppInstances(1);
+//        autoScalePolicy.setMaxAppInstances(2);
+//        autoScalePolicy.setAlarmingLowerRate(BigDecimal.valueOf(0.2));
+//        autoScalePolicy.setAlarmingUpperRate(BigDecimal.valueOf(0.7));
+//        autoScalePolicy.setMaxRequestsPerSecond(5);
+//        autoScalePolicy.setScaleDownFactor(BigDecimal.valueOf(0.25));
+//        autoScalePolicy.setRoundsToAverage(2);
+//
+//        PayloadArg payloadArg = createBasePayloadArg(cartridgeInfo, false, "php1", "php");
+//        payloadArg.setPolicy(autoScalePolicy);
+//        payloadArg.setHostName("php.test.com");
+//        payloadArg.setServiceDomain("php.domain");
+//        payloadArg.setServiceDomain("__$default");
+//        Payload payload = createPayload(payloadArg, "php-provider", "php", "foo.com", "php1");
+//        assertNotNull(payload);
+//        //assertTrue(payload.delete());
+//    }
+//
+//    public void testDataPayload() {
+//
+//        CartridgeInfo cartridgeInfo = new CartridgeInfo();
+//        cartridgeInfo.setType("php");
+//        //http port mapping
+//        PortMapping httpPortMapping = new PortMapping();
+//        httpPortMapping.setProtocol("http");
+//        httpPortMapping.setPort("80");
+//        httpPortMapping.setProxyPort("8280");
+//        //https port mapping
+//        PortMapping httpsPortMapping = new PortMapping();
+//        httpsPortMapping.setProtocol("https");
+//        httpsPortMapping.setPort("443");
+//        httpsPortMapping.setProxyPort("8243");
+//
+//        PortMapping[] portMappings = new PortMapping[]{httpPortMapping, httpsPortMapping};
+//        cartridgeInfo.setPortMappings(portMappings);
+//
+//        //auto scaling parameters
+//        Policy autoScalePolicy = new Policy();
+//        autoScalePolicy.setMinAppInstances(1);
+//        autoScalePolicy.setMaxAppInstances(2);
+//        autoScalePolicy.setAlarmingLowerRate(BigDecimal.valueOf(0.2));
+//        autoScalePolicy.setAlarmingUpperRate(BigDecimal.valueOf(0.7));
+//        autoScalePolicy.setMaxRequestsPerSecond(5);
+//        autoScalePolicy.setScaleDownFactor(BigDecimal.valueOf(0.25));
+//        autoScalePolicy.setRoundsToAverage(2);
+//
+//        PayloadArg payloadArg = createBasePayloadArg(cartridgeInfo, false, "mysql1", "mysql");
+//        payloadArg.setPolicy(autoScalePolicy);
+//        payloadArg.setHostName("mysql.test.com");
+//        payloadArg.setServiceDomain("mysql.domain");
+//        payloadArg.setServiceDomain("__$default");
+//        Payload payload = createPayload(payloadArg, "mysql-provider", "mysql", "foo.com", "mysql1");
+//        assertNotNull(payload);
+//        //assertTrue(payload.delete());
+//    }
+//
+//    protected void tearDown() throws java.lang.Exception {
+//
+//        System.clearProperty(CartridgeConstants.REPO_INFO_EPR);
+//        System.clearProperty(CartridgeConstants.CARTRIDGE_AGENT_EPR);
+//        System.clearProperty(CartridgeConstants.BAM_IP);
+//        System.clearProperty(CartridgeConstants.BAM_PORT);
+//        System.clearProperty("carbon.home");
+//    }
+//}

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdaabd7/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
index d206906..30c61cd 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
@@ -908,10 +908,10 @@ public class ServiceUtils {
     	// create the subscription and persist. 
     	CartridgeSubscription cartridgeSubscription = null;
     	try {
-    		cartridgeSubscription = cartridgeSubsciptionManager.deployMultitenantService(cartridgeType, alias, autoscalingPolicy,
-					deploymentPolicy, tenantDomain, tenantId, "tenant-admin-user-name", clusterDomain, clusterSubdomain, null, false, null, null,
-					tenantRange);
-    		cartridgeSubsciptionManager.registerCartridgeSubscription(cartridgeSubscription);
+    		//cartridgeSubscription = cartridgeSubsciptionManager.deployMultitenantService(cartridgeType, alias, autoscalingPolicy,
+			//		deploymentPolicy, tenantDomain, tenantId, "tenant-admin-user-name", clusterDomain, clusterSubdomain, null, false, null, null,
+			//		tenantRange);
+    		//cartridgeSubsciptionManager.registerCartridgeSubscription(cartridgeSubscription);
 		} catch (Exception e) {
 			e.printStackTrace();
 		}


[2/5] subscription and payload models to provide support for service deploying

Posted by is...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdaabd7/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/ApplicationCartridgeSubscription.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/ApplicationCartridgeSubscription.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/ApplicationCartridgeSubscription.java
index ecacc37..8e7d245 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/ApplicationCartridgeSubscription.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/ApplicationCartridgeSubscription.java
@@ -19,15 +19,9 @@
 
 package org.apache.stratos.adc.mgt.subscription;
 
-import org.apache.stratos.adc.mgt.dao.CartridgeSubscriptionInfo;
-import org.apache.stratos.adc.mgt.exception.*;
-import org.apache.stratos.adc.mgt.payload.PayloadArg;
 import org.apache.stratos.adc.mgt.repository.Repository;
-import org.apache.stratos.adc.mgt.subscriber.Subscriber;
 import org.apache.stratos.adc.mgt.subscription.tenancy.SubscriptionTenancyBehaviour;
-import org.apache.stratos.adc.mgt.utils.ApplicationManagementUtil;
 import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
-import org.apache.stratos.cloud.controller.pojo.Properties;
 
 public class ApplicationCartridgeSubscription extends CartridgeSubscription {
 
@@ -37,35 +31,14 @@ public class ApplicationCartridgeSubscription extends CartridgeSubscription {
     /**
      * Constructor
      *
-     * @param cartridgeInfo CartridgeInfo subscription
+     * @param cartridgeInfo CartridgeInfo instance
+     * @param subscriptionTenancyBehaviour SubscriptionTenancyBehaviour instance
      */
-    public ApplicationCartridgeSubscription(CartridgeInfo cartridgeInfo, boolean isServiceDeployment) {
-        super(cartridgeInfo, isServiceDeployment);
+    public ApplicationCartridgeSubscription(CartridgeInfo cartridgeInfo, SubscriptionTenancyBehaviour
+            subscriptionTenancyBehaviour) {
+        super(cartridgeInfo, subscriptionTenancyBehaviour);
     }
 
-    public void createSubscription(Subscriber subscriber, String alias, String autoscalingPolicyName,
-                                   String deploymentPolicyName, Repository repository) throws
-            InvalidCartridgeAliasException, DuplicateCartridgeAliasException, ADCException,
-            RepositoryCredentialsRequiredException, RepositoryTransportException, UnregisteredCartridgeException,
-            AlreadySubscribedException, RepositoryRequiredException, InvalidRepositoryException, PolicyException {
-
-        super.createSubscription(subscriber, alias, autoscalingPolicyName, deploymentPolicyName, repository);
-        subscriptionTenancyBehaviour.createSubscription();
-    }
-
-    @Override
-    public CartridgeSubscriptionInfo registerSubscription(Properties properties) throws ADCException, UnregisteredCartridgeException {
-
-        Properties props = new Properties();
-        props.setProperties(getCartridgeInfo().getProperties());
-        
-        subscriptionTenancyBehaviour.registerSubscription(props);
-
-        return ApplicationManagementUtil.createCartridgeSubscription(getCartridgeInfo(), getAutoscalingPolicyName(),
-                getType(), getAlias(), getSubscriber().getTenantId(), getSubscriber().getTenantDomain(),
-                getRepository(), getCluster().getHostName(), getCluster().getClusterDomain(), getCluster().getClusterSubDomain(),
-                getCluster().getMgtClusterDomain(), getCluster().getMgtClusterSubDomain(), null, "PENDING", getSubscriptionKey());
-    }
 
     public Repository manageRepository (String repoURL, String repoUserName, String repoUserPassword,
                                         boolean privateRepo, String cartridgeAlias, CartridgeInfo cartridgeInfo,
@@ -74,19 +47,4 @@ public class ApplicationCartridgeSubscription extends CartridgeSubscription {
         //no repository for application cartridge instances
         return null;
     }
-
-    @Override
-    public void removeSubscription() throws ADCException, NotSubscribedException {
-
-        subscriptionTenancyBehaviour.removeSubscription();
-        super.cleanupSubscription();
-    }
-
-    public PayloadArg createPayloadParameters () throws ADCException {
-
-        PayloadArg payloadArg = super.createPayloadParameters();
-        return subscriptionTenancyBehaviour.createPayloadParameters(payloadArg);
-    }
-
-	
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdaabd7/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/CartridgeSubscription.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/CartridgeSubscription.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/CartridgeSubscription.java
index fb08da3..c476f09 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/CartridgeSubscription.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/CartridgeSubscription.java
@@ -27,23 +27,20 @@ import org.apache.stratos.adc.mgt.dao.Cluster;
 import org.apache.stratos.adc.mgt.dns.DNSManager;
 import org.apache.stratos.adc.mgt.exception.*;
 import org.apache.stratos.adc.mgt.internal.DataHolder;
-import org.apache.stratos.adc.mgt.payload.Payload;
-import org.apache.stratos.adc.mgt.payload.PayloadArg;
+import org.apache.stratos.adc.mgt.payload.PayloadData;
 import org.apache.stratos.adc.mgt.repository.Repository;
-import org.apache.stratos.adc.mgt.service.RepositoryInfoBean;
 import org.apache.stratos.adc.mgt.subscriber.Subscriber;
-import org.apache.stratos.adc.mgt.subscription.tenancy.ServiceDeploymentMultiTenantBehaviour;
-import org.apache.stratos.adc.mgt.subscription.tenancy.SubscriptionMultiTenantBehaviour;
-import org.apache.stratos.adc.mgt.subscription.tenancy.SubscriptionSingleTenantBehaviour;
 import org.apache.stratos.adc.mgt.subscription.tenancy.SubscriptionTenancyBehaviour;
-import org.apache.stratos.adc.mgt.utils.*;
+import org.apache.stratos.adc.mgt.utils.ApplicationManagementUtil;
+import org.apache.stratos.adc.mgt.utils.CartridgeConstants;
+import org.apache.stratos.adc.mgt.utils.PersistenceManager;
+import org.apache.stratos.adc.mgt.utils.RepositoryFactory;
 import org.apache.stratos.adc.topology.mgt.service.TopologyManagementService;
 import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
 import org.apache.stratos.cloud.controller.pojo.Properties;
 
 import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.Map;
 
 public abstract class CartridgeSubscription implements Serializable {
 
@@ -58,23 +55,23 @@ public abstract class CartridgeSubscription implements Serializable {
     private Subscriber subscriber;
     private Repository repository;
     private CartridgeInfo cartridgeInfo;
-    private Payload payload;
+    private PayloadData payloadData;
     private Cluster cluster;
-    private String subscriptionStatus;
-    private String serviceStatus;
+    //private String subscriptionStatus;
+    //private String serviceStatus;
     private String mappedDomain;
-    private List<String> connectedSubscriptionAliases;
+    //private List<String> connectedSubscriptionAliases;
     private String subscriptionKey;
-    protected SubscriptionTenancyBehaviour subscriptionTenancyBehaviour;
+    private SubscriptionTenancyBehaviour subscriptionTenancyBehaviour;
 
     
     /**
      * Constructor
      *
-     * @param cartridgeInfo CartridgeInfo subscription
+     * @param cartridgeInfo CartridgeInfo instance
+     * @param subscriptionTenancyBehaviour SubscriptionTenancyBehaviour instance
      */
-    // TODO - temp fix to identify service deployment
-    public CartridgeSubscription(CartridgeInfo cartridgeInfo, boolean isServiceDeployment) {
+    public CartridgeSubscription(CartridgeInfo cartridgeInfo, SubscriptionTenancyBehaviour subscriptionTenancyBehaviour) {
 
         this.setCartridgeInfo(cartridgeInfo);
         this.setType(cartridgeInfo.getType());
@@ -84,16 +81,9 @@ public abstract class CartridgeSubscription implements Serializable {
         getCluster().setMgtClusterDomain("");
         getCluster().setMgtClusterSubDomain(CartridgeConstants.DEFAULT_MGT_SUBDOMAIN);
         getCluster().setHostName(cartridgeInfo.getHostName());
-        this.setSubscriptionStatus(CartridgeConstants.SUBSCRIBED);
-        this.connectedSubscriptionAliases = new ArrayList<String>();
-        boolean isMultiTenant = getCartridgeInfo().getMultiTenant();
-        if(isServiceDeployment) {
-        	subscriptionTenancyBehaviour = new ServiceDeploymentMultiTenantBehaviour(this);
-        } else if(isMultiTenant) {
-            subscriptionTenancyBehaviour = new SubscriptionMultiTenantBehaviour(this);
-        } else {
-            subscriptionTenancyBehaviour = new SubscriptionSingleTenantBehaviour(this);
-        } 
+        //this.setSubscriptionStatus(CartridgeConstants.SUBSCRIBED);
+        //this.connectedSubscriptionAliases = new ArrayList<String>();
+        this.setSubscriptionTenancyBehaviour(subscriptionTenancyBehaviour);
     }
 
     /**
@@ -122,14 +112,12 @@ public abstract class CartridgeSubscription implements Serializable {
             DuplicateCartridgeAliasException, RepositoryRequiredException, AlreadySubscribedException,
             RepositoryCredentialsRequiredException, InvalidRepositoryException, RepositoryTransportException {
 
-    	log.info(" ---- in super type cartridge subscription --");
         setSubscriber(subscriber);
         setAlias(alias);
         setAutoscalingPolicyName(autoscalingPolicy);
         setDeploymentPolicyName(deploymentPolicyName);
         setRepository(repository);
-        // TODOOO... remove followig
-        //subscriptionTenancyBehaviour.createSubscription(this);
+        getSubscriptionTenancyBehaviour().createSubscription(this);
     }
 
     /**
@@ -138,7 +126,11 @@ public abstract class CartridgeSubscription implements Serializable {
      * @throws ADCException
      * @throws NotSubscribedException
      */
-    public abstract void removeSubscription() throws ADCException, NotSubscribedException;
+    public void removeSubscription() throws ADCException, NotSubscribedException {
+
+        getSubscriptionTenancyBehaviour().removeSubscription(this);
+        cleanupSubscription();
+    }
 
     /**
      * Registers the subscription
@@ -149,8 +141,19 @@ public abstract class CartridgeSubscription implements Serializable {
      * @throws ADCException
      * @throws UnregisteredCartridgeException
      */
-    public abstract CartridgeSubscriptionInfo registerSubscription(Properties properties)
-            throws ADCException, UnregisteredCartridgeException;
+    public CartridgeSubscriptionInfo registerSubscription(Properties properties)
+            throws ADCException, UnregisteredCartridgeException {
+
+        Properties props = new Properties();
+        props.setProperties(getCartridgeInfo().getProperties());
+
+        getSubscriptionTenancyBehaviour().registerSubscription(this, props);
+
+        return ApplicationManagementUtil.createCartridgeSubscription(getCartridgeInfo(), getAutoscalingPolicyName(),
+                getType(), getAlias(), getSubscriber().getTenantId(), getSubscriber().getTenantDomain(),
+                getRepository(), getCluster().getHostName(), getCluster().getClusterDomain(), getCluster().getClusterSubDomain(),
+                getCluster().getMgtClusterDomain(), getCluster().getMgtClusterSubDomain(), null, "PENDING", getSubscriptionKey());
+    }
 
     /**
      * Connect cartridges
@@ -158,7 +161,7 @@ public abstract class CartridgeSubscription implements Serializable {
      * @param connectingCartridgeAlias Alias of connecting cartridge
      */
     public void connect (String connectingCartridgeAlias) {
-        connectedSubscriptionAliases.add(connectingCartridgeAlias);
+        //connectedSubscriptionAliases.add(connectingCartridgeAlias);
     }
 
     /**
@@ -167,27 +170,7 @@ public abstract class CartridgeSubscription implements Serializable {
      * @param disconnectingCartridgeAlias Alias of the cartridge subscription to disconnect
      */
     public void disconnect (String disconnectingCartridgeAlias) {
-        connectedSubscriptionAliases.remove(disconnectingCartridgeAlias);
-    }
-
-    /**
-     * Creates the relevant payload parameters for this cartridge subscription
-     *
-     * @return PayloadArg subscription
-     * @throws ADCException in an errpr
-     */
-    public PayloadArg createPayloadParameters() throws ADCException {
-
-        PayloadArg payloadArg = new PayloadArg();
-        payloadArg.setCartridgeInfo(getCartridgeInfo());
-        //payloadArg.setPolicy(getAutoscalingPolicyName());
-        payloadArg.setMultitenant(getCartridgeInfo().getMultiTenant());
-        payloadArg.setTenantId(getSubscriber().getTenantId());
-        payloadArg.setTenantDomain(getSubscriber().getTenantDomain());
-        payloadArg.setCartridgeAlias(getAlias());
-        payloadArg.setServiceName(getCartridgeInfo().getType());
-        payloadArg.setSubscriptionKey(subscriptionKey);
-        return payloadArg;
+        //connectedSubscriptionAliases.remove(disconnectingCartridgeAlias);
     }
 
     /**
@@ -233,27 +216,7 @@ public abstract class CartridgeSubscription implements Serializable {
             repository.setPassword(repoUserPassword);
             repository.setPrivateRepository(privateRepo);
 
-        } 
-        // Commenting out, since internal git repos are no longer used
-        /*else {
-
-            log.info("External git repo url not provided for tenant "
-                    + tenantDomain + ", creating an git internal repository");
-
-            repository.setUserName(System.getProperty(CartridgeConstants.INTERNAL_GIT_USERNAME));
-            repository.setPassword(System.getProperty(CartridgeConstants.INTERNAL_GIT_PASSWORD));
-            try {
-                new RepositoryCreator(new RepositoryInfoBean(repoURL, cartridgeAlias, tenantDomain,
-                        repository.getUserName(), repository.getPassword(), cartridgeInfo.getDeploymentDirs(),
-                        cartridgeInfo)).createInternalRepository();
-
-            } catch (Exception e) {
-                throw new ADCException(e.getMessage(), e);
-            }
-            String repoName = tenantDomain + "/" + cartridgeAlias;
-            repository.setUrl("https://" + System.getProperty(CartridgeConstants.GIT_HOST_NAME) + ":8443/git/" +
-                    repoName);
-        }*/
+        }
 
         // Validate Remote Repository.
         ApplicationManagementUtil.validateRepository(repoURL, repoUserName, repoUserPassword, privateRepo,
@@ -311,7 +274,13 @@ public abstract class CartridgeSubscription implements Serializable {
             log.error(errorMsg, e);
         }
 
-        this.setSubscriptionStatus(CartridgeConstants.UNSUBSCRIBED);
+        //this.setSubscriptionStatus(CartridgeConstants.UNSUBSCRIBED);
+    }
+
+    public Map<String, String> getCustomPayloadEntries () {
+
+        //no custom payload entries by default
+        return null;
     }
 
     public String getType() {
@@ -330,9 +299,9 @@ public abstract class CartridgeSubscription implements Serializable {
         return repository;
     }
 
-    public List<String> getConnectedSubscriptionAliases() {
+    /*public List<String> getConnectedSubscriptionAliases() {
         return connectedSubscriptionAliases;
-    }
+    }*/
 
     public CartridgeInfo getCartridgeInfo() {
         return cartridgeInfo;
@@ -406,12 +375,12 @@ public abstract class CartridgeSubscription implements Serializable {
         this.cartridgeInfo = cartridgeInfo;
     }
 
-    public Payload getPayload() {
-        return payload;
+    public PayloadData getPayloadData() {
+        return payloadData;
     }
 
-    public void setPayload(Payload payload) {
-        this.payload = payload;
+    public void setPayloadData(PayloadData payloadData) {
+        this.payloadData = payloadData;
     }
 
     public int getSubscriptionId() {
@@ -430,13 +399,13 @@ public abstract class CartridgeSubscription implements Serializable {
         this.mappedDomain = mappedDomain;
     }
 
-    public String getSubscriptionStatus() {
+    /*public String getSubscriptionStatus() {
         return subscriptionStatus;
     }
 
     public void setSubscriptionStatus(String subscriptionStatus) {
         this.subscriptionStatus = subscriptionStatus;
-    }
+    }*/
 
     public String getSubscriptionKey() {
         return subscriptionKey;
@@ -462,11 +431,19 @@ public abstract class CartridgeSubscription implements Serializable {
         this.deploymentPolicyName = deploymentPolicyName;
     }
 
-    public String getServiceStatus() {
+    public SubscriptionTenancyBehaviour getSubscriptionTenancyBehaviour() {
+        return subscriptionTenancyBehaviour;
+    }
+
+    public void setSubscriptionTenancyBehaviour(SubscriptionTenancyBehaviour subscriptionTenancyBehaviour) {
+        this.subscriptionTenancyBehaviour = subscriptionTenancyBehaviour;
+    }
+
+    /*public String getServiceStatus() {
         return serviceStatus;
     }
 
     public void setServiceStatus(String serviceStatus) {
         this.serviceStatus = serviceStatus;
-    }
+    }*/
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdaabd7/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/CartridgeSubscription_old.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/CartridgeSubscription_old.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/CartridgeSubscription_old.java
index b6b0deb..47c2388 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/CartridgeSubscription_old.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/CartridgeSubscription_old.java
@@ -380,11 +380,11 @@
 //        this.cartridgeInfo = cartridgeInfo;
 //    }
 //
-//    public Payload getPayload() {
+//    public Payload getPayloadData() {
 //        return payload;
 //    }
 //
-//    public void setPayload(Payload payload) {
+//    public void setPayloadData(Payload payload) {
 //        this.payload = payload;
 //    }
 //

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdaabd7/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/DataCartridgeSubscription.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/DataCartridgeSubscription.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/DataCartridgeSubscription.java
index f068129..53b7ae6 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/DataCartridgeSubscription.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/DataCartridgeSubscription.java
@@ -21,16 +21,17 @@ package org.apache.stratos.adc.mgt.subscription;
 
 import org.apache.stratos.adc.mgt.dao.CartridgeSubscriptionInfo;
 import org.apache.stratos.adc.mgt.dao.DataCartridge;
-import org.apache.stratos.adc.mgt.exception.*;
-import org.apache.stratos.adc.mgt.payload.PayloadArg;
+import org.apache.stratos.adc.mgt.exception.ADCException;
+import org.apache.stratos.adc.mgt.exception.UnregisteredCartridgeException;
 import org.apache.stratos.adc.mgt.repository.Repository;
-import org.apache.stratos.adc.mgt.subscriber.Subscriber;
 import org.apache.stratos.adc.mgt.subscription.tenancy.SubscriptionTenancyBehaviour;
 import org.apache.stratos.adc.mgt.utils.ApplicationManagementUtil;
-import org.apache.stratos.adc.mgt.utils.CartridgeConstants;
 import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
 import org.apache.stratos.cloud.controller.pojo.Properties;
 
+import java.util.HashMap;
+import java.util.Map;
+
 public class DataCartridgeSubscription extends CartridgeSubscription {
 
     private String host;
@@ -40,37 +41,16 @@ public class DataCartridgeSubscription extends CartridgeSubscription {
     /**
      * Constructor
      *
-     * @param cartridgeInfo CartridgeInfo subscription
+     * @param cartridgeInfo CartridgeInfo instance
+     * @param subscriptionTenancyBehaviour SubscriptionTenancyBehaviour instance
      */
-    public DataCartridgeSubscription(CartridgeInfo cartridgeInfo, boolean isServiceDeployment) {
+    public DataCartridgeSubscription(CartridgeInfo cartridgeInfo, SubscriptionTenancyBehaviour
+            subscriptionTenancyBehaviour) {
 
-        super(cartridgeInfo, isServiceDeployment);
-        this.setHost("localhost");
-        this.setUsername(CartridgeConstants.MYSQL_DEFAULT_USER);
-        this.setPassword(ApplicationManagementUtil.generatePassword());
-    }
-
-    @Override
-    public void createSubscription(Subscriber subscriber, String alias, String autoscalingPolicyName, String deploymentPolicyName,
-                                   Repository repository)
-
-            throws InvalidCartridgeAliasException,
-            DuplicateCartridgeAliasException, ADCException, RepositoryCredentialsRequiredException,
-            RepositoryTransportException, UnregisteredCartridgeException, AlreadySubscribedException,
-            RepositoryRequiredException, InvalidRepositoryException, PolicyException {
-
-        super.createSubscription(subscriber, alias, autoscalingPolicyName, deploymentPolicyName, repository);
-        subscriptionTenancyBehaviour.createSubscription();
-    }
-
-    public PayloadArg createPayloadParameters() throws ADCException {
-
-        PayloadArg payloadArg = super.createPayloadParameters();
-        payloadArg.setDataCartridgeHost(this.getHost());
-        payloadArg.setDataCartridgeAdminUser(getUsername());
-        payloadArg.setDataCartridgeAdminPassword(getPassword());
-
-        return subscriptionTenancyBehaviour.createPayloadParameters(payloadArg);
+        super(cartridgeInfo, subscriptionTenancyBehaviour);
+        setHost("localhost");
+        setUsername("root");
+        setPassword("root");
     }
 
     @Override
@@ -79,9 +59,7 @@ public class DataCartridgeSubscription extends CartridgeSubscription {
 
         Properties props = new Properties();
         props.setProperties(getCartridgeInfo().getProperties());
-        //subscriptionTenancyBehaviour.registerSubscription(ApplicationManagementUtil.
-        //        setRegisterServiceProperties(getAutoscalingPolicyName(), getSubscriber().getTenantId(), getAlias()));
-        subscriptionTenancyBehaviour.registerSubscription(props);
+        getSubscriptionTenancyBehaviour().registerSubscription(this, props);
 
         DataCartridge dataCartridge = new DataCartridge();
         dataCartridge.setUserName(getUsername());
@@ -103,10 +81,14 @@ public class DataCartridgeSubscription extends CartridgeSubscription {
     }
 
     @Override
-    public void removeSubscription() throws ADCException, NotSubscribedException {
+    public Map<String, String> getCustomPayloadEntries() {
+
+        Map<String, String> payloadEntriesMap = new HashMap<String, String>();
+        payloadEntriesMap.put("MYSQL_HOST", host);
+        payloadEntriesMap.put("MYSQL_USER", username);
+        payloadEntriesMap.put("MYSQL_PASSWORD", password);
 
-        subscriptionTenancyBehaviour.removeSubscription();
-        super.cleanupSubscription();
+        return payloadEntriesMap;
     }
 
     public String getHost() {

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdaabd7/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/DataCartridgeSubscription_old.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/DataCartridgeSubscription_old.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/DataCartridgeSubscription_old.java
index cd5f4dc..370988c 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/DataCartridgeSubscription_old.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/DataCartridgeSubscription_old.java
@@ -81,13 +81,13 @@
 //        ApplicationManagementUtil.registerService(getType(),
 //                getCluster().getClusterDomain(),
 //                getCluster().getClusterSubDomain(),
-//                getPayload().createPayload(),
-//                getPayload().getPayloadArg().getTenantRange(),
+//                getPayloadData().createPayload(),
+//                getPayloadData().getPayloadArg().getTenantRange(),
 //                getCluster().getHostName(),
 //                ApplicationManagementUtil.setRegisterServiceProperties(getAutoscalingPolicyName(),
 //                        getSubscriber().getTenantId(), getAlias()));
 //
-//        getPayload().delete();
+//        getPayloadData().delete();
 //
 //        DataCartridge dataCartridge = new DataCartridge();
 //        dataCartridge.setUserName(getUsername());

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdaabd7/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/FrameworkCartridgeSubscription.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/FrameworkCartridgeSubscription.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/FrameworkCartridgeSubscription.java
index 33a2d84..d469952 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/FrameworkCartridgeSubscription.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/FrameworkCartridgeSubscription.java
@@ -21,15 +21,8 @@ package org.apache.stratos.adc.mgt.subscription;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.adc.mgt.dao.CartridgeSubscriptionInfo;
-import org.apache.stratos.adc.mgt.exception.*;
-import org.apache.stratos.adc.mgt.payload.PayloadArg;
-import org.apache.stratos.adc.mgt.repository.Repository;
-import org.apache.stratos.adc.mgt.subscriber.Subscriber;
 import org.apache.stratos.adc.mgt.subscription.tenancy.SubscriptionTenancyBehaviour;
-import org.apache.stratos.adc.mgt.utils.ApplicationManagementUtil;
 import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
-import org.apache.stratos.cloud.controller.pojo.Properties;
 
 
 public class FrameworkCartridgeSubscription extends CartridgeSubscription {
@@ -37,52 +30,14 @@ public class FrameworkCartridgeSubscription extends CartridgeSubscription {
 	private static Log log = LogFactory.getLog(FrameworkCartridgeSubscription.class);
     private static final long serialVersionUID = 1633832232416272756L;
 
-    
     /**
      * Constructor
      *
-     * @param cartridgeInfo CartridgeInfo subscription
+     * @param cartridgeInfo CartridgeInfo instance
+     * @param subscriptionTenancyBehaviour SubscriptionTenancyBehaviour instance
      */
-    public FrameworkCartridgeSubscription(CartridgeInfo cartridgeInfo, boolean isServiceDeployment) {
-        super(cartridgeInfo, isServiceDeployment);
-    }
-
-    @Override
-    public void createSubscription(Subscriber subscriber, String alias, String autoscalingPolicyName,
-                                   String deploymentPolicyName, Repository repository) throws
-            InvalidCartridgeAliasException, DuplicateCartridgeAliasException, ADCException,
-            RepositoryCredentialsRequiredException, RepositoryTransportException, UnregisteredCartridgeException,
-            AlreadySubscribedException, RepositoryRequiredException, InvalidRepositoryException, PolicyException {
-
-    	log.info(" -- in create Subscription ---");
-        super.createSubscription(subscriber, alias, autoscalingPolicyName, deploymentPolicyName, repository);
-        subscriptionTenancyBehaviour.createSubscription();
-    }
-
-    @Override
-    public CartridgeSubscriptionInfo registerSubscription(Properties properties) throws ADCException, UnregisteredCartridgeException {
-
-        Properties props = new Properties();
-        props.setProperties(getCartridgeInfo().getProperties());
-        
-        subscriptionTenancyBehaviour.registerSubscription(props);
-
-        return ApplicationManagementUtil.createCartridgeSubscription(getCartridgeInfo(), getAutoscalingPolicyName(),
-                getType(), getAlias(), getSubscriber().getTenantId(), getSubscriber().getTenantDomain(),
-                getRepository(), getCluster().getHostName(), getCluster().getClusterDomain(), getCluster().getClusterSubDomain(),
-                getCluster().getMgtClusterDomain(), getCluster().getMgtClusterSubDomain(), null, "PENDING", getSubscriptionKey());
-    }
-
-    @Override
-    public void removeSubscription() throws ADCException, NotSubscribedException {
-
-        subscriptionTenancyBehaviour.removeSubscription();
-        super.cleanupSubscription();
-    }
-
-    public PayloadArg createPayloadParameters () throws ADCException {
-
-        PayloadArg payloadArg = super.createPayloadParameters();
-        return subscriptionTenancyBehaviour.createPayloadParameters(payloadArg);
+    public FrameworkCartridgeSubscription(CartridgeInfo cartridgeInfo, SubscriptionTenancyBehaviour
+            subscriptionTenancyBehaviour) {
+        super(cartridgeInfo, subscriptionTenancyBehaviour);
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdaabd7/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/LBCartridgeSubscription.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/LBCartridgeSubscription.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/LBCartridgeSubscription.java
index f2f69ae..48121de 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/LBCartridgeSubscription.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/LBCartridgeSubscription.java
@@ -32,10 +32,12 @@ public class LBCartridgeSubscription extends CartridgeSubscription {
     /**
      * Constructor
      *
-     * @param cartridgeInfo CartridgeInfo subscription
+     * @param cartridgeInfo CartridgeInfo instance
+     * @param subscriptionTenancyBehaviour SubscriptionTenancyBehaviour instance
      */
-    public LBCartridgeSubscription(CartridgeInfo cartridgeInfo, boolean isServiceDeployment) {
-        super(cartridgeInfo, isServiceDeployment);
+    public LBCartridgeSubscription(CartridgeInfo cartridgeInfo, SubscriptionTenancyBehaviour
+            subscriptionTenancyBehaviour) {
+        super(cartridgeInfo, subscriptionTenancyBehaviour);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdaabd7/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/SingleTenantCartridgeSubscription.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/SingleTenantCartridgeSubscription.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/SingleTenantCartridgeSubscription.java
index 6137c70..027fe1e 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/SingleTenantCartridgeSubscription.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/SingleTenantCartridgeSubscription.java
@@ -63,12 +63,12 @@
 //        ApplicationManagementUtil.registerService(getType(),
 //                getCluster().getClusterDomain(),
 //                getCluster().getClusterSubDomain(),
-//                getPayload().createPayload(),
-//                getPayload().getPayloadArg().getTenantRange(),
+//                getPayloadData().createPayload(),
+//                getPayloadData().getPayloadArg().getTenantRange(),
 //                getCluster().getHostName(),
 //                null);
 //
-//        getPayload().delete();
+//        getPayloadData().delete();
 //
 //        return ApplicationManagementUtil.createCartridgeSubscription(getCartridgeInfo(), getAutoscalingPolicyName(),
 //                getType(), getAlias(), getSubscriber().getTenantId(), getSubscriber().getTenantDomain(),

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdaabd7/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/factory/CartridgeSubscriptionFactory.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/factory/CartridgeSubscriptionFactory.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/factory/CartridgeSubscriptionFactory.java
index b6f0202..87a6fd5 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/factory/CartridgeSubscriptionFactory.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/factory/CartridgeSubscriptionFactory.java
@@ -21,6 +21,7 @@ package org.apache.stratos.adc.mgt.subscription.factory;
 
 import org.apache.stratos.adc.mgt.exception.ADCException;
 import org.apache.stratos.adc.mgt.subscription.*;
+import org.apache.stratos.adc.mgt.subscription.tenancy.SubscriptionTenancyBehaviour;
 import org.apache.stratos.adc.mgt.utils.CartridgeConstants;
 import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
 
@@ -59,21 +60,22 @@ public class CartridgeSubscriptionFactory {
         return cartridgeSubscription;
     }*/
 
-    public static CartridgeSubscription getCartridgeSubscriptionInstance(CartridgeInfo cartridgeInfo)
+    public static CartridgeSubscription getCartridgeSubscriptionInstance(CartridgeInfo cartridgeInfo,
+                                                                         SubscriptionTenancyBehaviour subscriptionTenancyBehaviour)
             throws ADCException {
 
         //TODO: fix the logic properly
         CartridgeSubscription cartridgeSubscription = null;
         if(cartridgeInfo.getMultiTenant()) {
-            cartridgeSubscription = new FrameworkCartridgeSubscription(cartridgeInfo, false);
+            cartridgeSubscription = new FrameworkCartridgeSubscription(cartridgeInfo, subscriptionTenancyBehaviour);
 
         } else {
             if(cartridgeInfo.getProvider().equals(CartridgeConstants.DATA_CARTRIDGE_PROVIDER)) {
-                cartridgeSubscription = new DataCartridgeSubscription(cartridgeInfo, false);
+                cartridgeSubscription = new DataCartridgeSubscription(cartridgeInfo, subscriptionTenancyBehaviour);
             }
             else {
                 //cartridgeSubscription = new SingleTenantCartridgeSubscription(cartridgeInfo);
-                cartridgeSubscription = new FrameworkCartridgeSubscription(cartridgeInfo, false);
+                cartridgeSubscription = new FrameworkCartridgeSubscription(cartridgeInfo, subscriptionTenancyBehaviour);
             }
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdaabd7/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/ServiceDeploymentMultiTenantBehaviour.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/ServiceDeploymentMultiTenantBehaviour.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/ServiceDeploymentMultiTenantBehaviour.java
index 77ced4e..ae1c8f9 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/ServiceDeploymentMultiTenantBehaviour.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/ServiceDeploymentMultiTenantBehaviour.java
@@ -1,121 +1,109 @@
-/*
- * 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.adc.mgt.subscription.tenancy;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.adc.mgt.exception.ADCException;
-import org.apache.stratos.adc.mgt.exception.AlreadySubscribedException;
-import org.apache.stratos.adc.mgt.exception.UnregisteredCartridgeException;
-import org.apache.stratos.adc.mgt.payload.PayloadArg;
-import org.apache.stratos.adc.mgt.subscription.CartridgeSubscription;
-import org.apache.stratos.adc.mgt.utils.ApplicationManagementUtil;
-import org.apache.stratos.adc.mgt.utils.CartridgeConstants;
-import org.apache.stratos.adc.mgt.utils.PersistenceManager;
-import org.apache.stratos.cloud.controller.pojo.Properties;
-
-public class ServiceDeploymentMultiTenantBehaviour extends
-		SubscriptionMultiTenantBehaviour {
-
-	private static Log log = LogFactory.getLog(ServiceDeploymentMultiTenantBehaviour.class);
-	
-	public ServiceDeploymentMultiTenantBehaviour(
-			CartridgeSubscription cartridgeSubscription) {
-		super(cartridgeSubscription);
-	}
-	
-	@Override
-	public void createSubscription() throws ADCException,
-			AlreadySubscribedException {
-	
-		log.info(" --- in Service Deployment Multitenant Behaviour create subscription ---- ");
-		
-		boolean allowMultipleSubscription = Boolean.
-        valueOf(System.getProperty(CartridgeConstants.FEATURE_MULTI_TENANT_MULTIPLE_SUBSCRIPTION_ENABLED));
-
-		if (!allowMultipleSubscription) {
-			// If the cartridge is multi-tenant. We should not let users
-			// createSubscription twice.
-			boolean subscribed;
-			try {
-				subscribed = PersistenceManager.isAlreadySubscribed(
-						cartridgeSubscription.getType(), cartridgeSubscription
-								.getSubscriber().getTenantId());
-			} catch (Exception e) {
-				String msg = "Error checking whether the cartridge type "
-						+ cartridgeSubscription.getType()
-						+ " is already subscribed";
-				log.error(msg, e);
-				throw new ADCException(msg, e);
-			}
-
-			if (subscribed) {
-				String msg = "Already subscribed to "
-						+ cartridgeSubscription.getType()
-						+ ". This multi-tenant cartridge will not be available to createSubscription";
-				if (log.isDebugEnabled()) {
-					log.debug(msg);
-				}
-				throw new AlreadySubscribedException(msg,
-						cartridgeSubscription.getType());
-			}
-		}
-	
-				/*if (domainContext.getSubDomain().equalsIgnoreCase("mgt")) {
-					cartridgeSubscription.getCluster().setMgtClusterDomain(
-							domainContext.getDomain());
-					cartridgeSubscription.getCluster().setMgtClusterSubDomain(
-							domainContext.getSubDomain());
-				} else {
-					cartridgeSubscription.getCluster().setClusterDomain(
-							domainContext.getDomain());
-					cartridgeSubscription.getCluster().setClusterSubDomain(
-							domainContext.getSubDomain());
-				}*/
-				
-	}
-	
-	
-	@Override
-	public void registerSubscription(Properties properties)
-			throws ADCException, UnregisteredCartridgeException {
-		
-		// register subscription to start up the cartridge instances
-		ApplicationManagementUtil.registerService(cartridgeSubscription.getType(),
-                cartridgeSubscription.getCluster().getClusterDomain(),
-                cartridgeSubscription.getCluster().getClusterSubDomain(),
-                cartridgeSubscription.getPayload().createPayload(),
-                cartridgeSubscription.getPayload().getPayloadArg().getTenantRange(),
-                cartridgeSubscription.getCluster().getHostName(),
-                cartridgeSubscription.getAutoscalingPolicyName(),
-                cartridgeSubscription.getDeploymentPolicyName(),
-                properties);
-		
-        cartridgeSubscription.getPayload().delete();
-	}
-	
-	@Override
-	public PayloadArg createPayloadParameters(PayloadArg payloadArg)
-			throws ADCException {
-				
-		return payloadArg;
-	}
-
-}
+///*
+// * 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.adc.mgt.subscription.tenancy;
+//
+//import org.apache.commons.logging.Log;
+//import org.apache.commons.logging.LogFactory;
+//import org.apache.stratos.adc.mgt.exception.ADCException;
+//import org.apache.stratos.adc.mgt.exception.AlreadySubscribedException;
+//import org.apache.stratos.adc.mgt.exception.UnregisteredCartridgeException;
+//import org.apache.stratos.adc.mgt.payload.PayloadArg;
+//import org.apache.stratos.adc.mgt.subscription.CartridgeSubscription;
+//import org.apache.stratos.adc.mgt.utils.ApplicationManagementUtil;
+//import org.apache.stratos.adc.mgt.utils.CartridgeConstants;
+//import org.apache.stratos.adc.mgt.utils.PersistenceManager;
+//import org.apache.stratos.cloud.controller.pojo.Properties;
+//
+//public class ServiceDeploymentMultiTenantBehaviour extends
+//		SubscriptionMultiTenantBehaviour {
+//
+//	private static Log log = LogFactory.getLog(ServiceDeploymentMultiTenantBehaviour.class);
+//
+//	@Override
+//	public void createSubscription() throws ADCException,
+//			AlreadySubscribedException {
+//
+//		log.info(" --- in Service Deployment Multitenant Behaviour create subscription ---- ");
+//
+//		boolean allowMultipleSubscription = Boolean.
+//        valueOf(System.getProperty(CartridgeConstants.FEATURE_MULTI_TENANT_MULTIPLE_SUBSCRIPTION_ENABLED));
+//
+//		if (!allowMultipleSubscription) {
+//			// If the cartridge is multi-tenant. We should not let users
+//			// createSubscription twice.
+//			boolean subscribed;
+//			try {
+//				subscribed = PersistenceManager.isAlreadySubscribed(
+//						cartridgeSubscription.getType(), cartridgeSubscription
+//								.getSubscriber().getTenantId());
+//			} catch (Exception e) {
+//				String msg = "Error checking whether the cartridge type "
+//						+ cartridgeSubscription.getType()
+//						+ " is already subscribed";
+//				log.error(msg, e);
+//				throw new ADCException(msg, e);
+//			}
+//
+//			if (subscribed) {
+//				String msg = "Already subscribed to "
+//						+ cartridgeSubscription.getType()
+//						+ ". This multi-tenant cartridge will not be available to createSubscription";
+//				if (log.isDebugEnabled()) {
+//					log.debug(msg);
+//				}
+//				throw new AlreadySubscribedException(msg,
+//						cartridgeSubscription.getType());
+//			}
+//		}
+//
+//				/*if (domainContext.getSubDomain().equalsIgnoreCase("mgt")) {
+//					cartridgeSubscription.getCluster().setMgtClusterDomain(
+//							domainContext.getDomain());
+//					cartridgeSubscription.getCluster().setMgtClusterSubDomain(
+//							domainContext.getSubDomain());
+//				} else {
+//					cartridgeSubscription.getCluster().setClusterDomain(
+//							domainContext.getDomain());
+//					cartridgeSubscription.getCluster().setClusterSubDomain(
+//							domainContext.getSubDomain());
+//				}*/
+//
+//	}
+//
+//
+//	@Override
+//	public void registerSubscription(Properties properties)
+//			throws ADCException, UnregisteredCartridgeException {
+//
+//		// register subscription to start up the cartridge instances
+//		ApplicationManagementUtil.registerService(cartridgeSubscription.getType(),
+//                cartridgeSubscription.getCluster().getClusterDomain(),
+//                cartridgeSubscription.getCluster().getClusterSubDomain(),
+//                cartridgeSubscription.getPayloadData().createPayload(),
+//                cartridgeSubscription.getPayloadData().getPayloadArg().getTenantRange(),
+//                cartridgeSubscription.getCluster().getHostName(),
+//                cartridgeSubscription.getAutoscalingPolicyName(),
+//                cartridgeSubscription.getDeploymentPolicyName(),
+//                properties);
+//
+//        cartridgeSubscription.getPayloadData().delete();
+//    }
+//
+//}

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdaabd7/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionMultiTenantBehaviour.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionMultiTenantBehaviour.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionMultiTenantBehaviour.java
index 05244bd..46cfd93 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionMultiTenantBehaviour.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionMultiTenantBehaviour.java
@@ -25,24 +25,18 @@ import org.apache.stratos.adc.mgt.exception.ADCException;
 import org.apache.stratos.adc.mgt.exception.AlreadySubscribedException;
 import org.apache.stratos.adc.mgt.exception.NotSubscribedException;
 import org.apache.stratos.adc.mgt.exception.UnregisteredCartridgeException;
-import org.apache.stratos.adc.mgt.payload.PayloadArg;
 import org.apache.stratos.adc.mgt.subscription.CartridgeSubscription;
 import org.apache.stratos.adc.mgt.utils.CartridgeConstants;
 import org.apache.stratos.adc.mgt.utils.PersistenceManager;
 import org.apache.stratos.cloud.controller.pojo.Properties;
-import org.apache.stratos.messaging.domain.topology.Service;
-import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
 
 
 public class SubscriptionMultiTenantBehaviour extends SubscriptionTenancyBehaviour {
 
     private static Log log = LogFactory.getLog(SubscriptionMultiTenantBehaviour.class);
 
-    public SubscriptionMultiTenantBehaviour(CartridgeSubscription cartridgeSubscription) {
-        super(cartridgeSubscription);
-    }
 
-    public void createSubscription() throws ADCException, AlreadySubscribedException {
+    public void createSubscription(CartridgeSubscription cartridgeSubscription) throws ADCException, AlreadySubscribedException {
 
         boolean allowMultipleSubscription = Boolean.
                 valueOf(System.getProperty(CartridgeConstants.FEATURE_MULTI_TENANT_MULTIPLE_SUBSCRIPTION_ENABLED));
@@ -54,8 +48,8 @@ public class SubscriptionMultiTenantBehaviour extends SubscriptionTenancyBehavio
                 subscribed = PersistenceManager.isAlreadySubscribed(cartridgeSubscription.getType(),
                         cartridgeSubscription.getSubscriber().getTenantId());
             } catch (Exception e) {
-                String msg = "Error checking whether the cartridge type " + cartridgeSubscription.getType()
-                        + " is already subscribed";
+                String msg = "Error checking whether the cartridge type " + cartridgeSubscription.getType() +
+                        " is already subscribed";
                 log.error(msg, e);
                 throw new ADCException(msg, e);
             }
@@ -70,33 +64,8 @@ public class SubscriptionMultiTenantBehaviour extends SubscriptionTenancyBehavio
             }
         }
 
-        /*TopologyManagementService topologyService = DataHolder.getTopologyMgtService();
-        DomainContext[] domainContexts = topologyService.getDomainsAndSubdomains(cartridgeSubscription.getType(),
-                cartridgeSubscription.getSubscriber().getTenantId());
-        log.info("Retrieved " + domainContexts.length + " domain and corresponding subdomain pairs");
-
-        if (domainContexts.length > 0) {
-            if(domainContexts.length > 2) {
-                if(log.isDebugEnabled())
-                    log.debug("Too many domain sub domain pairs");
-            }
-
-            for (DomainContext domainContext : domainContexts) {
-                if (domainContext.getSubDomain().equalsIgnoreCase("mgt")) {
-                    cartridgeSubscription.getCluster().setMgtClusterDomain(domainContext.getDomain());
-                    cartridgeSubscription.getCluster().setMgtClusterSubDomain(domainContext.getSubDomain());
-                } else {
-                    cartridgeSubscription.getCluster().setClusterDomain(domainContext.getDomain());
-                    cartridgeSubscription.getCluster().setClusterSubDomain(domainContext.getSubDomain());
-                }
-            }
-        } else {
-            String msg = "Domain contexts not found for " + cartridgeSubscription.getType() + " and tenant id " +
-                    cartridgeSubscription.getSubscriber().getTenantId();
-            log.warn(msg);
-            throw new ADCException(msg);
-        }*/
-        TopologyManager.acquireReadLock();
+        //TODO: implement getting cluster Id from DB
+        /*TopologyManager.acquireReadLock();
 
         try {
             Service service = TopologyManager.getTopology().getService(cartridgeSubscription.getType());
@@ -107,30 +76,25 @@ public class SubscriptionMultiTenantBehaviour extends SubscriptionTenancyBehavio
                 throw new ADCException(errorMsg);
             }
 
-            //TODO: fix properly
             //cartridgeSubscription.getCluster().setClusterDomain(service.getCluster().);
             //cartridgeSubscription.getCluster().setClusterSubDomain(domainContext.getSubDomain());
 
         } finally {
             TopologyManager.releaseReadLock();
-        }
+        }*/
     }
 
-    public void registerSubscription(Properties properties) throws ADCException, UnregisteredCartridgeException {
+    public void registerSubscription(CartridgeSubscription cartridgeSubscription, Properties properties)
+            throws ADCException, UnregisteredCartridgeException {
 
         //nothing to do
     }
 
-    public void removeSubscription() throws ADCException, NotSubscribedException {
+    public void removeSubscription(CartridgeSubscription cartridgeSubscription) throws ADCException, NotSubscribedException {
 
         log.info("Cartridge with alias " + cartridgeSubscription.getAlias() + ", and type " + cartridgeSubscription.getType() +
                 " is a multi-tenant cartridge and therefore will not terminate all instances and " +
                 "unregister services");
     }
 
-    public PayloadArg createPayloadParameters(PayloadArg payloadArg) throws ADCException {
-
-        //payload not used
-        return null;
-    }	
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdaabd7/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionSingleTenantBehaviour.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionSingleTenantBehaviour.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionSingleTenantBehaviour.java
index 35e1dd1..c57c1a9 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionSingleTenantBehaviour.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionSingleTenantBehaviour.java
@@ -27,10 +27,8 @@ import org.apache.stratos.adc.mgt.exception.ADCException;
 import org.apache.stratos.adc.mgt.exception.AlreadySubscribedException;
 import org.apache.stratos.adc.mgt.exception.NotSubscribedException;
 import org.apache.stratos.adc.mgt.exception.UnregisteredCartridgeException;
-import org.apache.stratos.adc.mgt.payload.PayloadArg;
 import org.apache.stratos.adc.mgt.subscription.CartridgeSubscription;
 import org.apache.stratos.adc.mgt.utils.ApplicationManagementUtil;
-import org.apache.stratos.adc.mgt.utils.CartridgeConstants;
 import org.apache.stratos.cloud.controller.pojo.Properties;
 
 
@@ -38,11 +36,9 @@ public class SubscriptionSingleTenantBehaviour extends SubscriptionTenancyBehavi
 
     private static Log log = LogFactory.getLog(SubscriptionSingleTenantBehaviour.class);
 
-    public SubscriptionSingleTenantBehaviour(CartridgeSubscription cartridgeSubscription) {
-        super(cartridgeSubscription);
-    }
 
-    public void createSubscription() throws ADCException, AlreadySubscribedException {
+
+    public void createSubscription(CartridgeSubscription cartridgeSubscription) throws ADCException, AlreadySubscribedException {
 
         //set the cluster and hostname
         cartridgeSubscription.getCluster().setClusterDomain(cartridgeSubscription.getAlias() + "." +
@@ -51,30 +47,22 @@ public class SubscriptionSingleTenantBehaviour extends SubscriptionTenancyBehavi
                 cartridgeSubscription.getCluster().getHostName());
     }
 
-    public void registerSubscription(Properties properties) throws ADCException, UnregisteredCartridgeException {
+    public void registerSubscription(CartridgeSubscription cartridgeSubscription, Properties properties) throws ADCException, UnregisteredCartridgeException {
 
-         //TODO: change to debug
-        log.info("Type: " + cartridgeSubscription.getType() +
-            " \n Cluster Domain: " + cartridgeSubscription.getCluster().getClusterDomain() +
-            " \n Cluster Sub-Domain: " + cartridgeSubscription.getCluster().getClusterSubDomain() +
-            " \n Tenant Range: " + cartridgeSubscription.getPayload().getPayloadArg().getTenantRange() +
-            " \n Autoscaling Policy: " + cartridgeSubscription.getAutoscalingPolicyName() +
-            " \n Deployment Policy: " + cartridgeSubscription.getDeploymentPolicyName());
+        log.info("Payload: " + cartridgeSubscription.getPayloadData().getCompletePayloadData().toString());
 
         ApplicationManagementUtil.registerService(cartridgeSubscription.getType(),
                 cartridgeSubscription.getCluster().getClusterDomain(),
                 cartridgeSubscription.getCluster().getClusterSubDomain(),
-                cartridgeSubscription.getPayload().createPayload(),
-                cartridgeSubscription.getPayload().getPayloadArg().getTenantRange(),
+                cartridgeSubscription.getPayloadData().getCompletePayloadData(),
+                cartridgeSubscription.getPayloadData().getBasicPayloadData().getTenantRange(),
                 cartridgeSubscription.getCluster().getHostName(),
                 cartridgeSubscription.getAutoscalingPolicyName(),
                 cartridgeSubscription.getDeploymentPolicyName(),
                 properties);
-
-        cartridgeSubscription.getPayload().delete();
     }
 
-    public void removeSubscription() throws ADCException, NotSubscribedException {
+    public void removeSubscription(CartridgeSubscription cartridgeSubscription) throws ADCException, NotSubscribedException {
 
         try {
             CloudControllerServiceClient.getServiceClient().terminateAllInstances(cartridgeSubscription.getCluster().getClusterDomain());
@@ -106,25 +94,4 @@ public class SubscriptionSingleTenantBehaviour extends SubscriptionTenancyBehavi
         log.info("Unregistered service cluster, domain " + cartridgeSubscription.getCluster().getClusterDomain() + ", sub domain " +
                 cartridgeSubscription.getCluster().getClusterSubDomain());
     }
-
-    public PayloadArg createPayloadParameters(PayloadArg payloadArg) throws ADCException {
-
-
-        if(cartridgeSubscription.getRepository() != null) {
-            payloadArg.setRepoURL(cartridgeSubscription.getRepository().getUrl());
-        }
-        payloadArg.setHostName(cartridgeSubscription.getCluster().getHostName());
-        payloadArg.setServiceDomain(cartridgeSubscription.getCluster().getClusterDomain());
-        payloadArg.setServiceSubDomain(cartridgeSubscription.getCluster().getMgtClusterSubDomain());
-        payloadArg.setMgtServiceDomain(cartridgeSubscription.getCluster().getMgtClusterDomain());
-        payloadArg.setMgtServiceSubDomain(cartridgeSubscription.getCluster().getMgtClusterSubDomain());
-        if(cartridgeSubscription.getCartridgeInfo().getProvider().equals(CartridgeConstants.PROVIDER_NAME_WSO2)) {
-            payloadArg.setTenantRange(Integer.toString(cartridgeSubscription.getSubscriber().getTenantId()));
-        }
-        else {
-            payloadArg.setTenantRange("*");
-        }
-
-        return payloadArg;
-    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdaabd7/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionTenancyBehaviour.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionTenancyBehaviour.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionTenancyBehaviour.java
index 2f2beaa..b0766f4 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionTenancyBehaviour.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionTenancyBehaviour.java
@@ -23,7 +23,6 @@ import org.apache.stratos.adc.mgt.exception.ADCException;
 import org.apache.stratos.adc.mgt.exception.AlreadySubscribedException;
 import org.apache.stratos.adc.mgt.exception.NotSubscribedException;
 import org.apache.stratos.adc.mgt.exception.UnregisteredCartridgeException;
-import org.apache.stratos.adc.mgt.payload.PayloadArg;
 import org.apache.stratos.adc.mgt.subscription.CartridgeSubscription;
 import org.apache.stratos.cloud.controller.pojo.Properties;
 
@@ -32,25 +31,13 @@ import java.io.Serializable;
 public abstract class SubscriptionTenancyBehaviour implements Serializable {
 
     private static final long serialVersionUID = 1L;
-    protected CartridgeSubscription cartridgeSubscription;
 
-    public SubscriptionTenancyBehaviour(CartridgeSubscription cartridgeSubscription) {
-        this.cartridgeSubscription = cartridgeSubscription;
-    }
+    public abstract void createSubscription(CartridgeSubscription cartridgeSubscription)
+            throws ADCException, AlreadySubscribedException;
 
-    public void setCartridgeSubscription (CartridgeSubscription cartridgeSubscription) {
-        this.cartridgeSubscription = cartridgeSubscription;
-    }
+    public abstract void registerSubscription(CartridgeSubscription cartridgeSubscription, Properties properties)
+            throws ADCException, UnregisteredCartridgeException;
 
-    public CartridgeSubscription getCartridgeSubscription () {
-        return cartridgeSubscription;
-    }
-
-    public abstract void createSubscription() throws ADCException, AlreadySubscribedException;
-
-    public abstract void registerSubscription(Properties properties) throws ADCException, UnregisteredCartridgeException;
-
-    public abstract void removeSubscription() throws ADCException, NotSubscribedException;
-
-    public abstract PayloadArg createPayloadParameters(PayloadArg payloadArg) throws ADCException;
+    public abstract void removeSubscription(CartridgeSubscription cartridgeSubscription)
+            throws ADCException, NotSubscribedException;
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdaabd7/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/utils/CartridgeInstanceUtils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/utils/CartridgeInstanceUtils.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/utils/CartridgeInstanceUtils.java
deleted file mode 100644
index 7e72f90..0000000
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/utils/CartridgeInstanceUtils.java
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
- * 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.adc.mgt.subscription.utils;
-
-public class CartridgeInstanceUtils {
-    /*
-    private static Log log = LogFactory.getLog(CartridgeInstanceUtils.class);
-
-    public static void validateCartridgeAlias(String alias, String cartridgeType) throws InvalidCartridgeAliasException,
-            DuplicateCartridgeAliasException, ADCException {
-
-        // Do not use quotes in messages, current UI JavaScript does not work if there are quotes
-        // TODO: Fix message display in UI
-        String patternString = "([a-z0-9]+([-][a-z0-9])*)+";
-        Pattern pattern = Pattern.compile(patternString);
-
-        if (!pattern.matcher(alias).matches()) {
-            String msg = "The alias " + alias + " can contain only alpha-numeric lowercase characters. Please enter a valid alias.";
-            log.error(msg);
-            throw new InvalidCartridgeAliasException(msg, cartridgeType, alias);
-        }
-
-        boolean isAliasTaken = false;
-        try {
-            isAliasTaken = PersistenceManager.isAliasAlreadyTaken(alias, cartridgeType);
-        } catch (Exception e) {
-            String msg = "Exception : " + e.getMessage();
-            log.error(msg, e);
-            throw new ADCException("Error when checking alias is already taken", e);
-        }
-
-        if (isAliasTaken) {
-            String msg = "The alias " + alias + " is already taken. Please try again with a different alias.";
-            log.error(msg);
-            throw new DuplicateCartridgeAliasException(msg, cartridgeType, alias);
-        }
-    }
-
-    public static String generatePassword() {
-
-        final int PASSWORD_LENGTH = 8;
-        StringBuffer sb = new StringBuffer();
-        for (int x = 0; x < PASSWORD_LENGTH; x++) {
-            sb.append((char) ((int) (Math.random() * 26) + 97));
-        }
-        return sb.toString();
-
-    }
-
-    public static CartridgeSubscriptionInfo createCartridgeSubscription(CartridgeInfo cartridgeInfo,
-                                                                     Policy policy,
-                                                                     String cartridgeType,
-                                                                     String cartridgeAlias,
-                                                                     int tenantId,
-                                                                     String tenantDomain,
-                                                                     Repository repository,
-                                                                     String clusterDomain,
-                                                                     String clusterSubDomain,
-                                                                     String hostName,
-                                                                     String mgtClusterDomain,
-                                                                     String mgtClusterSubDomain,
-                                                                     DataCartridge dataCartridge) {
-
-        CartridgeSubscriptionInfo cartridgeSubscription = new CartridgeSubscriptionInfo();
-        cartridgeSubscription.setCartridge(cartridgeType);
-        cartridgeSubscription.setAlias(cartridgeAlias);
-        cartridgeSubscription.setClusterDomain(clusterDomain);
-        cartridgeSubscription.setClusterSubdomain(clusterSubDomain);
-        cartridgeSubscription.setMgtClusterDomain(mgtClusterDomain);
-        cartridgeSubscription.setMgtClusterSubDomain(mgtClusterSubDomain);
-        cartridgeSubscription.setHostName(hostName);
-        cartridgeSubscription.setPolicy(policy.getName());
-        cartridgeSubscription.setRepository(repository);
-        cartridgeSubscription.setPortMappings(createPortMappings(cartridgeInfo));
-        cartridgeSubscription.setProvider(cartridgeInfo.getProvider());
-        cartridgeSubscription.setDataCartridge(dataCartridge);
-        cartridgeSubscription.setTenantId(tenantId);
-        cartridgeSubscription.setTenantDomain(tenantDomain);
-        cartridgeSubscription.setBaseDirectory(cartridgeInfo.getBaseDir());
-        cartridgeSubscription.setState("PENDING");
-
-        return cartridgeSubscription;
-    }
-
-    private static List<PortMapping> createPortMappings(CartridgeInfo cartridgeInfo) {
-        List<PortMapping> portMappings = new ArrayList<PortMapping>();
-
-        if (cartridgeInfo.getPortMappings() != null) {
-            for (org.apache.stratos.cloud.controller.util.xsd.PortMapping portMapping : cartridgeInfo.getPortMappings()) {
-                PortMapping portMap = new PortMapping();
-                portMap.setPrimaryPort(portMapping.getPort());
-                portMap.setProxyPort(portMapping.getProxyPort());
-                portMap.setType(portMapping.getProtocol());
-                portMappings.add(portMap);
-            }
-        }
-        return portMappings;
-    }
-
-    public static void addDNSEntry(String alias, String cartridgeType) {
-        new DNSManager().addNewSubDomain(alias + "." + cartridgeType, System.getProperty(CartridgeConstants.ELB_IP));
-    }
-
-    public static SubscriptionInfo createSubscriptionResponse(CartridgeSubscriptionInfo cartridgeSubscription, Repository repository) {
-        SubscriptionInfo subscriptionInfo = new SubscriptionInfo();
-
-        if (repository != null && repository.getUrl() != null) {
-            subscriptionInfo.setRepositoryURL(convertRepoURL(repository.getUrl()));
-        }
-        subscriptionInfo.setHostname(cartridgeSubscription.getHostName());
-
-        return subscriptionInfo;
-    }
-
-    private static String convertRepoURL(String gitURL) {
-        String convertedHttpURL = null;
-        if (gitURL != null && gitURL.startsWith("git@")) {
-            StringBuilder httpRepoUrl = new StringBuilder();
-            httpRepoUrl.append("http://");
-            String[] urls = gitURL.split(":");
-            String[] hostNameArray = urls[0].split("@");
-            String hostName = hostNameArray[1];
-            httpRepoUrl.append(hostName).append("/").append(urls[1]);
-            convertedHttpURL = httpRepoUrl.toString();
-        } else if (gitURL != null && gitURL.startsWith("http")) {
-            convertedHttpURL = gitURL;
-        }
-        return convertedHttpURL;
-    }
-
-    public static RepositoryInformation validateRepository(String repoURL, String repoUsername, String repoPassword,
-                                                           boolean privateRepo, boolean testConnection)
-
-            throws RepositoryRequiredException, ADCException,
-            RepositoryCredentialsRequiredException, InvalidRepositoryException, RepositoryTransportException {
-
-        RepositoryInformation repositoryInformation = new RepositoryInformation();
-        repositoryInformation.setRepoURL(repoURL);
-        if (log.isDebugEnabled()) {
-            log.debug("Validating Git Repository");
-        }
-
-        if (repoURL == null || repoURL.trim().length() == 0) {
-            throw new RepositoryRequiredException("External repository required for subscription");
-        }
-
-        if (repoURL != null && repoURL.trim().length() > 0 && privateRepo) {
-            if (log.isDebugEnabled()) {
-                log.debug("External repo validation is a private repo: " + repoURL);
-            }
-            if (repoUsername == null || repoUsername.trim().length() == 0 || repoPassword == null
-                    || repoPassword.trim().length() == 0) {
-                throw new RepositoryCredentialsRequiredException(
-                        "Username and Password are required for private repository");
-            }
-        }
-
-        if (!testConnection) {
-            if (log.isDebugEnabled()) {
-                log.debug("External repo validation is not enabled");
-            }
-            return repositoryInformation;
-        }
-
-        if (repoURL == null || repoURL.trim().length() == 0) {
-            // This means, no repo to validate.
-            return repositoryInformation;
-        }
-
-        if (log.isDebugEnabled()) {
-            log.debug("External repo validation enabled");
-        }
-
-        // This assumes running on Linux.
-        String parentDirName = "/tmp/" + UUID.randomUUID().toString();
-        CredentialsProvider credentialsProvider = null;
-        if (repoUsername != null && repoUsername.trim().length() > 0 && repoPassword != null
-                && repoPassword.trim().length() > 0) {
-            if (log.isDebugEnabled()) {
-                log.debug("External repo credentails are passed: " + repoUsername);
-            }
-            credentialsProvider = new UsernamePasswordCredentialsProvider(repoUsername, repoPassword.toCharArray());
-        }
-
-        // Initialize temp local file repo
-        FileRepository localRepo = null;
-        try {
-            File f = new File(parentDirName + "/.git");
-            localRepo = new FileRepository(f);
-            if (log.isDebugEnabled()) {
-                log.debug("Local File Repo: " + f.getAbsoluteFile());
-            }
-        } catch (IOException e) {
-            throw new ADCException("Error creating local file repo", e);
-        }
-
-        Git git = new Git(localRepo);
-        LsRemoteCommand cmd = git.lsRemote().setRemote(repoURL);
-        if (credentialsProvider != null) {
-            cmd.setCredentialsProvider(credentialsProvider);
-        }
-        try {
-            Collection<Ref> collection = cmd.call();
-            List<String> refNames = new ArrayList<String>();
-            if (collection != null) {
-                for (Ref ref : collection) {
-                    if (log.isDebugEnabled()) {
-                        log.debug(repoURL + ": " + ref.getName());
-                    }
-                    refNames.add(ref.getName());
-                }
-            }
-            repositoryInformation.setRefName(refNames.toArray(new String[refNames.size()]));
-        } catch (InvalidRemoteException e) {
-            throw new InvalidRepositoryException("Provided repository url is not valid", e);
-        } catch (TransportException e) {
-            throw new RepositoryTransportException("Transport error when checking remote repository", e);
-        } catch (GitAPIException e) {
-            throw new ADCException("Git API error when checking remote repository", e);
-        }
-        return repositoryInformation;
-    }*/
-}

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdaabd7/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/utils/CartridgeSubscriptionUtils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/utils/CartridgeSubscriptionUtils.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/utils/CartridgeSubscriptionUtils.java
new file mode 100644
index 0000000..dbd7b43
--- /dev/null
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/utils/CartridgeSubscriptionUtils.java
@@ -0,0 +1,69 @@
+/*
+ * 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.adc.mgt.subscription.utils;
+
+import org.apache.stratos.adc.mgt.payload.BasicPayloadData;
+import org.apache.stratos.adc.mgt.subscription.CartridgeSubscription;
+import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
+
+public class CartridgeSubscriptionUtils {
+
+    public static BasicPayloadData getBasicPayloadData (CartridgeSubscription cartridgeSubscription) {
+
+        BasicPayloadData basicPayloadData = new BasicPayloadData();
+        basicPayloadData.setApplicationPath(cartridgeSubscription.getCartridgeInfo().getBaseDir());
+        basicPayloadData.setSubscriptionKey(cartridgeSubscription.getSubscriptionKey());
+        basicPayloadData.setClusterId(cartridgeSubscription.getClusterDomain());
+        basicPayloadData.setDeployment("default");//currently hard coded to default
+        if(cartridgeSubscription.getRepository() != null) {
+            basicPayloadData.setGitRepositoryUrl(cartridgeSubscription.getRepository().getUrl());
+        }
+        basicPayloadData.setHostName(cartridgeSubscription.getHostName());
+        basicPayloadData.setMultitenant(String.valueOf(cartridgeSubscription.getCartridgeInfo().getMultiTenant()));
+        basicPayloadData.setPortMappings(createPortMappingPayloadString(cartridgeSubscription.getCartridgeInfo()));
+        basicPayloadData.setServiceName(cartridgeSubscription.getCartridgeInfo().getType());
+        basicPayloadData.setSubscriptionAlias(cartridgeSubscription.getAlias());
+        basicPayloadData.setTenantId(cartridgeSubscription.getSubscriber().getTenantId());
+        if(cartridgeSubscription.getCartridgeInfo().getMultiTenant() ||
+                cartridgeSubscription.getSubscriber().getTenantId() == -1234) {  //TODO: fix properly
+            basicPayloadData.setTenantRange("*");
+        } else {
+            basicPayloadData.setTenantRange(String.valueOf(cartridgeSubscription.getSubscriber().getTenantId()));
+        }
+
+        return basicPayloadData;
+    }
+
+    private static String createPortMappingPayloadString (CartridgeInfo cartridgeInfo) {
+
+        // port mappings
+        StringBuilder portMapBuilder = new StringBuilder();
+        org.apache.stratos.cloud.controller.pojo.PortMapping[] portMappings = cartridgeInfo.getPortMappings();
+        for (org.apache.stratos.cloud.controller.pojo.PortMapping portMapping : portMappings) {
+            String port = portMapping.getPort();
+            portMapBuilder.append(port).append("|");
+        }
+
+        // remove last "|" character
+        String portMappingString = portMapBuilder.toString().replaceAll("\\|$", "");
+
+        return portMappingString;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdaabd7/components/org.apache.stratos.adc.mgt/src/test/java/org/apache/stratos/adc/mgt/test/CartridgeSubscriptionTest.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/test/java/org/apache/stratos/adc/mgt/test/CartridgeSubscriptionTest.java b/components/org.apache.stratos.adc.mgt/src/test/java/org/apache/stratos/adc/mgt/test/CartridgeSubscriptionTest.java
index d0929d5..2446b23 100644
--- a/components/org.apache.stratos.adc.mgt/src/test/java/org/apache/stratos/adc/mgt/test/CartridgeSubscriptionTest.java
+++ b/components/org.apache.stratos.adc.mgt/src/test/java/org/apache/stratos/adc/mgt/test/CartridgeSubscriptionTest.java
@@ -23,14 +23,24 @@ import junit.framework.TestCase;
 import org.apache.stratos.adc.mgt.exception.ADCException;
 import org.apache.stratos.adc.mgt.subscription.CartridgeSubscription;
 import org.apache.stratos.adc.mgt.subscription.factory.CartridgeSubscriptionFactory;
+import org.apache.stratos.adc.mgt.subscription.tenancy.SubscriptionMultiTenantBehaviour;
+import org.apache.stratos.adc.mgt.subscription.tenancy.SubscriptionSingleTenantBehaviour;
+import org.apache.stratos.adc.mgt.subscription.tenancy.SubscriptionTenancyBehaviour;
 import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
 
 public class CartridgeSubscriptionTest extends TestCase {
 
     private CartridgeSubscription getCartridgeInstance (CartridgeInfo cartridgeInfo) {
 
+        SubscriptionTenancyBehaviour tenancyBehaviour;
+        if(cartridgeInfo.getMultiTenant()) {
+            tenancyBehaviour = new SubscriptionMultiTenantBehaviour();
+        } else {
+            tenancyBehaviour = new SubscriptionSingleTenantBehaviour();
+        }
+
         try {
-            return CartridgeSubscriptionFactory.getCartridgeSubscriptionInstance(cartridgeInfo);
+            return CartridgeSubscriptionFactory.getCartridgeSubscriptionInstance(cartridgeInfo, tenancyBehaviour);
 
         } catch (ADCException e) {
             throw new RuntimeException(e);
@@ -40,14 +50,16 @@ public class CartridgeSubscriptionTest extends TestCase {
     public void testCarbonCartridge () {
 
         CartridgeInfo cartridgeInfo = new CartridgeInfo();
+        cartridgeInfo.setProvider("carbon");
         cartridgeInfo.setMultiTenant(true);
         cartridgeInfo.setType("esb");
         assertNotNull(getCartridgeInstance(cartridgeInfo));
     }
-     //TODO FIXME
-    /*public void testPhpCartridgeInstance () {
+
+    public void testPhpCartridgeInstance () {
 
         CartridgeInfo cartridgeInfo = new CartridgeInfo();
+        cartridgeInfo.setProvider("php-provider");
         cartridgeInfo.setMultiTenant(false);
         cartridgeInfo.setType("php");
         assertNotNull(getCartridgeInstance(cartridgeInfo));
@@ -56,6 +68,7 @@ public class CartridgeSubscriptionTest extends TestCase {
     public void testMySqlCartridgeInstance () {
 
         CartridgeInfo cartridgeInfo = new CartridgeInfo();
+        cartridgeInfo.setProvider("data");
         cartridgeInfo.setMultiTenant(false);
         cartridgeInfo.setType("mysql");
         assertNotNull(getCartridgeInstance(cartridgeInfo));
@@ -64,8 +77,9 @@ public class CartridgeSubscriptionTest extends TestCase {
     public void testTomcatCartridgeInstance () {
 
         CartridgeInfo cartridgeInfo = new CartridgeInfo();
+        cartridgeInfo.setProvider("tomcat-provider");
         cartridgeInfo.setMultiTenant(false);
         cartridgeInfo.setType("tomcat");
         assertNotNull(getCartridgeInstance(cartridgeInfo));
-    }*/
+    }
 }


[3/5] git commit: subscription and payload models to provide support for service deploying

Posted by is...@apache.org.
subscription and payload models to provide support for service deploying


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

Branch: refs/heads/master
Commit: efdaabd78fa112fea6b926a8eae47fb6281a4b0e
Parents: 68dcc68
Author: Isuru <is...@wso2.com>
Authored: Sun Dec 15 02:37:34 2013 +0530
Committer: Isuru <is...@wso2.com>
Committed: Sun Dec 15 02:37:34 2013 +0530

----------------------------------------------------------------------
 .../manager/CartridgeSubscriptionManager.java   | 186 +++-----
 .../ApplicationCartridgePayloadData.java        |  27 ++
 .../adc/mgt/payload/BasicPayloadData.java       | 191 ++++++++
 .../stratos/adc/mgt/payload/CarbonPayload.java  |  86 ++--
 .../mgt/payload/DataCartridgePayloadData.java   |  27 ++
 .../stratos/adc/mgt/payload/DataPayload.java    |  80 ++--
 .../payload/FramewrokCartridgePayloadData.java  |  27 ++
 .../LoadBalancerCartridgePayloadData.java       |  27 ++
 .../adc/mgt/payload/NonCarbonPayload.java       | 250 +++++------
 .../apache/stratos/adc/mgt/payload/Payload.java | 448 +++++++++----------
 .../stratos/adc/mgt/payload/PayloadArg.java     | 388 ++++++++--------
 .../stratos/adc/mgt/payload/PayloadData.java    |  61 +++
 .../stratos/adc/mgt/payload/PayloadFactory.java |  27 +-
 .../ApplicationCartridgeSubscription.java       |  52 +--
 .../mgt/subscription/CartridgeSubscription.java | 151 +++----
 .../subscription/CartridgeSubscription_old.java |   4 +-
 .../subscription/DataCartridgeSubscription.java |  60 +--
 .../DataCartridgeSubscription_old.java          |   6 +-
 .../FrameworkCartridgeSubscription.java         |  55 +--
 .../subscription/LBCartridgeSubscription.java   |   8 +-
 .../SingleTenantCartridgeSubscription.java      |   6 +-
 .../factory/CartridgeSubscriptionFactory.java   |  10 +-
 .../ServiceDeploymentMultiTenantBehaviour.java  | 230 +++++-----
 .../SubscriptionMultiTenantBehaviour.java       |  54 +--
 .../SubscriptionSingleTenantBehaviour.java      |  47 +-
 .../tenancy/SubscriptionTenancyBehaviour.java   |  25 +-
 .../utils/CartridgeInstanceUtils.java           | 240 ----------
 .../utils/CartridgeSubscriptionUtils.java       |  69 +++
 .../adc/mgt/test/CartridgeSubscriptionTest.java |  22 +-
 .../stratos/adc/mgt/test/PayloadTest.java       | 392 ++++++++--------
 .../rest/endpoint/services/ServiceUtils.java    |   8 +-
 31 files changed, 1587 insertions(+), 1677 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdaabd7/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/manager/CartridgeSubscriptionManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/manager/CartridgeSubscriptionManager.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/manager/CartridgeSubscriptionManager.java
index 7f1d50e..4fde725 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/manager/CartridgeSubscriptionManager.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/manager/CartridgeSubscriptionManager.java
@@ -29,14 +29,17 @@ import org.apache.stratos.adc.mgt.connector.CartridgeSubscriptionConnectorFactor
 import org.apache.stratos.adc.mgt.dao.CartridgeSubscriptionInfo;
 import org.apache.stratos.adc.mgt.dto.SubscriptionInfo;
 import org.apache.stratos.adc.mgt.exception.*;
-import org.apache.stratos.adc.mgt.payload.Payload;
-import org.apache.stratos.adc.mgt.payload.PayloadArg;
+import org.apache.stratos.adc.mgt.payload.BasicPayloadData;
+import org.apache.stratos.adc.mgt.payload.PayloadData;
 import org.apache.stratos.adc.mgt.payload.PayloadFactory;
 import org.apache.stratos.adc.mgt.repository.Repository;
 import org.apache.stratos.adc.mgt.subscriber.Subscriber;
 import org.apache.stratos.adc.mgt.subscription.CartridgeSubscription;
-import org.apache.stratos.adc.mgt.subscription.FrameworkCartridgeSubscription;
 import org.apache.stratos.adc.mgt.subscription.factory.CartridgeSubscriptionFactory;
+import org.apache.stratos.adc.mgt.subscription.tenancy.SubscriptionMultiTenantBehaviour;
+import org.apache.stratos.adc.mgt.subscription.tenancy.SubscriptionSingleTenantBehaviour;
+import org.apache.stratos.adc.mgt.subscription.tenancy.SubscriptionTenancyBehaviour;
+import org.apache.stratos.adc.mgt.subscription.utils.CartridgeSubscriptionUtils;
 import org.apache.stratos.adc.mgt.utils.ApplicationManagementUtil;
 import org.apache.stratos.adc.mgt.utils.CartridgeConstants;
 import org.apache.stratos.adc.mgt.utils.PersistenceManager;
@@ -120,25 +123,10 @@ public class CartridgeSubscriptionManager {
         // validate cartridge alias
         ApplicationManagementUtil.validateCartridgeAlias(cartridgeAlias, cartridgeType);
 
-        // TODO - remove, now autoscaling policy is at autoscaler. Just need to pass the name
-        /*
-         * Policy autoScalingPolicy;
-         * if(autoscalingPolicyName != null && !autoscalingPolicyName.isEmpty()) {
-         * autoScalingPolicy = PolicyHolder.getInstance().getPolicy(autoscalingPolicyName);
-         * } else {
-         * autoScalingPolicy = PolicyHolder.getInstance().getDefaultPolicy();
-         * }
-         * 
-         * if(autoScalingPolicy == null) {
-         * throw new PolicyException("Could not load the auto scaling policy.");
-         * }
-         */
-
         CartridgeInfo cartridgeInfo;
         try {
             cartridgeInfo =
-                            CloudControllerServiceClient.getServiceClient()
-                                                        .getCartridgeInfo(cartridgeType);
+                            CloudControllerServiceClient.getServiceClient().getCartridgeInfo(cartridgeType);
             if (props != null) {
                 cartridgeInfo.setProperties(props);
             }
@@ -156,11 +144,19 @@ public class CartridgeSubscriptionManager {
             throw new ADCException(message, e);
         }
 
-        Subscriber subscriber = new Subscriber(tenantAdminUsername, tenantId, tenantDomain);
+        //Decide tenancy behaviour
+        SubscriptionTenancyBehaviour tenancyBehaviour;
+        if(cartridgeInfo.getMultiTenant()) {
+            tenancyBehaviour = new SubscriptionMultiTenantBehaviour();
+        } else {
+            tenancyBehaviour = new SubscriptionSingleTenantBehaviour();
+        }
 
-        CartridgeSubscription cartridgeSubscription =
-                                                      CartridgeSubscriptionFactory.getCartridgeSubscriptionInstance(cartridgeInfo);
+        //Create the CartridgeSubscription instance
+        CartridgeSubscription cartridgeSubscription = CartridgeSubscriptionFactory.
+                getCartridgeSubscriptionInstance(cartridgeInfo, tenancyBehaviour);
 
+        //Create repository
         Repository repository =
                                 cartridgeSubscription.manageRepository(repositoryURL,
                                                                        repositoryUsername,
@@ -169,6 +165,10 @@ public class CartridgeSubscriptionManager {
                                                                        cartridgeAlias,
                                                                        cartridgeInfo, tenantDomain);
 
+        //Create subscriber
+        Subscriber subscriber = new Subscriber(tenantAdminUsername, tenantId, tenantDomain);
+
+        //create subscription
         cartridgeSubscription.createSubscription(subscriber, cartridgeAlias, autoscalingPolicyName,
                                                  deploymentPolicyName, repository);
         cartridgeSubscription.setSubscriptionKey(generateSubscriptionKey()); // TODO ---- fix
@@ -179,51 +179,37 @@ public class CartridgeSubscriptionManager {
                  cartridgeType + ", Repo URL: " + repositoryURL + ", Policy: " +
                  autoscalingPolicyName);
 
-        Payload payload =
-                          PayloadFactory.getPayloadInstance(cartridgeInfo.getProvider(),
-                                                            cartridgeType, "/tmp/" + tenantDomain +
-                                                                           "-" + cartridgeAlias +
-                                                                           ".zip");
-        PayloadArg payloadArg = cartridgeSubscription.createPayloadParameters();
-
-        if (payloadArg != null) {
-            // populate the payload
-            payload.populatePayload(payloadArg);
-            cartridgeSubscription.setPayload(payload);
-        }
+        //Create the payload
+        BasicPayloadData basicPayloadData = CartridgeSubscriptionUtils.getBasicPayloadData(cartridgeSubscription);
+        PayloadData payloadData = PayloadFactory.getPayloadDataInstance(cartridgeInfo.getProvider(),
+                cartridgeInfo.getType(), basicPayloadData);
 
-        // get the payload parameters defined in the cartridge definition file for this cartridge
-        // type
+        // get the payload parameters defined in the cartridge definition file for this cartridge type
         if (cartridgeInfo.getProperties() != null && cartridgeInfo.getProperties().length != 0) {
 
-            StringBuilder customPayloadParamsBuilder = new StringBuilder();
             for (Property property : cartridgeInfo.getProperties()) {
-                // check if a property is related to the payload. Currently this is done by checking
-                // if the
-                // property name starts with 'payload_parameter.' suffix. If so the payload param
-                // name will
+                // check if a property is related to the payload. Currently this is done by checking if the
+                // property name starts with 'payload_parameter.' suffix. If so the payload param name will
                 // be taken as the substring from the index of '.' to the end of the property name.
                 if (property.getName()
                             .startsWith(CartridgeConstants.CUSTOM_PAYLOAD_PARAM_NAME_PREFIX)) {
                     String payloadParamName = property.getName();
-                    customPayloadParamsBuilder.append(",");
-                    customPayloadParamsBuilder.append(payloadParamName.substring(payloadParamName.indexOf(".") + 1));
-                    customPayloadParamsBuilder.append("=");
-                    customPayloadParamsBuilder.append(property.getValue());
+                    payloadData.add(payloadParamName.substring(payloadParamName.indexOf(".") + 1), property.getValue());
                 }
             }
-            // if valid payload related parameters are found in the cartridge definition file, add
-            // them to the payload
-            String customPayloadParamString = customPayloadParamsBuilder.toString();
-            if (!customPayloadParamString.isEmpty()) {
-                payload.populatePayload(customPayloadParamString);
-                cartridgeSubscription.setPayload(payload);
+        }
+
+        //check if there are any custom payload entries defined
+        if (cartridgeSubscription.getCustomPayloadEntries() != null) {
+            //add them to the payload
+            Map<String, String> customPayloadEntries = cartridgeSubscription.getCustomPayloadEntries();
+            Set<Map.Entry<String,String>> entrySet = customPayloadEntries.entrySet();
+            for (Map.Entry<String, String> entry : entrySet) {
+                payloadData.add(entry.getKey(), entry.getValue());
             }
         }
 
-        // CartridgeInstanceCache.getCartridgeInstanceCache().
-        // addCartridgeInstance(new CartridgeInstanceCacheKey(tenantId, cartridgeAlias),
-        // cartridgeSubscription);
+        cartridgeSubscription.setPayloadData(payloadData);
 
         return cartridgeSubscription;
     }
@@ -283,25 +269,17 @@ public class CartridgeSubscriptionManager {
         }
 
         //add connection relates parameters to the payload
-        if(cartridgeSubscription.getPayload() != null) {
-            cartridgeSubscription.getPayload().populatePayload(connectionParamsBuilder.toString());
+        if(cartridgeSubscription.getPayloadData() != null) {
+            //cartridgeSubscription.getPayloadData().populatePayload(connectionParamsBuilder.toString());
         } else {
             //no existing payload
-            Payload payload = PayloadFactory.getPayloadInstance(cartridgeSubscription.getCartridgeInfo().getProvider(),
+            /*Payload payload = PayloadFactory.getPayloadDataInstance(cartridgeSubscription.getCartridgeInfo().getProvider(),
                     cartridgeSubscription.getType(), "/tmp/" + tenantDomain + "-" + cartridgeSubscription.getAlias() +
                     ".zip");
             payload.populatePayload(connectionParamsBuilder.toString());
-            cartridgeSubscription.setPayload(payload);
+            cartridgeSubscription.setPayloadData(payload);*/
         }
 
-        /*
-        payloadArg.setUserDefinedPayload(connectionParamsBuilder.toString());
-        Payload payload = PayloadFactory.getPayloadInstance(cartridgeSubscription.getCartridgeInfo().getProvider(),
-                cartridgeSubscription.getType(),
-                "/tmp/" + tenantDomain + "-" + cartridgeSubscription.getAlias() + ".zip");
-        payload.populatePayload(payloadArg);
-        payload.createPayload();
-        */
     }
 
     /**
@@ -316,14 +294,6 @@ public class CartridgeSubscriptionManager {
     public SubscriptionInfo registerCartridgeSubscription(CartridgeSubscription cartridgeSubscription)
             throws ADCException, UnregisteredCartridgeException {
 
-        /*CartridgeSubscriptionInfo cartridgeSubscription = CartridgeInstanceCache.getCartridgeInstanceCache().
-                getCartridgeSubscription(new CartridgeInstanceCacheKey(tenantId, alias));
-
-        if(cartridgeSubscription == null) {
-            throw new ADCException("Unable to find cartridge with alias " + alias + ", for tenant Id " + tenantId +
-                    " in cache");
-        }*/
-
         CartridgeSubscriptionInfo cartridgeSubscriptionInfo = cartridgeSubscription.registerSubscription(null);
 
         int subscriptionId;
@@ -370,26 +340,6 @@ public class CartridgeSubscriptionManager {
         }
     }
 
-    /*public List<CartridgeSubscriptionInfo> getCartridgeInstances (int tenantId) throws ADCException, NotSubscribedException {
-
-        List<CartridgeSubscriptionInfo> cartridgeSubscriptions = getCartridgeSubscriptions(tenantId);
-        List<CartridgeSubscriptionInfo> cartridgeInstances = new ArrayList<CartridgeSubscriptionInfo>();
-        CartridgeInfo cartridgeInfo;
-
-        for(CartridgeSubscriptionInfo cartridgeSubscription : cartridgeSubscriptions) {
-            try {
-                cartridgeInfo = CloudControllerServiceClient.getServiceClient().
-                        getCartridgeInfo(cartridgeSubscription.getCartridge());
-                cartridgeInstances.add(populateCartridgeSubscriptionInformation(cartridgeInfo, cartridgeSubscription));
-
-            } catch (Exception e) {
-                throw new ADCException(e.getMessage(), e);
-            }
-        }
-
-        return cartridgeInstances;
-    }*/
-
     /**
      * Creates and returns a CartridgeSubscription object
      *
@@ -415,27 +365,9 @@ public class CartridgeSubscriptionManager {
 
         return populateCartridgeSubscriptionInformation(cartridgeInfo, cartridgeSubscriptionInfo);
     }
-    
-    
-    /****
-     *  TODO - complete method...
-     * 
-     * 
-     * @param cartridgeType
-     * @param cartridgeAlias
-     * @param autoscalingPolicyName
-     * @param deploymentPolicyName
-     * @param tenantDomain
-     * @param tenantId
-     * @param tenantAdminUsername
-     * @param repositoryType
-     * @param repositoryURL
-     * @param isPrivateRepository
-     * @param repositoryUsername
-     * @param repositoryPassword
-     */
-    
-    public CartridgeSubscription deployMultitenantService(String cartridgeType, String cartridgeAlias,
+
+    //TODO: remove
+    /*public CartridgeSubscription deployMultitenantService(String cartridgeType, String cartridgeAlias,
             String autoscalingPolicyName, String deploymentPolicyName,
             String tenantDomain, int tenantId,
             String tenantAdminUsername,
@@ -485,7 +417,7 @@ public class CartridgeSubscriptionManager {
         
         // TODO -- payload would need some additional params - like Puppet master IP .. etc
         
-        Payload payload = PayloadFactory.getPayloadInstance(cartridgeInfo.getProvider(), cartridgeType,
+        Payload payload = PayloadFactory.getPayloadDataInstance(cartridgeInfo.getProvider(), cartridgeType,
                 "/tmp/" + tenantDomain + "-" + cartridgeAlias + ".zip");
         PayloadArg payloadArg = cartridgeSubscription.createPayloadParameters();
 
@@ -497,7 +429,7 @@ public class CartridgeSubscriptionManager {
             payloadArg.setTenantRange(tenantRange);
             //payloadArg.setDeployment("default");   
             payloadArg.setServiceDomain(cartridgeAlias+"."+cartridgeInfo.getHostName()+".domain"); // This is cluster id
-            cartridgeSubscription.setPayload(payload);
+            cartridgeSubscription.setPayloadData(payload);
         }
 
         //get the payload parameters defined in the cartridge definition file for this cartridge type
@@ -521,13 +453,13 @@ public class CartridgeSubscriptionManager {
             String customPayloadParamString = customPayloadParamsBuilder.toString();
             if(!customPayloadParamString.isEmpty()) {
                 payload.populatePayload(customPayloadParamString);
-                cartridgeSubscription.setPayload(payload);
+                cartridgeSubscription.setPayloadData(payload);
             }
         }
         
         return cartridgeSubscription;
     	
-    }
+    }*/
 
     private CartridgeSubscriptionInfo getCartridgeSubscriptionInfo(String tenantDomain, String alias)
             throws ADCException, NotSubscribedException {
@@ -577,7 +509,15 @@ public class CartridgeSubscriptionManager {
                                                                            CartridgeSubscriptionInfo cartridgeSubscriptionInfo)
             throws ADCException {
 
-        CartridgeSubscription cartridgeSubscription = CartridgeSubscriptionFactory.getCartridgeSubscriptionInstance(cartridgeInfo);
+        SubscriptionTenancyBehaviour tenancyBehaviour;
+        if(cartridgeInfo.getMultiTenant()) {
+            tenancyBehaviour = new SubscriptionMultiTenantBehaviour();
+        } else {
+            tenancyBehaviour = new SubscriptionSingleTenantBehaviour();
+        }
+
+        CartridgeSubscription cartridgeSubscription = CartridgeSubscriptionFactory.
+                getCartridgeSubscriptionInstance(cartridgeInfo, tenancyBehaviour);
 
         cartridgeSubscription.setSubscriptionId(cartridgeSubscriptionInfo.getSubscriptionId());
         cartridgeSubscription.setAlias(cartridgeSubscriptionInfo.getAlias());
@@ -586,12 +526,6 @@ public class CartridgeSubscriptionManager {
         cartridgeSubscription.setClusterSubDomain(cartridgeSubscriptionInfo.getClusterSubdomain());
         cartridgeSubscription.setMgtClusterDomain(cartridgeSubscriptionInfo.getMgtClusterDomain());
         cartridgeSubscription.setMgtClusterSubDomain(cartridgeSubscriptionInfo.getMgtClusterSubDomain());
-        /*Policy autoScalingPolicy;
-        if(cartridgeSubscriptionInfo.getPolicy() != null && !cartridgeSubscriptionInfo.getPolicy().isEmpty()) {
-            autoScalingPolicy = PolicyHolder.getInstance().getPolicy(cartridgeSubscriptionInfo.getPolicy());
-        } else {
-            autoScalingPolicy = PolicyHolder.getInstance().getDefaultPolicy();
-        }*/
         cartridgeSubscription.setAutoscalingPolicyName(cartridgeSubscriptionInfo.getPolicy());
         Subscriber subscriber = new Subscriber(CarbonContext.getThreadLocalCarbonContext().getUsername(),
                 cartridgeSubscriptionInfo.getTenantId(), cartridgeSubscriptionInfo.getTenantDomain());

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdaabd7/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/ApplicationCartridgePayloadData.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/ApplicationCartridgePayloadData.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/ApplicationCartridgePayloadData.java
new file mode 100644
index 0000000..88c8449
--- /dev/null
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/ApplicationCartridgePayloadData.java
@@ -0,0 +1,27 @@
+/*
+ * 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.adc.mgt.payload;
+
+public class ApplicationCartridgePayloadData extends PayloadData {
+
+    public ApplicationCartridgePayloadData(BasicPayloadData basicPayloadData) {
+        super(basicPayloadData);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdaabd7/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/BasicPayloadData.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/BasicPayloadData.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/BasicPayloadData.java
new file mode 100644
index 0000000..7f26c5e
--- /dev/null
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/BasicPayloadData.java
@@ -0,0 +1,191 @@
+/*
+ * 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.adc.mgt.payload;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.adc.mgt.utils.CartridgeConstants;
+
+import java.io.Serializable;
+
+/**
+ * Contains basic payload data fields
+ */
+public class BasicPayloadData implements Serializable {
+
+    private static Log log = LogFactory.getLog(BasicPayloadData.class);
+
+    private String serviceName;
+    private String clusterId;
+    private String hostName;
+    private int tenantId;
+    private String tenantRange;
+    private String subscriptionAlias;
+    private String deployment;
+    private String puppetIp;
+    private String subscriptionKey;
+    private String applicationPath;
+    private String gitRepositoryUrl;
+    private String portMappings;
+    private String multitenant;
+
+    protected StringBuilder payloadBuilder;
+
+    public BasicPayloadData() {
+        payloadBuilder = new StringBuilder();
+    }
+
+    public String getServiceName() {
+        return serviceName;
+    }
+
+    public void setServiceName(String serviceName) {
+        this.serviceName = serviceName;
+    }
+
+    public String getClusterId() {
+        return clusterId;
+    }
+
+    public void setClusterId(String clusterId) {
+        this.clusterId = clusterId;
+    }
+
+    public String getHostName() {
+        return hostName;
+    }
+
+    public void setHostName(String hostName) {
+        this.hostName = hostName;
+    }
+
+    public int getTenantId() {
+        return tenantId;
+    }
+
+    public void setTenantId(int tenantId) {
+        this.tenantId = tenantId;
+    }
+
+    public String getTenantRange() {
+        return tenantRange;
+    }
+
+    public void setTenantRange(String tenantRange) {
+        this.tenantRange = tenantRange;
+    }
+
+    public String getSubscriptionAlias() {
+        return subscriptionAlias;
+    }
+
+    public void setSubscriptionAlias(String subscriptionAlias) {
+        this.subscriptionAlias = subscriptionAlias;
+    }
+
+    public String getDeployment() {
+        return deployment;
+    }
+
+    public void setDeployment(String deployment) {
+        this.deployment = deployment;
+    }
+
+    public String getPuppetIp() {
+        return puppetIp;
+    }
+
+    public void setPuppetIp(String puppetIp) {
+        this.puppetIp = puppetIp;
+    }
+
+    public String getSubscriptionKey() {
+        return subscriptionKey;
+    }
+
+    public void setSubscriptionKey(String subscriptionKey) {
+        this.subscriptionKey = subscriptionKey;
+    }
+
+    public StringBuilder getPayloadData () {
+
+        payloadBuilder.append("SERVICE_NAME=" + getServiceName());
+        payloadBuilder.append(",");
+        payloadBuilder.append("HOST_NAME=" + getHostName());
+        payloadBuilder.append(",");
+        payloadBuilder.append("MULTITENANT=" + getMultitenant());
+        payloadBuilder.append(",");
+        payloadBuilder.append("TENANT_ID=" + getTenantId());
+        payloadBuilder.append(",");
+        payloadBuilder.append("TENANT_RANGE=" + getTenantRange());
+        payloadBuilder.append(",");
+        payloadBuilder.append("CARTRIDGE_ALIAS=" + getSubscriptionAlias());
+        payloadBuilder.append(",");
+        payloadBuilder.append("CLUSTER_ID=" + getClusterId());
+        payloadBuilder.append(",");
+        payloadBuilder.append("CARTRIDGE_KEY=" + getSubscriptionKey());
+        payloadBuilder.append(",");
+        payloadBuilder.append("DEPLOYMENT=" + getDeployment());
+        payloadBuilder.append(",");
+        payloadBuilder.append("APP_PATH=" + getApplicationPath());
+        payloadBuilder.append(",");
+        payloadBuilder.append("GIT_REPO=" + getGitRepositoryUrl());
+        payloadBuilder.append(",");
+        payloadBuilder.append("PORTS=" + getPortMappings());
+
+        //Payload Data exposed as system variables
+        payloadBuilder.append(",");
+        payloadBuilder.append("PUPPET_IP=" + System.getProperty(CartridgeConstants.PUPPET_IP));
+
+        return payloadBuilder;
+    }
+
+    public String getApplicationPath() {
+        return applicationPath;
+    }
+
+    public void setApplicationPath(String applicationPath) {
+        this.applicationPath = applicationPath;
+    }
+
+    public String getGitRepositoryUrl() {
+        return gitRepositoryUrl;
+    }
+
+    public void setGitRepositoryUrl(String gitRepositoryUrl) {
+        this.gitRepositoryUrl = gitRepositoryUrl;
+    }
+
+    public String getPortMappings() {
+        return portMappings;
+    }
+
+    public void setPortMappings(String portMappings) {
+        this.portMappings = portMappings;
+    }
+
+    public String getMultitenant() {
+        return multitenant;
+    }
+
+    public void setMultitenant(String multitenant) {
+        this.multitenant = multitenant;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdaabd7/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/CarbonPayload.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/CarbonPayload.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/CarbonPayload.java
index 3244e8e..a5e5ef4 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/CarbonPayload.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/CarbonPayload.java
@@ -1,43 +1,43 @@
-/*
- * 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.adc.mgt.payload;
-
-import org.apache.stratos.adc.mgt.utils.CartridgeConstants;
-
-public class CarbonPayload extends Payload {
-
-    public CarbonPayload(String payloadFilePath) {
-        super(payloadFilePath);
-    }
-
-    public void populatePayload(PayloadArg payloadArg) {
-
-        super.populatePayload(payloadArg);
-        payloadBuilder.append(",");
-
-        //carbon specific
-        //payloadBuilder.append("DEPLOYMENT=" + payloadArg.getDeployment());
-        //payloadBuilder.append(",");
-        //payloadBuilder.append("PUPPET_IP=" + System.getProperty(CartridgeConstants.PUPPET_IP));
-        //payloadBuilder.append(",");
-        payloadBuilder.append("MULTITENANT=" + payloadArg.getCartridgeInfo().getMultiTenant());
-
-    }
-}
+///*
+// * 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.adc.mgt.payload;
+//
+//import org.apache.stratos.adc.mgt.utils.CartridgeConstants;
+//
+//public class CarbonPayload extends Payload {
+//
+//    public CarbonPayload(String payloadFilePath) {
+//        super(payloadFilePath);
+//    }
+//
+//    public void populatePayload(PayloadArg payloadArg) {
+//
+//        super.populatePayload(payloadArg);
+//        payloadBuilder.append(",");
+//
+//        //carbon specific
+//        //payloadBuilder.append("DEPLOYMENT=" + payloadArg.getDeployment());
+//        //payloadBuilder.append(",");
+//        //payloadBuilder.append("PUPPET_IP=" + System.getProperty(CartridgeConstants.PUPPET_IP));
+//        //payloadBuilder.append(",");
+//        payloadBuilder.append("MULTITENANT=" + payloadArg.getCartridgeInfo().getMultiTenant());
+//
+//    }
+//}

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdaabd7/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/DataCartridgePayloadData.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/DataCartridgePayloadData.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/DataCartridgePayloadData.java
new file mode 100644
index 0000000..ee66375
--- /dev/null
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/DataCartridgePayloadData.java
@@ -0,0 +1,27 @@
+/*
+ * 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.adc.mgt.payload;
+
+public class DataCartridgePayloadData extends PayloadData {
+
+    public DataCartridgePayloadData(BasicPayloadData basicPayloadData) {
+        super(basicPayloadData);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdaabd7/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/DataPayload.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/DataPayload.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/DataPayload.java
index f4c8701..76b5087 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/DataPayload.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/DataPayload.java
@@ -1,40 +1,40 @@
-/*
- * 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.adc.mgt.payload;
-
-public class DataPayload extends NonCarbonPayload {
-
-    public DataPayload(String payloadFilePath) {
-        super(payloadFilePath);
-    }
-
-    public void populatePayload(PayloadArg payloadArg) {
-
-        super.populatePayload(payloadArg);
-        payloadBuilder.append(",");
-
-        //data specific
-        payloadBuilder.append("MYSQL_USER=" + payloadArg.getDataCartridgeAdminUser());
-        payloadBuilder.append(",");
-        payloadBuilder.append("MYSQL_HOST=" + payloadArg.getDataCartridgeHost());
-        payloadBuilder.append(",");
-        payloadBuilder.append("MYSQL_PASSWORD=" + payloadArg.getDataCartridgeAdminPassword());
-    }
-}
+///*
+// * 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.adc.mgt.payload;
+//
+//public class DataPayload extends NonCarbonPayload {
+//
+//    public DataPayload(String payloadFilePath) {
+//        super(payloadFilePath);
+//    }
+//
+//    public void populatePayload(PayloadArg payloadArg) {
+//
+//        super.populatePayload(payloadArg);
+//        payloadBuilder.append(",");
+//
+//        //data specific
+//        payloadBuilder.append("MYSQL_USER=" + payloadArg.getDataCartridgeAdminUser());
+//        payloadBuilder.append(",");
+//        payloadBuilder.append("MYSQL_HOST=" + payloadArg.getDataCartridgeHost());
+//        payloadBuilder.append(",");
+//        payloadBuilder.append("MYSQL_PASSWORD=" + payloadArg.getDataCartridgeAdminPassword());
+//    }
+//}

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdaabd7/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/FramewrokCartridgePayloadData.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/FramewrokCartridgePayloadData.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/FramewrokCartridgePayloadData.java
new file mode 100644
index 0000000..54a302f
--- /dev/null
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/FramewrokCartridgePayloadData.java
@@ -0,0 +1,27 @@
+/*
+ * 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.adc.mgt.payload;
+
+public class FramewrokCartridgePayloadData extends PayloadData {
+
+    public FramewrokCartridgePayloadData(BasicPayloadData basicPayloadData) {
+        super(basicPayloadData);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdaabd7/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/LoadBalancerCartridgePayloadData.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/LoadBalancerCartridgePayloadData.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/LoadBalancerCartridgePayloadData.java
new file mode 100644
index 0000000..f544675
--- /dev/null
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/LoadBalancerCartridgePayloadData.java
@@ -0,0 +1,27 @@
+/*
+ * 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.adc.mgt.payload;
+
+public class LoadBalancerCartridgePayloadData extends PayloadData {
+
+    public LoadBalancerCartridgePayloadData(BasicPayloadData basicPayloadData) {
+        super(basicPayloadData);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdaabd7/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/NonCarbonPayload.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/NonCarbonPayload.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/NonCarbonPayload.java
index 951ca66..977a000 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/NonCarbonPayload.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/NonCarbonPayload.java
@@ -1,125 +1,125 @@
-/*
- * 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.adc.mgt.payload;
-
-import org.apache.stratos.adc.mgt.utils.CartridgeConstants;
-import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
-
-public class NonCarbonPayload extends Payload {
-
-    public NonCarbonPayload(String payloadFilePath) {
-        super(payloadFilePath);
-    }
-
-    public void populatePayload(PayloadArg payloadArg) {
-
-        super.populatePayload(payloadArg);
-        payloadBuilder.append(",");
-
-        //general
-        payloadBuilder.append("REPO_INFO_EPR=" + System.getProperty(CartridgeConstants.REPO_INFO_EPR));
-        payloadBuilder.append(",");
-        payloadBuilder.append("CARTRIDGE_AGENT_EPR=" + System.getProperty(CartridgeConstants.CARTRIDGE_AGENT_EPR));
-        payloadBuilder.append(",");
-        payloadBuilder.append("APP_PATH=" + payloadArg.getCartridgeInfo().getBaseDir());
-
-        //port mapping specific
-        if(payloadArg.getCartridgeInfo() != null) {
-            payloadBuilder.append(",");
-            payloadBuilder.append(createPortMappingPayloadString(payloadArg.getCartridgeInfo()));
-        }
-
-        //git repository specific
-        payloadBuilder.append(",");
-        payloadBuilder.append("GIT_REPO=" + getRepositoryUrlParam(payloadArg));
-
-        //BAM specific
-        payloadBuilder.append(",");
-        payloadBuilder.append("BAM_IP=" + System.getProperty(CartridgeConstants.BAM_IP));
-        payloadBuilder.append(",");
-        payloadBuilder.append("BAM_PORT=" + System.getProperty(CartridgeConstants.BAM_PORT));
-
-        //TODO: remove
-        //Autoscale policy specific
-        /*if(payloadArg.getPolicy() != null) {
-            payloadBuilder.append(getAutoscalingParams(payloadArg.getPolicy()));
-        }*/
-                
-    }
-
-    private String createPortMappingPayloadString(CartridgeInfo cartridgeInfo) {
-        // port mappings
-        StringBuilder portMapBuilder = new StringBuilder();
-        org.apache.stratos.cloud.controller.pojo.PortMapping[] portMappings = cartridgeInfo.getPortMappings();
-        for (org.apache.stratos.cloud.controller.pojo.PortMapping portMapping : portMappings) {
-            String port = portMapping.getPort();
-            portMapBuilder.append(port).append("|");
-        }
-
-        // remove last "|" character
-        String portMappingString = portMapBuilder.toString().replaceAll("\\|$", "");
-	        /*String portMappingPayloadString = null;
-	        if (portMappingString.charAt(portMappingString.length() - 1) == '|') {
-	            portMappingPayloadString = portMappingString.substring(0, portMappingString.length() - 1);
-	        } else {
-	            portMappingPayloadString = portMappingString;
-	        }*/
-
-        return "PORTS=" + portMappingString;
-    }
-
-    private String getRepositoryUrlParam (PayloadArg arg) {
-
-        String gitRepoURL = null;
-        if (arg.getRepoURL() != null) {
-            gitRepoURL = arg.getRepoURL();
-        } else {
-            gitRepoURL = "git@" + System.getProperty(CartridgeConstants.GIT_HOST_IP) + ":" + arg.getTenantDomain()
-                    + System.getProperty("file.separator") + arg.getCartridgeAlias() + ".git";
-        }
-        return gitRepoURL;
-    }
-
-    //TODO: remove
-    /*private String getAutoscalingParams (Policy policy) {
-
-        DecimalFormat df = new DecimalFormat("##.##");
-        df.setParseBigDecimal(true);
-
-        StringBuilder autoscalingPayloadBuilder = new StringBuilder();
-
-        autoscalingPayloadBuilder.append(",");
-        autoscalingPayloadBuilder.append("MIN=" + policy.getMinAppInstances());
-        autoscalingPayloadBuilder.append(",");
-        autoscalingPayloadBuilder.append("MAX=" + policy.getMaxAppInstances());
-        autoscalingPayloadBuilder.append(",");
-        autoscalingPayloadBuilder.append("ALARMING_LOWER_RATE=" + policy.getAlarmingLowerRate());
-        autoscalingPayloadBuilder.append(",");
-        autoscalingPayloadBuilder.append("ALARMING_UPPER_RATE=" + policy.getAlarmingUpperRate());
-        autoscalingPayloadBuilder.append(",");
-        autoscalingPayloadBuilder.append("MAX_REQUESTS_PER_SEC=" + policy.getMaxRequestsPerSecond());
-        autoscalingPayloadBuilder.append(",");
-        autoscalingPayloadBuilder.append("ROUNDS_TO_AVERAGE=" + policy.getRoundsToAverage());
-        autoscalingPayloadBuilder.append(",");
-        autoscalingPayloadBuilder.append("SCALE_DOWN_FACTOR=" + policy.getScaleDownFactor());
-
-        return autoscalingPayloadBuilder.toString();
-    }*/
-}
+///*
+// * 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.adc.mgt.payload;
+//
+//import org.apache.stratos.adc.mgt.utils.CartridgeConstants;
+//import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
+//
+//public class NonCarbonPayload extends Payload {
+//
+//    public NonCarbonPayload(String payloadFilePath) {
+//        super(payloadFilePath);
+//    }
+//
+//    public void populatePayload(PayloadArg payloadArg) {
+//
+//        super.populatePayload(payloadArg);
+//        payloadBuilder.append(",");
+//
+//        //general
+//        payloadBuilder.append("REPO_INFO_EPR=" + System.getProperty(CartridgeConstants.REPO_INFO_EPR));
+//        payloadBuilder.append(",");
+//        payloadBuilder.append("CARTRIDGE_AGENT_EPR=" + System.getProperty(CartridgeConstants.CARTRIDGE_AGENT_EPR));
+//        payloadBuilder.append(",");
+//        payloadBuilder.append("APP_PATH=" + payloadArg.getCartridgeInfo().getBaseDir());
+//
+//        //port mapping specific
+//        if(payloadArg.getCartridgeInfo() != null) {
+//            payloadBuilder.append(",");
+//            payloadBuilder.append(createPortMappingPayloadString(payloadArg.getCartridgeInfo()));
+//        }
+//
+//        //git repository specific
+//        payloadBuilder.append(",");
+//        payloadBuilder.append("GIT_REPO=" + getRepositoryUrlParam(payloadArg));
+//
+//        //BAM specific
+//        payloadBuilder.append(",");
+//        payloadBuilder.append("BAM_IP=" + System.getProperty(CartridgeConstants.BAM_IP));
+//        payloadBuilder.append(",");
+//        payloadBuilder.append("BAM_PORT=" + System.getProperty(CartridgeConstants.BAM_PORT));
+//
+//        //TODO: remove
+//        //Autoscale policy specific
+//        /*if(payloadArg.getPolicy() != null) {
+//            payloadBuilder.append(getAutoscalingParams(payloadArg.getPolicy()));
+//        }*/
+//
+//    }
+//
+//    private String createPortMappingPayloadString(CartridgeInfo cartridgeInfo) {
+//        // port mappings
+//        StringBuilder portMapBuilder = new StringBuilder();
+//        org.apache.stratos.cloud.controller.pojo.PortMapping[] portMappings = cartridgeInfo.getPortMappings();
+//        for (org.apache.stratos.cloud.controller.pojo.PortMapping portMapping : portMappings) {
+//            String port = portMapping.getPort();
+//            portMapBuilder.append(port).append("|");
+//        }
+//
+//        // remove last "|" character
+//        String portMappingString = portMapBuilder.toString().replaceAll("\\|$", "");
+//	        /*String portMappingPayloadString = null;
+//	        if (portMappingString.charAt(portMappingString.length() - 1) == '|') {
+//	            portMappingPayloadString = portMappingString.substring(0, portMappingString.length() - 1);
+//	        } else {
+//	            portMappingPayloadString = portMappingString;
+//	        }*/
+//
+//        return "PORTS=" + portMappingString;
+//    }
+//
+//    private String getRepositoryUrlParam (PayloadArg arg) {
+//
+//        String gitRepoURL = null;
+//        if (arg.getRepoURL() != null) {
+//            gitRepoURL = arg.getRepoURL();
+//        } else {
+//            gitRepoURL = "git@" + System.getProperty(CartridgeConstants.GIT_HOST_IP) + ":" + arg.getTenantDomain()
+//                    + System.getProperty("file.separator") + arg.getCartridgeAlias() + ".git";
+//        }
+//        return gitRepoURL;
+//    }
+//
+//    //TODO: remove
+//    /*private String getAutoscalingParams (Policy policy) {
+//
+//        DecimalFormat df = new DecimalFormat("##.##");
+//        df.setParseBigDecimal(true);
+//
+//        StringBuilder autoscalingPayloadBuilder = new StringBuilder();
+//
+//        autoscalingPayloadBuilder.append(",");
+//        autoscalingPayloadBuilder.append("MIN=" + policy.getMinAppInstances());
+//        autoscalingPayloadBuilder.append(",");
+//        autoscalingPayloadBuilder.append("MAX=" + policy.getMaxAppInstances());
+//        autoscalingPayloadBuilder.append(",");
+//        autoscalingPayloadBuilder.append("ALARMING_LOWER_RATE=" + policy.getAlarmingLowerRate());
+//        autoscalingPayloadBuilder.append(",");
+//        autoscalingPayloadBuilder.append("ALARMING_UPPER_RATE=" + policy.getAlarmingUpperRate());
+//        autoscalingPayloadBuilder.append(",");
+//        autoscalingPayloadBuilder.append("MAX_REQUESTS_PER_SEC=" + policy.getMaxRequestsPerSecond());
+//        autoscalingPayloadBuilder.append(",");
+//        autoscalingPayloadBuilder.append("ROUNDS_TO_AVERAGE=" + policy.getRoundsToAverage());
+//        autoscalingPayloadBuilder.append(",");
+//        autoscalingPayloadBuilder.append("SCALE_DOWN_FACTOR=" + policy.getScaleDownFactor());
+//
+//        return autoscalingPayloadBuilder.toString();
+//    }*/
+//}

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdaabd7/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/Payload.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/Payload.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/Payload.java
index 4956e6b..10427f5 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/Payload.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/Payload.java
@@ -1,224 +1,224 @@
-/*
- * 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.adc.mgt.payload;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.adc.mgt.exception.ADCException;
-import org.apache.stratos.adc.mgt.utils.CartridgeConstants;
-
-import java.io.*;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipOutputStream;
-
-public abstract class Payload implements Serializable {
-
-    private static Log log = LogFactory.getLog(Payload.class);
-
-    protected StringBuilder payloadBuilder;
-    protected String payloadFilePath;
-    protected PayloadArg payloadArg;
-
-    /**
-     * Constructor
-     *
-     * @param payloadFilePath Full path at which the payload file is created
-     */
-    public Payload(String payloadFilePath) {
-        this.payloadFilePath = payloadFilePath;
-        payloadBuilder = new StringBuilder();
-    }
-
-    /**
-     * Pupulates the Payload subscription with relevant parameters and values given in PayloadArg subscription
-     *
-     * @param payloadArg PayloadArg subscription with relevant values
-     */
-    public void populatePayload(PayloadArg payloadArg) {
-
-        this.payloadArg = payloadArg;
-        payloadBuilder.append("HOST_NAME=" + payloadArg.getHostName());
-        payloadBuilder.append(",");
-        payloadBuilder.append("TENANT_ID=" + payloadArg.getTenantId());
-        payloadBuilder.append(",");
-        payloadBuilder.append("TENANT_RANGE=" + payloadArg.getTenantRange());
-        payloadBuilder.append(",");
-        payloadBuilder.append("TENANT_CONTEXT=" + payloadArg.getTenantDomain()); // No need to send those now
-        payloadBuilder.append(",");
-        payloadBuilder.append("CARTRIDGE_ALIAS=" + payloadArg.getCartridgeAlias());
-        payloadBuilder.append(",");
-        payloadBuilder.append("MB_IP=" + System.getProperty(CartridgeConstants.MB_IP));  // No need to send those now, will get from Puppet
-        payloadBuilder.append(",");
-        payloadBuilder.append("MB_PORT=" + System.getProperty(CartridgeConstants.MB_PORT)); // No need to send those now, will get from Puppet
-        payloadBuilder.append(",");
-        payloadBuilder.append("CEP_IP=" + System.getProperty(CartridgeConstants.CEP_IP)); // No need to send those now, will get from Puppet
-        payloadBuilder.append(",");
-        payloadBuilder.append("CEP_PORT=" + System.getProperty(CartridgeConstants.CEP_PORT)); // No need to send those now, will get from Puppet
-        payloadBuilder.append(",");
-        payloadBuilder.append("CLUSTER_ID=" + payloadArg.getServiceDomain());
-        payloadBuilder.append(",");
-        payloadBuilder.append("CARTRIDGE_KEY=" + payloadArg.getSubscriptionKey());
-        payloadBuilder.append(",");
-        payloadBuilder.append("DEPLOYMENT=" + "default"); // hard coded to default
-        payloadBuilder.append(",");
-        payloadBuilder.append("PUPPET_IP=" + System.getProperty(CartridgeConstants.PUPPET_IP));       
-        
-        
-        if(payloadArg.getCartridgeInfo() != null) {
-            payloadBuilder.append(",");
-            payloadBuilder.append("SERVICE_NAME=" + payloadArg.getCartridgeInfo().getType());
-        }
-
-        //add the user defined payload String (if any)
-        //this should be of the format <key_1>=<value_1>,<key_2>=<value_2>,....<key_n>=<value_n>
-        if (payloadArg.getUserDefinedPayload() != null && !payloadArg.getUserDefinedPayload().trim().isEmpty()) {
-
-            if(!payloadBuilder.toString().endsWith(",")) {
-                payloadBuilder.append(",");
-            }
-            payloadBuilder.append(payloadArg.getUserDefinedPayload());
-        }
-    }
-
-    /**
-     * Add the user defined payload String (if any). This should be of the format
-     * <key_1>=<value_1>,<key_2>=<value_2>,....<key_n>=<value_n>
-     *
-     * @param payloadString String object with payload information
-     */
-    public void populatePayload (String payloadString) {
-
-        if(payloadBuilder.toString().isEmpty()) {
-            if(payloadString.startsWith(",")) {
-                payloadBuilder.append(payloadString.substring(1));
-            }
-            else {
-                payloadBuilder.append(payloadString);
-            }
-        } else {
-            if(!payloadBuilder.toString().endsWith(",") && !payloadString.startsWith(",")) {
-                payloadBuilder.append(",");
-                payloadBuilder.append(payloadString);
-            }
-            else if (payloadBuilder.toString().endsWith(",") && payloadString.startsWith(",")) {
-                payloadBuilder.append(payloadString.substring(1));
-            }
-            else {
-                payloadBuilder.append(payloadString);
-            }
-        }
-    }
-
-    /**
-     * Create the actual payload in the file system
-     *
-     * @return DataHandler subscription with payload
-     * @throws ADCException in case of an error
-     */
-    public StringBuilder createPayload () throws ADCException {
-
-        if(payloadBuilder.length() == 0) {
-            log.warn("Payload string length is zero. Create payload failed");
-            return null;
-        }
-
-        File payloadFile = new File(getPayloadFilePath());
-        if(payloadFile.exists()) {
-            payloadFile.delete();
-        }
-
-        log.info("** Payload ** " + payloadBuilder.toString());
-
-        return payloadBuilder;
-    }
-
-    /**
-     * Adds content to a zip file
-     *
-     * @param dir Name of directory
-     * @param fileName Name of file to add
-     * @param zos ZipOutputStream subscription to write
-     * @throws ADCException in an error
-     */
-    private void addToZipFile(String dir, String fileName, ZipOutputStream zos) throws ADCException {
-
-        log.info("Writing '" + fileName + "' to zip file");
-
-        File file = new File(dir + File.separator + fileName);
-        FileInputStream fis;
-        try {
-            fis = new FileInputStream(file);
-
-        } catch (FileNotFoundException e) {
-            log.error(e.getMessage());
-            throw new ADCException(e.getMessage(), e);
-        }
-
-        ZipEntry zipEntry = new ZipEntry(fileName);
-        try {
-            zos.putNextEntry(zipEntry);
-
-        } catch (IOException e) {
-            log.error(e.getMessage());
-            throw new ADCException(e.getMessage(), e);
-        }
-
-        byte[] bytes = new byte[1024];
-        int length;
-
-            try {
-                while ((length = fis.read(bytes)) >= 0) {
-                    zos.write(bytes, 0, length);
-                }
-            } catch (IOException e) {
-                log.error(e.getMessage());
-                throw new ADCException(e.getMessage(), e);
-            }
-
-        try {
-            zos.closeEntry();
-            fis.close();
-
-        } catch (IOException e) {
-            log.error(e.getMessage());
-            throw new ADCException(e.getMessage(), e);
-        }
-    }
-
-    public String getPayloadFilePath() {
-        return payloadFilePath;
-    }
-
-    public void setPayloadFilePath(String payloadFilePath) {
-        this.payloadFilePath = payloadFilePath;
-    }
-
-    public boolean delete () {
-        return new File(payloadFilePath).delete();
-    }
-
-    public PayloadArg getPayloadArg() {
-        return payloadArg;
-    }
-
-    public void setPayloadArg(PayloadArg payloadArg) {
-        this.payloadArg = payloadArg;
-    }
-}
+///*
+// * 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.adc.mgt.payload;
+//
+//import org.apache.commons.logging.Log;
+//import org.apache.commons.logging.LogFactory;
+//import org.apache.stratos.adc.mgt.exception.ADCException;
+//import org.apache.stratos.adc.mgt.utils.CartridgeConstants;
+//
+//import java.io.*;
+//import java.util.zip.ZipEntry;
+//import java.util.zip.ZipOutputStream;
+//
+//public abstract class Payload implements Serializable {
+//
+//    private static Log log = LogFactory.getLog(Payload.class);
+//
+//    protected StringBuilder payloadBuilder;
+//    protected String payloadFilePath;
+//    protected PayloadArg payloadArg;
+//
+//    /**
+//     * Constructor
+//     *
+//     * @param payloadFilePath Full path at which the payload file is created
+//     */
+//    public Payload(String payloadFilePath) {
+//        this.payloadFilePath = payloadFilePath;
+//        payloadBuilder = new StringBuilder();
+//    }
+//
+//    /**
+//     * Pupulates the Payload subscription with relevant parameters and values given in PayloadArg subscription
+//     *
+//     * @param payloadArg PayloadArg subscription with relevant values
+//     */
+//    public void populatePayload(PayloadArg payloadArg) {
+//
+//        this.payloadArg = payloadArg;
+//        payloadBuilder.append("HOST_NAME=" + payloadArg.getHostName());
+//        payloadBuilder.append(",");
+//        payloadBuilder.append("TENANT_ID=" + payloadArg.getTenantId());
+//        payloadBuilder.append(",");
+//        payloadBuilder.append("TENANT_RANGE=" + payloadArg.getTenantRange());
+//        payloadBuilder.append(",");
+//        payloadBuilder.append("TENANT_CONTEXT=" + payloadArg.getTenantDomain()); // No need to send those now
+//        payloadBuilder.append(",");
+//        payloadBuilder.append("CARTRIDGE_ALIAS=" + payloadArg.getCartridgeAlias());
+//        payloadBuilder.append(",");
+//        payloadBuilder.append("MB_IP=" + System.getProperty(CartridgeConstants.MB_IP));  // No need to send those now, will get from Puppet
+//        payloadBuilder.append(",");
+//        payloadBuilder.append("MB_PORT=" + System.getProperty(CartridgeConstants.MB_PORT)); // No need to send those now, will get from Puppet
+//        payloadBuilder.append(",");
+//        payloadBuilder.append("CEP_IP=" + System.getProperty(CartridgeConstants.CEP_IP)); // No need to send those now, will get from Puppet
+//        payloadBuilder.append(",");
+//        payloadBuilder.append("CEP_PORT=" + System.getProperty(CartridgeConstants.CEP_PORT)); // No need to send those now, will get from Puppet
+//        payloadBuilder.append(",");
+//        payloadBuilder.append("CLUSTER_ID=" + payloadArg.getServiceDomain());
+//        payloadBuilder.append(",");
+//        payloadBuilder.append("CARTRIDGE_KEY=" + payloadArg.getSubscriptionKey());
+//        payloadBuilder.append(",");
+//        payloadBuilder.append("DEPLOYMENT=" + "default"); // hard coded to default
+//        payloadBuilder.append(",");
+//        payloadBuilder.append("PUPPET_IP=" + System.getProperty(CartridgeConstants.PUPPET_IP));
+//
+//
+//        if(payloadArg.getCartridgeInfo() != null) {
+//            payloadBuilder.append(",");
+//            payloadBuilder.append("SERVICE_NAME=" + payloadArg.getCartridgeInfo().getType());
+//        }
+//
+//        //add the user defined payload String (if any)
+//        //this should be of the format <key_1>=<value_1>,<key_2>=<value_2>,....<key_n>=<value_n>
+//        if (payloadArg.getUserDefinedPayload() != null && !payloadArg.getUserDefinedPayload().trim().isEmpty()) {
+//
+//            if(!payloadBuilder.toString().endsWith(",")) {
+//                payloadBuilder.append(",");
+//            }
+//            payloadBuilder.append(payloadArg.getUserDefinedPayload());
+//        }
+//    }
+//
+//    /**
+//     * Add the user defined payload String (if any). This should be of the format
+//     * <key_1>=<value_1>,<key_2>=<value_2>,....<key_n>=<value_n>
+//     *
+//     * @param payloadString String object with payload information
+//     */
+//    public void populatePayload (String payloadString) {
+//
+//        if(payloadBuilder.toString().isEmpty()) {
+//            if(payloadString.startsWith(",")) {
+//                payloadBuilder.append(payloadString.substring(1));
+//            }
+//            else {
+//                payloadBuilder.append(payloadString);
+//            }
+//        } else {
+//            if(!payloadBuilder.toString().endsWith(",") && !payloadString.startsWith(",")) {
+//                payloadBuilder.append(",");
+//                payloadBuilder.append(payloadString);
+//            }
+//            else if (payloadBuilder.toString().endsWith(",") && payloadString.startsWith(",")) {
+//                payloadBuilder.append(payloadString.substring(1));
+//            }
+//            else {
+//                payloadBuilder.append(payloadString);
+//            }
+//        }
+//    }
+//
+//    /**
+//     * Create the actual payload in the file system
+//     *
+//     * @return DataHandler subscription with payload
+//     * @throws ADCException in case of an error
+//     */
+//    public StringBuilder createPayload () throws ADCException {
+//
+//        if(payloadBuilder.length() == 0) {
+//            log.warn("Payload string length is zero. Create payload failed");
+//            return null;
+//        }
+//
+//        File payloadFile = new File(getPayloadFilePath());
+//        if(payloadFile.exists()) {
+//            payloadFile.delete();
+//        }
+//
+//        log.info("** Payload ** " + payloadBuilder.toString());
+//
+//        return payloadBuilder;
+//    }
+//
+//    /**
+//     * Adds content to a zip file
+//     *
+//     * @param dir Name of directory
+//     * @param fileName Name of file to add
+//     * @param zos ZipOutputStream subscription to write
+//     * @throws ADCException in an error
+//     */
+//    private void addToZipFile(String dir, String fileName, ZipOutputStream zos) throws ADCException {
+//
+//        log.info("Writing '" + fileName + "' to zip file");
+//
+//        File file = new File(dir + File.separator + fileName);
+//        FileInputStream fis;
+//        try {
+//            fis = new FileInputStream(file);
+//
+//        } catch (FileNotFoundException e) {
+//            log.error(e.getMessage());
+//            throw new ADCException(e.getMessage(), e);
+//        }
+//
+//        ZipEntry zipEntry = new ZipEntry(fileName);
+//        try {
+//            zos.putNextEntry(zipEntry);
+//
+//        } catch (IOException e) {
+//            log.error(e.getMessage());
+//            throw new ADCException(e.getMessage(), e);
+//        }
+//
+//        byte[] bytes = new byte[1024];
+//        int length;
+//
+//            try {
+//                while ((length = fis.read(bytes)) >= 0) {
+//                    zos.write(bytes, 0, length);
+//                }
+//            } catch (IOException e) {
+//                log.error(e.getMessage());
+//                throw new ADCException(e.getMessage(), e);
+//            }
+//
+//        try {
+//            zos.closeEntry();
+//            fis.close();
+//
+//        } catch (IOException e) {
+//            log.error(e.getMessage());
+//            throw new ADCException(e.getMessage(), e);
+//        }
+//    }
+//
+//    public String getPayloadFilePath() {
+//        return payloadFilePath;
+//    }
+//
+//    public void setPayloadFilePath(String payloadFilePath) {
+//        this.payloadFilePath = payloadFilePath;
+//    }
+//
+//    public boolean delete () {
+//        return new File(payloadFilePath).delete();
+//    }
+//
+//    public PayloadArg getPayloadArg() {
+//        return payloadArg;
+//    }
+//
+//    public void setPayloadArg(PayloadArg payloadArg) {
+//        this.payloadArg = payloadArg;
+//    }
+//}

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdaabd7/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/PayloadArg.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/PayloadArg.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/PayloadArg.java
index 5729ee7..ba4aa83 100755
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/PayloadArg.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/PayloadArg.java
@@ -1,194 +1,194 @@
-/**
- *  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.adc.mgt.payload;
-
-import org.apache.stratos.adc.mgt.dto.Policy;
-import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
-
-public class PayloadArg {
-
-    //basic
-    private String hostName;
-    private String tenantRange;
-    private int tenantId;
-    private String serviceName;
-    private String cartridgeAlias;
-    private String tenantDomain;
-    private CartridgeInfo cartridgeInfo;
-    private Policy policy;
-    private String repoURL;
-    private boolean multitenant;
-
-    //other
-	private String userDefinedPayload;
-    private String serviceDomain;
-    private String serviceSubDomain;
-    private String mgtServiceDomain;
-    private String mgtServiceSubDomain;
-    private String deployment;
-    private String subscriptionKey;
-
-    //data cartridge specific
-    private String dataCartridgeHost;
-    private String dataCartridgeAdminUser;
-    private String dataCartridgeAdminPassword;
-
-
-	public CartridgeInfo getCartridgeInfo() {
-		return cartridgeInfo;
-	}
-	public void setCartridgeInfo(CartridgeInfo cartridgeInfo) {
-		this.cartridgeInfo = cartridgeInfo;
-	}
-	public Policy getPolicy() {
-		return policy;
-	}
-	public void setPolicy(Policy policy) {
-		this.policy = policy;
-	}
-	public String getRepoURL() {
-		return repoURL;
-	}
-	public void setRepoURL(String repoURL) {
-		this.repoURL = repoURL;
-	}
-	public String getDataCartridgeAdminPassword() {
-		return dataCartridgeAdminPassword;
-	}
-	public void setDataCartridgeAdminPassword(String dataCartridgeAdminPassword) {
-		this.dataCartridgeAdminPassword = dataCartridgeAdminPassword;
-	}
-	public String getDataCartridgeHost() {
-		return dataCartridgeHost;
-	}
-	public void setDataCartridgeHost(String dataCartridgeHost) {
-		this.dataCartridgeHost = dataCartridgeHost;
-	}
-	public int getTenantId() {
-		return tenantId;
-	}
-	public void setTenantId(int tenantId) {
-		this.tenantId = tenantId;
-	}
-	public String getTenantDomain() {
-		return tenantDomain;
-	}
-	public void setTenantDomain(String tenantDomain) {
-		this.tenantDomain = tenantDomain;
-	}
-	public String getUserDefinedPayload() {
-		return userDefinedPayload;
-	}
-	public void setUserDefinedPayload(String userDefinedPayload) {
-		this.userDefinedPayload = userDefinedPayload;
-	}
-	public boolean isMultitenant() {
-		return multitenant;
-	}
-	public void setMultitenant(boolean multitenant) {
-		this.multitenant = multitenant;
-	}
-	public String getCartridgeAlias() {
-		return cartridgeAlias;
-	}
-	public void setCartridgeAlias(String cartridgeAlias) {
-		this.cartridgeAlias = cartridgeAlias;
-	}
-
-    public String getTenantRange() {
-        return tenantRange;
-    }
-
-    public void setTenantRange(String tenantRange) {
-        this.tenantRange = tenantRange;
-    }
-
-    public String getHostName() {
-        return hostName;
-    }
-
-    public void setHostName(String hostName) {
-        this.hostName = hostName;
-    }
-
-    public String getServiceDomain() {
-        return serviceDomain;
-    }
-
-    public void setServiceDomain(String serviceDomain) {
-        this.serviceDomain = serviceDomain;
-    }
-
-    public String getServiceSubDomain() {
-        return serviceSubDomain;
-    }
-
-    public void setServiceSubDomain(String serviceSubDomain) {
-        this.serviceSubDomain = serviceSubDomain;
-    }
-
-    public String getMgtServiceDomain() {
-        return mgtServiceDomain;
-    }
-
-    public void setMgtServiceDomain(String mgtServiceDomain) {
-        this.mgtServiceDomain = mgtServiceDomain;
-    }
-
-    public String getMgtServiceSubDomain() {
-        return mgtServiceSubDomain;
-    }
-
-    public void setMgtServiceSubDomain(String mgtServiceSubDomain) {
-        this.mgtServiceSubDomain = mgtServiceSubDomain;
-    }
-
-    public String getDataCartridgeAdminUser() {
-        return dataCartridgeAdminUser;
-    }
-
-    public void setDataCartridgeAdminUser(String dataCartridgeAdminUser) {
-        this.dataCartridgeAdminUser = dataCartridgeAdminUser;
-    }
-
-    public String getDeployment() {
-        return deployment;
-    }
-
-    public void setDeployment(String deployment) {
-        this.deployment = deployment;
-    }
-
-    public String getServiceName() {
-        return serviceName;
-    }
-
-    public void setServiceName(String serviceName) {
-        this.serviceName = serviceName;
-    }
-	public String getSubscriptionKey() {
-		return subscriptionKey;
-	}
-	public void setSubscriptionKey(String subscriptionKey) {
-		this.subscriptionKey = subscriptionKey;
-	}
-    
-    
-}
+///**
+// *  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.adc.mgt.payload;
+//
+//import org.apache.stratos.adc.mgt.dto.Policy;
+//import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
+//
+//public class PayloadArg {
+//
+//    //basic
+//    private String hostName;
+//    private String tenantRange;
+//    private int tenantId;
+//    private String serviceName;
+//    private String cartridgeAlias;
+//    private String tenantDomain;
+//    private CartridgeInfo cartridgeInfo;
+//    private Policy policy;
+//    private String repoURL;
+//    private boolean multitenant;
+//
+//    //other
+//	private String userDefinedPayload;
+//    private String serviceDomain;
+//    private String serviceSubDomain;
+//    private String mgtServiceDomain;
+//    private String mgtServiceSubDomain;
+//    private String deployment;
+//    private String subscriptionKey;
+//
+//    //data cartridge specific
+//    private String dataCartridgeHost;
+//    private String dataCartridgeAdminUser;
+//    private String dataCartridgeAdminPassword;
+//
+//
+//	public CartridgeInfo getCartridgeInfo() {
+//		return cartridgeInfo;
+//	}
+//	public void setCartridgeInfo(CartridgeInfo cartridgeInfo) {
+//		this.cartridgeInfo = cartridgeInfo;
+//	}
+//	public Policy getPolicy() {
+//		return policy;
+//	}
+//	public void setPolicy(Policy policy) {
+//		this.policy = policy;
+//	}
+//	public String getRepoURL() {
+//		return repoURL;
+//	}
+//	public void setRepoURL(String repoURL) {
+//		this.repoURL = repoURL;
+//	}
+//	public String getDataCartridgeAdminPassword() {
+//		return dataCartridgeAdminPassword;
+//	}
+//	public void setDataCartridgeAdminPassword(String dataCartridgeAdminPassword) {
+//		this.dataCartridgeAdminPassword = dataCartridgeAdminPassword;
+//	}
+//	public String getDataCartridgeHost() {
+//		return dataCartridgeHost;
+//	}
+//	public void setDataCartridgeHost(String dataCartridgeHost) {
+//		this.dataCartridgeHost = dataCartridgeHost;
+//	}
+//	public int getTenantId() {
+//		return tenantId;
+//	}
+//	public void setTenantId(int tenantId) {
+//		this.tenantId = tenantId;
+//	}
+//	public String getTenantDomain() {
+//		return tenantDomain;
+//	}
+//	public void setTenantDomain(String tenantDomain) {
+//		this.tenantDomain = tenantDomain;
+//	}
+//	public String getUserDefinedPayload() {
+//		return userDefinedPayload;
+//	}
+//	public void setUserDefinedPayload(String userDefinedPayload) {
+//		this.userDefinedPayload = userDefinedPayload;
+//	}
+//	public boolean isMultitenant() {
+//		return multitenant;
+//	}
+//	public void setMultitenant(boolean multitenant) {
+//		this.multitenant = multitenant;
+//	}
+//	public String getCartridgeAlias() {
+//		return cartridgeAlias;
+//	}
+//	public void setCartridgeAlias(String cartridgeAlias) {
+//		this.cartridgeAlias = cartridgeAlias;
+//	}
+//
+//    public String getTenantRange() {
+//        return tenantRange;
+//    }
+//
+//    public void setTenantRange(String tenantRange) {
+//        this.tenantRange = tenantRange;
+//    }
+//
+//    public String getHostName() {
+//        return hostName;
+//    }
+//
+//    public void setHostName(String hostName) {
+//        this.hostName = hostName;
+//    }
+//
+//    public String getServiceDomain() {
+//        return serviceDomain;
+//    }
+//
+//    public void setServiceDomain(String serviceDomain) {
+//        this.serviceDomain = serviceDomain;
+//    }
+//
+//    public String getServiceSubDomain() {
+//        return serviceSubDomain;
+//    }
+//
+//    public void setServiceSubDomain(String serviceSubDomain) {
+//        this.serviceSubDomain = serviceSubDomain;
+//    }
+//
+//    public String getMgtServiceDomain() {
+//        return mgtServiceDomain;
+//    }
+//
+//    public void setMgtServiceDomain(String mgtServiceDomain) {
+//        this.mgtServiceDomain = mgtServiceDomain;
+//    }
+//
+//    public String getMgtServiceSubDomain() {
+//        return mgtServiceSubDomain;
+//    }
+//
+//    public void setMgtServiceSubDomain(String mgtServiceSubDomain) {
+//        this.mgtServiceSubDomain = mgtServiceSubDomain;
+//    }
+//
+//    public String getDataCartridgeAdminUser() {
+//        return dataCartridgeAdminUser;
+//    }
+//
+//    public void setDataCartridgeAdminUser(String dataCartridgeAdminUser) {
+//        this.dataCartridgeAdminUser = dataCartridgeAdminUser;
+//    }
+//
+//    public String getDeployment() {
+//        return deployment;
+//    }
+//
+//    public void setDeployment(String deployment) {
+//        this.deployment = deployment;
+//    }
+//
+//    public String getServiceName() {
+//        return serviceName;
+//    }
+//
+//    public void setServiceName(String serviceName) {
+//        this.serviceName = serviceName;
+//    }
+//	public String getSubscriptionKey() {
+//		return subscriptionKey;
+//	}
+//	public void setSubscriptionKey(String subscriptionKey) {
+//		this.subscriptionKey = subscriptionKey;
+//	}
+//
+//
+//}

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdaabd7/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/PayloadData.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/PayloadData.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/PayloadData.java
new file mode 100644
index 0000000..b07f6fe
--- /dev/null
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/PayloadData.java
@@ -0,0 +1,61 @@
+/*
+ * 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.adc.mgt.payload;
+
+import java.io.Serializable;
+
+public abstract class PayloadData implements Serializable {
+
+    protected StringBuilder additionalPayloadDataBuilder;
+    //private Map<String, String> payloadDataMap;
+    private BasicPayloadData basicPayloadData;
+
+    public PayloadData(BasicPayloadData basicPayloadData) {
+        this.setBasicPayloadData(basicPayloadData);
+        additionalPayloadDataBuilder = new StringBuilder();
+        //payloadDataMap = new HashMap<String, String>();
+    }
+
+    public void add (String payloadDataName, String payloadDataValue) {
+
+        if(additionalPayloadDataBuilder.length() > 0) {
+            additionalPayloadDataBuilder.append(",");
+        }
+
+        //payloadDataMap.put(payloadDataName, payloadDataValue);
+        additionalPayloadDataBuilder.append(payloadDataName + "=" + payloadDataValue);
+    }
+
+    /*public String getPayloadDataValue (String payloadDataName) {
+        return payloadDataMap.get(payloadDataName);
+    }*/
+
+    public StringBuilder getCompletePayloadData () {
+        return additionalPayloadDataBuilder.append(",").append(getBasicPayloadData().getPayloadData());
+    }
+
+    public BasicPayloadData getBasicPayloadData() {
+        return basicPayloadData;
+    }
+
+    public void setBasicPayloadData(BasicPayloadData basicPayloadData) {
+        this.basicPayloadData = basicPayloadData;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/efdaabd7/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/PayloadFactory.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/PayloadFactory.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/PayloadFactory.java
index e78ecee..9370fe8 100755
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/PayloadFactory.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/PayloadFactory.java
@@ -22,43 +22,34 @@ package org.apache.stratos.adc.mgt.payload;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.adc.mgt.exception.ADCException;
-import org.apache.stratos.adc.mgt.utils.CartridgeConstants;
 
 public class PayloadFactory {
 
 	private static Log log = LogFactory.getLog(PayloadFactory.class);
 
     /**
-     * Creates and returns a Payload subscription
+     * Creates and returns a PayloadData instance
      *
      * @param cartridgeProvider Cartridge provider
      * @param cartridgeType Cartridge type
-     * @param payloadFilePath Location to create the payload
+     * @param basicPayloadData BasicPayloadData instance
      * @return Payload subscription
      * @throws ADCException if no matching criteria is found to create a payload
      */
-	public static Payload getPayloadInstance (String cartridgeProvider, String cartridgeType, String payloadFilePath)
+	public static PayloadData getPayloadDataInstance(String cartridgeProvider, String cartridgeType,
+                                                     BasicPayloadData basicPayloadData)
             throws ADCException {
 
-        Payload payload = null;
+        PayloadData payloadData = null;
 
-        if(cartridgeProvider.equals(CartridgeConstants.PROVIDER_NAME_WSO2)) {
-            payload = new CarbonPayload(payloadFilePath);
+        //TODO: fix after adding the property Category to Cartridge Definition
+        payloadData = new FramewrokCartridgePayloadData(basicPayloadData);
 
-        } else {
-            if(cartridgeProvider.equals(CartridgeConstants.DATA_CARTRIDGE_PROVIDER)) {
-                payload = new DataPayload(payloadFilePath);
-            }
-            else {
-                payload = new NonCarbonPayload(payloadFilePath);
-            }
-        }
-
-        if(payload == null) {
+        if(payloadData == null) {
             throw new ADCException("Unable to find matching payload for cartridge type " + cartridgeType +
                     ", provider " + cartridgeProvider);
         }
 
-        return payload;
+        return payloadData;
     }
 }


[5/5] git commit: adding a log for payload string and overriding toString methods

Posted by is...@apache.org.
adding a log for payload string and overriding toString methods


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

Branch: refs/heads/master
Commit: 8d995e2439b5044acb8d6b8aab027aefee0ed160
Parents: 6df1c6c
Author: Isuru <is...@wso2.com>
Authored: Sun Dec 15 03:17:01 2013 +0530
Committer: Isuru <is...@wso2.com>
Committed: Sun Dec 15 03:17:01 2013 +0530

----------------------------------------------------------------------
 .../java/org/apache/stratos/adc/mgt/dao/Cluster.java     |  4 ++++
 .../org/apache/stratos/adc/mgt/payload/PayloadData.java  | 11 ++++++++++-
 .../adc/mgt/subscription/CartridgeSubscription.java      |  3 +--
 3 files changed, 15 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/8d995e24/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/dao/Cluster.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/dao/Cluster.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/dao/Cluster.java
index 6120a80..18f6f37 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/dao/Cluster.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/dao/Cluster.java
@@ -70,4 +70,8 @@ public class Cluster implements Serializable {
     public void setServiceStatus(String serviceStatus) {
         this.serviceStatus = serviceStatus;
     }
+
+    public String toString () {
+        return clusterDomain;
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/8d995e24/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/PayloadData.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/PayloadData.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/PayloadData.java
index b07f6fe..1601c21 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/PayloadData.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/payload/PayloadData.java
@@ -48,7 +48,12 @@ public abstract class PayloadData implements Serializable {
     }*/
 
     public StringBuilder getCompletePayloadData () {
-        return additionalPayloadDataBuilder.append(",").append(getBasicPayloadData().getPayloadData());
+
+        if(additionalPayloadDataBuilder.length() > 0) {
+            return getBasicPayloadData().getPayloadData().append(",").append(additionalPayloadDataBuilder);
+        } else {
+            return getBasicPayloadData().getPayloadData();
+        }
     }
 
     public BasicPayloadData getBasicPayloadData() {
@@ -58,4 +63,8 @@ public abstract class PayloadData implements Serializable {
     public void setBasicPayloadData(BasicPayloadData basicPayloadData) {
         this.basicPayloadData = basicPayloadData;
     }
+
+    public String toString () {
+        return getCompletePayloadData().toString();
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/8d995e24/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/CartridgeSubscription.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/CartridgeSubscription.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/CartridgeSubscription.java
index d190f10..d62d9be 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/CartridgeSubscription.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/CartridgeSubscription.java
@@ -453,7 +453,6 @@ public abstract class CartridgeSubscription implements Serializable {
                ", alias=" + alias + ", autoscalingPolicyName=" + autoscalingPolicyName +
                ", deploymentPolicyName=" + deploymentPolicyName + ", subscriber=" + subscriber +
                ", repository=" + repository + ", cartridgeInfo=" + cartridgeInfo + ", payload=" +
-               payload + ", cluster=" + cluster + ", subscriptionStatus=" + subscriptionStatus +
-               ", serviceStatus=" + serviceStatus + ", mappedDomain=" + mappedDomain+ "]";
+               payloadData + ", cluster=" + cluster + "]";
     }
 }


[4/5] git commit: fixing a conflict

Posted by is...@apache.org.
fixing a conflict


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

Branch: refs/heads/master
Commit: 6df1c6c624978806081fc4709f6daf3f8e81429b
Parents: efdaabd 14b891e
Author: Isuru <is...@wso2.com>
Authored: Sun Dec 15 02:46:05 2013 +0530
Committer: Isuru <is...@wso2.com>
Committed: Sun Dec 15 02:46:05 2013 +0530

----------------------------------------------------------------------
 .../manager/CartridgeSubscriptionManager.java   |   1 +
 .../stratos/adc/mgt/repository/Repository.java  |   7 +
 .../stratos/adc/mgt/subscriber/Subscriber.java  |  10 +-
 .../mgt/subscription/CartridgeSubscription.java |  10 +
 .../stratos/autoscaler/ClusterMonitor.java      |  20 +-
 .../stratos/autoscaler/LbClusterMonitor.java    |   5 +
 .../autoscaler/NetworkPartitionContext.java     |  12 +-
 .../stratos/autoscaler/PartitionContext.java    |   5 +-
 .../autoscaler/api/AutoScalerServiceImpl.java   |  19 +-
 .../cloud/controller/CloudControllerClient.java |   3 +-
 .../exception/NonExistingLBException.java       |   2 +-
 .../interfaces/AutoScalerServiceInterface.java  |   2 +-
 .../internal/AutoscalerServerComponent.java     | 269 +++++----------
 .../autoscaler/partition/PartitionManager.java  |  90 +++---
 .../autoscaler/policy/PolicyManager.java        | 323 +++++++++----------
 .../autoscaler/registry/RegistryManager.java    | 196 ++++++++++-
 .../autoscaler/rule/RuleTasksDelegator.java     |  28 +-
 .../autoscaler/util/AutoScalerConstants.java    |   1 +
 .../stratos/autoscaler/util/AutoscalerUtil.java |  28 +-
 .../impl/CloudControllerServiceImpl.java        | 271 ++++++++--------
 .../cloud/controller/pojo/IaasProvider.java     |   6 +
 .../cloud/controller/pojo/MemberContext.java    |   9 +
 .../cloud/controller/pojo/Properties.java       |   6 +
 .../stratos/cloud/controller/pojo/Property.java |   7 +-
 .../cloud/controller/pojo/Registrant.java       |   7 +
 .../controller/topology/TopologyBuilder.java    |  12 +-
 .../topology/TopologyEventSender.java           |  18 +-
 .../controller/util/CloudControllerUtil.java    |   4 +-
 .../messaging/domain/topology/Cluster.java      |   9 +
 .../event/topology/ClusterCreatedEvent.java     |  68 ++--
 .../ClusterCreatedMessageProcessor.java         |  19 +-
 .../bean/util/converter/PojoConverter.java      |  10 +-
 .../rest/endpoint/services/ServiceUtils.java    | 289 +++++++++--------
 .../distribution/src/main/conf/mincheck.drl     |   3 +-
 .../distribution/src/main/conf/scaling.drl      |   3 +-
 .../src/main/resources/AutoScalerService.wsdl   | 141 ++++----
 .../main/resources/CloudControllerService.wsdl  |  16 +-
 37 files changed, 1031 insertions(+), 898 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/6df1c6c6/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/manager/CartridgeSubscriptionManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/6df1c6c6/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/CartridgeSubscription.java
----------------------------------------------------------------------
diff --cc components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/CartridgeSubscription.java
index c476f09,c8b2f2a..d190f10
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/CartridgeSubscription.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/CartridgeSubscription.java
@@@ -445,5 -468,15 +445,15 @@@ public abstract class CartridgeSubscrip
  
      public void setServiceStatus(String serviceStatus) {
          this.serviceStatus = serviceStatus;
 -    }
 +    }*/
+ 
+     @Override
+     public String toString() {
+         return "CartridgeSubscription [subscriptionId=" + subscriptionId + ", type=" + type +
+                ", alias=" + alias + ", autoscalingPolicyName=" + autoscalingPolicyName +
+                ", deploymentPolicyName=" + deploymentPolicyName + ", subscriber=" + subscriber +
+                ", repository=" + repository + ", cartridgeInfo=" + cartridgeInfo + ", payload=" +
+                payload + ", cluster=" + cluster + ", subscriptionStatus=" + subscriptionStatus +
+                ", serviceStatus=" + serviceStatus + ", mappedDomain=" + mappedDomain+ "]";
+     }
  }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/6df1c6c6/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
----------------------------------------------------------------------