Repository: stratos
Updated Branches:
  refs/heads/4.0.0-grouping 1d474ae45 -> ae08052c9


logging errors before throwing


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

Branch: refs/heads/4.0.0-grouping
Commit: d8c84bfab40fa75da794dfab1d7647ec4bcdf144
Parents: 6f5dc14
Author: Isuru Haththotuwa <[email protected]>
Authored: Wed Sep 17 09:55:01 2014 +0530
Committer: Isuru Haththotuwa <[email protected]>
Committed: Wed Sep 17 09:55:01 2014 +0530

----------------------------------------------------------------------
 .../parser/DefaultApplicationParser.java        | 44 ++++++++++++--------
 1 file changed, 26 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/d8c84bfa/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/application/parser/DefaultApplicationParser.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/application/parser/DefaultApplicationParser.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/application/parser/DefaultApplicationParser.java
index 8ea89be..44edc49 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/application/parser/DefaultApplicationParser.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/application/parser/DefaultApplicationParser.java
@@ -51,15 +51,16 @@ public class DefaultApplicationParser implements 
ApplicationParser {
         }
 
         if (applicationCtxt == null) {
-            throw new ApplicationDefinitionException("Invalid Composite 
Application Definition");
+            handleError("Invalid Composite Application Definition");
         }
 
+        assert applicationCtxt != null;
         if (applicationCtxt.getAlias() == null || 
applicationCtxt.getAlias().isEmpty()) {
-            throw new ApplicationDefinitionException("Invalid alias 
specified");
+            handleError("Invalid alias specified");
         }
 
         if (applicationCtxt.getApplicationId() == null || 
applicationCtxt.getApplicationId().isEmpty()) {
-            throw new ApplicationDefinitionException("Invalid Composite App id 
specified");
+            handleError("Invalid Composite App id specified");
         }
 
         // get the defined groups
@@ -85,7 +86,7 @@ public class DefaultApplicationParser implements 
ApplicationParser {
         }
 
         if (subscribablesInfo == null) {
-            throw new ApplicationDefinitionException("Invalid Composite 
Application Definition, no Subscribable Information specified");
+            handleError("Invalid Composite Application Definition, no 
Subscribable Information specified");
         }
 
         return buildCompositeAppStructure (applicationCtxt, definedGroups, 
subscribablesInfo);
@@ -105,23 +106,23 @@ public class DefaultApplicationParser implements 
ApplicationParser {
 
                     // check validity of group name
                     if (groupContext.getName() == null || 
groupContext.getName().isEmpty()) {
-                        throw new ApplicationDefinitionException("Invalid 
Group name specified");
+                        handleError("Invalid Group name specified");
                     }
 
                     // check if group is deployed
                     if(!isGroupDeployed(groupContext.getName())) {
-                        throw new ApplicationDefinitionException("Group with 
name " + groupContext.getName() + " not deployed");
+                        handleError("Group with name " + 
groupContext.getName() + " not deployed");
                     }
 
                     // check validity of group alias
                     if (groupContext.getAlias() == null || 
groupContext.getAlias().isEmpty() || 
!ApplicationUtils.isAliasValid(groupContext.getAlias())) {
-                        throw new ApplicationDefinitionException("Invalid 
Group alias specified: [ " + groupContext.getAlias() + " ]");
+                        handleError("Invalid Group alias specified: [ " + 
groupContext.getAlias() + " ]");
                     }
 
                     // check if a group is already defined under the same alias
                     if(definedGroups.get(groupContext.getAlias()) != null) {
                         // a group with same alias already exists, can't 
continue
-                        throw new ApplicationDefinitionException("A Group with 
alias " + groupContext.getAlias() + " already exists");
+                        handleError("A Group with alias " + 
groupContext.getAlias() + " already exists");
                     }
 
                     definedGroups.put(groupContext.getAlias(), groupContext);
@@ -148,13 +149,13 @@ public class DefaultApplicationParser implements 
ApplicationParser {
 
                 if (subscribableInfoCtxt.getAlias() == null || 
subscribableInfoCtxt.getAlias().isEmpty() ||
                         
!ApplicationUtils.isAliasValid(subscribableInfoCtxt.getAlias())) {
-                    throw new ApplicationDefinitionException("Invalid alias 
specified for Subscribable Information Obj: [ " + 
subscribableInfoCtxt.getAlias() + " ]");
+                    handleError("Invalid alias specified for Subscribable 
Information Obj: [ " + subscribableInfoCtxt.getAlias() + " ]");
                 }
 
                 // check if a group is already defined under the same alias
                 
if(subscribableInformation.get(subscribableInfoCtxt.getAlias()) != null) {
                     // a group with same alias already exists, can't continue
-                    throw new ApplicationDefinitionException("A Subscribable 
Info obj with alias " + subscribableInfoCtxt.getAlias() + " already exists");
+                    handleError("A Subscribable Info obj with alias " + 
subscribableInfoCtxt.getAlias() + " already exists");
                 }
 
                 subscribableInformation.put(subscribableInfoCtxt.getAlias(), 
subscribableInfoCtxt);
@@ -228,7 +229,7 @@ public class DefaultApplicationParser implements 
ApplicationParser {
             Group group = getGroup(clusters, groupCtxt, 
subscribableInformation, definedGroupCtxts);
             if(groupNameToGroup.put(group.getName(), group) != null) {
                 // Application Definition has same Group multiple times at the 
top-level
-                throw new ApplicationDefinitionException("Group [ " + 
group.getName() + " ] appears twice in the Application Definition's top level");
+                handleError("Group [ " + group.getName() + " ] appears twice 
in the Application Definition's top level");
             }
         }
 
@@ -278,7 +279,7 @@ public class DefaultApplicationParser implements 
ApplicationParser {
         // check if are in the defined Group set
         GroupContext definedGroupDef = 
definedGroupCtxts.get(groupCtxt.getAlias());
         if (definedGroupDef == null) {
-            throw new ApplicationDefinitionException("Group Definition with 
name: " + groupCtxt.getName() + ", alias: " +
+            handleError("Group Definition with name: " + groupCtxt.getName() + 
", alias: " +
                     groupCtxt.getAlias() + " is not found in the all Group 
Definitions collection");
         }
 
@@ -326,9 +327,10 @@ public class DefaultApplicationParser implements 
ApplicationParser {
         ServiceGroup serviceGroup = 
FasterLookUpDataHolder.getInstance().getServiceGroup(serviceGroupName);
 
         if (serviceGroup == null) {
-            throw new ApplicationDefinitionException("Service Group Definition 
not found for name " + serviceGroupName);
+            handleError("Service Group Definition not found for name " + 
serviceGroupName);
         }
 
+        assert serviceGroup != null;
         if (serviceGroup.getDependencies() != null) {
             if (serviceGroup.getDependencies().getStartupOrder() != null) {
                 return 
ParserUtils.convert(serviceGroup.getDependencies().getStartupOrder());
@@ -359,9 +361,10 @@ public class DefaultApplicationParser implements 
ApplicationParser {
         ServiceGroup serviceGroup = 
FasterLookUpDataHolder.getInstance().getServiceGroup(serviceGroupName);
 
         if (serviceGroup == null) {
-            throw new ApplicationDefinitionException("Service Group Definition 
not found for name " + serviceGroupName);
+            handleError("Service Group Definition not found for name " + 
serviceGroupName);
         }
 
+        assert serviceGroup != null;
         if (serviceGroup.getDependencies() != null) {
             return serviceGroup.getDependencies().getKillBehaviour();
         }
@@ -413,20 +416,20 @@ public class DefaultApplicationParser implements 
ApplicationParser {
             // check is there is a related Subscribable Information
             SubscribableInfoContext subscribableInfoCtxt = 
subscribableInfoCtxts.get(subscribableCtxt.getAlias());
             if (subscribableInfoCtxt == null) {
-                throw new ApplicationDefinitionException("Related Subscribable 
Information Ctxt not found for Subscribable with alias: "
+                handleError("Related Subscribable Information Ctxt not found 
for Subscribable with alias: "
                         + subscribableCtxt.getAlias());
             }
 
             // check if Cartridge Type is valid
             if (subscribableCtxt.getType() == null || 
subscribableCtxt.getType().isEmpty()) {
-                throw new ApplicationDefinitionException ("Invalid Cartridge 
Type specified : [ "
+                handleError("Invalid Cartridge Type specified : [ "
                         + subscribableCtxt.getType() + " ]");
             }
 
             // check if a cartridge with relevant type is already deployed. 
else, can't continue
             Cartridge cartridge =  getCartridge(subscribableCtxt.getType());
             if (cartridge == null) {
-                throw new ApplicationDefinitionException("No deployed 
Cartridge found with type [ " + subscribableCtxt.getType() +
+                handleError("No deployed Cartridge found with type [ " + 
subscribableCtxt.getType() +
                         " ] for Composite Application");
             }
 
@@ -434,7 +437,7 @@ public class DefaultApplicationParser implements 
ApplicationParser {
             clusters.add(cluster);
             if (clusterIdMap.put(subscribableCtxt.getType(), 
cluster.getClusterId()) != null) {
                 // Application Definition has same cartridge multiple times at 
the top-level
-                throw new ApplicationDefinitionException("Cartridge [ " + 
subscribableCtxt.getType() + " ] appears twice in the Application Definition's 
top level");
+                handleError("Cartridge [ " + subscribableCtxt.getType() + " ] 
appears twice in the Application Definition's top level");
             }
         }
 
@@ -487,4 +490,9 @@ public class DefaultApplicationParser implements 
ApplicationParser {
         return 
FasterLookUpDataHolder.getInstance().getCartridge(cartridgeType);
     }
 
+    private void handleError (String errorMsg) throws 
ApplicationDefinitionException {
+        log.error(errorMsg);
+        throw new ApplicationDefinitionException(errorMsg);
+    }
+
 }

Reply via email to