You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by is...@apache.org on 2014/07/17 11:49:29 UTC

[5/6] git commit: alias validation and a minor bug

alias validation and a minor bug


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

Branch: refs/heads/4.0.0-grouping
Commit: 51ec31c50a0cd559345ca00371adb7491b2785cc
Parents: 7f5f19b
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Thu Jul 17 15:18:11 2014 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Thu Jul 17 15:18:11 2014 +0530

----------------------------------------------------------------------
 .../parser/DefaultCompositeApplicationParser.java     | 12 +++++++-----
 .../composite/application/utils/ApplicationUtils.java | 14 ++++++++++++++
 2 files changed, 21 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/51ec31c5/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/parser/DefaultCompositeApplicationParser.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/parser/DefaultCompositeApplicationParser.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/parser/DefaultCompositeApplicationParser.java
index 9bfc864..fdd0138 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/parser/DefaultCompositeApplicationParser.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/parser/DefaultCompositeApplicationParser.java
@@ -29,6 +29,7 @@ import org.apache.stratos.manager.composite.application.structure.CompositeAppCo
 import org.apache.stratos.manager.composite.application.structure.GroupContext;
 import org.apache.stratos.manager.composite.application.structure.StartupOrder;
 import org.apache.stratos.manager.composite.application.structure.SubscribableContext;
+import org.apache.stratos.manager.composite.application.utils.ApplicationUtils;
 import org.apache.stratos.manager.exception.CompositeApplicationDefinitionException;
 import org.apache.stratos.manager.exception.PersistenceManagerException;
 import org.apache.stratos.manager.grouping.definitions.ServiceGroupDefinition;
@@ -111,13 +112,13 @@ public class DefaultCompositeApplicationParser implements CompositeApplicationPa
                     }
 
                     // check if group is deployed
-                    if(isGroupDeployed(group.getName())) {
+                    if(!isGroupDeployed(group.getName())) {
                         throw new CompositeApplicationDefinitionException("Group with name " + group.getName() + " not deployed");
                     }
 
                     // check validity of group alias
-                    if (group.getAlias() == null || group.getAlias().isEmpty()) {
-                        throw new CompositeApplicationDefinitionException("Invalid Group alias specified");
+                    if (group.getAlias() == null || group.getAlias().isEmpty() || ApplicationUtils.isAliasValid(group.getAlias())) {
+                        throw new CompositeApplicationDefinitionException("Invalid Group alias specified: [ " + group.getAlias() + " ]");
                     }
 
                     // check if a group is already defined under the same alias
@@ -148,8 +149,9 @@ public class DefaultCompositeApplicationParser implements CompositeApplicationPa
 
             for (SubscribableInfo subscribableInfo : compositeAppDefinition.getSubscribableInfo()) {
 
-                if (subscribableInfo.getAlias() == null || subscribableInfo.getAlias().isEmpty()) {
-                    throw new CompositeApplicationDefinitionException("Invalid alias specified for Subscribable Information Obj");
+                if (subscribableInfo.getAlias() == null || subscribableInfo.getAlias().isEmpty() ||
+                        ApplicationUtils.isAliasValid(subscribableInfo.getAlias())) {
+                    throw new CompositeApplicationDefinitionException("Invalid alias specified for Subscribable Information Obj: [ " + subscribableInfo.getAlias() + " ]");
                 }
 
                 // check if a group is already defined under the same alias

http://git-wip-us.apache.org/repos/asf/stratos/blob/51ec31c5/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/utils/ApplicationUtils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/utils/ApplicationUtils.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/utils/ApplicationUtils.java
index 8b7cdbb..7dde85c 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/utils/ApplicationUtils.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/composite/application/utils/ApplicationUtils.java
@@ -1,9 +1,11 @@
 package org.apache.stratos.manager.composite.application.utils;
 
 import java.util.concurrent.Executor;
+import java.util.regex.Pattern;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.manager.exception.InvalidCartridgeAliasException;
 import org.apache.stratos.messaging.broker.publish.EventPublisher;
 import org.apache.stratos.messaging.broker.publish.EventPublisherPool;
 import org.apache.stratos.messaging.event.topology.CompositeApplicationCreatedEvent;
@@ -98,5 +100,17 @@ public class ApplicationUtils {
 			exec.execute(new ApplicationRemovedEventPublisher(configApplicationAlias));
 	    }
 
+    public static boolean isAliasValid (String alias) {
+
+        String patternString = "([a-z0-9]+([-][a-z0-9])*)+";
+        Pattern pattern = Pattern.compile(patternString);
+
+        if (!pattern.matcher(alias).matches()) {
+            return false;
+        }
+
+        return true;
+    }
+
 
 }