Repository: incubator-stratos
Updated Branches:
  refs/heads/master d2be6febb -> 98edba232


refactoring some SM logic


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

Branch: refs/heads/master
Commit: 98edba2327b67f414e9e84d17e058563f20d0078
Parents: d2be6fe
Author: Isuru <[email protected]>
Authored: Sat Feb 15 20:15:03 2014 +0530
Committer: Isuru <[email protected]>
Committed: Sat Feb 15 20:15:03 2014 +0530

----------------------------------------------------------------------
 .../behaviour/CartridgeMgtBehaviour.java        |  46 ++++++++
 .../subscription/CartridgeSubscription.java     |  26 ++---
 .../subscription/DataCartridgeSubscription.java |   3 +-
 .../ServiceDeploymentMultiTenantBehaviour.java  | 109 -------------------
 .../SubscriptionMultiTenantBehaviour.java       |  50 +++++----
 .../SubscriptionSingleTenantBehaviour.java      |  67 ++++++------
 .../tenancy/SubscriptionTenancyBehaviour.java   |  20 +++-
 .../utils/CartridgeSubscriptionUtils.java       |  36 +++---
 8 files changed, 150 insertions(+), 207 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/98edba23/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/behaviour/CartridgeMgtBehaviour.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/behaviour/CartridgeMgtBehaviour.java
 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/behaviour/CartridgeMgtBehaviour.java
new file mode 100644
index 0000000..e3ea69b
--- /dev/null
+++ 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/behaviour/CartridgeMgtBehaviour.java
@@ -0,0 +1,46 @@
+package org.apache.stratos.manager.behaviour;
+/*
+ * 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.
+ */
+
+import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
+import org.apache.stratos.cloud.controller.pojo.Properties;
+import org.apache.stratos.manager.dao.Cluster;
+import org.apache.stratos.manager.exception.ADCException;
+import org.apache.stratos.manager.exception.AlreadySubscribedException;
+import org.apache.stratos.manager.exception.NotSubscribedException;
+import org.apache.stratos.manager.exception.UnregisteredCartridgeException;
+import org.apache.stratos.manager.payload.PayloadData;
+import org.apache.stratos.manager.repository.Repository;
+import org.apache.stratos.manager.subscriber.Subscriber;
+
+import java.io.Serializable;
+import java.util.Map;
+
+public interface CartridgeMgtBehaviour extends Serializable {
+
+    public PayloadData create (String alias, Cluster cluster, Subscriber 
subscriber, Repository repository, CartridgeInfo cartridgeInfo,
+                        String subscriptionKey, Map<String, String> 
customPayloadEntries) throws ADCException, AlreadySubscribedException;
+
+    public void register (CartridgeInfo cartridgeInfo, Cluster cluster, 
PayloadData payloadData, String autoscalePolicyName,
+                          String deploymentPolicyName, Properties properties)
+            throws ADCException, UnregisteredCartridgeException;
+
+    public void remove (String clusterId, String alias)
+            throws ADCException, NotSubscribedException;
+}

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/98edba23/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/CartridgeSubscription.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/CartridgeSubscription.java
 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/CartridgeSubscription.java
index 678925f..71ae249 100644
--- 
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/CartridgeSubscription.java
+++ 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/CartridgeSubscription.java
@@ -19,9 +19,6 @@
 
 package org.apache.stratos.manager.subscription;
 
-import java.io.Serializable;
-import java.util.Map;
-
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
@@ -29,17 +26,7 @@ import 
org.apache.stratos.cloud.controller.pojo.PersistanceMapping;
 import org.apache.stratos.cloud.controller.pojo.Properties;
 import org.apache.stratos.manager.dao.CartridgeSubscriptionInfo;
 import org.apache.stratos.manager.dao.Cluster;
