You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stratos.apache.org by Isuru Haththotuwa <is...@apache.org> on 2014/10/09 12:10:47 UTC

Fwd: git commit: startupOrder format change II

Hi Martin,

Seems that you have commented out the public static Set<StartupOrder>
convert (org.apache.stratos.cloud.controller.pojo.StartupOrder []
startupOrderArr, GroupContext groupContext) methos in the ParseUtils class.
Any specific reason to do it?

This change has broken the logic in the startup order parsing, currently
I'm trying to fix it.

---------- Forwarded message ----------
From: <me...@apache.org>
Date: Thu, Oct 9, 2014 at 6:22 AM
Subject: git commit: startupOrder format change II
To: commits@stratos.apache.org


Repository: stratos
Updated Branches:
  refs/heads/4.0.0-grouping cb67a8096 -> cff0ace65


startupOrder format change II


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

Branch: refs/heads/4.0.0-grouping
Commit: cff0ace658e805738b939289b2bb1d95afb83463
Parents: cb67a80
Author: Martin Eppel <me...@cisco..com>
Authored: Wed Oct 8 17:50:22 2014 -0700
Committer: Martin Eppel <me...@cisco..com>
Committed: Wed Oct 8 17:52:36 2014 -0700

----------------------------------------------------------------------
 .../grouping/dependency/DependencyBuilder.java  | 44 +++++-------
 .../parser/DefaultApplicationParser.java        | 70 +++++---------------
 .../application/parser/ParserUtils.java         |  2 +
 .../cloud/controller/pojo/StartupOrder.java     |  3 +
 .../deployer/DefaultServiceGroupDeployer.java   |  1 -
 .../domain/topology/DependencyOrder.java        | 39 +++++++----
 .../messaging/domain/topology/StartupOrder.java |  3 +
 7 files changed, 65 insertions(+), 97 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/cff0ace6/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/dependency/DependencyBuilder.java
----------------------------------------------------------------------
diff --git
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/dependency/DependencyBuilder.java
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/dependency/DependencyBuilder.java
index a4f9b54..7c087ec 100644
---
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/dependency/DependencyBuilder.java
+++
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/dependency/DependencyBuilder.java
@@ -81,43 +81,31 @@ public class DependencyBuilder {
             }

             //Parsing the start up order
