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) {