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:17 UTC
[1/6] git commit: subscription model changes
Updated Branches:
refs/heads/master aa550b6be -> 91970c3ac
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/74d89849
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/74d89849
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/74d89849
Branch: refs/heads/master
Commit: 74d89849b13b3270d9a27a22ff7cf54a8a526474
Parents: 6984375
Author: Isuru <is...@wso2.com>
Authored: Fri Dec 6 15:00:12 2013 +0530
Committer: Isuru <is...@wso2.com>
Committed: Fri Dec 6 15:00:12 2013 +0530
----------------------------------------------------------------------
.../AbstractCartridgeSubscription.java | 441 +++++++++++++++++++
.../ApplicationCartridgeSubscription.java | 51 +++
.../DataCartridgeSubscription1.java | 50 +++
.../FrameworkCartridgeSubscription.java | 78 ++++
.../SingleTenantCartridgeSubscription.java | 2 +-
.../SubscriptionMultiTenantBehaviour.java | 117 +++++
.../SubscriptionSingleTenantBehaviour.java | 118 +++++
.../tenancy/SubscriptionTenancyBehaviour.java | 44 ++
8 files changed, 900 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/74d89849/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
new file mode 100644
index 0000000..3b7a2c7
--- /dev/null
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/AbstractCartridgeSubscription.java
@@ -0,0 +1,441 @@
+/*
+ * 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/74d89849/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
new file mode 100644
index 0000000..aa49ac7
--- /dev/null
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/ApplicationCartridgeSubscription.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 ApplicationCartridgeSubscription extends AbstractCartridgeSubscription {
+
+
+ /**
+ * Constructor
+ *
+ * @param cartridgeInfo CartridgeInfo subscription
+ */
+ public ApplicationCartridgeSubscription(CartridgeInfo cartridgeInfo) {
+ super(cartridgeInfo);
+ }
+
+ @Override
+ public CartridgeSubscriptionInfo registerSubscription(Properties properties) throws ADCException, UnregisteredCartridgeException {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void removeSubscription() throws ADCException, NotSubscribedException {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/74d89849/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
new file mode 100644
index 0000000..74f299a
--- /dev/null
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/DataCartridgeSubscription1.java
@@ -0,0 +1,50 @@
+/*
+ * 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 DataCartridgeSubscription1 extends AbstractCartridgeSubscription {
+
+ /**
+ * Constructor
+ *
+ * @param cartridgeInfo CartridgeInfo subscription
+ */
+ public DataCartridgeSubscription1(CartridgeInfo cartridgeInfo) {
+ super(cartridgeInfo);
+ }
+
+ @Override
+ public CartridgeSubscriptionInfo registerSubscription(Properties properties) throws ADCException, UnregisteredCartridgeException {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void removeSubscription() throws ADCException, NotSubscribedException {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/74d89849/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
new file mode 100644
index 0000000..6552fa9
--- /dev/null
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/FrameworkCartridgeSubscription.java
@@ -0,0 +1,78 @@
+/*
+ * 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.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.cloud.controller.pojo.CartridgeInfo;
+
+import java.util.Properties;
+
+public class FrameworkCartridgeSubscription extends AbstractCartridgeSubscription {
+
+ /**
+ * Constructor
+ *
+ * @param cartridgeInfo CartridgeInfo subscription
+ */
+ public FrameworkCartridgeSubscription(CartridgeInfo cartridgeInfo) {
+ super(cartridgeInfo);
+ }
+
+ @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();
+ }
+
+ @Override
+ public CartridgeSubscriptionInfo registerSubscription(Properties properties) throws ADCException, UnregisteredCartridgeException {
+
+ subscriptionTenancyBehaviour.registerSubscription();
+
+ 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 void removeSubscription() throws ADCException, NotSubscribedException {
+
+ subscriptionTenancyBehaviour.removeSubscription();
+ super.cleanupSubscription();
+ }
+
+ public PayloadArg createPayloadParameters () throws ADCException {
+
+ PayloadArg payloadArg = super.createPayloadParameters();
+ return subscriptionTenancyBehaviour.createPayloadParameters(payloadArg);
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/74d89849/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/SingleTenantCartridgeSubscription.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/SingleTenantCartridgeSubscription.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/SingleTenantCartridgeSubscription.java
index 830deea..77caeac 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/SingleTenantCartridgeSubscription.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/SingleTenantCartridgeSubscription.java
@@ -108,7 +108,7 @@ public class SingleTenantCartridgeSubscription extends CartridgeSubscription {
log.info("Unregistered service cluster, domain " + getCluster().getClusterDomain() + ", sub domain " +
getCluster().getClusterSubDomain());
- cleanupSubscription();
+ super.cleanupSubscription();
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/74d89849/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionMultiTenantBehaviour.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionMultiTenantBehaviour.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionMultiTenantBehaviour.java
new file mode 100644
index 0000000..c441036
--- /dev/null
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionMultiTenantBehaviour.java
@@ -0,0 +1,117 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.stratos.adc.mgt.subscription.tenancy;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.adc.mgt.exception.ADCException;
+import org.apache.stratos.adc.mgt.exception.AlreadySubscribedException;
+import org.apache.stratos.adc.mgt.exception.NotSubscribedException;
+import org.apache.stratos.adc.mgt.exception.UnregisteredCartridgeException;
+import org.apache.stratos.adc.mgt.internal.DataHolder;
+import org.apache.stratos.adc.mgt.payload.PayloadArg;
+import org.apache.stratos.adc.mgt.subscription.AbstractCartridgeSubscription;
+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;
+
+public class SubscriptionMultiTenantBehaviour extends SubscriptionTenancyBehaviour {
+
+ private static Log log = LogFactory.getLog(SubscriptionMultiTenantBehaviour.class);
+
+ public SubscriptionMultiTenantBehaviour(AbstractCartridgeSubscription cartridgeSubscription) {
+ super(cartridgeSubscription);
+ }
+
+ public void createSubscription() throws ADCException, AlreadySubscribedException {
+
+ 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());
+ }
+ }
+
+ TopologyManagementService topologyService = DataHolder.getTopologyMgtService();
+ DomainContext[] domainContexts = topologyService.getDomainsAndSubdomains(cartridgeSubscription.getType(),
+ cartridgeSubscription.getSubscriber().getTenantId());
+ log.info("Retrieved " + domainContexts.length + " domain and corresponding subdomain pairs");
+
+ if (domainContexts.length > 0) {
+ if(domainContexts.length > 2) {
+ if(log.isDebugEnabled())
+ log.debug("Too many domain sub domain pairs");
+ }
+
+ for (DomainContext domainContext : domainContexts) {
+ if (domainContext.getSubDomain().equalsIgnoreCase("mgt")) {
+ cartridgeSubscription.getCluster().setMgtClusterDomain(domainContext.getDomain());
+ cartridgeSubscription.getCluster().setMgtClusterSubDomain(domainContext.getSubDomain());
+ } else {
+ cartridgeSubscription.getCluster().setClusterDomain(domainContext.getDomain());
+ cartridgeSubscription.getCluster().setClusterSubDomain(domainContext.getSubDomain());
+ }
+ }
+ } else {
+ String msg = "Domain contexts not found for " + cartridgeSubscription.getType() + " and tenant id " +
+ cartridgeSubscription.getSubscriber().getTenantId();
+ log.warn(msg);
+ throw new ADCException(msg);
+ }
+ }
+
+ public void registerSubscription() throws ADCException, UnregisteredCartridgeException {
+
+ //nothing to do
+ }
+
+ public void removeSubscription() throws ADCException, NotSubscribedException {
+
+ log.info("Cartridge with alias " + cartridgeSubscription.getAlias() + ", and type " + cartridgeSubscription.getType() +
+ " is a multi-tenant cartridge and therefore will not terminate all instances and " +
+ "unregister services");
+ }
+
+ public PayloadArg createPayloadParameters(PayloadArg payloadArg) throws ADCException {
+
+ //payload not used
+ return null;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/74d89849/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionSingleTenantBehaviour.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionSingleTenantBehaviour.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionSingleTenantBehaviour.java
new file mode 100644
index 0000000..263c1d6
--- /dev/null
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionSingleTenantBehaviour.java
@@ -0,0 +1,118 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.stratos.adc.mgt.subscription.tenancy;
+
+import org.apache.axis2.AxisFault;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.adc.mgt.client.CloudControllerServiceClient;
+import org.apache.stratos.adc.mgt.exception.ADCException;
+import org.apache.stratos.adc.mgt.exception.AlreadySubscribedException;
+import org.apache.stratos.adc.mgt.exception.NotSubscribedException;
+import org.apache.stratos.adc.mgt.exception.UnregisteredCartridgeException;
+import org.apache.stratos.adc.mgt.payload.PayloadArg;
+import org.apache.stratos.adc.mgt.subscription.AbstractCartridgeSubscription;
+import org.apache.stratos.adc.mgt.utils.ApplicationManagementUtil;
+import org.apache.stratos.adc.mgt.utils.CartridgeConstants;
+
+public class SubscriptionSingleTenantBehaviour extends SubscriptionTenancyBehaviour {
+
+ private static Log log = LogFactory.getLog(SubscriptionSingleTenantBehaviour.class);
+
+ public SubscriptionSingleTenantBehaviour(AbstractCartridgeSubscription cartridgeSubscription) {
+ super(cartridgeSubscription);
+ }
+
+ public void createSubscription() throws ADCException, AlreadySubscribedException {
+
+ //set the cluster and hostname
+ cartridgeSubscription.getCluster().setClusterDomain(cartridgeSubscription.getAlias() + "." +
+ cartridgeSubscription.getCluster().getHostName() + "." + cartridgeSubscription.getType() + ".domain");
+ cartridgeSubscription.getCluster().setHostName(cartridgeSubscription.getAlias() + "." +
+ cartridgeSubscription.getCluster().getHostName());
+ }
+
+ public void registerSubscription() throws ADCException, UnregisteredCartridgeException {
+
+ ApplicationManagementUtil.registerService(cartridgeSubscription.getType(),
+ cartridgeSubscription.getCluster().getClusterDomain(),
+ cartridgeSubscription.getCluster().getClusterSubDomain(),
+ cartridgeSubscription.getPayload().createPayload(),
+ cartridgeSubscription.getPayload().getPayloadArg().getTenantRange(),
+ cartridgeSubscription.getCluster().getHostName(),
+ null);
+
+ cartridgeSubscription.getPayload().delete();
+ }
+
+ public void removeSubscription() throws ADCException, NotSubscribedException {
+
+ try {
+ CloudControllerServiceClient.getServiceClient().terminateAllInstances(cartridgeSubscription.getCluster().getClusterDomain());
+
+ } catch (AxisFault e) {
+ String errorMsg = "Error in terminating cartridge subscription, alias " + cartridgeSubscription.getAlias();
+ log.error(errorMsg);
+ throw new ADCException(errorMsg, e);
+
+ } catch (Exception e) {
+ String errorMsg = "Error in terminating cartridge subscription, alias " + cartridgeSubscription.getAlias();
+ log.error(errorMsg);
+ throw new ADCException(errorMsg, e);
+ }
+
+ log.info("Terminated all instances of " + cartridgeSubscription.getCluster().getClusterDomain() + " " +
+ cartridgeSubscription.getCluster().getClusterSubDomain());
+
+ try {
+ CloudControllerServiceClient.getServiceClient().unregisterService(cartridgeSubscription.getCluster().getClusterDomain());
+
+ } catch (Exception e) {
+ String errorMsg = "Error in unregistering service cluster with domain " + cartridgeSubscription.getCluster().getClusterDomain() +
+ ", sub domain " + cartridgeSubscription.getCluster().getClusterSubDomain();
+ log.error(errorMsg);
+ throw new ADCException(errorMsg, e);
+ }
+
+ log.info("Unregistered service cluster, domain " + cartridgeSubscription.getCluster().getClusterDomain() + ", sub domain " +
+ cartridgeSubscription.getCluster().getClusterSubDomain());
+ }
+
+ public PayloadArg createPayloadParameters(PayloadArg payloadArg) throws ADCException {
+
+
+ if(cartridgeSubscription.getRepository() != null) {
+ payloadArg.setRepoURL(cartridgeSubscription.getRepository().getUrl());
+ }
+ payloadArg.setHostName(cartridgeSubscription.getCluster().getHostName());
+ payloadArg.setServiceDomain(cartridgeSubscription.getCluster().getClusterDomain());
+ payloadArg.setServiceSubDomain(cartridgeSubscription.getCluster().getMgtClusterSubDomain());
+ payloadArg.setMgtServiceDomain(cartridgeSubscription.getCluster().getMgtClusterDomain());
+ payloadArg.setMgtServiceSubDomain(cartridgeSubscription.getCluster().getMgtClusterSubDomain());
+ if(cartridgeSubscription.getCartridgeInfo().getProvider().equals(CartridgeConstants.PROVIDER_NAME_WSO2)) {
+ payloadArg.setTenantRange(Integer.toString(cartridgeSubscription.getSubscriber().getTenantId()));
+ }
+ else {
+ payloadArg.setTenantRange("*");
+ }
+
+ return payloadArg;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/74d89849/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionTenancyBehaviour.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionTenancyBehaviour.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionTenancyBehaviour.java
new file mode 100644
index 0000000..eb073ce
--- /dev/null
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionTenancyBehaviour.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.stratos.adc.mgt.subscription.tenancy;
+
+import org.apache.stratos.adc.mgt.exception.ADCException;
+import org.apache.stratos.adc.mgt.exception.AlreadySubscribedException;
+import org.apache.stratos.adc.mgt.exception.NotSubscribedException;
+import org.apache.stratos.adc.mgt.exception.UnregisteredCartridgeException;
+import org.apache.stratos.adc.mgt.payload.PayloadArg;
+import org.apache.stratos.adc.mgt.subscription.AbstractCartridgeSubscription;
+
+public abstract class SubscriptionTenancyBehaviour {
+
+ protected AbstractCartridgeSubscription cartridgeSubscription;
+
+ public SubscriptionTenancyBehaviour(AbstractCartridgeSubscription cartridgeSubscription) {
+ this.cartridgeSubscription = cartridgeSubscription;
+ }
+
+ public abstract void createSubscription() throws ADCException, AlreadySubscribedException;
+
+ public abstract void registerSubscription() throws ADCException, UnregisteredCartridgeException;
+
+ public abstract void removeSubscription() throws ADCException, NotSubscribedException;
+
+ public abstract PayloadArg createPayloadParameters(PayloadArg payloadArg) throws ADCException;
+}
[3/6] git commit: Merge branch 'master' of
https://git-wip-us.apache.org/repos/asf/incubator-stratos into subscription
Posted by is...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/incubator-stratos into subscription
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/f7c8c0bc
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/f7c8c0bc
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/f7c8c0bc
Branch: refs/heads/master
Commit: f7c8c0bcaba59f11cacafe3f9085e72f859ae8a5
Parents: 0fbd464 c6829cd
Author: Isuru <is...@wso2.com>
Authored: Sat Dec 7 09:12:19 2013 +0530
Committer: Isuru <is...@wso2.com>
Committed: Sat Dec 7 09:12:19 2013 +0530
----------------------------------------------------------------------
.../adc/mgt/client/AutoscalerServiceClient.java | 101 +++++-
.../mgt/internal/TopologyMgtDSComponent.java | 4 +-
.../org.apache.stratos.autoscaler/pom.xml | 10 +-
.../stratos/autoscaler/ClusterContext.java | 6 +-
.../stratos/autoscaler/PartitionContext.java | 20 +-
.../autoscaler/api/AutoScalerServiceImpl.java | 71 ++++-
.../deployment/policy/DeploymentPolicy.java | 25 +-
.../interfaces/AutoScalerServiceInterface.java | 12 +
.../internal/AutoscalerActivator.java | 66 ----
.../internal/AutoscalerServerComponent.java | 31 +-
.../health/HealthEventMessageDelegator.java | 15 +-
.../autoscaler/partition/PartitionManager.java | 5 +-
.../autoscaler/registry/RegistryManager.java | 81 +++++
.../topology/AutoscalerTopologyReceiver.java | 308 +++++++++++++++++++
.../processors/AutoscalerTopologyReceiver.java | 304 ------------------
.../topology/processors/TopologyReceiver.java | 79 -----
.../autoscaler/util/AutoScalerConstants.java | 6 +
.../stratos/autoscaler/util/AutoscalerUtil.java | 6 +-
.../stratos/autoscaler/util/Serializer.java | 33 ++
.../autoscaler/util/ServiceReferenceHolder.java | 28 ++
.../common/topology/TopologyReceiver.java | 80 -----
.../extension/api/LoadBalancerExtension.java | 10 +-
.../balancer/LoadBalancerTopologyReceiver.java | 2 +-
.../event/topology/CompleteTopologyEvent.java | 4 +-
.../tenant/CompleteTenantMessageProcessor.java | 78 +++++
.../tenant/TenantCreatedMessageProcessor.java | 9 +-
.../tenant/TenantMessageProcessorChain.java | 74 +++++
.../tenant/TenantRemovedMessageProcessor.java | 9 +-
.../tenant/TenantUpdatedMessageProcessor.java | 9 +-
.../tenant/TenantEventMessageDelegator.java | 97 ++++++
.../tenant/TenantEventMessageListener.java | 55 ++++
.../tenant/TenantEventMessageQueue.java | 44 +++
.../message/receiver/tenant/TenantManager.java | 9 +
.../message/receiver/tenant/TenantReceiver.java | 78 +++++
.../topology/TopologyEventMessageDelegator.java | 6 +-
.../topology/TopologyEventMessageListener.java | 53 ++++
.../topology/TopologyEventMessageQueue.java | 45 +++
.../topology/TopologyEventMessageReceiver.java | 53 ----
.../receiver/topology/TopologyEventQueue.java | 45 ---
.../receiver/topology/TopologyReceiver.java | 78 +++++
.../stratos/messaging/util/Constants.java | 1 +
.../bean/util/converter/PojoConverter.java | 122 ++++++--
.../rest/endpoint/services/ServiceUtils.java | 121 +++++++-
.../rest/endpoint/services/StratosAdmin.java | 73 ++++-
products/autoscaler/modules/p2-profile/pom.xml | 29 +-
service-stubs/pom.xml | 1 +
46 files changed, 1696 insertions(+), 700 deletions(-)
----------------------------------------------------------------------
[6/6] git commit: Merge branch 'master' of
https://git-wip-us.apache.org/repos/asf/incubator-stratos into subscription
Posted by is...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/incubator-stratos into subscription
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/91970c3a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/91970c3a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/91970c3a
Branch: refs/heads/master
Commit: 91970c3ac34632e332bbed6b6daad193563623a7
Parents: 702d5ca aa550b6
Author: Isuru <is...@wso2.com>
Authored: Sat Dec 7 23:47:11 2013 +0530
Committer: Isuru <is...@wso2.com>
Committed: Sat Dec 7 23:47:11 2013 +0530
----------------------------------------------------------------------
components/org.apache.stratos.adc.mgt/pom.xml | 17 +-
.../internal/ADCManagementServerComponent.java | 61 +++++-
.../mgt/internal/ServiceReferenceHolder.java | 51 +++++
.../adc/mgt/publisher/TenantEventPublisher.java | 114 +++++++++++
.../TenantSynchronizerTaskScheduler.java | 76 +++++++
.../mgt/publisher/TenantSynzhronizerTask.java | 74 +++++++
.../service/ApplicationManagementService.java | 118 +++++++----
.../autoscaler/api/AutoScalerServiceImpl.java | 7 +-
.../exception/AutoScalerException.java | 37 ++++
.../autoscaler/partition/PartitionManager.java | 47 +++--
.../partition/deployers/PartitionDeployer.java | 14 +-
.../autoscaler/registry/RegistryManager.java | 21 +-
.../autoscaler/util/AutoScalerConstants.java | 2 +-
.../controller/topology/TopologyBuilder.java | 2 +-
.../topology/TopologyEventSender.java | 5 +-
.../common/listeners/TenantMgtListener.java | 2 +
.../keystore/mgt/KeystoreTenantMgtListener.java | 4 +
.../conf/LoadBalancerConfiguration.java | 202 ++++++++++++-------
.../conf/configurator/SynapseConfigurator.java | 4 +-
.../balancer/conf/domain/TenantIdentifier.java | 8 +
.../load/balancer/conf/util/Constants.java | 9 +-
.../internal/LoadBalancerServiceComponent.java | 19 +-
.../test/LoadBalancerConfigurationTest.java | 12 +-
.../sample/configuration/loadbalancer1.conf | 17 +-
.../sample/configuration/loadbalancer2.conf | 17 +-
.../sample/configuration/loadbalancer3.conf | 17 +-
.../stratos/messaging/domain/tenant/Tenant.java | 17 ++
.../messaging/domain/topology/Cluster.java | 23 +++
.../messaging/domain/topology/Service.java | 30 +--
.../messaging/domain/topology/ServiceType.java | 27 +++
.../event/tenant/CompleteTenantEvent.java | 42 ++++
.../event/tenant/TenantSubscribedEvent.java | 45 +++++
.../event/tenant/TenantUnSubscribedEvent.java | 45 +++++
.../event/topology/ClusterRemovedEvent.java | 12 +-
.../event/topology/ServiceCreatedEvent.java | 13 +-
.../tenant/CompleteTenantEventListener.java | 28 +++
.../tenant/TenantSubscribedEventListener.java | 28 +++
.../tenant/TenantUnSubscribedEventListener.java | 28 +++
.../tenant/CompleteTenantMessageProcessor.java | 14 +-
.../tenant/TenantCreatedMessageProcessor.java | 7 +-
.../tenant/TenantMessageProcessorChain.java | 7 +
.../tenant/TenantRemovedMessageProcessor.java | 7 +-
.../TenantSubscribedMessageProcessor.java | 88 ++++++++
.../TenantUnSubscribedMessageProcessor.java | 88 ++++++++
.../tenant/TenantUpdatedMessageProcessor.java | 7 +-
.../ClusterRemovedMessageProcessor.java | 9 +-
.../ServiceCreatedMessageProcessor.java | 2 +-
.../message/receiver/tenant/TenantManager.java | 7 +
.../sender/listener/EmailSenderListener.java | 10 +-
.../mgt/services/TenantMgtAdminService.java | 9 +
.../stratos/tenant/mgt/util/TenantMgtUtil.java | 9 +-
.../theme/mgt/util/ThemeLoadingListener.java | 20 +-
.../src/main/conf/loadbalancer.conf | 15 +-
.../config/lb/repository/conf/loadbalancer.conf | 6 +-
54 files changed, 1330 insertions(+), 270 deletions(-)
----------------------------------------------------------------------
[4/6] subscription model changes
Posted by is...@apache.org.
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/SingleTenantCartridgeSubscription.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/SingleTenantCartridgeSubscription.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/SingleTenantCartridgeSubscription.java
index 77caeac..f837fbd 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/SingleTenantCartridgeSubscription.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/SingleTenantCartridgeSubscription.java
@@ -1,136 +1,136 @@
-/*
- * 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.axis2.AxisFault;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.adc.mgt.client.CloudControllerServiceClient;
-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.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 SingleTenantCartridgeSubscription extends CartridgeSubscription {
-
- private static Log log = LogFactory.getLog(SingleTenantCartridgeSubscription.class);
-
-
- public SingleTenantCartridgeSubscription(CartridgeInfo cartridgeInfo) {
- super(cartridgeInfo);
- }
-
- @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);
- getCluster().setClusterDomain(alias + "." + getCluster().getHostName() + "." + getType() + ".domain");
- getCluster().setHostName(alias + "." + getCluster().getHostName());
- }
-
- @Override
- public CartridgeSubscriptionInfo registerSubscription(Properties payloadProperties)
- throws ADCException, UnregisteredCartridgeException {
-
- ApplicationManagementUtil.registerService(getType(),
- getCluster().getClusterDomain(),
- getCluster().getClusterSubDomain(),
- getPayload().createPayload(),
- getPayload().getPayloadArg().getTenantRange(),
- getCluster().getHostName(),
- null);
-
- getPayload().delete();
-
- 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 void removeSubscription() throws ADCException, NotSubscribedException {
-
- try {
- CloudControllerServiceClient.getServiceClient().terminateAllInstances(getCluster().getClusterDomain());
-
- } catch (AxisFault e) {
- String errorMsg = "Error in terminating cartridge subscription, alias " + getAlias();
- log.error(errorMsg);
- throw new ADCException(errorMsg, e);
-
- } catch (Exception e) {
- String errorMsg = "Error in terminating cartridge subscription, alias " + getAlias();
- log.error(errorMsg);
- throw new ADCException(errorMsg, e);
- }
-
- log.info("Terminated all instances of " + getCluster().getClusterDomain() + " " + getCluster().getClusterSubDomain());
-
- try {
- CloudControllerServiceClient.getServiceClient().unregisterService(getCluster().getClusterDomain());
-
- } catch (Exception e) {
- String errorMsg = "Error in unregistering service cluster with domain " + getCluster().getClusterDomain() +
- ", sub domain " + getCluster().getClusterSubDomain();
- log.error(errorMsg);
- throw new ADCException(errorMsg, e);
- }
-
- log.info("Unregistered service cluster, domain " + getCluster().getClusterDomain() + ", sub domain " +
- getCluster().getClusterSubDomain());
-
- super.cleanupSubscription();
- }
-
- @Override
- public PayloadArg createPayloadParameters()
- throws ADCException {
-
- PayloadArg payloadArg = super.createPayloadParameters();
- if(getRepository() != null) {
- payloadArg.setRepoURL(getRepository().getUrl());
- }
- payloadArg.setHostName(getCluster().getHostName());
- payloadArg.setServiceDomain(getCluster().getClusterDomain());
- payloadArg.setServiceSubDomain(getCluster().getMgtClusterSubDomain());
- payloadArg.setMgtServiceDomain(getCluster().getMgtClusterDomain());
- payloadArg.setMgtServiceSubDomain(getCluster().getMgtClusterSubDomain());
- if(getCartridgeInfo().getProvider().equals(CartridgeConstants.PROVIDER_NAME_WSO2)) {
- payloadArg.setTenantRange(Integer.toString(getSubscriber().getTenantId()));
- }
- else {
- payloadArg.setTenantRange("*");
- }
-
- return payloadArg;
- }
-}
+///*
+// * Licensed to the Apache Software Foundation (ASF) under one
+// * or more contributor license agreements. See the NOTICE file
+// * distributed with this work for additional information
+// * regarding copyright ownership. The ASF licenses this file
+// * to you under the Apache License, Version 2.0 (the
+// * "License"); you may not use this file except in compliance
+// * with the License. You may obtain a copy of the License at
+// *
+// * http://www.apache.org/licenses/LICENSE-2.0
+// *
+// * Unless required by applicable law or agreed to in writing,
+// * software distributed under the License is distributed on an
+// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// * KIND, either express or implied. See the License for the
+// * specific language governing permissions and limitations
+// * under the License.
+// */
+//
+//package org.apache.stratos.adc.mgt.subscription;
+//
+//import org.apache.axis2.AxisFault;
+//import org.apache.commons.logging.Log;
+//import org.apache.commons.logging.LogFactory;
+//import org.apache.stratos.adc.mgt.client.CloudControllerServiceClient;
+//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.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 SingleTenantCartridgeSubscription extends CartridgeSubscription {
+//
+// private static Log log = LogFactory.getLog(SingleTenantCartridgeSubscription.class);
+//
+//
+// public SingleTenantCartridgeSubscription(CartridgeInfo cartridgeInfo) {
+// super(cartridgeInfo);
+// }
+//
+// @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);
+// getCluster().setClusterDomain(alias + "." + getCluster().getHostName() + "." + getType() + ".domain");
+// getCluster().setHostName(alias + "." + getCluster().getHostName());
+// }
+//
+// @Override
+// public CartridgeSubscriptionInfo registerSubscription(Properties payloadProperties)
+// throws ADCException, UnregisteredCartridgeException {
+//
+// ApplicationManagementUtil.registerService(getType(),
+// getCluster().getClusterDomain(),
+// getCluster().getClusterSubDomain(),
+// getPayload().createPayload(),
+// getPayload().getPayloadArg().getTenantRange(),
+// getCluster().getHostName(),
+// null);
+//
+// getPayload().delete();
+//
+// 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 void removeSubscription() throws ADCException, NotSubscribedException {
+//
+// try {
+// CloudControllerServiceClient.getServiceClient().terminateAllInstances(getCluster().getClusterDomain());
+//
+// } catch (AxisFault e) {
+// String errorMsg = "Error in terminating cartridge subscription, alias " + getAlias();
+// log.error(errorMsg);
+// throw new ADCException(errorMsg, e);
+//
+// } catch (Exception e) {
+// String errorMsg = "Error in terminating cartridge subscription, alias " + getAlias();
+// log.error(errorMsg);
+// throw new ADCException(errorMsg, e);
+// }
+//
+// log.info("Terminated all instances of " + getCluster().getClusterDomain() + " " + getCluster().getClusterSubDomain());
+//
+// try {
+// CloudControllerServiceClient.getServiceClient().unregisterService(getCluster().getClusterDomain());
+//
+// } catch (Exception e) {
+// String errorMsg = "Error in unregistering service cluster with domain " + getCluster().getClusterDomain() +
+// ", sub domain " + getCluster().getClusterSubDomain();
+// log.error(errorMsg);
+// throw new ADCException(errorMsg, e);
+// }
+//
+// log.info("Unregistered service cluster, domain " + getCluster().getClusterDomain() + ", sub domain " +
+// getCluster().getClusterSubDomain());
+//
+// super.cleanupSubscription();
+// }
+//
+// @Override
+// public PayloadArg createPayloadParameters()
+// throws ADCException {
+//
+// PayloadArg payloadArg = super.createPayloadParameters();
+// if(getRepository() != null) {
+// payloadArg.setRepoURL(getRepository().getUrl());
+// }
+// payloadArg.setHostName(getCluster().getHostName());
+// payloadArg.setServiceDomain(getCluster().getClusterDomain());
+// payloadArg.setServiceSubDomain(getCluster().getMgtClusterSubDomain());
+// payloadArg.setMgtServiceDomain(getCluster().getMgtClusterDomain());
+// payloadArg.setMgtServiceSubDomain(getCluster().getMgtClusterSubDomain());
+// if(getCartridgeInfo().getProvider().equals(CartridgeConstants.PROVIDER_NAME_WSO2)) {
+// payloadArg.setTenantRange(Integer.toString(getSubscriber().getTenantId()));
+// }
+// else {
+// payloadArg.setTenantRange("*");
+// }
+//
+// return payloadArg;
+// }
+//}
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/factory/CartridgeSubscriptionFactory.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/factory/CartridgeSubscriptionFactory.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/factory/CartridgeSubscriptionFactory.java
index a3883d4..395d8bd 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/factory/CartridgeSubscriptionFactory.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/factory/CartridgeSubscriptionFactory.java
@@ -20,10 +20,7 @@
package org.apache.stratos.adc.mgt.subscription.factory;
import org.apache.stratos.adc.mgt.exception.ADCException;
-import org.apache.stratos.adc.mgt.subscription.CartridgeSubscription;
-import org.apache.stratos.adc.mgt.subscription.DataCartridgeSubscription;
-import org.apache.stratos.adc.mgt.subscription.MultiTenantCartridgeSubscription;
-import org.apache.stratos.adc.mgt.subscription.SingleTenantCartridgeSubscription;
+import org.apache.stratos.adc.mgt.subscription.*;
import org.apache.stratos.adc.mgt.utils.CartridgeConstants;
import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
@@ -36,7 +33,7 @@ public class CartridgeSubscriptionFactory {
* @return CartridgeSubscription subscription
* @throws ADCException if no matching criteria is there to create a CartridgeSubscription object
*/
- public static CartridgeSubscription getCartridgeSubscriptionInstance(CartridgeInfo cartridgeInfo)
+ /*public static CartridgeSubscription getCartridgeSubscriptionInstance(CartridgeInfo cartridgeInfo)
throws ADCException {
CartridgeSubscription cartridgeSubscription = null;
@@ -60,5 +57,31 @@ public class CartridgeSubscriptionFactory {
}
return cartridgeSubscription;
+ }*/
+
+ public static CartridgeSubscription getCartridgeSubscriptionInstance(CartridgeInfo cartridgeInfo)
+ throws ADCException {
+
+ //TODO: fix the logic properly
+ CartridgeSubscription cartridgeSubscription = null;
+ if(cartridgeInfo.getMultiTenant()) {
+ cartridgeSubscription = new FrameworkCartridgeSubscription(cartridgeInfo);
+
+ } else {
+ if(cartridgeInfo.getProvider().equals(CartridgeConstants.DATA_CARTRIDGE_PROVIDER)) {
+ cartridgeSubscription = new DataCartridgeSubscription(cartridgeInfo);
+ }
+ else {
+ //cartridgeSubscription = new SingleTenantCartridgeSubscription(cartridgeInfo);
+ cartridgeSubscription = new FrameworkCartridgeSubscription(cartridgeInfo);
+ }
+ }
+
+ if(cartridgeSubscription == null) {
+ throw new ADCException("Unable to create a CartridgeSubscription subscription for "
+ + cartridgeInfo);
+ }
+
+ return 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/tenancy/SubscriptionMultiTenantBehaviour.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionMultiTenantBehaviour.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionMultiTenantBehaviour.java
index fbf63d2..7d7122c 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionMultiTenantBehaviour.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionMultiTenantBehaviour.java
@@ -27,7 +27,7 @@ import org.apache.stratos.adc.mgt.exception.NotSubscribedException;
import org.apache.stratos.adc.mgt.exception.UnregisteredCartridgeException;
import org.apache.stratos.adc.mgt.internal.DataHolder;
import org.apache.stratos.adc.mgt.payload.PayloadArg;
-import org.apache.stratos.adc.mgt.subscription.AbstractCartridgeSubscription;
+import org.apache.stratos.adc.mgt.subscription.CartridgeSubscription;
import org.apache.stratos.adc.mgt.utils.CartridgeConstants;
import org.apache.stratos.adc.mgt.utils.PersistenceManager;
import org.apache.stratos.adc.topology.mgt.service.TopologyManagementService;
@@ -39,7 +39,7 @@ public class SubscriptionMultiTenantBehaviour extends SubscriptionTenancyBehavio
private static Log log = LogFactory.getLog(SubscriptionMultiTenantBehaviour.class);
- public SubscriptionMultiTenantBehaviour(AbstractCartridgeSubscription cartridgeSubscription) {
+ public SubscriptionMultiTenantBehaviour(CartridgeSubscription cartridgeSubscription) {
super(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/tenancy/SubscriptionSingleTenantBehaviour.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionSingleTenantBehaviour.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionSingleTenantBehaviour.java
index 02807e3..4f185c1 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionSingleTenantBehaviour.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionSingleTenantBehaviour.java
@@ -28,7 +28,7 @@ import org.apache.stratos.adc.mgt.exception.AlreadySubscribedException;
import org.apache.stratos.adc.mgt.exception.NotSubscribedException;
import org.apache.stratos.adc.mgt.exception.UnregisteredCartridgeException;
import org.apache.stratos.adc.mgt.payload.PayloadArg;
-import org.apache.stratos.adc.mgt.subscription.AbstractCartridgeSubscription;
+import org.apache.stratos.adc.mgt.subscription.CartridgeSubscription;
import org.apache.stratos.adc.mgt.utils.ApplicationManagementUtil;
import org.apache.stratos.adc.mgt.utils.CartridgeConstants;
@@ -38,7 +38,7 @@ public class SubscriptionSingleTenantBehaviour extends SubscriptionTenancyBehavi
private static Log log = LogFactory.getLog(SubscriptionSingleTenantBehaviour.class);
- public SubscriptionSingleTenantBehaviour(AbstractCartridgeSubscription cartridgeSubscription) {
+ public SubscriptionSingleTenantBehaviour(CartridgeSubscription cartridgeSubscription) {
super(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/tenancy/SubscriptionTenancyBehaviour.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionTenancyBehaviour.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionTenancyBehaviour.java
index d0e1b7b..633a05d 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionTenancyBehaviour.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionTenancyBehaviour.java
@@ -24,18 +24,26 @@ import org.apache.stratos.adc.mgt.exception.AlreadySubscribedException;
import org.apache.stratos.adc.mgt.exception.NotSubscribedException;
import org.apache.stratos.adc.mgt.exception.UnregisteredCartridgeException;
import org.apache.stratos.adc.mgt.payload.PayloadArg;
-import org.apache.stratos.adc.mgt.subscription.AbstractCartridgeSubscription;
+import org.apache.stratos.adc.mgt.subscription.CartridgeSubscription;
import java.util.Properties;
public abstract class SubscriptionTenancyBehaviour {
- protected AbstractCartridgeSubscription cartridgeSubscription;
+ protected CartridgeSubscription cartridgeSubscription;
- public SubscriptionTenancyBehaviour(AbstractCartridgeSubscription cartridgeSubscription) {
+ public SubscriptionTenancyBehaviour(CartridgeSubscription cartridgeSubscription) {
this.cartridgeSubscription = cartridgeSubscription;
}
+ public void setCartridgeSubscription (CartridgeSubscription cartridgeSubscription) {
+ this.cartridgeSubscription = cartridgeSubscription;
+ }
+
+ public CartridgeSubscription getCartridgeSubscription () {
+ return cartridgeSubscription;
+ }
+
public abstract void createSubscription() throws ADCException, AlreadySubscribedException;
public abstract void registerSubscription(Properties properties) throws ADCException, UnregisteredCartridgeException;
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/702d5ca1/components/org.apache.stratos.adc.mgt/src/test/java/org/apache/stratos/adc/mgt/test/CartridgeSubscriptionTest.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/test/java/org/apache/stratos/adc/mgt/test/CartridgeSubscriptionTest.java b/components/org.apache.stratos.adc.mgt/src/test/java/org/apache/stratos/adc/mgt/test/CartridgeSubscriptionTest.java
index 9471635..d0929d5 100644
--- a/components/org.apache.stratos.adc.mgt/src/test/java/org/apache/stratos/adc/mgt/test/CartridgeSubscriptionTest.java
+++ b/components/org.apache.stratos.adc.mgt/src/test/java/org/apache/stratos/adc/mgt/test/CartridgeSubscriptionTest.java
@@ -20,7 +20,6 @@
package org.apache.stratos.adc.mgt.test;
import junit.framework.TestCase;
-
import org.apache.stratos.adc.mgt.exception.ADCException;
import org.apache.stratos.adc.mgt.subscription.CartridgeSubscription;
import org.apache.stratos.adc.mgt.subscription.factory.CartridgeSubscriptionFactory;
[2/6] git commit: subscription models changes
Posted by is...@apache.org.
subscription models 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/0fbd464c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/0fbd464c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/0fbd464c
Branch: refs/heads/master
Commit: 0fbd464c61aea255b1dca4505f9579301154d274
Parents: 74d8984
Author: Isuru <is...@wso2.com>
Authored: Fri Dec 6 16:41:10 2013 +0530
Committer: Isuru <is...@wso2.com>
Committed: Fri Dec 6 16:41:10 2013 +0530
----------------------------------------------------------------------
.../ApplicationCartridgeSubscription.java | 45 ++++++++--
.../DataCartridgeSubscription1.java | 94 ++++++++++++++++++--
.../FrameworkCartridgeSubscription.java | 2 +-
.../SubscriptionMultiTenantBehaviour.java | 4 +-
.../SubscriptionSingleTenantBehaviour.java | 6 +-
.../tenancy/SubscriptionTenancyBehaviour.java | 4 +-
6 files changed, 139 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0fbd464c/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 aa49ac7..4a6c0e5 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
@@ -20,9 +20,12 @@
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.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.cloud.controller.pojo.CartridgeInfo;
import java.util.Properties;
@@ -39,13 +42,45 @@ public class ApplicationCartridgeSubscription extends AbstractCartridgeSubscript
super(cartridgeInfo);
}
+ 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();
+ }
+
@Override
public CartridgeSubscriptionInfo registerSubscription(Properties properties) throws ADCException, UnregisteredCartridgeException {
- return null; //To change body of implemented methods use File | Settings | File Templates.
+
+ subscriptionTenancyBehaviour.registerSubscription(null);
+
+ 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());
+ }
+
+ public Repository manageRepository (String repoURL, String repoUserName, String repoUserPassword,
+ boolean privateRepo, String cartridgeAlias, CartridgeInfo cartridgeInfo,
+ String tenantDomain) {
+
+ //no repository for application cartridge instances
+ return null;
}
@Override
public void removeSubscription() throws ADCException, NotSubscribedException {
- //To change body of implemented methods use File | Settings | File Templates.
+
+ subscriptionTenancyBehaviour.removeSubscription();
+ super.cleanupSubscription();
+ }
+
+ public PayloadArg createPayloadParameters () throws ADCException {
+
+ PayloadArg payloadArg = super.createPayloadParameters();
+ return subscriptionTenancyBehaviour.createPayloadParameters(payloadArg);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0fbd464c/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
index 74f299a..6f5401f 100644
--- 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
@@ -20,31 +20,113 @@
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.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 CartridgeSubscriptionInfo registerSubscription(Properties properties) throws ADCException, UnregisteredCartridgeException {
- return null; //To change body of implemented methods use File | Settings | File Templates.
+ 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 {
- //To change body of implemented methods use File | Settings | File Templates.
+
+ 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/0fbd464c/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 6552fa9..668ff55 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
@@ -55,7 +55,7 @@ public class FrameworkCartridgeSubscription extends AbstractCartridgeSubscriptio
@Override
public CartridgeSubscriptionInfo registerSubscription(Properties properties) throws ADCException, UnregisteredCartridgeException {
- subscriptionTenancyBehaviour.registerSubscription();
+ subscriptionTenancyBehaviour.registerSubscription(null);
return ApplicationManagementUtil.createCartridgeSubscription(getCartridgeInfo(), getAutoscalingPolicy(),
getType(), getAlias(), getSubscriber().getTenantId(), getSubscriber().getTenantDomain(),
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0fbd464c/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionMultiTenantBehaviour.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionMultiTenantBehaviour.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionMultiTenantBehaviour.java
index c441036..fbf63d2 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionMultiTenantBehaviour.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionMultiTenantBehaviour.java
@@ -33,6 +33,8 @@ 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 java.util.Properties;
+
public class SubscriptionMultiTenantBehaviour extends SubscriptionTenancyBehaviour {
private static Log log = LogFactory.getLog(SubscriptionMultiTenantBehaviour.class);
@@ -97,7 +99,7 @@ public class SubscriptionMultiTenantBehaviour extends SubscriptionTenancyBehavio
}
}
- public void registerSubscription() throws ADCException, UnregisteredCartridgeException {
+ public void registerSubscription(Properties properties) throws ADCException, UnregisteredCartridgeException {
//nothing to do
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0fbd464c/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionSingleTenantBehaviour.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionSingleTenantBehaviour.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionSingleTenantBehaviour.java
index 263c1d6..02807e3 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionSingleTenantBehaviour.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionSingleTenantBehaviour.java
@@ -32,6 +32,8 @@ import org.apache.stratos.adc.mgt.subscription.AbstractCartridgeSubscription;
import org.apache.stratos.adc.mgt.utils.ApplicationManagementUtil;
import org.apache.stratos.adc.mgt.utils.CartridgeConstants;
+import java.util.Properties;
+
public class SubscriptionSingleTenantBehaviour extends SubscriptionTenancyBehaviour {
private static Log log = LogFactory.getLog(SubscriptionSingleTenantBehaviour.class);
@@ -49,7 +51,7 @@ public class SubscriptionSingleTenantBehaviour extends SubscriptionTenancyBehavi
cartridgeSubscription.getCluster().getHostName());
}
- public void registerSubscription() throws ADCException, UnregisteredCartridgeException {
+ public void registerSubscription(Properties properties) throws ADCException, UnregisteredCartridgeException {
ApplicationManagementUtil.registerService(cartridgeSubscription.getType(),
cartridgeSubscription.getCluster().getClusterDomain(),
@@ -57,7 +59,7 @@ public class SubscriptionSingleTenantBehaviour extends SubscriptionTenancyBehavi
cartridgeSubscription.getPayload().createPayload(),
cartridgeSubscription.getPayload().getPayloadArg().getTenantRange(),
cartridgeSubscription.getCluster().getHostName(),
- null);
+ properties);
cartridgeSubscription.getPayload().delete();
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0fbd464c/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionTenancyBehaviour.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionTenancyBehaviour.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionTenancyBehaviour.java
index eb073ce..d0e1b7b 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionTenancyBehaviour.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscription/tenancy/SubscriptionTenancyBehaviour.java
@@ -26,6 +26,8 @@ import org.apache.stratos.adc.mgt.exception.UnregisteredCartridgeException;
import org.apache.stratos.adc.mgt.payload.PayloadArg;
import org.apache.stratos.adc.mgt.subscription.AbstractCartridgeSubscription;
+import java.util.Properties;
+
public abstract class SubscriptionTenancyBehaviour {
protected AbstractCartridgeSubscription cartridgeSubscription;
@@ -36,7 +38,7 @@ public abstract class SubscriptionTenancyBehaviour {
public abstract void createSubscription() throws ADCException, AlreadySubscribedException;
- public abstract void registerSubscription() throws ADCException, UnregisteredCartridgeException;
+ public abstract void registerSubscription(Properties properties) throws ADCException, UnregisteredCartridgeException;
public abstract void removeSubscription() throws ADCException, NotSubscribedException;
[5/6] git commit: subscription model changes
Posted by is...@apache.org.
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;
+// }
+//
+//}