You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by re...@apache.org on 2015/04/30 13:00:33 UTC

[1/2] stratos git commit: Validate application definition to have group with unique aliases

Repository: stratos
Updated Branches:
  refs/heads/master 49cac9ba9 -> 87cb7630d


Validate application definition to have group with unique aliases


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

Branch: refs/heads/master
Commit: f8f9f7190956aef6f93a44f94f8641de12263914
Parents: 49cac9b
Author: Vishanth <vi...@gmail.com>
Authored: Thu Apr 30 16:13:52 2015 +0530
Committer: Vishanth <vi...@gmail.com>
Committed: Thu Apr 30 16:13:52 2015 +0530

----------------------------------------------------------------------
 .../rest/endpoint/api/StratosApiV41Utils.java   | 57 ++++++++++++++++++++
 1 file changed, 57 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/f8f9f719/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
index ff8d36f..3ce4ab7 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
@@ -96,6 +96,7 @@ import org.wso2.carbon.utils.multitenancy.MultitenantConstants;
 
 import java.rmi.RemoteException;
 import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
 import java.util.regex.Pattern;
 
 
@@ -1070,6 +1071,10 @@ public class StratosApiV41Utils {
 
         validateApplication(appDefinition);
 
+        // To validate groups have unique alias in the application definition
+        validateGroupAliasesInApplicationDefinition(appDefinition);
+
+
         ApplicationContext applicationContext = ObjectConverter.convertApplicationDefinitionToStubApplicationContext(
                 appDefinition);
         applicationContext.setTenantId(ApplicationManagementUtil.getTenantId(ctxt));
@@ -1222,6 +1227,58 @@ public class StratosApiV41Utils {
     }
 
     /**
+     * This method is to validate the application definition to have unique aliases among its groups
+     *
+     * @param applicationDefinition
+     * @return
+     */
+    private static void validateGroupAliasesInApplicationDefinition(ApplicationBean applicationDefinition) throws RestAPIException {
+
+        ConcurrentHashMap<String, GroupReferenceBean> groupsInApplicationDefinition = new ConcurrentHashMap<String, GroupReferenceBean>();
+
+        if ((applicationDefinition.getComponents().getGroups() != null) &&
+                (!applicationDefinition.getComponents().getGroups().isEmpty())) {
+
+            //This is to validate the top level groups in the application definition
+            for (GroupReferenceBean group : applicationDefinition.getComponents().getGroups()) {
+                if (groupsInApplicationDefinition.get(group.getAlias()) != null) {
+                    String message = "Cartridge group alias exists more than once: [group-alias] " +
+                            group.getAlias();
+                    throw new RestAPIException(message);
+                }
+                groupsInApplicationDefinition.put(group.getAlias(), group);
+
+                if (group.getGroups() != null) {
+                    //This is to validate the groups aliases recursively
+                    validateGroupsRecursively(groupsInApplicationDefinition, group.getGroups());
+                }
+            }
+        }
+    }
+
+    /**
+     * This method validates group aliases recursively
+     *
+     * @param groupsSet - the group collection in which the groups are added to
+     * @param groups - the group collection in which it traverses through
+     */
+    private static void validateGroupsRecursively(ConcurrentHashMap<String, GroupReferenceBean> groupsSet,
+                                                  Collection<GroupReferenceBean> groups) throws RestAPIException{
+        for (GroupReferenceBean group : groups) {
+            if (groupsSet.get(group.getAlias()) != null) {
+                String message = "Cartridge group alias exists more than once: [group-alias] " +
+                        group.getAlias();
+                throw new RestAPIException(message);
+            }
+            groupsSet.put(group.getAlias(), group);
+
+            if (group.getGroups() != null) {
+                validateGroupsRecursively(groupsSet, group.getGroups());
+            }
+        }
+    }
+
+    /**
      * Deploy application with an application policy.
      *
      * @param applicationId       Application ID


[2/2] stratos git commit: Updating the java doc comment

Posted by re...@apache.org.
Updating the java doc comment


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

Branch: refs/heads/master
Commit: 87cb7630ddc52b33eb44ddf4d466952344ac11f0
Parents: f8f9f71
Author: Vishanth <vi...@gmail.com>
Authored: Thu Apr 30 16:21:34 2015 +0530
Committer: Vishanth <vi...@gmail.com>
Committed: Thu Apr 30 16:21:34 2015 +0530

----------------------------------------------------------------------
 .../apache/stratos/rest/endpoint/api/StratosApiV41Utils.java   | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/87cb7630/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
index 3ce4ab7..1755178 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
@@ -1229,8 +1229,8 @@ public class StratosApiV41Utils {
     /**
      * This method is to validate the application definition to have unique aliases among its groups
      *
-     * @param applicationDefinition
-     * @return
+     * @param applicationDefinition - the application definition
+     * @throws RestAPIException
      */
     private static void validateGroupAliasesInApplicationDefinition(ApplicationBean applicationDefinition) throws RestAPIException {
 
@@ -1261,7 +1261,9 @@ public class StratosApiV41Utils {
      *
      * @param groupsSet - the group collection in which the groups are added to
      * @param groups - the group collection in which it traverses through
+     * @throws RestAPIException
      */
+
     private static void validateGroupsRecursively(ConcurrentHashMap<String, GroupReferenceBean> groupsSet,
                                                   Collection<GroupReferenceBean> groups) throws RestAPIException{
         for (GroupReferenceBean group : groups) {