-import org.apache.stratos.manager.exception.ADCException;
-import org.apache.stratos.manager.exception.AlreadySubscribedException;
-import org.apache.stratos.manager.exception.DuplicateCartridgeAliasException;
-import org.apache.stratos.manager.exception.InvalidCartridgeAliasException;
-import org.apache.stratos.manager.exception.InvalidRepositoryException;
-import org.apache.stratos.manager.exception.NotSubscribedException;
-import org.apache.stratos.manager.exception.PolicyException;
-import 
org.apache.stratos.manager.exception.RepositoryCredentialsRequiredException;
-import org.apache.stratos.manager.exception.RepositoryRequiredException;
-import org.apache.stratos.manager.exception.RepositoryTransportException;
-import org.apache.stratos.manager.exception.UnregisteredCartridgeException;
+import org.apache.stratos.manager.exception.*;
 import org.apache.stratos.manager.payload.PayloadData;
 import org.apache.stratos.manager.repository.Repository;
 import org.apache.stratos.manager.subscriber.Subscriber;
@@ -47,6 +34,9 @@ import 
org.apache.stratos.manager.subscription.tenancy.SubscriptionTenancyBehavi
 import org.apache.stratos.manager.utils.ApplicationManagementUtil;
 import org.apache.stratos.manager.utils.CartridgeConstants;
 
