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;
