Updated Branches:
  refs/heads/master 7c68d2211 -> 8a7f78122

fixing STRATOS-424, making the alias globally unique (across all tenants)


Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/0f9a07eb
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/0f9a07eb
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/0f9a07eb

Branch: refs/heads/master
Commit: 0f9a07ebe24c5a25cb449b294bece80c7756eae3
Parents: 3ff07ad
Author: Isuru <[email protected]>
Authored: Tue Feb 11 12:47:42 2014 +0530
Committer: Isuru <[email protected]>
Committed: Tue Feb 11 12:47:42 2014 +0530

----------------------------------------------------------------------
 .../manager/lookup/LookupDataHolder.java        | 21 ++++++++++++++++++++
 .../manager/lookup/SubscriptionContext.java     |  2 ++
 .../DataInsertionAndRetrievalManager.java       | 15 ++++++++++++++
 .../utils/CartridgeSubscriptionUtils.java       |  4 +++-
 4 files changed, 41 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0f9a07eb/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 260feb2..e62c134 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
@@ -124,6 +124,27 @@ public class LookupDataHolder implements Serializable {
 
     }
 
+    public CartridgeSubscription getSubscriptionForAlias (String 
subscriptionAlias) {
+
+        Collection<SubscriptionContext> subscriptionContexts = 
tenantIdToSubscriptionContext.getSubscriptionContexts();
+        if (subscriptionContexts == null) {
+            // no subscriptions
+            return null;
+        }
+
+        CartridgeSubscription cartridgeSubscription;
+
+        for (SubscriptionContext subscriptionContext : subscriptionContexts) {
+            cartridgeSubscription = 
subscriptionContext.getSubscriptionForAlias(subscriptionAlias);
+            // check if the retrieved subscription is not null and return
+            if (cartridgeSubscription != null) {
+                return cartridgeSubscription;
+            }
+        }
+
+        return null;
+    }
+
     public Collection<CartridgeSubscription> getSubscriptionForType (int 
tenantId, String cartridgeType) {
 
          SubscriptionContext subscriptionContext = 
tenantIdToSubscriptionContext.getSubscriptionContext(tenantId);

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0f9a07eb/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 502bbba..61e6ed6 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
@@ -87,6 +87,8 @@ public class SubscriptionContext implements Serializable {
         return cartridgeTypeToSubscriptions.get(cartridgeType);
     }
 
+
+
     public CartridgeSubscription getSubscriptionForAlias (String 
subscriptionAlias) {
 
         return aliasToSubscription.get(subscriptionAlias);

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0f9a07eb/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 ab656aa..ff6c669 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
@@ -297,4 +297,19 @@ public class DataInsertionAndRetrievalManager {
             LookupDataHolder.getInstance().releaseReadLock();
         }
     }
+
+    //Don't use this method unless absolutely necessary, use 
getCartridgeSubscription (int tenantId, String subscriptionAlias)
+    public CartridgeSubscription getCartridgeSubscriptionForAlias (String 
subscriptionAlias) {
+
+        // acquire read lock
+        LookupDataHolder.getInstance().acquireReadLock();
+
+        try {
+            return 
LookupDataHolder.getInstance().getSubscriptionForAlias(subscriptionAlias);
+
+        } finally {
+            // release read lock
+            LookupDataHolder.getInstance().releaseReadLock();
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0f9a07eb/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/utils/CartridgeSubscriptionUtils.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/utils/CartridgeSubscriptionUtils.java
 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/utils/CartridgeSubscriptionUtils.java
index 70ecf1c..a736dc7 100644
--- 
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/utils/CartridgeSubscriptionUtils.java
+++ 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/utils/CartridgeSubscriptionUtils.java
@@ -167,6 +167,8 @@ public class CartridgeSubscriptionUtils {
     public static boolean isAliasTaken (int tenantId, String alias) {
 
         DataInsertionAndRetrievalManager dataInsertionAndRetrievalManager = 
new DataInsertionAndRetrievalManager();
-        return 
(dataInsertionAndRetrievalManager.getCartridgeSubscription(tenantId, alias) == 
null) ? false : true;
+        // return 
(dataInsertionAndRetrievalManager.getCartridgeSubscription(tenantId, alias) == 
null) ? false : true;
+        // fixing STRATOS-427, making the alias globally unique
+        return 
(dataInsertionAndRetrievalManager.getCartridgeSubscriptionForAlias(alias) == 
null) ? false : true;
     }
 }

Reply via email to