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:20 UTC
[4/6] subscription model changes
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;