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: <mep...@apache.org> Date: Thu, Oct 9, 2014 at 6:22 AM Subject: git commit: startupOrder format change II To: comm...@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 <mep...@cisco..com> Authored: Wed Oct 8 17:50:22 2014 -0700 Committer: Martin Eppel <mep...@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/>*