Updated Branches: refs/heads/master f7dab5f83 -> 6fdb07704
fixing a caching issue and adding test case for caching Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/b0110aa2 Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/b0110aa2 Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/b0110aa2 Branch: refs/heads/master Commit: b0110aa24fa04e6aa7d05887bad09e7b79eb0eef Parents: 87f8d5d Author: Isuru <[email protected]> Authored: Sat Jan 18 23:50:15 2014 +0530 Committer: Isuru <[email protected]> Committed: Sat Jan 18 23:50:15 2014 +0530 ---------------------------------------------------------------------- .../listener/InstanceStatusListener.java | 2 +- .../manager/lookup/ClusterIdToSubscription.java | 5 +- .../manager/lookup/LookupDataHolder.java | 11 +- .../manager/lookup/SubscriptionContext.java | 7 +- .../lookup/TenantIdToSubscriptionContext.java | 2 +- .../manager/CartridgeSubscriptionManager.java | 6 +- .../DatabaseBasedPersistenceManager.java | 2 +- .../manager/persistence/PersistenceManager.java | 4 +- .../RegistryBasedPersistenceManager.java | 4 +- .../DataInsertionAndRetrievalManager.java | 51 +++- .../service/ApplicationManagementService.java | 2 +- .../StratosManagerTopologyReceiver.java | 2 +- .../manager/test/CartridgeSubscriptionTest.java | 72 +++-- .../manager/test/LookupDataHolderTest.java | 282 +++++++++++++++++++ .../stratos/manager/test/PolicyHolderTest.java | 168 +++++------ 15 files changed, 488 insertions(+), 132 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b0110aa2/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/listener/InstanceStatusListener.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/listener/InstanceStatusListener.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/listener/InstanceStatusListener.java index e371854..722a829 100644 --- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/listener/InstanceStatusListener.java +++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/listener/InstanceStatusListener.java @@ -71,7 +71,7 @@ public class InstanceStatusListener implements MessageListener { ". Not sending the Depsync event"); }*/ //////////////////////////////////////////////////////////////////////////////////////////////////////////////// - Set<CartridgeSubscription> cartridgeSubscriptions = new DataInsertionAndRetrievalManager().getCartridgeSubscription(clusterId); + Set<CartridgeSubscription> cartridgeSubscriptions = new DataInsertionAndRetrievalManager().getCartridgeSubscriptionForCluster(clusterId); if (cartridgeSubscriptions == null || cartridgeSubscriptions.isEmpty()) { // No subscriptions, return if (log.isDebugEnabled()) { http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b0110aa2/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lookup/ClusterIdToSubscription.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lookup/ClusterIdToSubscription.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lookup/ClusterIdToSubscription.java index 562c682..1dffdd0 100644 --- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lookup/ClusterIdToSubscription.java +++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lookup/ClusterIdToSubscription.java @@ -60,6 +60,9 @@ public class ClusterIdToSubscription implements Serializable { Set<CartridgeSubscription> subscriptions = new HashSet<CartridgeSubscription>(); subscriptions.add(cartridgeSubscription); clusterIdToCartridgeSubscription.put(clusterDomain, subscriptions); + if(log.isDebugEnabled()) { + log.debug("Added Cartridge Subscription for cluster id " + clusterDomain + " in [Cluster Id -> Set<CartridgeSubscription>] map"); + } } } @@ -94,7 +97,7 @@ public class ClusterIdToSubscription implements Serializable { } // if the Subscriptions set is empty now, remove it from cartridgeTypeToSubscriptions map - if (existingSubscriptions != null && existingSubscriptions.isEmpty()) { + if (existingSubscriptions == null || existingSubscriptions.isEmpty()) { clusterIdToCartridgeSubscription.remove(clusterId); if (log.isDebugEnabled()) { log.debug("Deleted the subscriptions set for cluster id " + clusterId + " from [Cluster Id -> Set<CartridgeSubscription>] map"); http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b0110aa2/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lookup/LookupDataHolder.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lookup/LookupDataHolder.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lookup/LookupDataHolder.java index 7598013..845946c 100644 --- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lookup/LookupDataHolder.java +++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lookup/LookupDataHolder.java @@ -73,9 +73,15 @@ public class LookupDataHolder implements Serializable { // check if an existing SubscriptionContext is available SubscriptionContext existingSubscriptionCtx = tenantIdToSubscriptionContext.getSubscriptionContext(cartridgeSubscription.getSubscriber().getTenantId()); if(existingSubscriptionCtx != null) { + if (log.isDebugEnabled()) { + log.debug("Existing SubscriptionContext found for tenant " + cartridgeSubscription.getSubscriber().getTenantId()); + } existingSubscriptionCtx.addSubscription(cartridgeSubscription); } else { + if (log.isDebugEnabled()) { + log.debug("Existing SubscriptionContext not found for tenant " + cartridgeSubscription.getSubscriber().getTenantId()); + } //create a new subscription context and add the subscription SubscriptionContext subscriptionContext = new SubscriptionContext(); subscriptionContext.addSubscription(cartridgeSubscription); @@ -103,7 +109,7 @@ public class LookupDataHolder implements Serializable { for (SubscriptionContext subscriptionContext : subscriptionContexts) { // check if CartridgeSubscriptions exist for the given type, in each SubscriptionContext instance Collection<CartridgeSubscription> cartridgeSubscriptionsOfType = subscriptionContext.getSubscriptionsOfType(cartridgeType); - if (cartridgeSubscriptionsOfType != null && !cartridgeSubscriptions.isEmpty()) { + if (cartridgeSubscriptionsOfType != null && !cartridgeSubscriptionsOfType.isEmpty()) { // collect the relevant CartridgeSubscriptions cartridgeSubscriptions.addAll(cartridgeSubscriptionsOfType); } @@ -140,6 +146,9 @@ public class LookupDataHolder implements Serializable { SubscriptionContext subscriptionContext = tenantIdToSubscriptionContext.getSubscriptionContext(tenantId); if (subscriptionContext == null) { // no subscriptions + if (log.isDebugEnabled()) { + log.debug("No SubscriptionContext found for tenant " + tenantId + ", subscription alias " + subscriptionAlias); + } return null; } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b0110aa2/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lookup/SubscriptionContext.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lookup/SubscriptionContext.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lookup/SubscriptionContext.java index 8b59af7..502bbba 100644 --- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lookup/SubscriptionContext.java +++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lookup/SubscriptionContext.java @@ -113,7 +113,7 @@ public class SubscriptionContext implements Serializable { } // if the Subscriptions set is empty now, remove it from cartridgeTypeToSubscriptions map - if (existingSubscriptions != null && existingSubscriptions.isEmpty()) { + if (existingSubscriptions == null || existingSubscriptions.isEmpty()) { cartridgeTypeToSubscriptions.remove(type); if (log.isDebugEnabled()) { log.debug("Deleted the subscriptions set for type " + type + " from [Type -> Set<CartridgeSubscription>] map"); @@ -128,4 +128,9 @@ public class SubscriptionContext implements Serializable { } } + public boolean isEmpty () { + + return cartridgeTypeToSubscriptions.isEmpty() && aliasToSubscription.isEmpty(); + } + } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b0110aa2/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lookup/TenantIdToSubscriptionContext.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lookup/TenantIdToSubscriptionContext.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lookup/TenantIdToSubscriptionContext.java index c6f14c6..0912d83 100644 --- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lookup/TenantIdToSubscriptionContext.java +++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lookup/TenantIdToSubscriptionContext.java @@ -59,7 +59,7 @@ public class TenantIdToSubscriptionContext { subscriptionContext.deleteSubscription(type, subscriptionAlias); // delete the SubscriptionContext instance for the tenant if it carries no information - if (subscriptionContext.getSubscriptionsOfType(type) == null && subscriptionContext.getSubscriptionForAlias(subscriptionAlias) == null) { + if (subscriptionContext.isEmpty()) { tenantIdToSubscriptionContext.remove(tenantId); if (log.isDebugEnabled()) { log.debug("Deleted the subscriptionContext instance for tenant " + tenantId); http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b0110aa2/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java index ce0cfc2..ab4ffa0 100644 --- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java +++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java @@ -263,7 +263,7 @@ public class CartridgeSubscriptionManager { // // //TODO: retrieve from the cache and connect. For now, new objects are created // -// CartridgeSubscription connectingCartridgeSubscription = getCartridgeSubscription(tenantDomain, +// CartridgeSubscription connectingCartridgeSubscription = getCartridgeSubscriptionForCluster(tenantDomain, // connectingSubscriptionAlias); // // if(cartridgeSubscription == null) { @@ -389,7 +389,7 @@ public class CartridgeSubscriptionManager { throws ADCException, NotSubscribedException { //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - /*CartridgeSubscription cartridgeSubscription = getCartridgeSubscription(tenantDomain, alias); + /*CartridgeSubscription cartridgeSubscription = getCartridgeSubscriptionForCluster(tenantDomain, alias); if(cartridgeSubscription != null) { cartridgeSubscription.removeSubscription(); @@ -457,7 +457,7 @@ public class CartridgeSubscriptionManager { * @throws ADCException * @throws NotSubscribedException */ - /*public CartridgeSubscription getCartridgeSubscription(String tenantDomain, String alias) + /*public CartridgeSubscription getCartridgeSubscriptionForCluster(String tenantDomain, String alias) throws ADCException, NotSubscribedException { CartridgeSubscriptionInfo cartridgeSubscriptionInfo = getCartridgeSubscriptionInfo(tenantDomain, alias); http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b0110aa2/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/persistence/DatabaseBasedPersistenceManager.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/persistence/DatabaseBasedPersistenceManager.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/persistence/DatabaseBasedPersistenceManager.java index 2bea672..9305054 100644 --- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/persistence/DatabaseBasedPersistenceManager.java +++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/persistence/DatabaseBasedPersistenceManager.java @@ -384,7 +384,7 @@ // } // // @Override -// public CartridgeSubscription getCartridgeSubscription(int tenantId, String alias) throws PersistenceManagerException { +// public CartridgeSubscription getCartridgeSubscriptionForCluster(int tenantId, String alias) throws PersistenceManagerException { // // Connection connection = null; // try { http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b0110aa2/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/persistence/PersistenceManager.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/persistence/PersistenceManager.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/persistence/PersistenceManager.java index 5fe4d1a..8822928 100644 --- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/persistence/PersistenceManager.java +++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/persistence/PersistenceManager.java @@ -33,7 +33,7 @@ public abstract class PersistenceManager { public abstract void removeCartridgeSubscription (int tenantId, String type, String alias) throws PersistenceManagerException; - //public abstract CartridgeSubscription getCartridgeSubscription(int tenantId, String alias) + //public abstract CartridgeSubscription getCartridgeSubscriptionForCluster(int tenantId, String alias) // throws PersistenceManagerException; public abstract Collection<CartridgeSubscription> getCartridgeSubscriptions() @@ -51,7 +51,7 @@ public abstract class PersistenceManager { //public abstract Collection<CartridgeSubscription> getCartridgeSubscriptions(int tenantId) // throws PersistenceManagerException; - //public abstract CartridgeSubscription getCartridgeSubscription (String clusterDomain) + //public abstract CartridgeSubscription getCartridgeSubscriptionForCluster (String clusterDomain) // throws PersistenceManagerException; //public abstract Collection<CartridgeSubscription> getCartridgeSubscriptions(int tenantId, String cartridgeType) http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b0110aa2/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/persistence/RegistryBasedPersistenceManager.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/persistence/RegistryBasedPersistenceManager.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/persistence/RegistryBasedPersistenceManager.java index a389b93..0b18a7f 100644 --- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/persistence/RegistryBasedPersistenceManager.java +++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/persistence/RegistryBasedPersistenceManager.java @@ -143,7 +143,7 @@ public class RegistryBasedPersistenceManager extends PersistenceManager { } /*@Override - public CartridgeSubscription getCartridgeSubscription (int tenantId, String alias) throws PersistenceManagerException { + public CartridgeSubscription getCartridgeSubscriptionForCluster (int tenantId, String alias) throws PersistenceManagerException { Object byteObj; @@ -507,7 +507,7 @@ public class RegistryBasedPersistenceManager extends PersistenceManager { }*/ /*@Override - public CartridgeSubscription getCartridgeSubscription (String clusterDomain) throws PersistenceManagerException { + public CartridgeSubscription getCartridgeSubscriptionForCluster (String clusterDomain) throws PersistenceManagerException { Object byteObj; http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b0110aa2/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/retriever/DataInsertionAndRetrievalManager.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/retriever/DataInsertionAndRetrievalManager.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/retriever/DataInsertionAndRetrievalManager.java index 16236f8..5a91088 100644 --- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/retriever/DataInsertionAndRetrievalManager.java +++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/retriever/DataInsertionAndRetrievalManager.java @@ -71,6 +71,13 @@ public class DataInsertionAndRetrievalManager { CartridgeSubscription cartridgeSubscription = getCartridgeSubscription(tenantId, subscriptionAlias); + if (cartridgeSubscription == null) { + if (log.isDebugEnabled()) { + log.debug("No CartridgeSubscription found for tenant " + tenantId + ", subscription alias " + subscriptionAlias); + } + return; + } + String cartridgeType = cartridgeSubscription.getType(); String clusterId = cartridgeSubscription.getClusterDomain(); @@ -157,6 +164,44 @@ public class DataInsertionAndRetrievalManager { } } + public void cacheSubscriptionsWithoutPersisting (Collection<CartridgeSubscription> cartridgeSubscriptions) { + + // get the write lock + LookupDataHolder.getInstance().acquireWriteLock(); + + try { + cacheSubscriptions(cartridgeSubscriptions); + + } finally { + // release the write lock + LookupDataHolder.getInstance().releaseWriteLock(); + } + } + + public void removeSubscriptionFromCache (int tenantId, String subscriptionAlias) { + + LookupDataHolder.getInstance().acquireWriteLock(); + + CartridgeSubscription cartridgeSubscription = getCartridgeSubscription(tenantId, subscriptionAlias); + if (cartridgeSubscription == null) { + if (log.isDebugEnabled()) { + log.debug("No CartridgeSubscription found for tenant " + tenantId + ", subscription alias " + subscriptionAlias); + } + return; + } + + String cartridgeType = cartridgeSubscription.getType(); + String clusterId = cartridgeSubscription.getClusterDomain(); + + try { + // remove from cache + LookupDataHolder.getInstance().removeSubscription(tenantId, cartridgeType, subscriptionAlias, clusterId); + + } finally { + LookupDataHolder.getInstance().releaseWriteLock(); + } + } + private void cacheSubscriptions (Collection<CartridgeSubscription> cartridgeSubscriptions) { // cache all @@ -233,7 +278,7 @@ public class DataInsertionAndRetrievalManager { } try { - cartridgeSubscription = persistenceManager.getCartridgeSubscription(tenantId, subscriptionAlias); + cartridgeSubscription = persistenceManager.getCartridgeSubscriptionForCluster(tenantId, subscriptionAlias); } catch (PersistenceManagerException e) { String errorMsg = "Error in accessing Persistence Manager"; @@ -253,7 +298,7 @@ public class DataInsertionAndRetrievalManager { } } - public Set<CartridgeSubscription> getCartridgeSubscription (String clusterId) { + public Set<CartridgeSubscription> getCartridgeSubscriptionForCluster (String clusterId) { // acquire read lock LookupDataHolder.getInstance().acquireReadLock(); @@ -267,7 +312,7 @@ public class DataInsertionAndRetrievalManager { } try { - cartridgeSubscription = persistenceManager.getCartridgeSubscription(clusterId); + cartridgeSubscription = persistenceManager.getCartridgeSubscriptionForCluster(clusterId); } catch (PersistenceManagerException e) { String errorMsg = "Error in accessing Persistence Manager"; http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b0110aa2/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/service/ApplicationManagementService.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/service/ApplicationManagementService.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/service/ApplicationManagementService.java index 5cc24d7..4116b74 100644 --- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/service/ApplicationManagementService.java +++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/service/ApplicationManagementService.java @@ -396,7 +396,7 @@ public class ApplicationManagementService extends AbstractAdmin { CartridgeSubscription connectingCartridgeSubscription = null; try { - connectingCartridgeSubscription = cartridgeSubsciptionManager.getCartridgeSubscription(getTenantDomain(), + connectingCartridgeSubscription = cartridgeSubsciptionManager.getCartridgeSubscriptionForCluster(getTenantDomain(), dataCartridgeAlias); } catch (NotSubscribedException e) { log.error(e.getMessage(), e); http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b0110aa2/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/topology/receiver/StratosManagerTopologyReceiver.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/topology/receiver/StratosManagerTopologyReceiver.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/topology/receiver/StratosManagerTopologyReceiver.java index f475db5..128d7bc 100644 --- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/topology/receiver/StratosManagerTopologyReceiver.java +++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/topology/receiver/StratosManagerTopologyReceiver.java @@ -309,7 +309,7 @@ public class StratosManagerTopologyReceiver implements Runnable { private Set<CartridgeSubscription> getCartridgeSubscription(String clusterDomain) { try { - return new DataInsertionAndRetrievalManager().getCartridgeSubscription(clusterDomain); + return new DataInsertionAndRetrievalManager().getCartridgeSubscriptionForCluster(clusterDomain); } catch (Exception e) { log.error("Error getting subscription information for cluster " + clusterDomain, e); http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b0110aa2/components/org.apache.stratos.manager/src/test/java/org/apache/stratos/manager/test/CartridgeSubscriptionTest.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager/src/test/java/org/apache/stratos/manager/test/CartridgeSubscriptionTest.java b/components/org.apache.stratos.manager/src/test/java/org/apache/stratos/manager/test/CartridgeSubscriptionTest.java index e25c0f8..77c2a58 100644 --- a/components/org.apache.stratos.manager/src/test/java/org/apache/stratos/manager/test/CartridgeSubscriptionTest.java +++ b/components/org.apache.stratos.manager/src/test/java/org/apache/stratos/manager/test/CartridgeSubscriptionTest.java @@ -1,32 +1,32 @@ /* - * 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. - */ +* 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.manager.test; import junit.framework.TestCase; +import org.apache.stratos.cloud.controller.pojo.CartridgeInfo; import org.apache.stratos.manager.exception.ADCException; import org.apache.stratos.manager.subscription.CartridgeSubscription; import org.apache.stratos.manager.subscription.factory.CartridgeSubscriptionFactory; import org.apache.stratos.manager.subscription.tenancy.SubscriptionMultiTenantBehaviour; import org.apache.stratos.manager.subscription.tenancy.SubscriptionSingleTenantBehaviour; import org.apache.stratos.manager.subscription.tenancy.SubscriptionTenancyBehaviour; -import org.apache.stratos.cloud.controller.pojo.CartridgeInfo; public class CartridgeSubscriptionTest extends TestCase { @@ -47,39 +47,51 @@ public class CartridgeSubscriptionTest extends TestCase { } } - public void testCarbonCartridge () { + public void testCarbonCartridgeSubscription() { - CartridgeInfo cartridgeInfo = new CartridgeInfo(); - cartridgeInfo.setProvider("carbon"); - cartridgeInfo.setMultiTenant(true); - cartridgeInfo.setType("esb"); - assertNotNull(getCartridgeInstance(cartridgeInfo)); + CartridgeInfo cartridgeInfo1 = new CartridgeInfo(); + cartridgeInfo1.setProvider("carbon"); + cartridgeInfo1.setMultiTenant(true); + cartridgeInfo1.setType("esb"); + CartridgeSubscription cartridgeSubscription1 = getCartridgeInstance(cartridgeInfo1); + assertNotNull(cartridgeSubscription1); + + + CartridgeInfo cartridgeInfo2 = new CartridgeInfo(); + cartridgeInfo2.setProvider("carbon"); + cartridgeInfo2.setMultiTenant(false); + cartridgeInfo2.setType("as"); + CartridgeSubscription cartridgeSubscription2 = getCartridgeInstance(cartridgeInfo2); + assertNotNull(cartridgeSubscription2); } - public void testPhpCartridgeInstance () { + public void testPhpCartridgeSubscription() { CartridgeInfo cartridgeInfo = new CartridgeInfo(); cartridgeInfo.setProvider("php-provider"); cartridgeInfo.setMultiTenant(false); cartridgeInfo.setType("php"); - assertNotNull(getCartridgeInstance(cartridgeInfo)); + CartridgeSubscription cartridgeSubscription = getCartridgeInstance(cartridgeInfo); + assertNotNull(cartridgeSubscription); } - public void testMySqlCartridgeInstance () { + public void testMySqlCartridgeSubscription() { CartridgeInfo cartridgeInfo = new CartridgeInfo(); cartridgeInfo.setProvider("data"); cartridgeInfo.setMultiTenant(false); cartridgeInfo.setType("mysql"); - assertNotNull(getCartridgeInstance(cartridgeInfo)); + CartridgeSubscription cartridgeSubscription = getCartridgeInstance(cartridgeInfo); + assertNotNull(cartridgeSubscription); } - public void testTomcatCartridgeInstance () { + public void testTomcatCartridgeSubscription() { CartridgeInfo cartridgeInfo = new CartridgeInfo(); cartridgeInfo.setProvider("tomcat-provider"); cartridgeInfo.setMultiTenant(false); cartridgeInfo.setType("tomcat"); - assertNotNull(getCartridgeInstance(cartridgeInfo)); + CartridgeSubscription cartridgeSubscription = getCartridgeInstance(cartridgeInfo); + assertNotNull(cartridgeSubscription); } } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b0110aa2/components/org.apache.stratos.manager/src/test/java/org/apache/stratos/manager/test/LookupDataHolderTest.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager/src/test/java/org/apache/stratos/manager/test/LookupDataHolderTest.java b/components/org.apache.stratos.manager/src/test/java/org/apache/stratos/manager/test/LookupDataHolderTest.java new file mode 100644 index 0000000..c1122d5 --- /dev/null +++ b/components/org.apache.stratos.manager/src/test/java/org/apache/stratos/manager/test/LookupDataHolderTest.java @@ -0,0 +1,282 @@ +/* + * 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.manager.test; + +import junit.framework.TestCase; +import org.apache.stratos.cloud.controller.pojo.CartridgeInfo; +import org.apache.stratos.manager.exception.ADCException; +import org.apache.stratos.manager.exception.PersistenceManagerException; +import org.apache.stratos.manager.retriever.DataInsertionAndRetrievalManager; +import org.apache.stratos.manager.subscriber.Subscriber; +import org.apache.stratos.manager.subscription.CartridgeSubscription; +import org.apache.stratos.manager.subscription.factory.CartridgeSubscriptionFactory; +import org.apache.stratos.manager.subscription.tenancy.SubscriptionMultiTenantBehaviour; +import org.apache.stratos.manager.subscription.tenancy.SubscriptionSingleTenantBehaviour; +import org.apache.stratos.manager.subscription.tenancy.SubscriptionTenancyBehaviour; +import org.junit.Before; + +import java.util.ArrayList; +import java.util.Collection; + +public class LookupDataHolderTest extends TestCase { + + Collection<CartridgeSubscription> cartridgeSubscriptions ; + DataInsertionAndRetrievalManager dataInsertionAndRetrievalManager; + + @Before + public void setUp () { + cartridgeSubscriptions = new ArrayList<CartridgeSubscription>(); + dataInsertionAndRetrievalManager = new DataInsertionAndRetrievalManager(); + + setUpCsrtridgeSubscriptions(); + } + + private void setUpCsrtridgeSubscriptions() { + + CartridgeInfo cartridgeInfo1 = getCartridgeInfo("carbon", "esb", true); + CartridgeSubscription cartridgeSubscription1 = getCartridgeInstance(cartridgeInfo1); + assertNotNull(cartridgeSubscription1); + Subscriber subscriber1 = getSubscriber("admin", 1, "a.com"); + cartridgeSubscription1.setSubscriber(subscriber1); + cartridgeSubscription1.setClusterDomain("esb.domain"); + cartridgeSubscription1.setAlias("esba"); + cartridgeSubscriptions.add(cartridgeSubscription1); + + CartridgeInfo cartridgeInfo2 = getCartridgeInfo("carbon", "esb", true); + CartridgeSubscription cartridgeSubscription2 = getCartridgeInstance(cartridgeInfo2); + assertNotNull(cartridgeSubscription2); + Subscriber subscriber2 = getSubscriber("admin", 2, "b.com"); + cartridgeSubscription2.setSubscriber(subscriber2); + cartridgeSubscription2.setClusterDomain("esb.domain"); + cartridgeSubscription2.setAlias("esbb"); + cartridgeSubscriptions.add(cartridgeSubscription2); + + CartridgeInfo cartridgeInfo3 = getCartridgeInfo("carbon", "esb.privatejet", false); + CartridgeSubscription cartridgeSubscription3 = getCartridgeInstance(cartridgeInfo3); + assertNotNull(cartridgeSubscription3); + Subscriber subscriber3 = getSubscriber("admin", 1, "a.com"); + cartridgeSubscription3.setSubscriber(subscriber3); + cartridgeSubscription3.setClusterDomain("a.esb.domain"); + cartridgeSubscription3.setAlias("esba1"); + cartridgeSubscriptions.add(cartridgeSubscription3); + + CartridgeInfo cartridgeInfo4 = getCartridgeInfo("php-provider", "php", false); + CartridgeSubscription cartridgeSubscription4 = getCartridgeInstance(cartridgeInfo4); + assertNotNull(cartridgeSubscription4); + Subscriber subscriber4 = getSubscriber("admin", 3, "c.com"); + cartridgeSubscription4.setSubscriber(subscriber4); + cartridgeSubscription4.setClusterDomain("a.php.domain"); + cartridgeSubscription4.setAlias("phpa"); + cartridgeSubscriptions.add(cartridgeSubscription4); + + CartridgeInfo cartridgeInfo5 = getCartridgeInfo("mysql-provider", "mysql", false); + CartridgeSubscription cartridgeSubscription5 = getCartridgeInstance(cartridgeInfo5); + assertNotNull(cartridgeSubscription5); + Subscriber subscriber5 = getSubscriber("admin", 3, "c.com"); + cartridgeSubscription5.setSubscriber(subscriber5); + cartridgeSubscription5.setClusterDomain("a.mysql.domain"); + cartridgeSubscription5.setAlias("mysqla"); + cartridgeSubscriptions.add(cartridgeSubscription5); + + dataInsertionAndRetrievalManager.cacheSubscriptionsWithoutPersisting(cartridgeSubscriptions); + } + + private CartridgeInfo getCartridgeInfo (String provider, String type, boolean multitenant) { + + CartridgeInfo cartridgeInfo = new CartridgeInfo(); + cartridgeInfo.setProvider(provider); + cartridgeInfo.setType(type); + cartridgeInfo.setMultiTenant(multitenant); + return cartridgeInfo; + } + + private Subscriber getSubscriber (String adminUser, int tenantId, String tenantDomain) { + return new Subscriber(adminUser, tenantId, tenantDomain); + } + + private CartridgeSubscription getCartridgeInstance (CartridgeInfo cartridgeInfo) { + + SubscriptionTenancyBehaviour tenancyBehaviour; + if(cartridgeInfo.getMultiTenant()) { + tenancyBehaviour = new SubscriptionMultiTenantBehaviour(); + } else { + tenancyBehaviour = new SubscriptionSingleTenantBehaviour(); + } + + try { + return CartridgeSubscriptionFactory.getCartridgeSubscriptionInstance(cartridgeInfo, tenancyBehaviour); + + } catch (ADCException e) { + throw new RuntimeException(e); + } + } + + public void testClusterIdToSubscription () throws PersistenceManagerException { + + // check for tenant 1 + Collection<CartridgeSubscription> cartridgeSubscriptions = dataInsertionAndRetrievalManager.getCartridgeSubscriptions(1); + assertEquals(2, cartridgeSubscriptions.size()); + + // check for tenant 2 + cartridgeSubscriptions = dataInsertionAndRetrievalManager.getCartridgeSubscriptions(2); + assertEquals(1, cartridgeSubscriptions.size()); + + // check for tenant 3 + cartridgeSubscriptions = dataInsertionAndRetrievalManager.getCartridgeSubscriptions(3); + assertEquals(2, cartridgeSubscriptions.size()); + + // check for type 'esb' + cartridgeSubscriptions = dataInsertionAndRetrievalManager.getCartridgeSubscriptions("esb"); + assertEquals(2, cartridgeSubscriptions.size()); + + // check for type 'esb.privatejet' + cartridgeSubscriptions = dataInsertionAndRetrievalManager.getCartridgeSubscriptions("esb.privatejet"); + assertEquals(1, cartridgeSubscriptions.size()); + + // check for type 'php' + cartridgeSubscriptions = dataInsertionAndRetrievalManager.getCartridgeSubscriptions("php"); + assertEquals(1, cartridgeSubscriptions.size()); + + // check for type 'mysql' + cartridgeSubscriptions = dataInsertionAndRetrievalManager.getCartridgeSubscriptions("mysql"); + assertEquals(1, cartridgeSubscriptions.size()); + + // check for type 'esb' and tenant 1 + cartridgeSubscriptions = dataInsertionAndRetrievalManager.getCartridgeSubscriptions(1, "esb"); + assertEquals(1, cartridgeSubscriptions.size()); + + // check for type 'esb' and tenant 2 + cartridgeSubscriptions = dataInsertionAndRetrievalManager.getCartridgeSubscriptions(2, "esb"); + assertEquals(1, cartridgeSubscriptions.size()); + + // check for type 'esb.privatejet' and tenant 1 + cartridgeSubscriptions = dataInsertionAndRetrievalManager.getCartridgeSubscriptions(1, "esb.privatejet"); + assertEquals(1, cartridgeSubscriptions.size()); + + // check for type 'esb.privatejet' and tenant 2 + cartridgeSubscriptions = dataInsertionAndRetrievalManager.getCartridgeSubscriptions(2, "esb.privatejet"); + assertNull(cartridgeSubscriptions); + + // check for type 'php' and tenant 1 + cartridgeSubscriptions = dataInsertionAndRetrievalManager.getCartridgeSubscriptions(1, "php"); + assertNull(cartridgeSubscriptions); + + // check for type 'mysql' and tenant 3 + cartridgeSubscriptions = dataInsertionAndRetrievalManager.getCartridgeSubscriptions(3, "mysql"); + assertEquals(1, cartridgeSubscriptions.size()); + + // check for tenant 1 and alias 'esba' + CartridgeSubscription subscription = dataInsertionAndRetrievalManager.getCartridgeSubscription(1, "esba"); + assertNotNull(subscription); + + // check for tenant 1 and alias 'esbb' + subscription = dataInsertionAndRetrievalManager.getCartridgeSubscription(1, "esbb"); + assertNull(subscription); + + // check for tenant 2 and alias 'esba' + subscription = dataInsertionAndRetrievalManager.getCartridgeSubscription(2, "esba"); + assertNull(subscription); + + // check for tenant 2 and alias 'esbb' + subscription = dataInsertionAndRetrievalManager.getCartridgeSubscription(2, "esbb"); + assertNotNull(subscription); + + // check for tenant 1 and alias 'esba1' + subscription = dataInsertionAndRetrievalManager.getCartridgeSubscription(1, "esba1"); + assertNotNull(subscription); + + // check for tenant 2 and alias 'esba1' + subscription = dataInsertionAndRetrievalManager.getCartridgeSubscription(2, "esba1"); + assertNull(subscription); + + cartridgeSubscriptions = dataInsertionAndRetrievalManager.getCartridgeSubscriptionForCluster("esb.domain"); + assertNotNull(cartridgeSubscriptions); + assertEquals(2, cartridgeSubscriptions.size()); + for (CartridgeSubscription cartridgeSubscription : cartridgeSubscriptions) { + assertTrue(cartridgeSubscription.getAlias().equals("esba") || cartridgeSubscription.getAlias().equals("esbb")); + } + + dataInsertionAndRetrievalManager.removeSubscriptionFromCache(1, "esba"); + + cartridgeSubscriptions = dataInsertionAndRetrievalManager.getCartridgeSubscriptionForCluster("esb.domain"); + assertNotNull(cartridgeSubscriptions); + assertEquals(1, cartridgeSubscriptions.size()); + for (CartridgeSubscription cartridgeSubscription : cartridgeSubscriptions) { + assertTrue(cartridgeSubscription.getAlias().equals("esbb")); + } + + dataInsertionAndRetrievalManager.removeSubscriptionFromCache(2, "esbb"); + assertNull(dataInsertionAndRetrievalManager.getCartridgeSubscriptionForCluster("esb.domain")); + + cartridgeSubscriptions = dataInsertionAndRetrievalManager.getCartridgeSubscriptionForCluster("a.esb.domain"); + assertNotNull(cartridgeSubscriptions); + assertEquals(1, cartridgeSubscriptions.size()); + for (CartridgeSubscription cartridgeSubscription : cartridgeSubscriptions) { + assertTrue(cartridgeSubscription.getAlias().equals("esba1")); + } + + dataInsertionAndRetrievalManager.removeSubscriptionFromCache(1, "esba1"); + assertNull(dataInsertionAndRetrievalManager.getCartridgeSubscriptionForCluster("a.esb.domain")); + + // check for tenant 3 and alias 'phpa' + subscription = dataInsertionAndRetrievalManager.getCartridgeSubscription(3, "phpa"); + assertNotNull(subscription); + assertTrue(subscription.getAlias().equals("phpa")); + + dataInsertionAndRetrievalManager.removeSubscriptionFromCache(3, "phpa"); + subscription = dataInsertionAndRetrievalManager.getCartridgeSubscription(3, "phpa"); + assertNull(subscription); + + // check for tenant 3 and alias 'mysqla' + subscription = dataInsertionAndRetrievalManager.getCartridgeSubscription(3, "mysqla"); + assertNotNull(subscription); + assertTrue(subscription.getAlias().equals("mysqla")); + + dataInsertionAndRetrievalManager.removeSubscriptionFromCache(3, "mysqla"); + subscription = dataInsertionAndRetrievalManager.getCartridgeSubscription(3, "mysqla"); + assertNull(subscription); + + assertNull(dataInsertionAndRetrievalManager.getCartridgeSubscriptions(1)); + assertNull(dataInsertionAndRetrievalManager.getCartridgeSubscriptions(2)); + assertNull(dataInsertionAndRetrievalManager.getCartridgeSubscriptions(3)); + + assertNull(dataInsertionAndRetrievalManager.getCartridgeSubscriptionForCluster("esb.domain")); + assertNull(dataInsertionAndRetrievalManager.getCartridgeSubscriptionForCluster("a.esb.domain")); + assertNull(dataInsertionAndRetrievalManager.getCartridgeSubscriptionForCluster("a.php.domain")); + assertNull(dataInsertionAndRetrievalManager.getCartridgeSubscriptionForCluster("a.mysql.domain")); + + assertTrue(dataInsertionAndRetrievalManager.getCartridgeSubscriptions("esb").isEmpty()); + assertTrue(dataInsertionAndRetrievalManager.getCartridgeSubscriptions("esb.privatejet").isEmpty()); + assertTrue(dataInsertionAndRetrievalManager.getCartridgeSubscriptions("php").isEmpty()); + assertTrue(dataInsertionAndRetrievalManager.getCartridgeSubscriptions("mysql").isEmpty()); + + assertNull(dataInsertionAndRetrievalManager.getCartridgeSubscriptions(1, "esb")); + assertNull(dataInsertionAndRetrievalManager.getCartridgeSubscriptions(1, "esb.privatejet")); + assertNull(dataInsertionAndRetrievalManager.getCartridgeSubscriptions(3, "php")); + assertNull(dataInsertionAndRetrievalManager.getCartridgeSubscriptions(3, "mysql")); + + assertNull(dataInsertionAndRetrievalManager.getCartridgeSubscription(1, "esba")); + assertNull(dataInsertionAndRetrievalManager.getCartridgeSubscription(2, "esba")); + assertNull(dataInsertionAndRetrievalManager.getCartridgeSubscription(1, "esba1")); + assertNull(dataInsertionAndRetrievalManager.getCartridgeSubscription(2, "esbb")); + assertNull(dataInsertionAndRetrievalManager.getCartridgeSubscription(3, "phpa")); + assertNull(dataInsertionAndRetrievalManager.getCartridgeSubscription(3, "mysqla")); + } +} http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b0110aa2/components/org.apache.stratos.manager/src/test/java/org/apache/stratos/manager/test/PolicyHolderTest.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager/src/test/java/org/apache/stratos/manager/test/PolicyHolderTest.java b/components/org.apache.stratos.manager/src/test/java/org/apache/stratos/manager/test/PolicyHolderTest.java index 1aa94f1..3b39d47 100644 --- a/components/org.apache.stratos.manager/src/test/java/org/apache/stratos/manager/test/PolicyHolderTest.java +++ b/components/org.apache.stratos.manager/src/test/java/org/apache/stratos/manager/test/PolicyHolderTest.java @@ -1,84 +1,84 @@ -package org.apache.stratos.manager.test; -/* - * - * 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. - * -*/ - - -import java.io.File; -import java.lang.reflect.Constructor; -import java.lang.reflect.InvocationTargetException; - -import junit.framework.TestCase; - -import org.apache.stratos.manager.utils.PolicyHolder; - -public class PolicyHolderTest extends TestCase { - - private PolicyHolder getPolicyHolder(String policiesXMLFile) { - File policiesXmlSchema = new File("src/main/resources/policies.xsd"); - String dir = "src/test/resources/"; - - Class<PolicyHolder> clazz = PolicyHolder.class; - - Constructor<PolicyHolder> c; - try { - c = clazz.getDeclaredConstructor(File.class, File.class); - c.setAccessible(true); - } catch (NoSuchMethodException e) { - throw new RuntimeException(e); - } catch (SecurityException e) { - throw new RuntimeException(e); - } - PolicyHolder policyHolder; - try { - policyHolder = c.newInstance(policiesXmlSchema, new File(dir, policiesXMLFile)); - } catch (InstantiationException e) { - throw new RuntimeException(e); - } catch (IllegalAccessException e) { - throw new RuntimeException(e); - } catch (IllegalArgumentException e) { - throw new RuntimeException(e); - } catch (InvocationTargetException e) { - throw new RuntimeException(e); - } - return policyHolder; - } - - public void testDefaultPolicy() { - PolicyHolder policyHolder = getPolicyHolder("policies-1.xml"); - assertNotNull(policyHolder); - assertNotNull(policyHolder.getDefaultPolicy()); - } - - - public void testSinglePolicy() { - PolicyHolder policyHolder = getPolicyHolder("policies-1.xml"); - assertNotNull(policyHolder); - assertNotNull(policyHolder.getPolicy("single")); - assertEquals("single", policyHolder.getPolicy("single").getName()); - } - - public void testElasticPolicy() { - PolicyHolder policyHolder = getPolicyHolder("policies-1.xml"); - assertNotNull(policyHolder); - assertNotNull(policyHolder.getPolicy("elastic")); - assertEquals("elastic", policyHolder.getPolicy("elastic").getName()); - } -} +//package org.apache.stratos.manager.test; +///* +// * +// * 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. +// * +//*/ +// +// +//import java.io.File; +//import java.lang.reflect.Constructor; +//import java.lang.reflect.InvocationTargetException; +// +//import junit.framework.TestCase; +// +//import org.apache.stratos.manager.utils.PolicyHolder; +// +//public class PolicyHolderTest extends TestCase { +// +// private PolicyHolder getPolicyHolder(String policiesXMLFile) { +// File policiesXmlSchema = new File("src/main/resources/policies.xsd"); +// String dir = "src/test/resources/"; +// +// Class<PolicyHolder> clazz = PolicyHolder.class; +// +// Constructor<PolicyHolder> c; +// try { +// c = clazz.getDeclaredConstructor(File.class, File.class); +// c.setAccessible(true); +// } catch (NoSuchMethodException e) { +// throw new RuntimeException(e); +// } catch (SecurityException e) { +// throw new RuntimeException(e); +// } +// PolicyHolder policyHolder; +// try { +// policyHolder = c.newInstance(policiesXmlSchema, new File(dir, policiesXMLFile)); +// } catch (InstantiationException e) { +// throw new RuntimeException(e); +// } catch (IllegalAccessException e) { +// throw new RuntimeException(e); +// } catch (IllegalArgumentException e) { +// throw new RuntimeException(e); +// } catch (InvocationTargetException e) { +// throw new RuntimeException(e); +// } +// return policyHolder; +// } +// +// public void testDefaultPolicy() { +// PolicyHolder policyHolder = getPolicyHolder("policies-1.xml"); +// assertNotNull(policyHolder); +// assertNotNull(policyHolder.getDefaultPolicy()); +// } +// +// +// public void testSinglePolicy() { +// PolicyHolder policyHolder = getPolicyHolder("policies-1.xml"); +// assertNotNull(policyHolder); +// assertNotNull(policyHolder.getPolicy("single")); +// assertEquals("single", policyHolder.getPolicy("single").getName()); +// } +// +// public void testElasticPolicy() { +// PolicyHolder policyHolder = getPolicyHolder("policies-1.xml"); +// assertNotNull(policyHolder); +// assertNotNull(policyHolder.getPolicy("elastic")); +// assertEquals("elastic", policyHolder.getPolicy("elastic").getName()); +// } +//}