+import java.io.Serializable;
+import java.util.Map;
+
 public abstract class CartridgeSubscription implements Serializable {
 
 
@@ -125,7 +115,8 @@ public abstract class CartridgeSubscription implements 
Serializable {
         setDeploymentPolicyName(deploymentPolicyName);
         setRepository(repository);
 
-        getSubscriptionTenancyBehaviour().createSubscription(this);
+        setPayloadData(getSubscriptionTenancyBehaviour().create(getAlias(), 
getCluster(), getSubscriber(), getRepository(), getCartridgeInfo(),
+                getSubscriptionKey(), getCustomPayloadEntries()));
     }
 
     /**
@@ -136,7 +127,7 @@ public abstract class CartridgeSubscription implements 
Serializable {
      */
     public void removeSubscription() throws ADCException, 
NotSubscribedException {
 
-        getSubscriptionTenancyBehaviour().removeSubscription(this);
+        
getSubscriptionTenancyBehaviour().remove(getCluster().getClusterDomain(), 
getAlias());
         cleanupSubscription();
     }
 
@@ -155,7 +146,8 @@ public abstract class CartridgeSubscription implements 
Serializable {
         // Properties props = new Properties();
         //props.setProperties(getCartridgeInfo().getProperties());
 
-        getSubscriptionTenancyBehaviour().registerSubscription(this, 
properties);
+        getSubscriptionTenancyBehaviour().register (getCartridgeInfo(), 
getCluster(), getPayloadData(), getAutoscalingPolicyName(),
+                getDeploymentPolicyName(), properties);
 
         return 
ApplicationManagementUtil.createCartridgeSubscription(getCartridgeInfo(), 
getAutoscalingPolicyName(),
                 getType(), getAlias(), getSubscriber().getTenantId(), 
getSubscriber().getTenantDomain(),

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/98edba23/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/DataCartridgeSubscription.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/DataCartridgeSubscription.java
 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/DataCartridgeSubscription.java
index d0ab38f..d77a38b 100644
--- 
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/DataCartridgeSubscription.java
+++ 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/DataCartridgeSubscription.java
@@ -59,7 +59,8 @@ public class DataCartridgeSubscription extends 
CartridgeSubscription {
 
         //Properties props = new Properties();
         //props.setProperties(getCartridgeInfo().getProperties());
-        getSubscriptionTenancyBehaviour().registerSubscription(this, 
properties);
+        getSubscriptionTenancyBehaviour().register (getCartridgeInfo(), 
getCluster(), getPayloadData(), getAutoscalingPolicyName(),
+                getDeploymentPolicyName(), properties);
 
         DataCartridge dataCartridge = new DataCartridge();
         dataCartridge.setUserName(getDBUsername());

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/98edba23/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/tenancy/ServiceDeploymentMultiTenantBehaviour.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/tenancy/ServiceDeploymentMultiTenantBehaviour.java
 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/tenancy/ServiceDeploymentMultiTenantBehaviour.java
deleted file mode 100644
index bc29f47..0000000
--- 
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/tenancy/ServiceDeploymentMultiTenantBehaviour.java
+++ /dev/null
@@ -1,109 +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.manager.subscription.tenancy;
-//
-//import org.apache.commons.logging.Log;
-//import org.apache.commons.logging.LogFactory;
-//import org.apache.stratos.manager.exception.ADCException;
-//import org.apache.stratos.manager.exception.AlreadySubscribedException;
-//import org.apache.stratos.manager.exception.UnregisteredCartridgeException;
-//import org.apache.stratos.manager.payload.PayloadArg;
-//import org.apache.stratos.manager.subscription.CartridgeSubscription;
-//import org.apache.stratos.manager.utils.ApplicationManagementUtil;
-//import org.apache.stratos.manager.utils.CartridgeConstants;
-//import org.apache.stratos.manager.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/98edba23/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/tenancy/SubscriptionMultiTenantBehaviour.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/tenancy/SubscriptionMultiTenantBehaviour.java
 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/tenancy/SubscriptionMultiTenantBehaviour.java
index 7b63701..5bad00b 100644
--- 
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/tenancy/SubscriptionMultiTenantBehaviour.java
+++ 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/tenancy/SubscriptionMultiTenantBehaviour.java
@@ -21,21 +21,28 @@ package org.apache.stratos.manager.subscription.tenancy;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
 import org.apache.stratos.cloud.controller.pojo.Properties;
+import org.apache.stratos.manager.dao.Cluster;
 import org.apache.stratos.manager.deploy.service.Service;
 import org.apache.stratos.manager.exception.*;
+import org.apache.stratos.manager.payload.PayloadData;
 import org.apache.stratos.manager.publisher.InstanceNotificationPublisher;
+import org.apache.stratos.manager.repository.Repository;
 import org.apache.stratos.manager.retriever.DataInsertionAndRetrievalManager;
-import org.apache.stratos.manager.subscription.CartridgeSubscription;
+import org.apache.stratos.manager.subscriber.Subscriber;
 import org.apache.stratos.manager.utils.CartridgeConstants;
 
+import java.util.Map;
+
 
 public class SubscriptionMultiTenantBehaviour extends 
SubscriptionTenancyBehaviour {
 
     private static Log log = 
LogFactory.getLog(SubscriptionMultiTenantBehaviour.class);
 
 
-    public void createSubscription(CartridgeSubscription 
cartridgeSubscription) throws ADCException, AlreadySubscribedException {
+    public PayloadData create (String alias, Cluster cluster, Subscriber 
subscriber, Repository repository, CartridgeInfo cartridgeInfo,
+                        String subscriptionKey, Map<String, String> 
customPayloadEntries) throws ADCException, AlreadySubscribedException {
 
         boolean allowMultipleSubscription = Boolean.
                 
valueOf(System.getProperty(CartridgeConstants.FEATURE_MULTI_TENANT_MULTIPLE_SUBSCRIPTION_ENABLED));
@@ -45,22 +52,20 @@ public class SubscriptionMultiTenantBehaviour extends 
SubscriptionTenancyBehavio
             boolean subscribed;
 
             try {
-                subscribed = 
hasAlreadySubscribed(cartridgeSubscription.getSubscriber().getTenantId(), 
cartridgeSubscription.getType());
+                subscribed = hasAlreadySubscribed(subscriber.getTenantId(), 
cartridgeInfo.getType());
 
             } catch (Exception e) {
-                String msg = "Error checking whether the cartridge type " + 
cartridgeSubscription.getType() +
-                        " is already subscribed";
+                String msg = "Error checking whether the cartridge type " + 
cartridgeInfo.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";
+                String msg = "Already subscribed to " + 
cartridgeInfo.getType() + ". This multi-tenant cartridge will not be available 
to createSubscription";
                 if (log.isDebugEnabled()) {
                     log.debug(msg);
                 }
-                throw new AlreadySubscribedException(msg, 
cartridgeSubscription.getType());
+                throw new AlreadySubscribedException(msg, 
cartridgeInfo.getType());
             }
         }
 
@@ -69,7 +74,7 @@ public class SubscriptionMultiTenantBehaviour extends 
SubscriptionTenancyBehavio
 
         Service deployedService;
         try {
-            deployedService = 
dataInsertionAndRetrievalManager.getService(cartridgeSubscription.getType());
+            deployedService = 
dataInsertionAndRetrievalManager.getService(cartridgeInfo.getType());
 
         } catch (PersistenceManagerException e) {
             String errorMsg = "Error in checking if Service is available is 
PersistenceManager";
@@ -78,43 +83,44 @@ public class SubscriptionMultiTenantBehaviour extends 
SubscriptionTenancyBehavio
         }
 
         if (deployedService == null) {
-            String errorMsg = "There is no deployed Service for type " + 
cartridgeSubscription.getType();
+            String errorMsg = "There is no deployed Service for type " + 
cartridgeInfo.getType();
             log.error(errorMsg);
             throw new ADCException(errorMsg);
         }
 
         //set the cluster and hostname
-        cartridgeSubscription.setClusterDomain(deployedService.getClusterId());
-        cartridgeSubscription.setHostName(deployedService.getHostName());
+        cluster.setClusterDomain(deployedService.getClusterId());
+        cluster.setHostName(deployedService.getHostName());
 
-        if (cartridgeSubscription.getRepository() != null) {
+        if (repository != null) {
 
             // publish the ArtifactUpdated event
             log.info(" Multitenant --> Publishing Artifact update event -- ");
-            log.info(" Values :  cluster id - " + 
cartridgeSubscription.getClusterDomain() + "  tenant - " +
-                    cartridgeSubscription.getSubscriber().getTenantId());
+            log.info(" Values :  cluster id - " + cluster.getClusterDomain() + 
"  tenant - " + subscriber.getTenantId());
             InstanceNotificationPublisher publisher = new 
InstanceNotificationPublisher();
-            
publisher.sendArtifactUpdateEvent(cartridgeSubscription.getRepository(),
-                    cartridgeSubscription.getClusterDomain(), // clusterId
-                    
String.valueOf(cartridgeSubscription.getSubscriber().getTenantId()));
+            publisher.sendArtifactUpdateEvent(repository, 
cluster.getClusterDomain(), String.valueOf(subscriber.getTenantId()));
 
         } else {
             if(log.isDebugEnabled()) {
-                log.debug("No repository found for subscription with alias: " 
+ cartridgeSubscription.getAlias() + ", type: " + 
cartridgeSubscription.getType()+
+                log.debug("No repository found for subscription with alias: " 
+ alias + ", type: " + cartridgeInfo.getType() +
                         ". Not sending the Artifact Updated event");
             }
         }
+
+        // no payload
+        return null;
     }
 
-    public void registerSubscription(CartridgeSubscription 
cartridgeSubscription, Properties properties)
+    public void register (CartridgeInfo cartridgeInfo, Cluster cluster, 
PayloadData payloadData, String autoscalePolicyName,
+                          String deploymentPolicyName, Properties properties)
             throws ADCException, UnregisteredCartridgeException {
 
         //nothing to do
     }
 
-    public void removeSubscription(CartridgeSubscription 
cartridgeSubscription) throws ADCException, NotSubscribedException {
+    public void remove (String clusterId, String alias) throws ADCException, 
NotSubscribedException {
 
-        log.info("Cartridge with alias " + cartridgeSubscription.getAlias() + 
", and type " + cartridgeSubscription.getType() +
+        log.info("Cartridge Subscription with alias " + alias + ", and cluster 
id " + clusterId +
                 " is a multi-tenant cartridge and therefore will not terminate 
all instances and " +
                 "unregister services");
     }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/98edba23/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/tenancy/SubscriptionSingleTenantBehaviour.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/tenancy/SubscriptionSingleTenantBehaviour.java
 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/tenancy/SubscriptionSingleTenantBehaviour.java
index f9835dd..95edc25 100644
--- 
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/tenancy/SubscriptionSingleTenantBehaviour.java
+++ 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/tenancy/SubscriptionSingleTenantBehaviour.java
@@ -23,8 +23,10 @@ import org.apache.axis2.AxisFault;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
+import org.apache.stratos.cloud.controller.pojo.Properties;
 import org.apache.stratos.cloud.controller.pojo.Property;
 import org.apache.stratos.manager.client.CloudControllerServiceClient;
+import org.apache.stratos.manager.dao.Cluster;
 import org.apache.stratos.manager.exception.ADCException;
 import org.apache.stratos.manager.exception.AlreadySubscribedException;
 import org.apache.stratos.manager.exception.NotSubscribedException;
@@ -32,10 +34,10 @@ import 
org.apache.stratos.manager.exception.UnregisteredCartridgeException;
 import org.apache.stratos.manager.payload.BasicPayloadData;
 import org.apache.stratos.manager.payload.PayloadData;
 import org.apache.stratos.manager.payload.PayloadFactory;
-import org.apache.stratos.manager.subscription.CartridgeSubscription;
+import org.apache.stratos.manager.repository.Repository;
+import org.apache.stratos.manager.subscriber.Subscriber;
 import 
org.apache.stratos.manager.subscription.utils.CartridgeSubscriptionUtils;
 import org.apache.stratos.manager.utils.ApplicationManagementUtil;
-import org.apache.stratos.cloud.controller.pojo.Properties;
 import org.apache.stratos.manager.utils.CartridgeConstants;
 
 import java.util.Map;
@@ -46,30 +48,28 @@ public class SubscriptionSingleTenantBehaviour extends 
SubscriptionTenancyBehavi
 
     private static Log log = 
LogFactory.getLog(SubscriptionSingleTenantBehaviour.class);
 
-
-
-    public void createSubscription(CartridgeSubscription 
cartridgeSubscription) throws ADCException, AlreadySubscribedException {
+    public PayloadData create (String alias, Cluster cluster, Subscriber 
subscriber, Repository repository, CartridgeInfo cartridgeInfo,
+                        String subscriptionKey, Map<String, String> 
customPayloadEntries) throws ADCException, AlreadySubscribedException {
 
         //set the cluster and hostname
         
//cartridgeSubscription.getCluster().setClusterDomain(cartridgeSubscription.getAlias()
 + "." +
         //        cartridgeSubscription.getCluster().getHostName() + "." + 
cartridgeSubscription.getType() + ".domain");
-        String clusterId = cartridgeSubscription.getAlias() + "." + 
cartridgeSubscription.getType() + ".domain";
+        String clusterId = alias + "." + cartridgeInfo.getType() + ".domain";
 
         // limit the cartridge alias to 30 characters in length
         if (clusterId.length() > 30) {
             clusterId = 
CartridgeSubscriptionUtils.limitLengthOfString(clusterId, 30);
         }
-        cartridgeSubscription.getCluster().setClusterDomain(clusterId);
+        cluster.setClusterDomain(clusterId);
         // set hostname
-        
cartridgeSubscription.getCluster().setHostName(cartridgeSubscription.getAlias() 
+ "." +
-                cartridgeSubscription.getCluster().getHostName());
+        cluster.setHostName(alias + "." + cluster.getHostName());
 
         //Create the payload
-        BasicPayloadData basicPayloadData = 
CartridgeSubscriptionUtils.createBasicPayload(cartridgeSubscription);
+        BasicPayloadData basicPayloadData = 
CartridgeSubscriptionUtils.createBasicPayload(cartridgeInfo, subscriptionKey, 
cluster, repository,
+                alias, subscriber);
         //Populate the basic payload details
         basicPayloadData.populatePayload();
 
-        CartridgeInfo cartridgeInfo = cartridgeSubscription.getCartridgeInfo();
         PayloadData payloadData = 
PayloadFactory.getPayloadDataInstance(cartridgeInfo.getProvider(),
                 cartridgeInfo.getType(), basicPayloadData);
 
@@ -89,63 +89,60 @@ public class SubscriptionSingleTenantBehaviour extends 
SubscriptionTenancyBehavi
         }
 
         //check if there are any custom payload entries defined
-        if (cartridgeSubscription.getCustomPayloadEntries() != null) {
+        if (customPayloadEntries != 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());
             }
         }
 
-        cartridgeSubscription.setPayloadData(payloadData);
+        return payloadData;
     }
 
-    public void registerSubscription(CartridgeSubscription 
cartridgeSubscription, Properties properties) throws ADCException, 
UnregisteredCartridgeException {
+    public void register (CartridgeInfo cartridgeInfo, Cluster cluster, 
PayloadData payloadData, String autoscalePolicyName,
+                          String deploymentPolicyName, Properties properties) 
throws ADCException, UnregisteredCartridgeException {
 
-        log.info("Payload: " + 
cartridgeSubscription.getPayloadData().getCompletePayloadData().toString());
+        log.info("Payload: " + 
payloadData.getCompletePayloadData().toString());
 
-        
ApplicationManagementUtil.registerService(cartridgeSubscription.getType(),
-                cartridgeSubscription.getCluster().getClusterDomain(),
-                cartridgeSubscription.getCluster().getClusterSubDomain(),
-                
cartridgeSubscription.getPayloadData().getCompletePayloadData(),
-                
cartridgeSubscription.getPayloadData().getBasicPayloadData().getTenantRange(),
-                cartridgeSubscription.getCluster().getHostName(),
-                cartridgeSubscription.getAutoscalingPolicyName(),
-                cartridgeSubscription.getDeploymentPolicyName(),
+        ApplicationManagementUtil.registerService(cartridgeInfo.getType(),
+                cluster.getClusterDomain(),
+                cluster.getClusterSubDomain(),
+                payloadData.getCompletePayloadData(),
+                payloadData.getBasicPayloadData().getTenantRange(),
+                cluster.getHostName(),
+                autoscalePolicyName,
+                deploymentPolicyName,
                 properties);
     }
 
-    public void removeSubscription(CartridgeSubscription 
cartridgeSubscription) throws ADCException, NotSubscribedException {
+    public void remove (String clusterId, String alias) throws ADCException, 
NotSubscribedException {
 
         try {
-            
CloudControllerServiceClient.getServiceClient().terminateAllInstances(cartridgeSubscription.getCluster().getClusterDomain());
+            
CloudControllerServiceClient.getServiceClient().terminateAllInstances(clusterId);
 
         } catch (AxisFault e) {
-            String errorMsg = "Error in terminating cartridge subscription, 
alias " + cartridgeSubscription.getAlias();
+            String errorMsg = "Error in terminating cartridge subscription, 
alias " + alias;
             log.error(errorMsg);
             throw new ADCException(errorMsg, e);
 
         } catch (Exception e) {
-            String errorMsg = "Error in terminating cartridge subscription, 
alias " + cartridgeSubscription.getAlias();
+            String errorMsg = "Error in terminating cartridge subscription, 
alias " + alias;
             log.error(errorMsg);
             throw new ADCException(errorMsg, e);
         }
 
-        log.info("Terminated all instances of " + 
cartridgeSubscription.getCluster().getClusterDomain() + " " +
-                cartridgeSubscription.getCluster().getClusterSubDomain());
+        log.info("Terminated all instances of " + clusterId);
 
         try {
-            
CloudControllerServiceClient.getServiceClient().unregisterService(cartridgeSubscription.getCluster().getClusterDomain());
+            
CloudControllerServiceClient.getServiceClient().unregisterService(clusterId);
 
         } catch (Exception e) {
-            String errorMsg = "Error in unregistering service cluster with 
domain " + cartridgeSubscription.getCluster().getClusterDomain() +
-                    ", sub domain " + 
cartridgeSubscription.getCluster().getClusterSubDomain();
+            String errorMsg = "Error in unregistering service cluster with 
domain " + clusterId;
             log.error(errorMsg);
             throw new ADCException(errorMsg, e);
         }
 
-        log.info("Unregistered service cluster, domain " + 
cartridgeSubscription.getCluster().getClusterDomain() + ", sub domain " +
-                cartridgeSubscription.getCluster().getClusterSubDomain());
+        log.info("Unregistered service cluster, domain " + clusterId);
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/98edba23/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/tenancy/SubscriptionTenancyBehaviour.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/tenancy/SubscriptionTenancyBehaviour.java
 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/tenancy/SubscriptionTenancyBehaviour.java
index 7bb4b0a..c367545 100644
--- 
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/tenancy/SubscriptionTenancyBehaviour.java
+++ 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/tenancy/SubscriptionTenancyBehaviour.java
@@ -19,25 +19,33 @@
 
 package org.apache.stratos.manager.subscription.tenancy;
 
+import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
+import org.apache.stratos.cloud.controller.pojo.Properties;
+import org.apache.stratos.manager.behaviour.CartridgeMgtBehaviour;
+import org.apache.stratos.manager.dao.Cluster;
 import org.apache.stratos.manager.exception.ADCException;
 import org.apache.stratos.manager.exception.AlreadySubscribedException;
 import org.apache.stratos.manager.exception.NotSubscribedException;
 import org.apache.stratos.manager.exception.UnregisteredCartridgeException;
-import org.apache.stratos.manager.subscription.CartridgeSubscription;
-import org.apache.stratos.cloud.controller.pojo.Properties;
+import org.apache.stratos.manager.payload.PayloadData;
+import org.apache.stratos.manager.repository.Repository;
+import org.apache.stratos.manager.subscriber.Subscriber;
 
 import java.io.Serializable;
+import java.util.Map;
 
-public abstract class SubscriptionTenancyBehaviour implements Serializable {
+public abstract class SubscriptionTenancyBehaviour implements 
CartridgeMgtBehaviour, Serializable {
 
     private static final long serialVersionUID = 6529685098267757690L;
 
-    public abstract void createSubscription(CartridgeSubscription 
cartridgeSubscription)
+    public abstract PayloadData create (String alias, Cluster cluster, 
Subscriber subscriber, Repository repository, CartridgeInfo cartridgeInfo,
+                                 String subscriptionKey, Map<String, String> 
customPayloadEntries)
             throws ADCException, AlreadySubscribedException;
 
-    public abstract void registerSubscription(CartridgeSubscription 
cartridgeSubscription, Properties properties)
+    public abstract void register (CartridgeInfo cartridgeInfo, Cluster 
cluster, PayloadData payloadData, String autoscalePolicyName,
+                                   String deploymentPolicyName, Properties 
properties)
             throws ADCException, UnregisteredCartridgeException;
 
-    public abstract void removeSubscription(CartridgeSubscription 
cartridgeSubscription)
+    public abstract void remove (String clusterId, String alias)
             throws ADCException, NotSubscribedException;
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/98edba23/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/utils/CartridgeSubscriptionUtils.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/utils/CartridgeSubscriptionUtils.java
 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/utils/CartridgeSubscriptionUtils.java
index 6ea9cb2..ee145f5 100644
--- 
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/utils/CartridgeSubscriptionUtils.java
+++ 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/utils/CartridgeSubscriptionUtils.java
@@ -22,14 +22,16 @@ package org.apache.stratos.manager.subscription.utils;
 import org.apache.commons.lang3.RandomStringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
+import org.apache.stratos.manager.dao.Cluster;
 import org.apache.stratos.manager.deploy.service.Service;
 import org.apache.stratos.manager.exception.ADCException;
 import org.apache.stratos.manager.exception.DuplicateCartridgeAliasException;
 import org.apache.stratos.manager.exception.InvalidCartridgeAliasException;
 import org.apache.stratos.manager.payload.BasicPayloadData;
+import org.apache.stratos.manager.repository.Repository;
 import org.apache.stratos.manager.retriever.DataInsertionAndRetrievalManager;
-import org.apache.stratos.manager.subscription.CartridgeSubscription;
-import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
+import org.apache.stratos.manager.subscriber.Subscriber;
 import org.apache.stratos.messaging.broker.publish.EventPublisher;
 import org.apache.stratos.messaging.event.tenant.TenantSubscribedEvent;
 import org.apache.stratos.messaging.event.tenant.TenantUnSubscribedEvent;
@@ -41,28 +43,28 @@ public class CartridgeSubscriptionUtils {
 
     private static Log log = 
LogFactory.getLog(CartridgeSubscriptionUtils.class);
 
-    public static BasicPayloadData createBasicPayload (CartridgeSubscription 
cartridgeSubscription) {
+    public static BasicPayloadData createBasicPayload (CartridgeInfo 
cartridgeInfo, String subscriptionKey, Cluster cluster,
+                                                       Repository repository, 
String alias, Subscriber subscriber) {
 
         BasicPayloadData basicPayloadData = new BasicPayloadData();
-        
basicPayloadData.setApplicationPath(cartridgeSubscription.getCartridgeInfo().getBaseDir());
-        
basicPayloadData.setSubscriptionKey(cartridgeSubscription.getSubscriptionKey());
-        
basicPayloadData.setClusterId(cartridgeSubscription.getClusterDomain());
+        basicPayloadData.setApplicationPath(cartridgeInfo.getBaseDir());
+        basicPayloadData.setSubscriptionKey(subscriptionKey);
+        basicPayloadData.setClusterId(cluster.getClusterDomain());
         basicPayloadData.setDeployment("default");//currently hard coded to 
default
-        if(cartridgeSubscription.getRepository() != null) {
-            
basicPayloadData.setGitRepositoryUrl(cartridgeSubscription.getRepository().getUrl());
+        if(repository != null) {
+            basicPayloadData.setGitRepositoryUrl(repository.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());
+        basicPayloadData.setHostName(cluster.getHostName());
+        
basicPayloadData.setMultitenant(String.valueOf(cartridgeInfo.getMultiTenant()));
+        
basicPayloadData.setPortMappings(createPortMappingPayloadString(cartridgeInfo));
+        basicPayloadData.setServiceName(cartridgeInfo.getType());
+        basicPayloadData.setSubscriptionAlias(alias);
+        basicPayloadData.setTenantId(subscriber.getTenantId());
         //TODO:remove. we do not want to know about the tenant rance in 
subscription!
-        if(cartridgeSubscription.getCartridgeInfo().getMultiTenant() ||
-                cartridgeSubscription.getSubscriber().getTenantId() == -1234) 
{  //TODO: fix properly
+        if(cartridgeInfo.getMultiTenant() || subscriber.getTenantId() == 
-1234) {  //TODO: fix properly
             basicPayloadData.setTenantRange("*");
         } else {
-            
basicPayloadData.setTenantRange(String.valueOf(cartridgeSubscription.getSubscriber().getTenantId()));
+            
basicPayloadData.setTenantRange(String.valueOf(subscriber.getTenantId()));
         }
 
         return basicPayloadData;

Reply via email to