-            Set<StartupOrder> startupOrderSet =
dependencyOrder.getStartupOrders();
-            ApplicationContext foundContext = null;
-            for (StartupOrder startupOrder : startupOrderSet) {
+            String [] startupOrders = dependencyOrder.getStartupOrders();
+            ApplicationContext foundContext = null;
+            if (startupOrders == null) {
+               if (log.isDebugEnabled()) {
+                    log.debug("startupOrders is null, returning default
dependency tree (empty)");
+                }
+
+               return dependencyTree;
+            }
+            for (String startupOrder : startupOrders) {
+               String start =
dependencyOrder.getStartStartupOrder(startupOrder);
                 foundContext = null;
-                for (String start : startupOrder.getStartList()) {
+
+                if (start != null) {
                     ApplicationContext applicationContext =
ApplicationContextFactory.
                                     getApplicationContext(start,
component, dependencyTree);
                     String id = applicationContext.getId(); //TODO change
the id
+
+

                     ApplicationContext existingApplicationContext =

 dependencyTree.findApplicationContextWithId(id);
-                    if (existingApplicationContext == null) {
-                        if (foundContext != null) {
-                            //appending the start up order to existing
group/cluster
-
foundContext.addApplicationContext(applicationContext);
-                            if (log.isDebugEnabled()) {
-                                log.debug("Found an existing [dependency]
" + foundContext.getId() +
-                                        " and adding the [dependency] " +
id + " as the child");
-                            }
-                        } else {
+                    if (existingApplicationContext == null) {
                             //adding list of startup order to the
dependency tree

 dependencyTree.addApplicationContext(applicationContext);
-                        }
-                    } else {
-                        if (foundContext == null) {
-                            //assigning the found context to the later use.
-                            foundContext = existingApplicationContext;
-                            if (log.isDebugEnabled()) {
-                                log.debug("Found an existing [dependency]
" + id + " and setting it " +
-                                        "for the next dependency to
follow");
-                            }
-                        } else {
-                            //TODO Throw exception, since another same
start order already found
-                            log.warn("Startup order is not consistent. It
contains the group/cluster " +
-                                    "which has been used more than one in
another startup order");
-                        }
-
                     }

                 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/cff0ace6/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 d01674d..efeccd7 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
@@ -268,9 +268,17 @@ public class DefaultApplicationParser implements
ApplicationParser {
             // get top level Dependency definitions
             if (appCtxt.getComponents().getDependencyContext() != null) {
                 DependencyOrder appDependencyOrder = new DependencyOrder();
-                Set<StartupOrder>  startupOrders =
getStartupOrderForApplicationComponents(appCtxt.getComponents().getDependencyContext().getStartupOrdersContexts());
+                String [] startupOrders =
appCtxt.getComponents().getDependencyContext().getStartupOrdersContexts();
                 if (startupOrders != null) {
+                       if (log.isDebugEnabled()) {
+                       log.debug("parsing application ...
buildCompositeAppStructure: startupOrders != null for app alias: " +
+                                               appCtxt.getAlias() + " #: "
+ startupOrders.length);
+                    }
                     appDependencyOrder.setStartupOrders(startupOrders);
+                } else {
+                       if (log.isDebugEnabled()) {
+                       log.debug("parsing application ...
buildCompositeAppStructure: startupOrders == null for app alias: " +
appCtxt.getAlias());
+                    }
                 }

 appDependencyOrder.setKillbehavior(appCtxt.getComponents().getDependencyContext().getKillBehaviour());

@@ -391,7 +399,7 @@ public class DefaultApplicationParser implements
ApplicationParser {
         group.setDeploymentPolicy(groupCtxt.getDeploymentPolicy());
         DependencyOrder dependencyOrder = new DependencyOrder();
         // create the Dependency Ordering
-        Set<StartupOrder>  startupOrders =
getStartupOrderForGroup(groupCtxt);
+        String []  startupOrders = getStartupOrderForGroup(groupCtxt);
         if (startupOrders != null) {
             dependencyOrder.setStartupOrders(startupOrders);
         }
@@ -434,7 +442,7 @@ public class DefaultApplicationParser implements
ApplicationParser {
      *
      * @throws ApplicationDefinitionException
      */
-    private Set<StartupOrder> getStartupOrderForGroup(GroupContext
groupContext) throws ApplicationDefinitionException {
+    private String [] getStartupOrderForGroup(GroupContext groupContext)
throws ApplicationDefinitionException {

         ServiceGroup serviceGroup =
FasterLookUpDataHolder.getInstance().getServiceGroup(groupContext.getName());

@@ -448,23 +456,14 @@ public class DefaultApplicationParser implements
ApplicationParser {

         assert serviceGroup != null;
         if (serviceGroup.getDependencies() != null) {
+               if (log.isDebugEnabled()) {
+               log.debug("parsing application ... getStartupOrderForGroup:
dependencies != null " );
+            }
             if (serviceGroup.getDependencies().getStartupOrders() != null)
{

-               Set<StartupOrder> startupOrders = new
HashSet<StartupOrder>();
-               String [] st =
serviceGroup.getDependencies().getStartupOrders();
-
+               String [] startupOrders =
serviceGroup.getDependencies().getStartupOrders();
                if (log.isDebugEnabled()) {
-                       log.debug("parsing application ...
getStartupOrderForGroup # of startupOrders: " + st.length);
-                }
-
-                for (String startupOrderContext : st) {
-
-                       String [] order = startupOrderContext.split(",");
-
-                    startupOrders.add(new StartupOrder(order[0],
order[1]));
-                    if (log.isDebugEnabled()) {
-                       log.debug("parsing application ...
getStartupOrderForGroup startupOrders:start: " + order[0] + " after: " +
order[1]);
-                    }
+                       log.debug("parsing application ...
getStartupOrderForGroup: startupOrders != null # of: " +
startupOrders.length);
                 }
                 return startupOrders;
             }
@@ -474,43 +473,6 @@ public class DefaultApplicationParser implements
ApplicationParser {
     }

     /**
-     * Find the startup order for an Application
-     *
-     * @param startupOrderCtxts Startup Order information related to the
Application
-     * @return Set of Startup Orders
-     *
-     * @throws ApplicationDefinitionException if an error occurs
-     */
-    private Set<StartupOrder> getStartupOrderForApplicationComponents
(String [] startupOrdersCtxts)
-            throws ApplicationDefinitionException {
-
-        if (startupOrdersCtxts == null) {
-            return null;
-        }
-
-        if (log.isDebugEnabled()) {
-               log.debug("parsing application ...
getStartupOrderForApplicationComponents: # of: " +
startupOrdersCtxts.length);
-        }
-
-        Set<StartupOrder> startupOrders = new HashSet<StartupOrder>();
-
-        /*
-        for (StartupOrderContext startupOrderContext : startupOrderCtxts) {
-            startupOrders.add(new
StartupOrder(startupOrderContext.getStart(),
startupOrderContext.getAfter()));
-        }
-        */
-        for (String startupOrderContext : startupOrdersCtxts) {
-               String [] order = startupOrderContext.split(",");
-            startupOrders.add(new StartupOrder(order[0], order[1]));
-            if (log.isDebugEnabled()) {
-               log.debug("parsing application ...
getStartupOrderForApplicationComponents: start: " + order[0] + " /after: "
+ order[1]);
-            }
-        }
-
-        return startupOrders;
-    }
-
-    /**
      * Get kill behaviour related to a Group
      *
      * @param serviceGroupName Group name

http://git-wip-us.apache.org/repos/asf/stratos/blob/cff0ace6/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/application/parser/ParserUtils.java
----------------------------------------------------------------------
diff --git
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/application/parser/ParserUtils.java
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/application/parser/ParserUtils.java
index f47970c..707fd0a 100644
---
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/application/parser/ParserUtils.java
+++
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/application/parser/ParserUtils.java
@@ -28,6 +28,7 @@ import java.util.Set;

 public class ParserUtils {

+       /*
     public static Set<StartupOrder> convert
(org.apache.stratos.cloud.controller.pojo.StartupOrder [] startupOrderArr,
GroupContext groupContext) {

         Set<StartupOrder> startupOrders = new HashSet<StartupOrder>();
@@ -108,6 +109,7 @@ public class ParserUtils {
         return null;
     }

+*/
     private static String getAliasForServiceType (String serviceType,
GroupContext groupContext) {

         for (SubscribableContext subCtxt :
groupContext.getSubscribableContexts()) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/cff0ace6/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/StartupOrder.java
----------------------------------------------------------------------
diff --git
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/StartupOrder.java
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/StartupOrder.java
index 0f1c647..ed9626b 100644
---
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/StartupOrder.java
+++
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/StartupOrder.java
@@ -24,6 +24,8 @@ import java.io.Serializable;
 public class StartupOrder implements Serializable {

        private static final long serialVersionUID = 280860334002791396L;
+
+       /*

        private String start;

@@ -44,4 +46,5 @@ public class StartupOrder implements Serializable {
     public void setAfter(String after) {
         this.after = after;
     }
+    */
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/cff0ace6/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/grouping/deployer/DefaultServiceGroupDeployer.java
----------------------------------------------------------------------
diff --git
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/grouping/deployer/DefaultServiceGroupDeployer.java
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/grouping/deployer/DefaultServiceGroupDeployer.java
index f4d42f6..8885ebd 100644
---
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/grouping/deployer/DefaultServiceGroupDeployer.java
+++
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/grouping/deployer/DefaultServiceGroupDeployer.java
@@ -28,7 +28,6 @@ import
org.apache.stratos.manager.exception.InvalidServiceGroupException;
 import org.apache.stratos.manager.exception.ServiceGroupDefinitioException;
 import
org.apache.stratos.manager.grouping.definitions.ServiceGroupDefinition;
 import
org.apache.stratos.manager.grouping.definitions.DependencyDefinitions;
-import
org.apache.stratos.manager.grouping.definitions.StartupOrderDefinition;
 import org.apache.stratos.cloud.controller.stub.pojo.ServiceGroup;
 import org.apache.stratos.cloud.controller.stub.pojo.Dependencies;
 import
org.apache.stratos.cloud.controller.stub.CloudControllerServiceInvalidServiceGroupExceptionException;

http://git-wip-us.apache.org/repos/asf/stratos/blob/cff0ace6/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/DependencyOrder.java
----------------------------------------------------------------------
diff --git
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/DependencyOrder.java
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/DependencyOrder.java
index 5fb694a..ff08a4c 100644
---
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/DependencyOrder.java
+++
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/DependencyOrder.java
@@ -25,24 +25,17 @@ import java.util.Set;

 public class DependencyOrder implements Serializable {

-    private Set<StartupOrder> startupOrders;
+    /**
+        *
+        */
+       private static final long serialVersionUID = -599600831844477527L;
+
+       private String [] startupOrders;

     private String killbehavior;

     public DependencyOrder () {
-        this.startupOrders = new HashSet<StartupOrder>();
-    }
-
-    public void setStartupOrders (Set<StartupOrder> startupOrders) {
-        this.startupOrders.addAll(startupOrders);
-    }
-
-    public Set<StartupOrder> getStartupOrders() {
-        return startupOrders;
-    }
-
-    public void addStartupOrders(StartupOrder startupOrder) {
-        this.startupOrders.add(startupOrder);
+        this.setStartupOrders(null);
     }

     public String getKillbehavior() {
@@ -52,4 +45,22 @@ public class DependencyOrder implements Serializable {
     public void setKillbehavior(String killbehavior) {
         this.killbehavior = killbehavior;
     }
+
+       public String [] getStartupOrders() {
+               return startupOrders;
+       }
+
+       public void setStartupOrders(String [] startupOrders) {
+               this.startupOrders = startupOrders;
+       }
+
+       public String getStartStartupOrder(String startupOrder) {
+               String [] splitStartupOrder = startupOrder.split(",");
+               return splitStartupOrder[0];
+       }
+
+       public String getAfterStartupOrder(String startupOrder) {
+               String [] splitStartupOrder = startupOrder.split(",");
+               return splitStartupOrder[1];
+       }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/cff0ace6/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/StartupOrder.java
----------------------------------------------------------------------
diff --git
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/StartupOrder.java
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/StartupOrder.java
index 220380e..6263070 100644
---
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/StartupOrder.java
+++
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/StartupOrder.java
@@ -23,6 +23,8 @@ import java.io.Serializable;
 import java.util.List;

 public class StartupOrder implements Serializable {
+
+       /*

     private String start;

@@ -50,4 +52,5 @@ public class StartupOrder implements Serializable {
     public void setStartList(List<String> startList) {
         this.startList = startList;
     }
+    */
 }

-- 
Thanks and Regards,

Isuru H.
+94 716 358 048* <http://wso2.com/>*


* <http://wso2.com/>*

Re: git commit: startupOrder format change II

Posted by Isuru Haththotuwa <is...@apache.org>.
Fixed this in the commit f11401a342ec74e17fd6dc8dcf3c4d6477e221bf.

On Thu, Oct 9, 2014 at 3:40 PM, Isuru Haththotuwa <is...@apache.org> wrote:

>
> Hi Martin,
>
> Seems that you have commented out the public static Set<StartupOrder>
> convert (org.apache.stratos.cloud.controller.pojo.StartupOrder []
> startupOrderArr, GroupContext groupContext) methos in the ParseUtils class.
> Any specific reason to do it?
>
> This change has broken the logic in the startup order parsing, currently
> I'm trying to fix it.
>
> ---------- Forwarded message ----------
> From: <me...@apache.org>
> Date: Thu, Oct 9, 2014 at 6:22 AM
> Subject: git commit: startupOrder format change II
> To: commits@stratos.apache.org
>
>
> Repository: stratos
> Updated Branches:
>   refs/heads/4.0.0-grouping cb67a8096 -> cff0ace65
>
>
> startupOrder format change II
>
>
> Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
> Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/cff0ace6
> Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/cff0ace6
> Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/cff0ace6
>
> Branch: refs/heads/4.0.0-grouping
> Commit: cff0ace658e805738b939289b2bb1d95afb83463
> Parents: cb67a80
> Author: Martin Eppel <me...@cisco..com>
> Authored: Wed Oct 8 17:50:22 2014 -0700
> Committer: Martin Eppel <me...@cisco..com>
> Committed: Wed Oct 8 17:52:36 2014 -0700
>
> ----------------------------------------------------------------------
>  .../grouping/dependency/DependencyBuilder.java  | 44 +++++-------
>  .../parser/DefaultApplicationParser.java        | 70 +++++---------------
>  .../application/parser/ParserUtils.java         |  2 +
>  .../cloud/controller/pojo/StartupOrder.java     |  3 +
>  .../deployer/DefaultServiceGroupDeployer.java   |  1 -
>  .../domain/topology/DependencyOrder.java        | 39 +++++++----
>  .../messaging/domain/topology/StartupOrder.java |  3 +
>  7 files changed, 65 insertions(+), 97 deletions(-)
> ----------------------------------------------------------------------
>
>
>
> http://git-wip-us.apache.org/repos/asf/stratos/blob/cff0ace6/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/dependency/DependencyBuilder.java
> ----------------------------------------------------------------------
> diff --git
> a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/dependency/DependencyBuilder.java
> b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/dependency/DependencyBuilder.java
> index a4f9b54..7c087ec 100644
> ---
> a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/dependency/DependencyBuilder.java
> +++
> b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/grouping/dependency/DependencyBuilder.java
> @@ -81,43 +81,31 @@ public class DependencyBuilder {
>              }
>
>              //Parsing the start up order
> -            Set<StartupOrder> startupOrderSet =
> dependencyOrder.getStartupOrders();
> -            ApplicationContext foundContext = null;
> -            for (StartupOrder startupOrder : startupOrderSet) {
> +            String [] startupOrders = dependencyOrder.getStartupOrders();
> +            ApplicationContext foundContext = null;
> +            if (startupOrders == null) {
> +               if (log.isDebugEnabled()) {
> +                    log.debug("startupOrders is null, returning default
> dependency tree (empty)");
> +                }
> +
> +               return dependencyTree;
> +            }
> +            for (String startupOrder : startupOrders) {
> +               String start =
> dependencyOrder.getStartStartupOrder(startupOrder);
>                  foundContext = null;
> -                for (String start : startupOrder.getStartList()) {
> +
> +                if (start != null) {
>                      ApplicationContext applicationContext =
> ApplicationContextFactory.
>                                      getApplicationContext(start,
> component, dependencyTree);
>                      String id = applicationContext.getId(); //TODO change
> the id
> +
> +
>
>                      ApplicationContext existingApplicationContext =
>
>  dependencyTree.findApplicationContextWithId(id);
> -                    if (existingApplicationContext == null) {
> -                        if (foundContext != null) {
> -                            //appending the start up order to existing
> group/cluster
> -
> foundContext.addApplicationContext(applicationContext);
> -                            if (log.isDebugEnabled()) {
> -                                log.debug("Found an existing [dependency]
> " + foundContext.getId() +
> -                                        " and adding the [dependency] " +
> id + " as the child");
> -                            }
> -                        } else {
> +                    if (existingApplicationContext == null) {
>                              //adding list of startup order to the
> dependency tree
>
>  dependencyTree.addApplicationContext(applicationContext);
> -                        }
> -                    } else {
> -                        if (foundContext == null) {
> -                            //assigning the found context to the later
> use.
> -                            foundContext = existingApplicationContext;
> -                            if (log.isDebugEnabled()) {
> -                                log.debug("Found an existing [dependency]
> " + id + " and setting it " +
> -                                        "for the next dependency to
> follow");
> -                            }
> -                        } else {
> -                            //TODO Throw exception, since another same
> start order already found
> -                            log.warn("Startup order is not consistent. It
> contains the group/cluster " +
> -                                    "which has been used more than one in
> another startup order");
> -                        }
> -
>                      }
>
>                  }
>
>
> http://git-wip-us.apache.org/repos/asf/stratos/blob/cff0ace6/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 d01674d..efeccd7 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
> @@ -268,9 +268,17 @@ public class DefaultApplicationParser implements
> ApplicationParser {
>              // get top level Dependency definitions
>              if (appCtxt.getComponents().getDependencyContext() != null) {
>                  DependencyOrder appDependencyOrder = new
> DependencyOrder();
> -                Set<StartupOrder>  startupOrders =
> getStartupOrderForApplicationComponents(appCtxt.getComponents().getDependencyContext().getStartupOrdersContexts());
> +                String [] startupOrders =
> appCtxt.getComponents().getDependencyContext().getStartupOrdersContexts();
>                  if (startupOrders != null) {
> +                       if (log.isDebugEnabled()) {
> +                       log.debug("parsing application ...
> buildCompositeAppStructure: startupOrders != null for app alias: " +
> +                                               appCtxt.getAlias() + " #:
> " + startupOrders.length);
> +                    }
>                      appDependencyOrder.setStartupOrders(startupOrders);
> +                } else {
> +                       if (log.isDebugEnabled()) {
> +                       log.debug("parsing application ...
> buildCompositeAppStructure: startupOrders == null for app alias: " +
> appCtxt.getAlias());
> +                    }
>                  }
>
>  appDependencyOrder.setKillbehavior(appCtxt.getComponents().getDependencyContext().getKillBehaviour());
>
> @@ -391,7 +399,7 @@ public class DefaultApplicationParser implements
> ApplicationParser {
>          group.setDeploymentPolicy(groupCtxt.getDeploymentPolicy());
>          DependencyOrder dependencyOrder = new DependencyOrder();
>          // create the Dependency Ordering
> -        Set<StartupOrder>  startupOrders =
> getStartupOrderForGroup(groupCtxt);
> +        String []  startupOrders = getStartupOrderForGroup(groupCtxt);
>          if (startupOrders != null) {
>              dependencyOrder.setStartupOrders(startupOrders);
>          }
> @@ -434,7 +442,7 @@ public class DefaultApplicationParser implements
> ApplicationParser {
>       *
>       * @throws ApplicationDefinitionException
>       */
> -    private Set<StartupOrder> getStartupOrderForGroup(GroupContext
> groupContext) throws ApplicationDefinitionException {
> +    private String [] getStartupOrderForGroup(GroupContext groupContext)
> throws ApplicationDefinitionException {
>
>          ServiceGroup serviceGroup =
> FasterLookUpDataHolder.getInstance().getServiceGroup(groupContext.getName());
>
> @@ -448,23 +456,14 @@ public class DefaultApplicationParser implements
> ApplicationParser {
>
>          assert serviceGroup != null;
>          if (serviceGroup.getDependencies() != null) {
> +               if (log.isDebugEnabled()) {
> +               log.debug("parsing application ...
> getStartupOrderForGroup: dependencies != null " );
> +            }
>              if (serviceGroup.getDependencies().getStartupOrders() !=
> null) {
>
> -               Set<StartupOrder> startupOrders = new
> HashSet<StartupOrder>();
> -               String [] st =
> serviceGroup.getDependencies().getStartupOrders();
> -
> +               String [] startupOrders =
> serviceGroup.getDependencies().getStartupOrders();
>                 if (log.isDebugEnabled()) {
> -                       log.debug("parsing application ...
> getStartupOrderForGroup # of startupOrders: " + st.length);
> -                }
> -
> -                for (String startupOrderContext : st) {
> -
> -                       String [] order = startupOrderContext.split(",");
> -
> -                    startupOrders.add(new StartupOrder(order[0],
> order[1]));
> -                    if (log.isDebugEnabled()) {
> -                       log.debug("parsing application ...
> getStartupOrderForGroup startupOrders:start: " + order[0] + " after: " +
> order[1]);
> -                    }
> +                       log.debug("parsing application ...
> getStartupOrderForGroup: startupOrders != null # of: " +
> startupOrders.length);
>                  }
>                  return startupOrders;
>              }
> @@ -474,43 +473,6 @@ public class DefaultApplicationParser implements
> ApplicationParser {
>      }
>
>      /**
> -     * Find the startup order for an Application
> -     *
> -     * @param startupOrderCtxts Startup Order information related to the
> Application
> -     * @return Set of Startup Orders
> -     *
> -     * @throws ApplicationDefinitionException if an error occurs
> -     */
> -    private Set<StartupOrder> getStartupOrderForApplicationComponents
> (String [] startupOrdersCtxts)
> -            throws ApplicationDefinitionException {
> -
> -        if (startupOrdersCtxts == null) {
> -            return null;
> -        }
> -
> -        if (log.isDebugEnabled()) {
> -               log.debug("parsing application ...
> getStartupOrderForApplicationComponents: # of: " +
> startupOrdersCtxts.length);
> -        }
> -
> -        Set<StartupOrder> startupOrders = new HashSet<StartupOrder>();
> -
> -        /*
> -        for (StartupOrderContext startupOrderContext : startupOrderCtxts)
> {
> -            startupOrders.add(new
> StartupOrder(startupOrderContext.getStart(),
> startupOrderContext.getAfter()));
> -        }
> -        */
> -        for (String startupOrderContext : startupOrdersCtxts) {
> -               String [] order = startupOrderContext.split(",");
> -            startupOrders.add(new StartupOrder(order[0], order[1]));
> -            if (log.isDebugEnabled()) {
> -               log.debug("parsing application ...
> getStartupOrderForApplicationComponents: start: " + order[0] + " /after: "
> + order[1]);
> -            }
> -        }
> -
> -        return startupOrders;
> -    }
> -
> -    /**
>       * Get kill behaviour related to a Group
>       *
>       * @param serviceGroupName Group name
>
>
> http://git-wip-us.apache.org/repos/asf/stratos/blob/cff0ace6/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/application/parser/ParserUtils.java
> ----------------------------------------------------------------------
> diff --git
> a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/application/parser/ParserUtils.java
> b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/application/parser/ParserUtils.java
> index f47970c..707fd0a 100644
> ---
> a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/application/parser/ParserUtils.java
> +++
> b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/application/parser/ParserUtils.java
> @@ -28,6 +28,7 @@ import java.util.Set;
>
>  public class ParserUtils {
>
> +       /*
>      public static Set<StartupOrder> convert
> (org.apache.stratos.cloud.controller.pojo.StartupOrder [] startupOrderArr,
> GroupContext groupContext) {
>
>          Set<StartupOrder> startupOrders = new HashSet<StartupOrder>();
> @@ -108,6 +109,7 @@ public class ParserUtils {
>          return null;
>      }
>
> +*/
>      private static String getAliasForServiceType (String serviceType,
> GroupContext groupContext) {
>
>          for (SubscribableContext subCtxt :
> groupContext.getSubscribableContexts()) {
>
>
> http://git-wip-us.apache.org/repos/asf/stratos/blob/cff0ace6/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/StartupOrder.java
> ----------------------------------------------------------------------
> diff --git
> a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/StartupOrder.java
> b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/StartupOrder.java
> index 0f1c647..ed9626b 100644
> ---
> a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/StartupOrder.java
> +++
> b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/StartupOrder.java
> @@ -24,6 +24,8 @@ import java.io.Serializable;
>  public class StartupOrder implements Serializable {
>
>         private static final long serialVersionUID = 280860334002791396L;
> +
> +       /*
>
>         private String start;
>
> @@ -44,4 +46,5 @@ public class StartupOrder implements Serializable {
>      public void setAfter(String after) {
>          this.after = after;
>      }
> +    */
>  }
>
>
> http://git-wip-us.apache.org/repos/asf/stratos/blob/cff0ace6/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/grouping/deployer/DefaultServiceGroupDeployer.java
> ----------------------------------------------------------------------
> diff --git
> a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/grouping/deployer/DefaultServiceGroupDeployer.java
> b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/grouping/deployer/DefaultServiceGroupDeployer.java
> index f4d42f6..8885ebd 100644
> ---
> a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/grouping/deployer/DefaultServiceGroupDeployer.java
> +++
> b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/grouping/deployer/DefaultServiceGroupDeployer.java
> @@ -28,7 +28,6 @@ import
> org.apache.stratos.manager.exception.InvalidServiceGroupException;
>  import
> org.apache.stratos.manager.exception.ServiceGroupDefinitioException;
>  import
> org.apache.stratos.manager.grouping.definitions.ServiceGroupDefinition;
>  import
> org.apache.stratos.manager.grouping.definitions.DependencyDefinitions;
> -import
> org.apache.stratos.manager.grouping.definitions.StartupOrderDefinition;
>  import org.apache.stratos.cloud.controller.stub.pojo.ServiceGroup;
>  import org.apache.stratos.cloud.controller.stub.pojo.Dependencies;
>  import
> org.apache.stratos.cloud.controller.stub.CloudControllerServiceInvalidServiceGroupExceptionException;
>
>
> http://git-wip-us.apache.org/repos/asf/stratos/blob/cff0ace6/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/DependencyOrder.java
> ----------------------------------------------------------------------
> diff --git
> a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/DependencyOrder.java
> b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/DependencyOrder.java
> index 5fb694a..ff08a4c 100644
> ---
> a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/DependencyOrder.java
> +++
> b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/DependencyOrder.java
> @@ -25,24 +25,17 @@ import java.util.Set;
>
>  public class DependencyOrder implements Serializable {
>
> -    private Set<StartupOrder> startupOrders;
> +    /**
> +        *
> +        */
> +       private static final long serialVersionUID = -599600831844477527L;
> +
> +       private String [] startupOrders;
>
>      private String killbehavior;
>
>      public DependencyOrder () {
> -        this.startupOrders = new HashSet<StartupOrder>();
> -    }
> -
> -    public void setStartupOrders (Set<StartupOrder> startupOrders) {
> -        this.startupOrders.addAll(startupOrders);
> -    }
> -
> -    public Set<StartupOrder> getStartupOrders() {
> -        return startupOrders;
> -    }
> -
> -    public void addStartupOrders(StartupOrder startupOrder) {
> -        this.startupOrders.add(startupOrder);
> +        this.setStartupOrders(null);
>      }
>
>      public String getKillbehavior() {
> @@ -52,4 +45,22 @@ public class DependencyOrder implements Serializable {
>      public void setKillbehavior(String killbehavior) {
>          this.killbehavior = killbehavior;
>      }
> +
> +       public String [] getStartupOrders() {
> +               return startupOrders;
> +       }
> +
> +       public void setStartupOrders(String [] startupOrders) {
> +               this.startupOrders = startupOrders;
> +       }
> +
> +       public String getStartStartupOrder(String startupOrder) {
> +               String [] splitStartupOrder = startupOrder.split(",");
> +               return splitStartupOrder[0];
> +       }
> +
> +       public String getAfterStartupOrder(String startupOrder) {
> +               String [] splitStartupOrder = startupOrder.split(",");
> +               return splitStartupOrder[1];
> +       }
>  }
>
>
> http://git-wip-us.apache.org/repos/asf/stratos/blob/cff0ace6/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/StartupOrder.java
> ----------------------------------------------------------------------
> diff --git
> a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/StartupOrder.java
> b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/StartupOrder.java
> index 220380e..6263070 100644
> ---
> a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/StartupOrder.java
> +++
> b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/StartupOrder.java
> @@ -23,6 +23,8 @@ import java.io.Serializable;
>  import java.util.List;
>
>  public class StartupOrder implements Serializable {
> +
> +       /*
>
>      private String start;
>
> @@ -50,4 +52,5 @@ public class StartupOrder implements Serializable {
>      public void setStartList(List<String> startList) {
>          this.startList = startList;
>      }
> +    */
>  }
>
> --
> Thanks and Regards,
>
> Isuru H.
> +94 716 358 048
>
> --
> Thanks and Regards,
>
> Isuru H.
> +94 716 358 048* <http://wso2.com/>*
>
>
> * <http://wso2.com/>*
>
>
>