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/07 19:18:21 UTC
[5/6] git commit: subscription model changes
subscription model changes
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/702d5ca1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/702d5ca1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/702d5ca1
Branch: refs/heads/master
Commit: 702d5ca1e62a5b8b96724cb28599071f817b07c2
Parents: f7c8c0b
Author: Isuru <is...@wso2.com>
Authored: Sat Dec 7 23:46:58 2013 +0530
Committer: Isuru <is...@wso2.com>
Committed: Sat Dec 7 23:46:58 2013 +0530
----------------------------------------------------------------------
.../DatabaseBasedPersistenceManager.java | 19 +-
.../AbstractCartridgeSubscription.java | 441 -------------------
.../ApplicationCartridgeSubscription.java | 2 +-
.../mgt/subscription/CartridgeSubscription.java | 46 +-
.../subscription/CartridgeSubscription_old.java | 431 ++++++++++++++++++
.../subscription/DataCartridgeSubscription.java | 49 ++-
.../DataCartridgeSubscription1.java | 132 ------
.../DataCartridgeSubscription_old.java | 127 ++++++
.../FrameworkCartridgeSubscription.java | 2 +-
.../subscription/LBCartridgeSubscription.java | 51 +++
.../MultiTenantCartridgeSubscription.java | 268 +++++------
.../SingleTenantCartridgeSubscription.java | 272 ++++++------
.../factory/CartridgeSubscriptionFactory.java | 33 +-
.../SubscriptionMultiTenantBehaviour.java | 4 +-
.../SubscriptionSingleTenantBehaviour.java | 4 +-
.../tenancy/SubscriptionTenancyBehaviour.java | 14 +-
.../adc/mgt/test/CartridgeSubscriptionTest.java | 1 -
17 files changed, 989 insertions(+), 907 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/702d5ca1/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/persistence/DatabaseBasedPersistenceManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/persistence/DatabaseBasedPersistenceManager.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/persistence/DatabaseBasedPersistenceManager.java
index 3059df2..b672332 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/persistence/DatabaseBasedPersistenceManager.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/persistence/DatabaseBasedPersistenceManager.java
@@ -31,7 +31,7 @@ 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.DataCartridgeSubscription;
-import org.apache.stratos.adc.mgt.subscription.SingleTenantCartridgeSubscription;
+//import org.apache.stratos.adc.mgt.subscription.SingleTenantCartridgeSubscription;
import org.apache.stratos.adc.mgt.subscription.factory.CartridgeSubscriptionFactory;
import org.apache.stratos.adc.mgt.utils.CartridgeConstants;
import org.apache.stratos.adc.mgt.utils.PolicyHolder;
@@ -523,14 +523,15 @@ public class DatabaseBasedPersistenceManager extends PersistenceManager {
cartridgeSubscription.setCluster(cluster);
//data cartridge specific information
- if (resultSet.getInt("DATA_CARTRIDGE_ID") != -1 && cartridgeSubscription instanceof
- SingleTenantCartridgeSubscription) {
- DataCartridgeSubscription dataCartridgeSubscription = (DataCartridgeSubscription)cartridgeSubscription;
- dataCartridgeSubscription.setHost(resultSet.getString("HOST"));
- dataCartridgeSubscription.setUsername(resultSet.getString("ADMIN_USERNAME"));
- dataCartridgeSubscription.setPassword(RepoPasswordMgtUtil.decryptPassword(resultSet.
- getString("ADMIN_PASSWORD")));
- }
+ //TODO: temporarily removed
+// if (resultSet.getInt("DATA_CARTRIDGE_ID") != -1 && cartridgeSubscription instanceof
+// SingleTenantCartridgeSubscription) {
+// DataCartridgeSubscription dataCartridgeSubscription = (DataCartridgeSubscription)cartridgeSubscription;
+// dataCartridgeSubscription.setHost(resultSet.getString("HOST"));
+// dataCartridgeSubscription.setUsername(resultSet.getString("ADMIN_USERNAME"));
+// dataCartridgeSubscription.setPassword(RepoPasswordMgtUtil.decryptPassword(resultSet.
+// getString("ADMIN_PASSWORD")));
+// }
//Subscriber related data
CarbonContext carbonContext = CarbonContext.getThreadLocalCarbonContext();
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/702d5ca1/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/AbstractCartridgeSubscription.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/AbstractCartridgeSubscription.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/AbstractCartridgeSubscription.java
deleted file mode 100644
index 3b7a2c7..0000000
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/AbstractCartridgeSubscription.java
+++ /dev/null
@@ -1,441 +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;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.adc.mgt.custom.domain.RegistryManager;
-import org.apache.stratos.adc.mgt.dao.CartridgeSubscriptionInfo;
-import org.apache.stratos.adc.mgt.dao.Cluster;
-import org.apache.stratos.adc.mgt.dns.DNSManager;
-import org.apache.stratos.adc.mgt.dto.Policy;
-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.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.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.topology.mgt.service.TopologyManagementService;
-import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Properties;
-
-public abstract class AbstractCartridgeSubscription {
-
- private static Log log = LogFactory.getLog(AbstractCartridgeSubscription.class);
- private int subscriptionId;
- private String type;
- private String alias;
- private Policy autoscalingPolicy;
- private Subscriber subscriber;
- private Repository repository;
- private CartridgeInfo cartridgeInfo;
- private Payload payload;
- private Cluster cluster;
- private String subscriptionStatus;
- private String mappedDomain;
- private List<String> connectedSubscriptionAliases;
- private String subscriptionKey;
- protected SubscriptionTenancyBehaviour subscriptionTenancyBehaviour;
-
- /**
- * Constructor
- *
- * @param cartridgeInfo CartridgeInfo subscription
- */
- public AbstractCartridgeSubscription(CartridgeInfo cartridgeInfo) {
-
- this.setCartridgeInfo(cartridgeInfo);
- this.setType(cartridgeInfo.getType());
- this.setCluster(new Cluster());
- getCluster().setClusterDomain("");
- getCluster().setClusterSubDomain(CartridgeConstants.DEFAULT_SUBDOMAIN);
- getCluster().setMgtClusterDomain("");
- getCluster().setMgtClusterSubDomain(CartridgeConstants.DEFAULT_MGT_SUBDOMAIN);
- getCluster().setHostName(cartridgeInfo.getHostName());
- this.setSubscriptionStatus(CartridgeConstants.SUBSCRIBED);
- this.connectedSubscriptionAliases = new ArrayList<String>();
- if(getCartridgeInfo().getMultiTenant()) {
- subscriptionTenancyBehaviour = new SubscriptionMultiTenantBehaviour(this);
- }
- else {
- subscriptionTenancyBehaviour = new SubscriptionSingleTenantBehaviour(this);
- }
- }
-
- /**
- * Subscribes to this cartridge subscription
- *
- * @param subscriber Subscriber subscription
- * @param alias Alias of the cartridge subscription
- * @param autoscalingPolicy Auto scaling policy
- * @param repository Relevenat Repository subscription
- *
- * @throws org.apache.stratos.adc.mgt.exception.ADCException
- * @throws org.apache.stratos.adc.mgt.exception.PolicyException
- * @throws org.apache.stratos.adc.mgt.exception.UnregisteredCartridgeException
- * @throws org.apache.stratos.adc.mgt.exception.InvalidCartridgeAliasException
- * @throws org.apache.stratos.adc.mgt.exception.DuplicateCartridgeAliasException
- * @throws org.apache.stratos.adc.mgt.exception.RepositoryRequiredException
- * @throws org.apache.stratos.adc.mgt.exception.AlreadySubscribedException
- * @throws org.apache.stratos.adc.mgt.exception.RepositoryCredentialsRequiredException
- * @throws org.apache.stratos.adc.mgt.exception.InvalidRepositoryException
- * @throws org.apache.stratos.adc.mgt.exception.RepositoryTransportException
- */
- public void createSubscription (Subscriber subscriber, String alias, Policy autoscalingPolicy,
- Repository repository)
- throws ADCException, PolicyException, UnregisteredCartridgeException, InvalidCartridgeAliasException,
- DuplicateCartridgeAliasException, RepositoryRequiredException, AlreadySubscribedException,
- RepositoryCredentialsRequiredException, InvalidRepositoryException, RepositoryTransportException {
-
- setSubscriber(subscriber);
- setAlias(alias);
- setAutoscalingPolicy(autoscalingPolicy);
- setRepository(repository);
- }
-
- /**
- * Unsubscribe from this cartridge subscription
- *
- * @throws ADCException
- * @throws NotSubscribedException
- */
- public abstract void removeSubscription() throws ADCException, NotSubscribedException;
-
- /**
- * Registers the subscription
- *
- * @param properties Any additional properties needed
- *
- * @return CartridgeSubscriptionInfo subscription populated with relevant data
- * @throws ADCException
- * @throws UnregisteredCartridgeException
- */
- public abstract CartridgeSubscriptionInfo registerSubscription(Properties properties)
- throws ADCException, UnregisteredCartridgeException;
-
- /**
- * Connect cartridges
- *
- * @param connectingCartridgeAlias Alias of connecting cartridge
- */
- public void connect (String connectingCartridgeAlias) {
- connectedSubscriptionAliases.add(connectingCartridgeAlias);
- }
-
- /**
- * Disconnect from the cartridge subscription given by disconnectingCartridgeAlias
- *
- * @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(getAutoscalingPolicy());
- payloadArg.setMultitenant(getCartridgeInfo().getMultiTenant());
- payloadArg.setTenantId(getSubscriber().getTenantId());
- payloadArg.setTenantDomain(getSubscriber().getTenantDomain());
- payloadArg.setCartridgeAlias(getAlias());
- payloadArg.setServiceName(getCartridgeInfo().getType());
- payloadArg.setSubscriptionKey(subscriptionKey);
- return payloadArg;
- }
-
- /**
- * Manages the repository for the cartridge subscription
- *
- * @param repoURL Repository URL
- * @param repoUserName Repository Username
- * @param repoUserPassword Repository password
- * @param privateRepo public/private repository
- * @param cartridgeAlias Alias of the cartridge subscription
- * @param cartridgeInfo CartridgeInfo subscription
- * @param tenantDomain Domain of the tenant
- *
- * @return Repository populated with relevant information or null of not repository is relevant to this cartridge
- * subscription
- * @throws ADCException
- * @throws RepositoryRequiredException
- * @throws RepositoryCredentialsRequiredException
- * @throws RepositoryTransportException
- * @throws InvalidRepositoryException
- */
- public Repository manageRepository (String repoURL, String repoUserName, String repoUserPassword,
- boolean privateRepo, String cartridgeAlias, CartridgeInfo cartridgeInfo,
- String tenantDomain)
-
- throws ADCException, RepositoryRequiredException, RepositoryCredentialsRequiredException,
- RepositoryTransportException, InvalidRepositoryException {
-
- if (!new Boolean(System.getProperty(CartridgeConstants.FEATURE_INTERNAL_REPO_ENABLED))) {
- if (log.isDebugEnabled()) {
- log.debug("Internal repo feature is not enabled.");
- }
- }
-
- Repository repository = new Repository();
- if (repoURL != null && repoURL.trim().length() > 0) {
- log.info("External REPO URL is provided as [" + repoURL +
- "]. Therefore not creating a new repo.");
- //repository.setRepoName(repoURL.substring(0, repoURL.length()-4)); // remove .git part
- repository.setUrl(repoURL);
- repository.setUserName(repoUserName);
- repository.setPassword(repoUserPassword);
- repository.setPrivateRepository(privateRepo);
-
- } else {
-
- log.info("External git repo url not provided for tenant "
- + tenantDomain + ", creating an git internal repository");
-
- // for internal repos internal git server username and password is used.
- 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,
- new Boolean(System.getProperty(CartridgeConstants.FEATURE_EXTERNAL_REPO_VAIDATION_ENABLED)));
-
- return repository;
- }
-
- /**
- * Cleans up the subscription information after unsubscribing
- *
- * @throws ADCException
- */
- protected void cleanupSubscription () throws ADCException {
-
- try {
- new RepositoryFactory().destroyRepository(alias, subscriber.getTenantDomain(),
- subscriber.getAdminUserName());
- log.info("Repo is destroyed successfully.. ");
-
- } catch (Exception e) {
- String errorMsg = "Error in destroying repository for tenant " + subscriber.getTenantDomain() +
- "cartridge type " + type;
- log.error(errorMsg);
- }
-
- try {
- PersistenceManager.updateSubscriptionState(subscriptionId, "UNSUBSCRIBED");
-
- } catch (Exception e) {
- String errorMsg = "Error in unscubscribing from cartridge, alias " + alias + ", tenant " +
- subscriber.getTenantDomain();
- throw new ADCException(errorMsg, e);
- }
-
- //TODO: FIXME: do we need this?
- new DNSManager().removeSubDomain(getCluster().getHostName());
-
- try {
- new RegistryManager().removeDomainMappingFromRegistry(getCluster().getHostName());
-
- } catch (Exception e) {
- String errorMsg = "Error in removing domain mapping, alias " + alias + ", tenant " +
- subscriber.getTenantDomain();
- log.error(errorMsg, e);
- }
-
- TopologyManagementService topologyMgtService = DataHolder.getTopologyMgtService();
- String[] ips = topologyMgtService.getActiveIPs(type, getCluster().getClusterDomain(), getCluster().getClusterSubDomain());
- try {
- PersistenceManager.updateInstanceState("INACTIVE", ips, getCluster().getClusterDomain(), getCluster().getClusterSubDomain(), type);
-
- } catch (Exception e) {
- String errorMsg = "Error in updating state to INACTIVE";
- log.error(errorMsg, e);
- }
-
- this.setSubscriptionStatus(CartridgeConstants.UNSUBSCRIBED);
- }
-
- public String getType() {
- return type;
- }
-
- public String getAlias() {
- return alias;
- }
-
- public Subscriber getSubscriber() {
- return subscriber;
- }
-
- public Repository getRepository() {
- return repository;
- }
-
- public List<String> getConnectedSubscriptionAliases() {
- return connectedSubscriptionAliases;
- }
-
- public CartridgeInfo getCartridgeInfo() {
- return cartridgeInfo;
- }
-
- public String getHostName() {
- return getCluster().getHostName();
- }
-
- public void setType(String type) {
- this.type = type;
- }
-
- public void setAlias(String alias) {
- this.alias = alias;
- }
-
- public String getClusterDomain() {
- return getCluster().getClusterDomain();
- }
-
- public void setClusterDomain(String clusterDomain) {
- getCluster().setClusterDomain(clusterDomain);
- }
-
- public String getClusterSubDomain() {
- return getCluster().getClusterSubDomain();
- }
-
- public void setClusterSubDomain(String clusterSubDomain) {
- getCluster().setClusterSubDomain(clusterSubDomain);
- }
-
- public String getMgtClusterDomain() {
- return getCluster().getMgtClusterDomain();
- }
-
- public void setMgtClusterDomain(String mgtClusterDomain) {
- getCluster().setMgtClusterDomain(mgtClusterDomain);
- }
-
- public String getMgtClusterSubDomain() {
- return getCluster().getMgtClusterSubDomain();
- }
-
- public void setMgtClusterSubDomain(String mgtClusterSubDomain) {
- getCluster().setMgtClusterSubDomain(mgtClusterSubDomain);
- }
-
- public void setHostName(String hostName) {
- getCluster().setHostName(hostName);
- }
-
- public Policy getAutoscalingPolicy() {
- return autoscalingPolicy;
- }
-
- public void setAutoscalingPolicy(Policy autoscalingPolicy) {
- this.autoscalingPolicy = autoscalingPolicy;
- }
-
- public void setSubscriber(Subscriber subscriber) {
- this.subscriber = subscriber;
- }
-
- public void setRepository(Repository repository) {
- this.repository = repository;
- }
-
- public void setCartridgeInfo(CartridgeInfo cartridgeInfo) {
- this.cartridgeInfo = cartridgeInfo;
- }
-
- public Payload getPayload() {
- return payload;
- }
-
- public void setPayload(Payload payload) {
- this.payload = payload;
- }
-
- public int getSubscriptionId() {
- return subscriptionId;
- }
-
- public void setSubscriptionId(int subscriptionId) {
- this.subscriptionId = subscriptionId;
- }
-
- public String getMappedDomain() {
- return mappedDomain;
- }
-
- public void setMappedDomain(String mappedDomain) {
- this.mappedDomain = mappedDomain;
- }
-
- public String getSubscriptionStatus() {
- return subscriptionStatus;
- }
-
- public void setSubscriptionStatus(String subscriptionStatus) {
- this.subscriptionStatus = subscriptionStatus;
- }
-
- public String getSubscriptionKey() {
- return subscriptionKey;
- }
-
- public void setSubscriptionKey(String subscriptionKey) {
- this.subscriptionKey = subscriptionKey;
- }
-
- public Cluster getCluster() {
- return cluster;
- }
-
- public void setCluster(Cluster cluster) {
- this.cluster = cluster;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/702d5ca1/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 4a6c0e5..63fc6b1 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
@@ -30,7 +30,7 @@ import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
import java.util.Properties;
-public class ApplicationCartridgeSubscription extends AbstractCartridgeSubscription {
+public class ApplicationCartridgeSubscription extends CartridgeSubscription {
/**
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/702d5ca1/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 e1a48ce..76f0739 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
@@ -33,6 +33,9 @@ import org.apache.stratos.adc.mgt.payload.PayloadArg;
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.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.topology.mgt.service.TopologyManagementService;
import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
@@ -57,6 +60,7 @@ public abstract class CartridgeSubscription {
private String mappedDomain;
private List<String> connectedSubscriptionAliases;
private String subscriptionKey;
+ protected SubscriptionTenancyBehaviour subscriptionTenancyBehaviour;
/**
* Constructor
@@ -75,6 +79,12 @@ public abstract class CartridgeSubscription {
getCluster().setHostName(cartridgeInfo.getHostName());
this.setSubscriptionStatus(CartridgeConstants.SUBSCRIBED);
this.connectedSubscriptionAliases = new ArrayList<String>();
+ if(getCartridgeInfo().getMultiTenant()) {
+ subscriptionTenancyBehaviour = new SubscriptionMultiTenantBehaviour(this);
+ }
+ else {
+ subscriptionTenancyBehaviour = new SubscriptionSingleTenantBehaviour(this);
+ }
}
/**
@@ -85,19 +95,19 @@ public abstract class CartridgeSubscription {
* @param autoscalingPolicy Auto scaling policy
* @param repository Relevenat Repository subscription
*
- * @throws ADCException
- * @throws PolicyException
- * @throws UnregisteredCartridgeException
- * @throws InvalidCartridgeAliasException
- * @throws DuplicateCartridgeAliasException
- * @throws RepositoryRequiredException
- * @throws AlreadySubscribedException
- * @throws RepositoryCredentialsRequiredException
- * @throws InvalidRepositoryException
- * @throws RepositoryTransportException
+ * @throws org.apache.stratos.adc.mgt.exception.ADCException
+ * @throws org.apache.stratos.adc.mgt.exception.PolicyException
+ * @throws org.apache.stratos.adc.mgt.exception.UnregisteredCartridgeException
+ * @throws org.apache.stratos.adc.mgt.exception.InvalidCartridgeAliasException
+ * @throws org.apache.stratos.adc.mgt.exception.DuplicateCartridgeAliasException
+ * @throws org.apache.stratos.adc.mgt.exception.RepositoryRequiredException
+ * @throws org.apache.stratos.adc.mgt.exception.AlreadySubscribedException
+ * @throws org.apache.stratos.adc.mgt.exception.RepositoryCredentialsRequiredException
+ * @throws org.apache.stratos.adc.mgt.exception.InvalidRepositoryException
+ * @throws org.apache.stratos.adc.mgt.exception.RepositoryTransportException
*/
public void createSubscription (Subscriber subscriber, String alias, Policy autoscalingPolicy,
- Repository repository)
+ Repository repository)
throws ADCException, PolicyException, UnregisteredCartridgeException, InvalidCartridgeAliasException,
DuplicateCartridgeAliasException, RepositoryRequiredException, AlreadySubscribedException,
RepositoryCredentialsRequiredException, InvalidRepositoryException, RepositoryTransportException {
@@ -412,14 +422,14 @@ public abstract class CartridgeSubscription {
this.subscriptionStatus = subscriptionStatus;
}
- public String getSubscriptionKey() {
- return subscriptionKey;
- }
+ public String getSubscriptionKey() {
+ return subscriptionKey;
+ }
+
+ public void setSubscriptionKey(String subscriptionKey) {
+ this.subscriptionKey = subscriptionKey;
+ }
- public void setSubscriptionKey(String subscriptionKey) {
- this.subscriptionKey = subscriptionKey;
- }
-
public Cluster getCluster() {
return cluster;
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/702d5ca1/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
new file mode 100644
index 0000000..cab956d
--- /dev/null
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/CartridgeSubscription_old.java
@@ -0,0 +1,431 @@
+///*
+// * 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;
+//
+//import org.apache.commons.logging.Log;
+//import org.apache.commons.logging.LogFactory;
+//import org.apache.stratos.adc.mgt.custom.domain.RegistryManager;
+//import org.apache.stratos.adc.mgt.dao.CartridgeSubscriptionInfo;
+//import org.apache.stratos.adc.mgt.dao.Cluster;
+//import org.apache.stratos.adc.mgt.dns.DNSManager;
+//import org.apache.stratos.adc.mgt.dto.Policy;
+//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.repository.Repository;
+//import org.apache.stratos.adc.mgt.service.RepositoryInfoBean;
+//import org.apache.stratos.adc.mgt.subscriber.Subscriber;
+//import org.apache.stratos.adc.mgt.utils.*;
+//import org.apache.stratos.adc.topology.mgt.service.TopologyManagementService;
+//import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
+//
+//import java.util.ArrayList;
+//import java.util.List;
+//import java.util.Properties;
+//
+//public abstract class CartridgeSubscription {
+//
+// private static Log log = LogFactory.getLog(CartridgeSubscription.class);
+// private int subscriptionId;
+// private String type;
+// private String alias;
+// private Policy autoscalingPolicy;
+// private Subscriber subscriber;
+// private Repository repository;
+// private CartridgeInfo cartridgeInfo;
+// private Payload payload;
+// private Cluster cluster;
+// private String subscriptionStatus;
+// private String mappedDomain;
+// private List<String> connectedSubscriptionAliases;
+// private String subscriptionKey;
+//
+// /**
+// * Constructor
+// *
+// * @param cartridgeInfo CartridgeInfo subscription
+// */
+// public CartridgeSubscription(CartridgeInfo cartridgeInfo) {
+//
+// this.setCartridgeInfo(cartridgeInfo);
+// this.setType(cartridgeInfo.getType());
+// this.setCluster(new Cluster());
+// getCluster().setClusterDomain("");
+// getCluster().setClusterSubDomain(CartridgeConstants.DEFAULT_SUBDOMAIN);
+// getCluster().setMgtClusterDomain("");
+// getCluster().setMgtClusterSubDomain(CartridgeConstants.DEFAULT_MGT_SUBDOMAIN);
+// getCluster().setHostName(cartridgeInfo.getHostName());
+// this.setSubscriptionStatus(CartridgeConstants.SUBSCRIBED);
+// this.connectedSubscriptionAliases = new ArrayList<String>();
+// }
+//
+// /**
+// * Subscribes to this cartridge subscription
+// *
+// * @param subscriber Subscriber subscription
+// * @param alias Alias of the cartridge subscription
+// * @param autoscalingPolicy Auto scaling policy
+// * @param repository Relevenat Repository subscription
+// *
+// * @throws ADCException
+// * @throws PolicyException
+// * @throws UnregisteredCartridgeException
+// * @throws InvalidCartridgeAliasException
+// * @throws DuplicateCartridgeAliasException
+// * @throws RepositoryRequiredException
+// * @throws AlreadySubscribedException
+// * @throws RepositoryCredentialsRequiredException
+// * @throws InvalidRepositoryException
+// * @throws RepositoryTransportException
+// */
+// public void createSubscription (Subscriber subscriber, String alias, Policy autoscalingPolicy,
+// Repository repository)
+// throws ADCException, PolicyException, UnregisteredCartridgeException, InvalidCartridgeAliasException,
+// DuplicateCartridgeAliasException, RepositoryRequiredException, AlreadySubscribedException,
+// RepositoryCredentialsRequiredException, InvalidRepositoryException, RepositoryTransportException {
+//
+// setSubscriber(subscriber);
+// setAlias(alias);
+// setAutoscalingPolicy(autoscalingPolicy);
+// setRepository(repository);
+// }
+//
+// /**
+// * Unsubscribe from this cartridge subscription
+// *
+// * @throws ADCException
+// * @throws NotSubscribedException
+// */
+// public abstract void removeSubscription() throws ADCException, NotSubscribedException;
+//
+// /**
+// * Registers the subscription
+// *
+// * @param properties Any additional properties needed
+// *
+// * @return CartridgeSubscriptionInfo subscription populated with relevant data
+// * @throws ADCException
+// * @throws UnregisteredCartridgeException
+// */
+// public abstract CartridgeSubscriptionInfo registerSubscription(Properties properties)
+// throws ADCException, UnregisteredCartridgeException;
+//
+// /**
+// * Connect cartridges
+// *
+// * @param connectingCartridgeAlias Alias of connecting cartridge
+// */
+// public void connect (String connectingCartridgeAlias) {
+// connectedSubscriptionAliases.add(connectingCartridgeAlias);
+// }
+//
+// /**
+// * Disconnect from the cartridge subscription given by disconnectingCartridgeAlias
+// *
+// * @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(getAutoscalingPolicy());
+// payloadArg.setMultitenant(getCartridgeInfo().getMultiTenant());
+// payloadArg.setTenantId(getSubscriber().getTenantId());
+// payloadArg.setTenantDomain(getSubscriber().getTenantDomain());
+// payloadArg.setCartridgeAlias(getAlias());
+// payloadArg.setServiceName(getCartridgeInfo().getType());
+// payloadArg.setSubscriptionKey(subscriptionKey);
+// return payloadArg;
+// }
+//
+// /**
+// * Manages the repository for the cartridge subscription
+// *
+// * @param repoURL Repository URL
+// * @param repoUserName Repository Username
+// * @param repoUserPassword Repository password
+// * @param privateRepo public/private repository
+// * @param cartridgeAlias Alias of the cartridge subscription
+// * @param cartridgeInfo CartridgeInfo subscription
+// * @param tenantDomain Domain of the tenant
+// *
+// * @return Repository populated with relevant information or null of not repository is relevant to this cartridge
+// * subscription
+// * @throws ADCException
+// * @throws RepositoryRequiredException
+// * @throws RepositoryCredentialsRequiredException
+// * @throws RepositoryTransportException
+// * @throws InvalidRepositoryException
+// */
+// public Repository manageRepository (String repoURL, String repoUserName, String repoUserPassword,
+// boolean privateRepo, String cartridgeAlias, CartridgeInfo cartridgeInfo,
+// String tenantDomain)
+//
+// throws ADCException, RepositoryRequiredException, RepositoryCredentialsRequiredException,
+// RepositoryTransportException, InvalidRepositoryException {
+//
+// if (!new Boolean(System.getProperty(CartridgeConstants.FEATURE_INTERNAL_REPO_ENABLED))) {
+// if (log.isDebugEnabled()) {
+// log.debug("Internal repo feature is not enabled.");
+// }
+// }
+//
+// Repository repository = new Repository();
+// if (repoURL != null && repoURL.trim().length() > 0) {
+// log.info("External REPO URL is provided as [" + repoURL +
+// "]. Therefore not creating a new repo.");
+// //repository.setRepoName(repoURL.substring(0, repoURL.length()-4)); // remove .git part
+// repository.setUrl(repoURL);
+// repository.setUserName(repoUserName);
+// repository.setPassword(repoUserPassword);
+// repository.setPrivateRepository(privateRepo);
+//
+// } else {
+//
+// log.info("External git repo url not provided for tenant "
+// + tenantDomain + ", creating an git internal repository");
+//
+// // for internal repos internal git server username and password is used.
+// 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,
+// new Boolean(System.getProperty(CartridgeConstants.FEATURE_EXTERNAL_REPO_VAIDATION_ENABLED)));
+//
+// return repository;
+// }
+//
+// /**
+// * Cleans up the subscription information after unsubscribing
+// *
+// * @throws ADCException
+// */
+// protected void cleanupSubscription () throws ADCException {
+//
+// try {
+// new RepositoryFactory().destroyRepository(alias, subscriber.getTenantDomain(),
+// subscriber.getAdminUserName());
+// log.info("Repo is destroyed successfully.. ");
+//
+// } catch (Exception e) {
+// String errorMsg = "Error in destroying repository for tenant " + subscriber.getTenantDomain() +
+// "cartridge type " + type;
+// log.error(errorMsg);
+// }
+//
+// try {
+// PersistenceManager.updateSubscriptionState(subscriptionId, "UNSUBSCRIBED");
+//
+// } catch (Exception e) {
+// String errorMsg = "Error in unscubscribing from cartridge, alias " + alias + ", tenant " +
+// subscriber.getTenantDomain();
+// throw new ADCException(errorMsg, e);
+// }
+//
+// //TODO: FIXME: do we need this?
+// new DNSManager().removeSubDomain(getCluster().getHostName());
+//
+// try {
+// new RegistryManager().removeDomainMappingFromRegistry(getCluster().getHostName());
+//
+// } catch (Exception e) {
+// String errorMsg = "Error in removing domain mapping, alias " + alias + ", tenant " +
+// subscriber.getTenantDomain();
+// log.error(errorMsg, e);
+// }
+//
+// TopologyManagementService topologyMgtService = DataHolder.getTopologyMgtService();
+// String[] ips = topologyMgtService.getActiveIPs(type, getCluster().getClusterDomain(), getCluster().getClusterSubDomain());
+// try {
+// PersistenceManager.updateInstanceState("INACTIVE", ips, getCluster().getClusterDomain(), getCluster().getClusterSubDomain(), type);
+//
+// } catch (Exception e) {
+// String errorMsg = "Error in updating state to INACTIVE";
+// log.error(errorMsg, e);
+// }
+//
+// this.setSubscriptionStatus(CartridgeConstants.UNSUBSCRIBED);
+// }
+//
+// public String getType() {
+// return type;
+// }
+//
+// public String getAlias() {
+// return alias;
+// }
+//
+// public Subscriber getSubscriber() {
+// return subscriber;
+// }
+//
+// public Repository getRepository() {
+// return repository;
+// }
+//
+// public List<String> getConnectedSubscriptionAliases() {
+// return connectedSubscriptionAliases;
+// }
+//
+// public CartridgeInfo getCartridgeInfo() {
+// return cartridgeInfo;
+// }
+//
+// public String getHostName() {
+// return getCluster().getHostName();
+// }
+//
+// public void setType(String type) {
+// this.type = type;
+// }
+//
+// public void setAlias(String alias) {
+// this.alias = alias;
+// }
+//
+// public String getClusterDomain() {
+// return getCluster().getClusterDomain();
+// }
+//
+// public void setClusterDomain(String clusterDomain) {
+// getCluster().setClusterDomain(clusterDomain);
+// }
+//
+// public String getClusterSubDomain() {
+// return getCluster().getClusterSubDomain();
+// }
+//
+// public void setClusterSubDomain(String clusterSubDomain) {
+// getCluster().setClusterSubDomain(clusterSubDomain);
+// }
+//
+// public String getMgtClusterDomain() {
+// return getCluster().getMgtClusterDomain();
+// }
+//
+// public void setMgtClusterDomain(String mgtClusterDomain) {
+// getCluster().setMgtClusterDomain(mgtClusterDomain);
+// }
+//
+// public String getMgtClusterSubDomain() {
+// return getCluster().getMgtClusterSubDomain();
+// }
+//
+// public void setMgtClusterSubDomain(String mgtClusterSubDomain) {
+// getCluster().setMgtClusterSubDomain(mgtClusterSubDomain);
+// }
+//
+// public void setHostName(String hostName) {
+// getCluster().setHostName(hostName);
+// }
+//
+// public Policy getAutoscalingPolicy() {
+// return autoscalingPolicy;
+// }
+//
+// public void setAutoscalingPolicy(Policy autoscalingPolicy) {
+// this.autoscalingPolicy = autoscalingPolicy;
+// }
+//
+// public void setSubscriber(Subscriber subscriber) {
+// this.subscriber = subscriber;
+// }
+//
+// public void setRepository(Repository repository) {
+// this.repository = repository;
+// }
+//
+// public void setCartridgeInfo(CartridgeInfo cartridgeInfo) {
+// this.cartridgeInfo = cartridgeInfo;
+// }
+//
+// public Payload getPayload() {
+// return payload;
+// }
+//
+// public void setPayload(Payload payload) {
+// this.payload = payload;
+// }
+//
+// public int getSubscriptionId() {
+// return subscriptionId;
+// }
+//
+// public void setSubscriptionId(int subscriptionId) {
+// this.subscriptionId = subscriptionId;
+// }
+//
+// public String getMappedDomain() {
+// return mappedDomain;
+// }
+//
+// public void setMappedDomain(String mappedDomain) {
+// this.mappedDomain = mappedDomain;
+// }
+//
+// public String getSubscriptionStatus() {
+// return subscriptionStatus;
+// }
+//
+// public void setSubscriptionStatus(String subscriptionStatus) {
+// this.subscriptionStatus = subscriptionStatus;
+// }
+//
+// public String getSubscriptionKey() {
+// return subscriptionKey;
+// }
+//
+// public void setSubscriptionKey(String subscriptionKey) {
+// this.subscriptionKey = subscriptionKey;
+// }
+//
+// public Cluster getCluster() {
+// return cluster;
+// }
+//
+// public void setCluster(Cluster cluster) {
+// this.cluster = cluster;
+// }
+//
+//}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/702d5ca1/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 786450c..979d467 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
@@ -32,12 +32,17 @@ import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
import java.util.Properties;
-public class DataCartridgeSubscription extends SingleTenantCartridgeSubscription {
+public class DataCartridgeSubscription extends CartridgeSubscription {
private String host;
private String username;
private String password;
+ /**
+ * Constructor
+ *
+ * @param cartridgeInfo CartridgeInfo subscription
+ */
public DataCartridgeSubscription(CartridgeInfo cartridgeInfo) {
super(cartridgeInfo);
@@ -55,14 +60,7 @@ public class DataCartridgeSubscription extends SingleTenantCartridgeSubscription
RepositoryRequiredException, InvalidRepositoryException, PolicyException {
super.createSubscription(subscriber, alias, autoscalingPolicy, repository);
- }
-
- public Repository manageRepository (String repoURL, String repoUserName, String repoUserPassword,
- boolean privateRepo, String cartridgeAlias, CartridgeInfo cartridgeInfo,
- String tenantDomain) {
-
- //no repository for data cartridge instances
- return null;
+ subscriptionTenancyBehaviour.createSubscription();
}
public PayloadArg createPayloadParameters() throws ADCException {
@@ -72,22 +70,15 @@ public class DataCartridgeSubscription extends SingleTenantCartridgeSubscription
payloadArg.setDataCartridgeAdminUser(getUsername());
payloadArg.setDataCartridgeAdminPassword(getPassword());
- return payloadArg;
+ return subscriptionTenancyBehaviour.createPayloadParameters(payloadArg);
}
- public CartridgeSubscriptionInfo registerSubscription(Properties payloadProperties)
- throws ADCException, UnregisteredCartridgeException {
-
- ApplicationManagementUtil.registerService(getType(),
- getCluster().getClusterDomain(),
- getCluster().getClusterSubDomain(),
- getPayload().createPayload(),
- getPayload().getPayloadArg().getTenantRange(),
- getCluster().getHostName(),
- ApplicationManagementUtil.setRegisterServiceProperties(getAutoscalingPolicy(),
- getSubscriber().getTenantId(), getAlias()));
+ @Override
+ public CartridgeSubscriptionInfo registerSubscription(Properties properties) throws ADCException,
+ UnregisteredCartridgeException {
- getPayload().delete();
+ subscriptionTenancyBehaviour.registerSubscription(ApplicationManagementUtil.
+ setRegisterServiceProperties(getAutoscalingPolicy(), getSubscriber().getTenantId(), getAlias()));
DataCartridge dataCartridge = new DataCartridge();
dataCartridge.setUserName(getUsername());
@@ -98,7 +89,21 @@ public class DataCartridgeSubscription extends SingleTenantCartridgeSubscription
getType(), getAlias(), getSubscriber().getTenantId(), getSubscriber().getTenantDomain(),
getRepository(), getCluster().getHostName(), getCluster().getClusterDomain(), getCluster().getClusterSubDomain(),
getCluster().getMgtClusterDomain(), getCluster().getMgtClusterSubDomain(), dataCartridge, "PENDING",getSubscriptionKey());
+ }
+
+ public Repository manageRepository (String repoURL, String repoUserName, String repoUserPassword,
+ boolean privateRepo, String cartridgeAlias, CartridgeInfo cartridgeInfo,
+ String tenantDomain) {
+
+ //no repository for data cartridge instances
+ return null;
+ }
+
+ @Override
+ public void removeSubscription() throws ADCException, NotSubscribedException {
+ subscriptionTenancyBehaviour.removeSubscription();
+ super.cleanupSubscription();
}
public String getHost() {
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/702d5ca1/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/DataCartridgeSubscription1.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/DataCartridgeSubscription1.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/DataCartridgeSubscription1.java
deleted file mode 100644
index 6f5401f..0000000
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/DataCartridgeSubscription1.java
+++ /dev/null
@@ -1,132 +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;
-
-import org.apache.stratos.adc.mgt.dao.CartridgeSubscriptionInfo;
-import org.apache.stratos.adc.mgt.dao.DataCartridge;
-import org.apache.stratos.adc.mgt.dto.Policy;
-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.utils.ApplicationManagementUtil;
-import org.apache.stratos.adc.mgt.utils.CartridgeConstants;
-import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
-
-import java.util.Properties;
-
-public class DataCartridgeSubscription1 extends AbstractCartridgeSubscription {
-
- private String host;
- private String username;
- private String password;
-
- /**
- * Constructor
- *
- * @param cartridgeInfo CartridgeInfo subscription
- */
- public DataCartridgeSubscription1(CartridgeInfo cartridgeInfo) {
-
- super(cartridgeInfo);
- this.setHost("localhost");
- this.setUsername(CartridgeConstants.MYSQL_DEFAULT_USER);
- this.setPassword(ApplicationManagementUtil.generatePassword());
- }
-
- @Override
- public void createSubscription(Subscriber subscriber, String alias, Policy autoscalingPolicy, Repository repository)
-
- throws InvalidCartridgeAliasException,
- DuplicateCartridgeAliasException, ADCException, RepositoryCredentialsRequiredException,
- RepositoryTransportException, UnregisteredCartridgeException, AlreadySubscribedException,
- RepositoryRequiredException, InvalidRepositoryException, PolicyException {
-
- super.createSubscription(subscriber, alias, autoscalingPolicy, 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);
- }
-
- @Override
- public CartridgeSubscriptionInfo registerSubscription(Properties properties) throws ADCException,
- UnregisteredCartridgeException {
-
- subscriptionTenancyBehaviour.registerSubscription(ApplicationManagementUtil.
- setRegisterServiceProperties(getAutoscalingPolicy(), getSubscriber().getTenantId(), getAlias()));
-
- DataCartridge dataCartridge = new DataCartridge();
- dataCartridge.setUserName(getUsername());
- dataCartridge.setPassword(getPassword());
- dataCartridge.setDataCartridgeType(getType());
-
- return ApplicationManagementUtil.createCartridgeSubscription(getCartridgeInfo(), getAutoscalingPolicy(),
- getType(), getAlias(), getSubscriber().getTenantId(), getSubscriber().getTenantDomain(),
- getRepository(), getCluster().getHostName(), getCluster().getClusterDomain(), getCluster().getClusterSubDomain(),
- getCluster().getMgtClusterDomain(), getCluster().getMgtClusterSubDomain(), dataCartridge, "PENDING",getSubscriptionKey());
- }
-
- public Repository manageRepository (String repoURL, String repoUserName, String repoUserPassword,
- boolean privateRepo, String cartridgeAlias, CartridgeInfo cartridgeInfo,
- String tenantDomain) {
-
- //no repository for data cartridge instances
- return null;
- }
-
- @Override
- public void removeSubscription() throws ADCException, NotSubscribedException {
-
- subscriptionTenancyBehaviour.removeSubscription();
- super.cleanupSubscription();
- }
-
- public String getHost() {
- return host;
- }
-
- public void setHost(String host) {
- this.host = host;
- }
-
- public String getUsername() {
- return username;
- }
-
- public void setUsername(String username) {
- this.username = username;
- }
-
- public String getPassword() {
- return password;
- }
-
- public void setPassword(String password) {
- this.password = password;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/702d5ca1/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
new file mode 100644
index 0000000..2faa986
--- /dev/null
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/DataCartridgeSubscription_old.java
@@ -0,0 +1,127 @@
+///*
+// * 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;
+//
+//import org.apache.stratos.adc.mgt.dao.CartridgeSubscriptionInfo;
+//import org.apache.stratos.adc.mgt.dao.DataCartridge;
+//import org.apache.stratos.adc.mgt.dto.Policy;
+//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.utils.ApplicationManagementUtil;
+//import org.apache.stratos.adc.mgt.utils.CartridgeConstants;
+//import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
+//
+//import java.util.Properties;
+//
+//public class DataCartridgeSubscription extends SingleTenantCartridgeSubscription {
+//
+// private String host;
+// private String username;
+// private String password;
+//
+// public DataCartridgeSubscription(CartridgeInfo cartridgeInfo) {
+//
+// super(cartridgeInfo);
+// this.setHost("localhost");
+// this.setUsername(CartridgeConstants.MYSQL_DEFAULT_USER);
+// this.setPassword(ApplicationManagementUtil.generatePassword());
+// }
+//
+// @Override
+// public void createSubscription(Subscriber subscriber, String alias, Policy autoscalingPolicy, Repository repository)
+//
+// throws InvalidCartridgeAliasException,
+// DuplicateCartridgeAliasException, ADCException, RepositoryCredentialsRequiredException,
+// RepositoryTransportException, UnregisteredCartridgeException, AlreadySubscribedException,
+// RepositoryRequiredException, InvalidRepositoryException, PolicyException {
+//
+// super.createSubscription(subscriber, alias, autoscalingPolicy, repository);
+// }
+//
+// public Repository manageRepository (String repoURL, String repoUserName, String repoUserPassword,
+// boolean privateRepo, String cartridgeAlias, CartridgeInfo cartridgeInfo,
+// String tenantDomain) {
+//
+// //no repository for data cartridge instances
+// return null;
+// }
+//
+// public PayloadArg createPayloadParameters() throws ADCException {
+//
+// PayloadArg payloadArg = super.createPayloadParameters();
+// payloadArg.setDataCartridgeHost(this.getHost());
+// payloadArg.setDataCartridgeAdminUser(getUsername());
+// payloadArg.setDataCartridgeAdminPassword(getPassword());
+//
+// return payloadArg;
+// }
+//
+// public CartridgeSubscriptionInfo registerSubscription(Properties payloadProperties)
+// throws ADCException, UnregisteredCartridgeException {
+//
+// ApplicationManagementUtil.registerService(getType(),
+// getCluster().getClusterDomain(),
+// getCluster().getClusterSubDomain(),
+// getPayload().createPayload(),
+// getPayload().getPayloadArg().getTenantRange(),
+// getCluster().getHostName(),
+// ApplicationManagementUtil.setRegisterServiceProperties(getAutoscalingPolicy(),
+// getSubscriber().getTenantId(), getAlias()));
+//
+// getPayload().delete();
+//
+// DataCartridge dataCartridge = new DataCartridge();
+// dataCartridge.setUserName(getUsername());
+// dataCartridge.setPassword(getPassword());
+// dataCartridge.setDataCartridgeType(getType());
+//
+// return ApplicationManagementUtil.createCartridgeSubscription(getCartridgeInfo(), getAutoscalingPolicy(),
+// getType(), getAlias(), getSubscriber().getTenantId(), getSubscriber().getTenantDomain(),
+// getRepository(), getCluster().getHostName(), getCluster().getClusterDomain(), getCluster().getClusterSubDomain(),
+// getCluster().getMgtClusterDomain(), getCluster().getMgtClusterSubDomain(), dataCartridge, "PENDING",getSubscriptionKey());
+//
+// }
+//
+// public String getHost() {
+// return host;
+// }
+//
+// public void setHost(String host) {
+// this.host = host;
+// }
+//
+// public String getUsername() {
+// return username;
+// }
+//
+// public void setUsername(String username) {
+// this.username = username;
+// }
+//
+// public String getPassword() {
+// return password;
+// }
+//
+// public void setPassword(String password) {
+// this.password = password;
+// }
+//}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/702d5ca1/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 668ff55..c5365ad 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
@@ -30,7 +30,7 @@ import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
import java.util.Properties;
-public class FrameworkCartridgeSubscription extends AbstractCartridgeSubscription {
+public class FrameworkCartridgeSubscription extends CartridgeSubscription {
/**
* Constructor
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/702d5ca1/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
new file mode 100644
index 0000000..151f157
--- /dev/null
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/LBCartridgeSubscription.java
@@ -0,0 +1,51 @@
+/*
+ * 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;
+
+import org.apache.stratos.adc.mgt.dao.CartridgeSubscriptionInfo;
+import org.apache.stratos.adc.mgt.exception.ADCException;
+import org.apache.stratos.adc.mgt.exception.NotSubscribedException;
+import org.apache.stratos.adc.mgt.exception.UnregisteredCartridgeException;
+import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
+
+import java.util.Properties;
+
+public class LBCartridgeSubscription extends CartridgeSubscription {
+
+ /**
+ * Constructor
+ *
+ * @param cartridgeInfo CartridgeInfo subscription
+ */
+ public LBCartridgeSubscription(CartridgeInfo cartridgeInfo) {
+ super(cartridgeInfo);
+ }
+
+ @Override
+ public void removeSubscription() throws ADCException, NotSubscribedException {
+ //TODO
+ }
+
+ @Override
+ public CartridgeSubscriptionInfo registerSubscription(Properties properties) throws ADCException, UnregisteredCartridgeException {
+ //TODO
+ return null;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/702d5ca1/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/MultiTenantCartridgeSubscription.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/MultiTenantCartridgeSubscription.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/MultiTenantCartridgeSubscription.java
index d14d18b..de9fbcf 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/MultiTenantCartridgeSubscription.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/MultiTenantCartridgeSubscription.java
@@ -1,134 +1,134 @@
-/*
- * 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;
-
-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.dto.Policy;
-import org.apache.stratos.adc.mgt.exception.*;
-import org.apache.stratos.adc.mgt.internal.DataHolder;
-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.utils.ApplicationManagementUtil;
-import org.apache.stratos.adc.mgt.utils.CartridgeConstants;
-import org.apache.stratos.adc.mgt.utils.PersistenceManager;
-import org.apache.stratos.adc.topology.mgt.service.TopologyManagementService;
-import org.apache.stratos.adc.topology.mgt.serviceobjects.DomainContext;
-import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
-
-import java.util.Properties;
-
-public class MultiTenantCartridgeSubscription extends CartridgeSubscription {
-
- private static Log log = LogFactory.getLog(MultiTenantCartridgeSubscription.class);
-
- public MultiTenantCartridgeSubscription(CartridgeInfo cartridgeInfo) {
- super(cartridgeInfo);
- }
-
- @Override
- public void createSubscription(Subscriber subscriber, String alias, Policy autoscalingPolicy, Repository repository)
-
- throws InvalidCartridgeAliasException,
- DuplicateCartridgeAliasException, ADCException, AlreadySubscribedException,
- RepositoryCredentialsRequiredException, RepositoryTransportException, UnregisteredCartridgeException,
- InvalidRepositoryException, RepositoryRequiredException, PolicyException {
-
- super.createSubscription(subscriber, alias, autoscalingPolicy, repository);
-
- 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(getType(), subscriber.getTenantId());
- } catch (Exception e) {
- String msg = "Error checking whether the cartridge type " + getType()
- + " is already subscribed";
- log.error(msg, e);
- throw new ADCException(msg, e);
- }
-
- if (subscribed) {
- String msg = "Already subscribed to " + getType()
- + ". This multi-tenant cartridge will not be available to createSubscription";
- if (log.isDebugEnabled()) {
- log.debug(msg);
- }
- throw new AlreadySubscribedException(msg, getType());
- }
- }
-
- TopologyManagementService topologyService = DataHolder.getTopologyMgtService();
- DomainContext[] domainContexts = topologyService.getDomainsAndSubdomains(getType(), subscriber.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")) {
- getCluster().setMgtClusterDomain(domainContext.getDomain());
- getCluster().setMgtClusterSubDomain(domainContext.getSubDomain());
- } else {
- getCluster().setClusterDomain(domainContext.getDomain());
- getCluster().setClusterSubDomain(domainContext.getSubDomain());
- }
- }
- } else {
- String msg = "Domain contexts not found for " + getType() + " and tenant id " + subscriber.getTenantId();
- log.warn(msg);
- throw new ADCException(msg);
- }
- }
-
- @Override
- public void removeSubscription() throws ADCException, NotSubscribedException {
-
- log.info("Cartridge with alias " + getAlias() + ", and type " + getType() +
- " is a multi-tenant cartridge and therefore will not terminate all instances and " +
- "unregister services");
-
- super.cleanupSubscription();
- }
-
- @Override
- public CartridgeSubscriptionInfo registerSubscription(Properties properties) {
-
- return ApplicationManagementUtil.createCartridgeSubscription(getCartridgeInfo(), getAutoscalingPolicy(),
- getType(), getAlias(), getSubscriber().getTenantId(), getSubscriber().getTenantDomain(),
- getRepository(), getCluster().getHostName(), getCluster().getClusterDomain(), getCluster().getClusterSubDomain(),
- getCluster().getMgtClusterDomain(), getCluster().getMgtClusterSubDomain(), null, "PENDING",getSubscriptionKey());
- }
-
- @Override
- public PayloadArg createPayloadParameters() {
-
- return null;
- }
-
-}
+///*
+// * 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;
+//
+//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.dto.Policy;
+//import org.apache.stratos.adc.mgt.exception.*;
+//import org.apache.stratos.adc.mgt.internal.DataHolder;
+//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.utils.ApplicationManagementUtil;
+//import org.apache.stratos.adc.mgt.utils.CartridgeConstants;
+//import org.apache.stratos.adc.mgt.utils.PersistenceManager;
+//import org.apache.stratos.adc.topology.mgt.service.TopologyManagementService;
+//import org.apache.stratos.adc.topology.mgt.serviceobjects.DomainContext;
+//import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
+//
+//import java.util.Properties;
+//
+//public class MultiTenantCartridgeSubscription extends CartridgeSubscription {
+//
+// private static Log log = LogFactory.getLog(MultiTenantCartridgeSubscription.class);
+//
+// public MultiTenantCartridgeSubscription(CartridgeInfo cartridgeInfo) {
+// super(cartridgeInfo);
+// }
+//
+// @Override
+// public void createSubscription(Subscriber subscriber, String alias, Policy autoscalingPolicy, Repository repository)
+//
+// throws InvalidCartridgeAliasException,
+// DuplicateCartridgeAliasException, ADCException, AlreadySubscribedException,
+// RepositoryCredentialsRequiredException, RepositoryTransportException, UnregisteredCartridgeException,
+// InvalidRepositoryException, RepositoryRequiredException, PolicyException {
+//
+// super.createSubscription(subscriber, alias, autoscalingPolicy, repository);
+//
+// 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(getType(), subscriber.getTenantId());
+// } catch (Exception e) {
+// String msg = "Error checking whether the cartridge type " + getType()
+// + " is already subscribed";
+// log.error(msg, e);
+// throw new ADCException(msg, e);
+// }
+//
+// if (subscribed) {
+// String msg = "Already subscribed to " + getType()
+// + ". This multi-tenant cartridge will not be available to createSubscription";
+// if (log.isDebugEnabled()) {
+// log.debug(msg);
+// }
+// throw new AlreadySubscribedException(msg, getType());
+// }
+// }
+//
+// TopologyManagementService topologyService = DataHolder.getTopologyMgtService();
+// DomainContext[] domainContexts = topologyService.getDomainsAndSubdomains(getType(), subscriber.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")) {
+// getCluster().setMgtClusterDomain(domainContext.getDomain());
+// getCluster().setMgtClusterSubDomain(domainContext.getSubDomain());
+// } else {
+// getCluster().setClusterDomain(domainContext.getDomain());
+// getCluster().setClusterSubDomain(domainContext.getSubDomain());
+// }
+// }
+// } else {
+// String msg = "Domain contexts not found for " + getType() + " and tenant id " + subscriber.getTenantId();
+// log.warn(msg);
+// throw new ADCException(msg);
+// }
+// }
+//
+// @Override
+// public void removeSubscription() throws ADCException, NotSubscribedException {
+//
+// log.info("Cartridge with alias " + getAlias() + ", and type " + getType() +
+// " is a multi-tenant cartridge and therefore will not terminate all instances and " +
+// "unregister services");
+//
+// super.cleanupSubscription();
+// }
+//
+// @Override
+// public CartridgeSubscriptionInfo registerSubscription(Properties properties) {
+//
+// return ApplicationManagementUtil.createCartridgeSubscription(getCartridgeInfo(), getAutoscalingPolicy(),
+// getType(), getAlias(), getSubscriber().getTenantId(), getSubscriber().getTenantDomain(),
+// getRepository(), getCluster().getHostName(), getCluster().getClusterDomain(), getCluster().getClusterSubDomain(),
+// getCluster().getMgtClusterDomain(), getCluster().getMgtClusterSubDomain(), null, "PENDING",getSubscriptionKey());
+// }
+//
+// @Override
+// public PayloadArg createPayloadParameters() {
+//
+// return null;
+// }
+//
+//}