Updated Branches: refs/heads/master 522db6033 -> aebdb0879
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ba14b09f/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/persistence/PersistenceManager.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/persistence/PersistenceManager.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/persistence/PersistenceManager.java index c28f265..1e8936a 100644 --- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/persistence/PersistenceManager.java +++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/persistence/PersistenceManager.java @@ -19,10 +19,7 @@ package org.apache.stratos.adc.mgt.persistence; -import org.apache.stratos.adc.mgt.dao.Cluster; -import org.apache.stratos.adc.mgt.dao.DataCartridge; import org.apache.stratos.adc.mgt.exception.PersistenceManagerException; -import org.apache.stratos.adc.mgt.repository.Repository; import org.apache.stratos.adc.mgt.subscription.CartridgeSubscription; import java.util.List; @@ -41,7 +38,10 @@ public abstract class PersistenceManager { public abstract List<CartridgeSubscription> getCartridgeSubscriptions(int tenantId) throws PersistenceManagerException; - public abstract List<CartridgeSubscription> getCartridgeSubscriptions(int tenantId, String cartridgeType) + public abstract CartridgeSubscription getCartridgeSubscription (String clusterDomain) + throws PersistenceManagerException; + + /*public abstract List<CartridgeSubscription> getCartridgeSubscriptions(int tenantId, String cartridgeType) throws PersistenceManagerException; public abstract Repository getRepository (int tenantId, String alias) @@ -75,5 +75,5 @@ public abstract class PersistenceManager { throws PersistenceManagerException; public abstract void updateServiceStatus (int tenantId, String cartridgeAlias, String newStatus) - throws PersistenceManagerException; + throws PersistenceManagerException; */ } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ba14b09f/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/persistence/RegistryBasedPersistenceManager.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/persistence/RegistryBasedPersistenceManager.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/persistence/RegistryBasedPersistenceManager.java new file mode 100644 index 0000000..e69585c --- /dev/null +++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/persistence/RegistryBasedPersistenceManager.java @@ -0,0 +1,53 @@ +/* + * 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.persistence; + +import org.apache.stratos.adc.mgt.exception.PersistenceManagerException; +import org.apache.stratos.adc.mgt.subscription.CartridgeSubscription; + +import java.util.List; + +public class RegistryBasedPersistenceManager extends PersistenceManager { + + @Override + public void persistCartridgeSubscription(CartridgeSubscription cartridgeSubscription) throws PersistenceManagerException { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void removeCartridgeSubscription(int tenantId, String alias) throws PersistenceManagerException { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public CartridgeSubscription getCartridgeSubscription(int tenantId, String alias) throws PersistenceManagerException { + return null; //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public List<CartridgeSubscription> getCartridgeSubscriptions(int tenantId) throws PersistenceManagerException { + return null; //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public CartridgeSubscription getCartridgeSubscription(String clusterDomain) throws PersistenceManagerException { + return null; //To change body of implemented methods use File | Settings | File Templates. + } +} http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ba14b09f/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/repository/Repository.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/repository/Repository.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/repository/Repository.java index dbd532e..82dc818 100644 --- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/repository/Repository.java +++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/repository/Repository.java @@ -19,7 +19,9 @@ package org.apache.stratos.adc.mgt.repository; -public class Repository { +import java.io.Serializable; + +public class Repository implements Serializable { private int id; private String url; http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ba14b09f/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/retriever/DataRetrievalManager.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/retriever/DataRetrievalManager.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/retriever/DataRetrievalManager.java new file mode 100644 index 0000000..11093d3 --- /dev/null +++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/retriever/DataRetrievalManager.java @@ -0,0 +1,157 @@ +/* + * 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.retriever; + +import org.apache.stratos.adc.mgt.exception.PersistenceManagerException; +import org.apache.stratos.adc.mgt.lookup.LookupDataHolder; +import org.apache.stratos.adc.mgt.persistence.PersistenceManager; +import org.apache.stratos.adc.mgt.subscription.CartridgeSubscription; +import org.jgroups.logging.Log; +import org.jgroups.logging.LogFactory; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +public class DataRetrievalManager { + + private static final Log log = LogFactory.getLog(DataRetrievalManager.class); + + private PersistenceManager persistenceManager; + private LookupDataHolder lookupDataHolder; + private ExecutorService cartridgeSubscriptionUpdateThreadPool = null; + + public DataRetrievalManager (PersistenceManager persistenceManager, LookupDataHolder lookupDataHolder) { + this.persistenceManager = persistenceManager; + this.lookupDataHolder = lookupDataHolder; + cartridgeSubscriptionUpdateThreadPool = Executors.newCachedThreadPool(); + } + + public CartridgeSubscription getCartridgeSubscription (int tenantId, String subscriptionAlias) + throws PersistenceManagerException { + + CartridgeSubscription cartridgeSubscription = null; + + if(lookupDataHolder != null) { + //look in the local cache + cartridgeSubscription = lookupDataHolder.getCartridgeSubscription(tenantId, subscriptionAlias); + } + //if not found in the local cache, look in the Persistence Manager + if (cartridgeSubscription == null) { + persistenceManager.getCartridgeSubscription(tenantId, subscriptionAlias); + } else { + if(log.isDebugEnabled()) { + log.debug("Cartridge subscription entry for tenant Id " + tenantId + ", subscription alias " + + subscriptionAlias + " found in the local cache"); + } + } + + return cartridgeSubscription; + } + + public CartridgeSubscription getCartridgeSubscription (String clusterId) + throws PersistenceManagerException { + + CartridgeSubscription cartridgeSubscription = null; + + if(lookupDataHolder != null) { + //look in the local cache + cartridgeSubscription = lookupDataHolder.getCartridgeSubscription(clusterId); + } + //if not found in the local cache, look in the Persistence Manager + if (cartridgeSubscription == null) { + persistenceManager.getCartridgeSubscription(clusterId); + + } else { + if(log.isDebugEnabled()) { + log.debug("Cartridge subscription entry for cluster domain " + clusterId + + " found in the local cache"); + } + } + + return cartridgeSubscription; + } + + public List<CartridgeSubscription> getCartridgeSubscriptions (int tenantId) throws PersistenceManagerException { + + Collection<CartridgeSubscription> cartridgeSubscriptionCollection = null; + + if(lookupDataHolder != null) { + //look in the local cache + cartridgeSubscriptionCollection = lookupDataHolder.getCartridgeSubscriptions(tenantId); + } + //if not found in the local cache, look in the Persistence Manager + if (cartridgeSubscriptionCollection == null) { + persistenceManager.getCartridgeSubscriptions(tenantId); + + } else { + if(log.isDebugEnabled()) { + log.debug("Cartridge subscription entries for tenant " + tenantId + + " found in the local cache"); + } + } + + List<CartridgeSubscription> cartridgeSubscriptionList = new ArrayList<CartridgeSubscription>(); + for (CartridgeSubscription cartridgeSubscription : cartridgeSubscriptionCollection) { + cartridgeSubscriptionList.add(cartridgeSubscription); + } + + return cartridgeSubscriptionList; + } + + public void putCartridgeSubscription (CartridgeSubscription cartridgeSubscription) { + + cartridgeSubscriptionUpdateThreadPool.submit(new CartridgeSubscriptionUpdater(cartridgeSubscription, + lookupDataHolder, persistenceManager)); + } + + private class CartridgeSubscriptionUpdater implements Runnable { + + CartridgeSubscription cartridgeSubscription; + LookupDataHolder lookupDataHolder; + PersistenceManager persistenceManager; + + public CartridgeSubscriptionUpdater (CartridgeSubscription cartridgeSubscription, LookupDataHolder + lookupDataHolder, PersistenceManager persistenceManager) { + + this.cartridgeSubscription = cartridgeSubscription; + this.lookupDataHolder = lookupDataHolder; + this.persistenceManager = persistenceManager; + } + + public void run() { + + if(lookupDataHolder != null) { + lookupDataHolder.addCartridgeSubscription(cartridgeSubscription.getSubscriber().getTenantId(), + cartridgeSubscription.getAlias(), cartridgeSubscription); + } + try { + persistenceManager.persistCartridgeSubscription(cartridgeSubscription); + + } catch (PersistenceManagerException e) { + String errorMsg = "Error in persisting Cartridge Subscription instance"; + log.error(errorMsg, e); + } + } + } + +} http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ba14b09f/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscriber/Subscriber.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscriber/Subscriber.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscriber/Subscriber.java index 54a636b..2145b6a 100644 --- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscriber/Subscriber.java +++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/subscriber/Subscriber.java @@ -19,7 +19,9 @@ package org.apache.stratos.adc.mgt.subscriber; -public class Subscriber { +import java.io.Serializable; + +public class Subscriber implements Serializable { private String adminUserName; private int tenantId; http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ba14b09f/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 567ffb7..dae407e 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 @@ -39,11 +39,12 @@ 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.io.Serializable; import java.util.ArrayList; import java.util.List; import java.util.Properties; -public abstract class CartridgeSubscription { +public abstract class CartridgeSubscription implements Serializable { private static Log log = LogFactory.getLog(CartridgeSubscription.class); private int subscriptionId; @@ -57,6 +58,7 @@ public abstract class CartridgeSubscription { private Payload payload; private Cluster cluster; private String subscriptionStatus; + private String serviceStatus; private String mappedDomain; private List<String> connectedSubscriptionAliases; private String subscriptionKey; @@ -447,4 +449,12 @@ public abstract class CartridgeSubscription { public void setDeploymentPolicyName(String deploymentPolicyName) { this.deploymentPolicyName = deploymentPolicyName; } + + public String getServiceStatus() { + return serviceStatus; + } + + public void setServiceStatus(String serviceStatus) { + this.serviceStatus = serviceStatus; + } } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/ba14b09f/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 633a05d..3533fc1 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,9 +26,10 @@ import org.apache.stratos.adc.mgt.exception.UnregisteredCartridgeException; import org.apache.stratos.adc.mgt.payload.PayloadArg; import org.apache.stratos.adc.mgt.subscription.CartridgeSubscription; +import java.io.Serializable; import java.util.Properties; -public abstract class SubscriptionTenancyBehaviour { +public abstract class SubscriptionTenancyBehaviour implements Serializable { protected CartridgeSubscription cartridgeSubscription;
