http://git-wip-us.apache.org/repos/asf/stratos/blob/572cbe32/components/org.apache.stratos.cloud.controller/src/test/java/org/apache/stratos/cloud/controller/application/CompositeApplicationParseTest.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/test/java/org/apache/stratos/cloud/controller/application/CompositeApplicationParseTest.java b/components/org.apache.stratos.cloud.controller/src/test/java/org/apache/stratos/cloud/controller/application/CompositeApplicationParseTest.java index 1fc808e..72b1581 100644 --- a/components/org.apache.stratos.cloud.controller/src/test/java/org/apache/stratos/cloud/controller/application/CompositeApplicationParseTest.java +++ b/components/org.apache.stratos.cloud.controller/src/test/java/org/apache/stratos/cloud/controller/application/CompositeApplicationParseTest.java @@ -1,554 +1,554 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.stratos.cloud.controller.application; - -import org.apache.stratos.cloud.controller.application.parser.DefaultApplicationParser; -import org.apache.stratos.cloud.controller.exception.ApplicationDefinitionException; -import org.apache.stratos.cloud.controller.interfaces.ApplicationParser; -import org.apache.stratos.cloud.controller.pojo.Cartridge; -import org.apache.stratos.cloud.controller.pojo.Dependencies; -import org.apache.stratos.cloud.controller.pojo.ServiceGroup; -import org.apache.stratos.cloud.controller.pojo.application.*; -import org.apache.stratos.cloud.controller.runtime.FasterLookUpDataHolder; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; - -public class CompositeApplicationParseTest { - - private static FasterLookUpDataHolder dataHolder = null; - - @BeforeClass - public static void setUpBeforeClass() { - - dataHolder = FasterLookUpDataHolder.getInstance(); - // add cartridges - // add php cartridge - dataHolder.addCartridge(new Cartridge("php", "stratos.com", "php-provider" , "1.0.0", false)); - // add tomcat cartridge - dataHolder.addCartridge(new Cartridge("tomcat", "stratos.com", "apache" , "1.0.0", false)); - // add mysql cartridge - dataHolder.addCartridge(new Cartridge("mysql", "stratos.com", "apache" , "1.0.0", false)); - - // add groups - // add group1 - ServiceGroup group1 = new ServiceGroup(); - group1.setName("group1"); - group1.setCartridges(new String[]{"mysql"}); - Dependencies group1Dependencies = new Dependencies(); - group1Dependencies.setKillBehaviour("terminate-none"); - group1.setDependencies(group1Dependencies); - dataHolder.addServiceGroup(group1); - // add group2 - ServiceGroup group2 = new ServiceGroup(); - group2.setName("group2"); - group2.setCartridges(new String[]{"php"}); - group2.setSubGroups(new String[]{"group1"}); - Dependencies group2Dependencies = new Dependencies(); - group2Dependencies.setStartupOrders(new String[]{"group.group1,cartridge.php"}); - group2Dependencies.setKillBehaviour("terminate-dependents"); - group2.setDependencies(group2Dependencies); - dataHolder.addServiceGroup(group2); - } - - @Test - public void testParseSimpleApplication () throws ApplicationDefinitionException { - - ApplicationParser applicationParser = new DefaultApplicationParser(); - ApplicationContext simpleAppCtxt = new ApplicationContext(); - // app id - simpleAppCtxt.setApplicationId("simpleApp"); - simpleAppCtxt.setAlias("simpleAppAlias"); - // tenant info - simpleAppCtxt.setTenantId(-1234); - // components - ComponentContext simpleAppComponentCtxt = new ComponentContext(); - SubscribableContext simpleAppSubscribableContext = new SubscribableContext(); - simpleAppSubscribableContext.setType("php"); - simpleAppSubscribableContext.setAlias("myphp"); - simpleAppComponentCtxt.setSubscribableContexts(new SubscribableContext[]{simpleAppSubscribableContext}); - simpleAppCtxt.setComponents(simpleAppComponentCtxt); - // subscribable information - SubscribableInfoContext simpleAppSubscribableInfoCtxt = new SubscribableInfoContext(); - simpleAppSubscribableInfoCtxt.setAlias("myphp"); - simpleAppSubscribableInfoCtxt.setAutoscalingPolicy("deployment_policy_1"); - simpleAppSubscribableInfoCtxt.setAutoscalingPolicy("autoscale_policy_1"); - simpleAppSubscribableInfoCtxt.setRepoUrl("www.mygit.com/myphp.git"); - simpleAppSubscribableInfoCtxt.setPrivateRepo(true); - simpleAppSubscribableInfoCtxt.setRepoUsername("admin"); - simpleAppSubscribableInfoCtxt.setRepoUrl("admin123"); - simpleAppCtxt.setSubscribableInfoContext(new SubscribableInfoContext[]{simpleAppSubscribableInfoCtxt}); - - // parse - applicationParser.parse(simpleAppCtxt); - } - - @Test(expected = ApplicationDefinitionException.class) - public void testParseSimpleApplicationWithNullAppId () throws ApplicationDefinitionException { - - ApplicationParser applicationParser = new DefaultApplicationParser(); - ApplicationContext simpleAppCtxt = new ApplicationContext(); - // no app id - simpleAppCtxt.setAlias("simpleAppAlias"); - - // parse - applicationParser.parse(simpleAppCtxt); - } - - @Test(expected = ApplicationDefinitionException.class) - public void testParseSimpleApplicationWithEmptyAppId () throws ApplicationDefinitionException { - - ApplicationParser applicationParser = new DefaultApplicationParser(); - ApplicationContext simpleAppCtxt = new ApplicationContext(); - // empty app id - simpleAppCtxt.setApplicationId(""); - simpleAppCtxt.setAlias("simpleAppAlias"); - - // parse - applicationParser.parse(simpleAppCtxt); - } - - @Test(expected = ApplicationDefinitionException.class) - public void testParseSimpleApplicationWithInvalidCartridge() throws ApplicationDefinitionException { - - ApplicationParser applicationParser = new DefaultApplicationParser(); - ApplicationContext simpleAppCtxt = new ApplicationContext(); - // app id - simpleAppCtxt.setApplicationId("simpleInvalidApp"); - simpleAppCtxt.setAlias("simpleInvalidAppAlias"); - // tenant info - simpleAppCtxt.setTenantId(-1234); - // components - ComponentContext simpleAppComponentCtxt = new ComponentContext(); - SubscribableContext simpleAppSubscribableContext = new SubscribableContext(); - // give invalid cartridge type - simpleAppSubscribableContext.setType("php1"); - simpleAppSubscribableContext.setAlias("myphp"); - simpleAppComponentCtxt.setSubscribableContexts(new SubscribableContext[]{simpleAppSubscribableContext}); - simpleAppCtxt.setComponents(simpleAppComponentCtxt); - // subscribable information - SubscribableInfoContext simpleAppSubscribableInfoCtxt = new SubscribableInfoContext(); - simpleAppSubscribableInfoCtxt.setAlias("myphp"); - simpleAppSubscribableInfoCtxt.setAutoscalingPolicy("deployment_policy_1"); - simpleAppSubscribableInfoCtxt.setAutoscalingPolicy("autoscale_policy_1"); - simpleAppSubscribableInfoCtxt.setRepoUrl("www.mygit.com/myphp.git"); - simpleAppSubscribableInfoCtxt.setPrivateRepo(true); - simpleAppSubscribableInfoCtxt.setRepoUsername("admin"); - simpleAppSubscribableInfoCtxt.setRepoUrl("admin123"); - simpleAppCtxt.setSubscribableInfoContext(new SubscribableInfoContext[]{simpleAppSubscribableInfoCtxt}); - - // parse - applicationParser.parse(simpleAppCtxt); - } - - @Test(expected = ApplicationDefinitionException.class) - public void testParseSimpleApplicationWithoutSubcriptionInformation() throws ApplicationDefinitionException { - - ApplicationParser applicationParser = new DefaultApplicationParser(); - ApplicationContext simpleAppCtxt = new ApplicationContext(); - // app id - simpleAppCtxt.setApplicationId("simpleInvalidApp"); - simpleAppCtxt.setAlias("simpleInvalidAppAlias"); - // tenant info - simpleAppCtxt.setTenantId(-1234); - // components - ComponentContext simpleAppComponentCtxt = new ComponentContext(); - SubscribableContext simpleAppSubscribableContext = new SubscribableContext(); - // give invalid cartridge type - simpleAppSubscribableContext.setType("php1"); - simpleAppSubscribableContext.setAlias("myphp"); - simpleAppComponentCtxt.setSubscribableContexts(new SubscribableContext[]{simpleAppSubscribableContext}); - simpleAppCtxt.setComponents(simpleAppComponentCtxt); - // invalid Subscription information - SubscribableInfoContext simpleAppEmptySubscribableInfoCtxt = new SubscribableInfoContext(); - simpleAppCtxt.setSubscribableInfoContext(new SubscribableInfoContext[]{simpleAppEmptySubscribableInfoCtxt}); - - // parse - applicationParser.parse(simpleAppCtxt); - } - - @Test - public void testParseSimpleApplicationWithMultipleSubsriptions () throws ApplicationDefinitionException { - - ApplicationParser applicationParser = new DefaultApplicationParser(); - ApplicationContext simpleAppCtxt = new ApplicationContext(); - // app id - simpleAppCtxt.setApplicationId("simpleInvalidApp"); - simpleAppCtxt.setAlias("simpleInvalidAppAlias"); - // tenant info - simpleAppCtxt.setTenantId(-1234); - // components - ComponentContext simpleAppComponentCtxt = new ComponentContext(); - SubscribableContext simpleAppPhpSubscribableContext = new SubscribableContext(); - simpleAppPhpSubscribableContext.setType("php"); - simpleAppPhpSubscribableContext.setAlias("myphp"); - SubscribableContext simpleAppMySqlSubscribableContext = new SubscribableContext(); - simpleAppMySqlSubscribableContext.setType("mysql"); - simpleAppMySqlSubscribableContext.setAlias("mysql1"); - simpleAppComponentCtxt.setSubscribableContexts(new SubscribableContext[]{simpleAppPhpSubscribableContext, - simpleAppMySqlSubscribableContext}); - - DependencyContext simpleAppDependecyCtxt = new DependencyContext(); - simpleAppDependecyCtxt.setTerminationBehaviour("terminate-dependents"); - simpleAppDependecyCtxt.setStartupOrdersContexts(new String[]{"cartridge.mysql1,cartridge.myphp"}); - simpleAppComponentCtxt.setDependencyContext(simpleAppDependecyCtxt); - - simpleAppCtxt.setComponents(simpleAppComponentCtxt); - - // subscribable information - SubscribableInfoContext simpleAppPhpSubscribableInfoCtxt = new SubscribableInfoContext(); - simpleAppPhpSubscribableInfoCtxt.setAlias("myphp"); - simpleAppPhpSubscribableInfoCtxt.setAutoscalingPolicy("deployment_policy_1"); - simpleAppPhpSubscribableInfoCtxt.setAutoscalingPolicy("autoscale_policy_1"); - simpleAppPhpSubscribableInfoCtxt.setRepoUrl("www.mygit.com/myphp.git"); - simpleAppPhpSubscribableInfoCtxt.setPrivateRepo(true); - simpleAppPhpSubscribableInfoCtxt.setRepoUsername("admin"); - simpleAppPhpSubscribableInfoCtxt.setRepoUrl("admin123"); - - SubscribableInfoContext simpleAppMySqlSubscribableInfoCtxt = new SubscribableInfoContext(); - simpleAppMySqlSubscribableInfoCtxt.setAlias("mysql1"); - simpleAppMySqlSubscribableInfoCtxt.setAutoscalingPolicy("deployment_policy_2"); - simpleAppMySqlSubscribableInfoCtxt.setAutoscalingPolicy("autoscale_policy_2"); - - simpleAppCtxt.setSubscribableInfoContext(new SubscribableInfoContext[]{simpleAppPhpSubscribableInfoCtxt, - simpleAppMySqlSubscribableInfoCtxt}); - - // parse - applicationParser.parse(simpleAppCtxt); - } - - @Test(expected = ApplicationDefinitionException.class) - public void testParseSimpleApplicationWithMultipleSubsriptionsInvalidStartupOrder () throws ApplicationDefinitionException { - - ApplicationParser applicationParser = new DefaultApplicationParser(); - ApplicationContext simpleAppCtxt = new ApplicationContext(); - // app id - simpleAppCtxt.setApplicationId("simpleInvalidApp"); - simpleAppCtxt.setAlias("simpleInvalidAppAlias"); - // tenant info - simpleAppCtxt.setTenantId(-1234); - // components - ComponentContext simpleAppComponentCtxt = new ComponentContext(); - SubscribableContext simpleAppPhpSubscribableContext = new SubscribableContext(); - simpleAppPhpSubscribableContext.setType("php"); - simpleAppPhpSubscribableContext.setAlias("myphp"); - SubscribableContext simpleAppMySqlSubscribableContext = new SubscribableContext(); - simpleAppMySqlSubscribableContext.setType("mysql"); - simpleAppMySqlSubscribableContext.setAlias("mysql1"); - simpleAppComponentCtxt.setSubscribableContexts(new SubscribableContext[]{simpleAppPhpSubscribableContext, - simpleAppMySqlSubscribableContext}); - - DependencyContext simpleAppDependecyCtxt = new DependencyContext(); - simpleAppDependecyCtxt.setTerminationBehaviour("terminate-dependents"); - // startup order is invalid, without prefix 'cartridge.' for mysql1 - simpleAppDependecyCtxt.setStartupOrdersContexts(new String[]{"mysql1,cartridge.myphp"}); - simpleAppComponentCtxt.setDependencyContext(simpleAppDependecyCtxt); - - simpleAppCtxt.setComponents(simpleAppComponentCtxt); - - // subscribable information - SubscribableInfoContext simpleAppPhpSubscribableInfoCtxt = new SubscribableInfoContext(); - simpleAppPhpSubscribableInfoCtxt.setAlias("myphp"); - simpleAppPhpSubscribableInfoCtxt.setAutoscalingPolicy("deployment_policy_1"); - simpleAppPhpSubscribableInfoCtxt.setAutoscalingPolicy("autoscale_policy_1"); - simpleAppPhpSubscribableInfoCtxt.setRepoUrl("www.mygit.com/myphp.git"); - simpleAppPhpSubscribableInfoCtxt.setPrivateRepo(true); - simpleAppPhpSubscribableInfoCtxt.setRepoUsername("admin"); - simpleAppPhpSubscribableInfoCtxt.setRepoUrl("admin123"); - - SubscribableInfoContext simpleAppMySqlSubscribableInfoCtxt = new SubscribableInfoContext(); - simpleAppMySqlSubscribableInfoCtxt.setAlias("mysql1"); - simpleAppMySqlSubscribableInfoCtxt.setAutoscalingPolicy("deployment_policy_2"); - simpleAppMySqlSubscribableInfoCtxt.setAutoscalingPolicy("autoscale_policy_2"); - - simpleAppCtxt.setSubscribableInfoContext(new SubscribableInfoContext[]{simpleAppPhpSubscribableInfoCtxt, - simpleAppMySqlSubscribableInfoCtxt}); - - // parse - applicationParser.parse(simpleAppCtxt); - } - - @Test - public void testAppWithOneCartridgeAndOneGroup () throws ApplicationDefinitionException { - - ApplicationParser applicationParser = new DefaultApplicationParser(); - ApplicationContext simpleAppCtxt = new ApplicationContext(); - // app id - simpleAppCtxt.setApplicationId("simpleApp"); - simpleAppCtxt.setAlias("simpleAppAlias"); - // tenant info - simpleAppCtxt.setTenantId(-1234); - // components - ComponentContext simpleAppComponentCtxt = new ComponentContext(); - // top level cartridges - SubscribableContext simpleAppSubscribableContext = new SubscribableContext(); - simpleAppSubscribableContext.setType("php"); - simpleAppSubscribableContext.setAlias("myphp"); - simpleAppComponentCtxt.setSubscribableContexts(new SubscribableContext[]{simpleAppSubscribableContext}); - // top level group - GroupContext simpleGroupContext = new GroupContext(); - simpleGroupContext.setName("group1"); - simpleGroupContext.setAlias("mygroup1"); - simpleGroupContext.setAutoscalingPolicy("group_autoscaling_policy_1"); - simpleGroupContext.setDeploymentPolicy("group_deployment_policy_1"); - SubscribableContext groupSubscribableCtxt = new SubscribableContext(); - groupSubscribableCtxt.setType("mysql"); - groupSubscribableCtxt.setAlias("mygroup1mysql"); - simpleGroupContext.setSubscribableContexts(new SubscribableContext[]{groupSubscribableCtxt}); - simpleAppComponentCtxt.setGroupContexts(new GroupContext[]{simpleGroupContext}); - simpleAppCtxt.setComponents(simpleAppComponentCtxt); - // subscribable information - SubscribableInfoContext simpleAppSubscribableInfoCtxt = new SubscribableInfoContext(); - simpleAppSubscribableInfoCtxt.setAlias("myphp"); - simpleAppSubscribableInfoCtxt.setAutoscalingPolicy("deployment_policy_1"); - simpleAppSubscribableInfoCtxt.setAutoscalingPolicy("autoscale_policy_1"); - simpleAppSubscribableInfoCtxt.setRepoUrl("www.mygit.com/myphp.git"); - simpleAppSubscribableInfoCtxt.setPrivateRepo(true); - simpleAppSubscribableInfoCtxt.setRepoUsername("admin"); - simpleAppSubscribableInfoCtxt.setRepoUrl("admin123"); - - SubscribableInfoContext simpleAppGroupSubscribableInfoCtxt = new SubscribableInfoContext(); - simpleAppGroupSubscribableInfoCtxt.setAlias("mygroup1mysql"); - simpleAppGroupSubscribableInfoCtxt.setAutoscalingPolicy("mysql_autoscaling_policy"); - simpleAppGroupSubscribableInfoCtxt.setDeploymentPolicy("mysql_deployment_policy"); - - simpleAppCtxt.setSubscribableInfoContext(new SubscribableInfoContext[]{simpleAppSubscribableInfoCtxt, - simpleAppGroupSubscribableInfoCtxt}); - - // parse - applicationParser.parse(simpleAppCtxt); - } - - @Test (expected = ApplicationDefinitionException.class) - public void testAppWithOneCartridgeAndInvalidGroup () throws ApplicationDefinitionException { - - ApplicationParser applicationParser = new DefaultApplicationParser(); - ApplicationContext simpleAppCtxt = new ApplicationContext(); - // app id - simpleAppCtxt.setApplicationId("simpleApp"); - simpleAppCtxt.setAlias("simpleAppAlias"); - // tenant info - simpleAppCtxt.setTenantId(-1234); - // components - ComponentContext simpleAppComponentCtxt = new ComponentContext(); - // top level cartridges - SubscribableContext simpleAppSubscribableContext = new SubscribableContext(); - simpleAppSubscribableContext.setType("php"); - simpleAppSubscribableContext.setAlias("myphp"); - simpleAppComponentCtxt.setSubscribableContexts(new SubscribableContext[]{simpleAppSubscribableContext}); - // top level group - GroupContext simpleGroupContext = new GroupContext(); - // invalid Group 'group11' - simpleGroupContext.setName("group11"); - simpleGroupContext.setAlias("mygroup1"); - simpleGroupContext.setAutoscalingPolicy("group_autoscaling_policy_1"); - simpleGroupContext.setDeploymentPolicy("group_deployment_policy_1"); - SubscribableContext groupSubscribableCtxt = new SubscribableContext(); - groupSubscribableCtxt.setType("mysql"); - groupSubscribableCtxt.setAlias("mygroup1mysql"); - simpleGroupContext.setSubscribableContexts(new SubscribableContext[]{groupSubscribableCtxt}); - simpleAppComponentCtxt.setGroupContexts(new GroupContext[]{simpleGroupContext}); - simpleAppCtxt.setComponents(simpleAppComponentCtxt); - // subscribable information - SubscribableInfoContext simpleAppSubscribableInfoCtxt = new SubscribableInfoContext(); - simpleAppSubscribableInfoCtxt.setAlias("myphp"); - simpleAppSubscribableInfoCtxt.setAutoscalingPolicy("deployment_policy_1"); - simpleAppSubscribableInfoCtxt.setAutoscalingPolicy("autoscale_policy_1"); - simpleAppSubscribableInfoCtxt.setRepoUrl("www.mygit.com/myphp.git"); - simpleAppSubscribableInfoCtxt.setPrivateRepo(true); - simpleAppSubscribableInfoCtxt.setRepoUsername("admin"); - simpleAppSubscribableInfoCtxt.setRepoUrl("admin123"); - - SubscribableInfoContext simpleAppGroupSubscribableInfoCtxt = new SubscribableInfoContext(); - simpleAppGroupSubscribableInfoCtxt.setAlias("mygroup1mysql"); - simpleAppGroupSubscribableInfoCtxt.setAutoscalingPolicy("mysql_autoscaling_policy"); - simpleAppGroupSubscribableInfoCtxt.setDeploymentPolicy("mysql_deployment_policy"); - - simpleAppCtxt.setSubscribableInfoContext(new SubscribableInfoContext[]{simpleAppSubscribableInfoCtxt, - simpleAppGroupSubscribableInfoCtxt}); - - // parse - applicationParser.parse(simpleAppCtxt); - } - - @Test - public void testAppWithOneCartridgeAndOneGroupWithDependencies () throws ApplicationDefinitionException { - - ApplicationParser applicationParser = new DefaultApplicationParser(); - ApplicationContext simpleAppCtxt = new ApplicationContext(); - // app id - simpleAppCtxt.setApplicationId("simpleApp"); - simpleAppCtxt.setAlias("simpleAppAlias"); - // tenant info - simpleAppCtxt.setTenantId(-1234); - // components - ComponentContext simpleAppComponentCtxt = new ComponentContext(); - // top level cartridges - SubscribableContext simpleAppSubscribableContext = new SubscribableContext(); - simpleAppSubscribableContext.setType("php"); - simpleAppSubscribableContext.setAlias("myphp"); - simpleAppComponentCtxt.setSubscribableContexts(new SubscribableContext[]{simpleAppSubscribableContext}); - // top level group - GroupContext simpleGroupContext = new GroupContext(); - simpleGroupContext.setName("group1"); - simpleGroupContext.setAlias("mygroup1"); - simpleGroupContext.setAutoscalingPolicy("group_autoscaling_policy_1"); - simpleGroupContext.setDeploymentPolicy("group_deployment_policy_1"); - SubscribableContext groupSubscribableCtxt = new SubscribableContext(); - groupSubscribableCtxt.setType("mysql"); - groupSubscribableCtxt.setAlias("mygroup1mysql"); - simpleGroupContext.setSubscribableContexts(new SubscribableContext[]{groupSubscribableCtxt}); - simpleAppComponentCtxt.setGroupContexts(new GroupContext[]{simpleGroupContext}); - simpleAppCtxt.setComponents(simpleAppComponentCtxt); - // dependencies - DependencyContext simpleAppDependecyCtxt = new DependencyContext(); - simpleAppDependecyCtxt.setTerminationBehaviour("terminate-dependents"); - simpleAppDependecyCtxt.setStartupOrdersContexts(new String[]{"group.group1,cartridge.myphp"}); - simpleAppComponentCtxt.setDependencyContext(simpleAppDependecyCtxt); - // subscribable information - SubscribableInfoContext simpleAppSubscribableInfoCtxt = new SubscribableInfoContext(); - simpleAppSubscribableInfoCtxt.setAlias("myphp"); - simpleAppSubscribableInfoCtxt.setAutoscalingPolicy("deployment_policy_1"); - simpleAppSubscribableInfoCtxt.setAutoscalingPolicy("autoscale_policy_1"); - simpleAppSubscribableInfoCtxt.setRepoUrl("www.mygit.com/myphp.git"); - simpleAppSubscribableInfoCtxt.setPrivateRepo(true); - simpleAppSubscribableInfoCtxt.setRepoUsername("admin"); - simpleAppSubscribableInfoCtxt.setRepoUrl("admin123"); - - SubscribableInfoContext simpleAppGroupSubscribableInfoCtxt = new SubscribableInfoContext(); - simpleAppGroupSubscribableInfoCtxt.setAlias("mygroup1mysql"); - simpleAppGroupSubscribableInfoCtxt.setAutoscalingPolicy("mysql_autoscaling_policy"); - simpleAppGroupSubscribableInfoCtxt.setDeploymentPolicy("mysql_deployment_policy"); - - simpleAppCtxt.setSubscribableInfoContext(new SubscribableInfoContext[]{simpleAppSubscribableInfoCtxt, - simpleAppGroupSubscribableInfoCtxt}); - - // parse - applicationParser.parse(simpleAppCtxt); - } - - @Test (expected = ApplicationDefinitionException.class) - public void testAppWithOneCartridgeAndOneGroupWithInvalidDependencies () throws ApplicationDefinitionException { - - ApplicationParser applicationParser = new DefaultApplicationParser(); - ApplicationContext simpleAppCtxt = new ApplicationContext(); - // app id - simpleAppCtxt.setApplicationId("simpleApp"); - simpleAppCtxt.setAlias("simpleAppAlias"); - // tenant info - simpleAppCtxt.setTenantId(-1234); - // components - ComponentContext simpleAppComponentCtxt = new ComponentContext(); - // top level cartridges - SubscribableContext simpleAppSubscribableContext = new SubscribableContext(); - simpleAppSubscribableContext.setType("php"); - simpleAppSubscribableContext.setAlias("myphp"); - simpleAppComponentCtxt.setSubscribableContexts(new SubscribableContext[]{simpleAppSubscribableContext}); - // top level group - GroupContext simpleGroupContext = new GroupContext(); - simpleGroupContext.setName("group1"); - simpleGroupContext.setAlias("mygroup1"); - simpleGroupContext.setAutoscalingPolicy("group_autoscaling_policy_1"); - simpleGroupContext.setDeploymentPolicy("group_deployment_policy_1"); - SubscribableContext groupSubscribableCtxt = new SubscribableContext(); - groupSubscribableCtxt.setType("mysql"); - groupSubscribableCtxt.setAlias("mygroup1mysql"); - simpleGroupContext.setSubscribableContexts(new SubscribableContext[]{groupSubscribableCtxt}); - simpleAppComponentCtxt.setGroupContexts(new GroupContext[]{simpleGroupContext}); - simpleAppCtxt.setComponents(simpleAppComponentCtxt); - // dependencies - DependencyContext simpleAppDependecyCtxt = new DependencyContext(); - simpleAppDependecyCtxt.setTerminationBehaviour("terminate-dependents"); - // invalid startup order, starting with 'group1' - simpleAppDependecyCtxt.setStartupOrdersContexts(new String[]{"group1.group1,cartridge.myphp"}); - simpleAppComponentCtxt.setDependencyContext(simpleAppDependecyCtxt); - // subscribable information - SubscribableInfoContext simpleAppSubscribableInfoCtxt = new SubscribableInfoContext(); - simpleAppSubscribableInfoCtxt.setAlias("myphp"); - simpleAppSubscribableInfoCtxt.setAutoscalingPolicy("deployment_policy_1"); - simpleAppSubscribableInfoCtxt.setAutoscalingPolicy("autoscale_policy_1"); - simpleAppSubscribableInfoCtxt.setRepoUrl("www.mygit.com/myphp.git"); - simpleAppSubscribableInfoCtxt.setPrivateRepo(true); - simpleAppSubscribableInfoCtxt.setRepoUsername("admin"); - simpleAppSubscribableInfoCtxt.setRepoUrl("admin123"); - - SubscribableInfoContext simpleAppGroupSubscribableInfoCtxt = new SubscribableInfoContext(); - simpleAppGroupSubscribableInfoCtxt.setAlias("mygroup1mysql"); - simpleAppGroupSubscribableInfoCtxt.setAutoscalingPolicy("mysql_autoscaling_policy"); - simpleAppGroupSubscribableInfoCtxt.setDeploymentPolicy("mysql_deployment_policy"); - - simpleAppCtxt.setSubscribableInfoContext(new SubscribableInfoContext[]{simpleAppSubscribableInfoCtxt, - simpleAppGroupSubscribableInfoCtxt}); - - // parse - applicationParser.parse(simpleAppCtxt); - } - - @Test (expected = ApplicationDefinitionException.class) - public void testAppWithOneCartridgeAndOneGroupWithNoSubcribableInfoForGroup () throws ApplicationDefinitionException { - - ApplicationParser applicationParser = new DefaultApplicationParser(); - ApplicationContext simpleAppCtxt = new ApplicationContext(); - // app id - simpleAppCtxt.setApplicationId("simpleApp"); - simpleAppCtxt.setAlias("simpleAppAlias"); - // tenant info - simpleAppCtxt.setTenantId(-1234); - // components - ComponentContext simpleAppComponentCtxt = new ComponentContext(); - // top level cartridges - SubscribableContext simpleAppSubscribableContext = new SubscribableContext(); - simpleAppSubscribableContext.setType("php"); - simpleAppSubscribableContext.setAlias("myphp"); - simpleAppComponentCtxt.setSubscribableContexts(new SubscribableContext[]{simpleAppSubscribableContext}); - // top level group - GroupContext simpleGroupContext = new GroupContext(); - simpleGroupContext.setName("group1"); - simpleGroupContext.setAlias("mygroup1"); - simpleGroupContext.setAutoscalingPolicy("group_autoscaling_policy_1"); - simpleGroupContext.setDeploymentPolicy("group_deployment_policy_1"); - SubscribableContext groupSubscribableCtxt = new SubscribableContext(); - groupSubscribableCtxt.setType("mysql"); - groupSubscribableCtxt.setAlias("mygroup1mysql"); - simpleGroupContext.setSubscribableContexts(new SubscribableContext[]{groupSubscribableCtxt}); - simpleAppComponentCtxt.setGroupContexts(new GroupContext[]{simpleGroupContext}); - simpleAppCtxt.setComponents(simpleAppComponentCtxt); - // subscribable information - SubscribableInfoContext simpleAppSubscribableInfoCtxt = new SubscribableInfoContext(); - simpleAppSubscribableInfoCtxt.setAlias("myphp"); - simpleAppSubscribableInfoCtxt.setAutoscalingPolicy("deployment_policy_1"); - simpleAppSubscribableInfoCtxt.setAutoscalingPolicy("autoscale_policy_1"); - simpleAppSubscribableInfoCtxt.setRepoUrl("www.mygit.com/myphp.git"); - simpleAppSubscribableInfoCtxt.setPrivateRepo(true); - simpleAppSubscribableInfoCtxt.setRepoUsername("admin"); - simpleAppSubscribableInfoCtxt.setRepoUrl("admin123"); - - simpleAppCtxt.setSubscribableInfoContext(new SubscribableInfoContext[]{simpleAppSubscribableInfoCtxt}); - - // parse - applicationParser.parse(simpleAppCtxt); - } - - @AfterClass - public static void tearDownAfterClass() { - - dataHolder = null; - } -} +///* +// * Licensed to the Apache Software Foundation (ASF) under one +// * or more contributor license agreements. See the NOTICE file +// * distributed with this work for additional information +// * regarding copyright ownership. The ASF licenses this file +// * to you under the Apache License, Version 2.0 (the +// * "License"); you may not use this file except in compliance +// * with the License. You may obtain a copy of the License at +// * +// * http://www.apache.org/licenses/LICENSE-2.0 +// * +// * Unless required by applicable law or agreed to in writing, +// * software distributed under the License is distributed on an +// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// * KIND, either express or implied. See the License for the +// * specific language governing permissions and limitations +// * under the License. +// */ +// +//package org.apache.stratos.cloud.controller.application; +// +//import org.apache.stratos.cloud.controller.application.parser.DefaultApplicationParser; +//import org.apache.stratos.cloud.controller.exception.ApplicationDefinitionException; +//import org.apache.stratos.cloud.controller.interfaces.ApplicationParser; +//import org.apache.stratos.cloud.controller.pojo.Cartridge; +//import org.apache.stratos.cloud.controller.pojo.Dependencies; +//import org.apache.stratos.cloud.controller.pojo.ServiceGroup; +//import org.apache.stratos.cloud.controller.pojo.application.*; +//import org.apache.stratos.cloud.controller.runtime.FasterLookUpDataHolder; +//import org.junit.AfterClass; +//import org.junit.BeforeClass; +//import org.junit.Test; +// +//public class CompositeApplicationParseTest { +// +// private static FasterLookUpDataHolder dataHolder = null; +// +// @BeforeClass +// public static void setUpBeforeClass() { +// +// dataHolder = FasterLookUpDataHolder.getInstance(); +// // add cartridges +// // add php cartridge +// dataHolder.addCartridge(new Cartridge("php", "stratos.com", "php-provider" , "1.0.0", false)); +// // add tomcat cartridge +// dataHolder.addCartridge(new Cartridge("tomcat", "stratos.com", "apache" , "1.0.0", false)); +// // add mysql cartridge +// dataHolder.addCartridge(new Cartridge("mysql", "stratos.com", "apache" , "1.0.0", false)); +// +// // add groups +// // add group1 +// ServiceGroup group1 = new ServiceGroup(); +// group1.setName("group1"); +// group1.setCartridges(new String[]{"mysql"}); +// Dependencies group1Dependencies = new Dependencies(); +// group1Dependencies.setKillBehaviour("terminate-none"); +// group1.setDependencies(group1Dependencies); +// dataHolder.addServiceGroup(group1); +// // add group2 +// ServiceGroup group2 = new ServiceGroup(); +// group2.setName("group2"); +// group2.setCartridges(new String[]{"php"}); +// group2.setSubGroups(new String[]{"group1"}); +// Dependencies group2Dependencies = new Dependencies(); +// group2Dependencies.setStartupOrders(new String[]{"group.group1,cartridge.php"}); +// group2Dependencies.setKillBehaviour("terminate-dependents"); +// group2.setDependencies(group2Dependencies); +// dataHolder.addServiceGroup(group2); +// } +// +// @Test +// public void testParseSimpleApplication () throws ApplicationDefinitionException { +// +// ApplicationParser applicationParser = new DefaultApplicationParser(); +// ApplicationContext simpleAppCtxt = new ApplicationContext(); +// // app id +// simpleAppCtxt.setApplicationId("simpleApp"); +// simpleAppCtxt.setAlias("simpleAppAlias"); +// // tenant info +// simpleAppCtxt.setTenantId(-1234); +// // components +// ComponentContext simpleAppComponentCtxt = new ComponentContext(); +// SubscribableContext simpleAppSubscribableContext = new SubscribableContext(); +// simpleAppSubscribableContext.setType("php"); +// simpleAppSubscribableContext.setAlias("myphp"); +// simpleAppComponentCtxt.setSubscribableContexts(new SubscribableContext[]{simpleAppSubscribableContext}); +// simpleAppCtxt.setComponents(simpleAppComponentCtxt); +// // subscribable information +// SubscribableInfoContext simpleAppSubscribableInfoCtxt = new SubscribableInfoContext(); +// simpleAppSubscribableInfoCtxt.setAlias("myphp"); +// simpleAppSubscribableInfoCtxt.setAutoscalingPolicy("deployment_policy_1"); +// simpleAppSubscribableInfoCtxt.setAutoscalingPolicy("autoscale_policy_1"); +// simpleAppSubscribableInfoCtxt.setRepoUrl("www.mygit.com/myphp.git"); +// simpleAppSubscribableInfoCtxt.setPrivateRepo(true); +// simpleAppSubscribableInfoCtxt.setRepoUsername("admin"); +// simpleAppSubscribableInfoCtxt.setRepoUrl("admin123"); +// simpleAppCtxt.setSubscribableInfoContext(new SubscribableInfoContext[]{simpleAppSubscribableInfoCtxt}); +// +// // parse +// applicationParser.parse(simpleAppCtxt); +// } +// +// @Test(expected = ApplicationDefinitionException.class) +// public void testParseSimpleApplicationWithNullAppId () throws ApplicationDefinitionException { +// +// ApplicationParser applicationParser = new DefaultApplicationParser(); +// ApplicationContext simpleAppCtxt = new ApplicationContext(); +// // no app id +// simpleAppCtxt.setAlias("simpleAppAlias"); +// +// // parse +// applicationParser.parse(simpleAppCtxt); +// } +// +// @Test(expected = ApplicationDefinitionException.class) +// public void testParseSimpleApplicationWithEmptyAppId () throws ApplicationDefinitionException { +// +// ApplicationParser applicationParser = new DefaultApplicationParser(); +// ApplicationContext simpleAppCtxt = new ApplicationContext(); +// // empty app id +// simpleAppCtxt.setApplicationId(""); +// simpleAppCtxt.setAlias("simpleAppAlias"); +// +// // parse +// applicationParser.parse(simpleAppCtxt); +// } +// +// @Test(expected = ApplicationDefinitionException.class) +// public void testParseSimpleApplicationWithInvalidCartridge() throws ApplicationDefinitionException { +// +// ApplicationParser applicationParser = new DefaultApplicationParser(); +// ApplicationContext simpleAppCtxt = new ApplicationContext(); +// // app id +// simpleAppCtxt.setApplicationId("simpleInvalidApp"); +// simpleAppCtxt.setAlias("simpleInvalidAppAlias"); +// // tenant info +// simpleAppCtxt.setTenantId(-1234); +// // components +// ComponentContext simpleAppComponentCtxt = new ComponentContext(); +// SubscribableContext simpleAppSubscribableContext = new SubscribableContext(); +// // give invalid cartridge type +// simpleAppSubscribableContext.setType("php1"); +// simpleAppSubscribableContext.setAlias("myphp"); +// simpleAppComponentCtxt.setSubscribableContexts(new SubscribableContext[]{simpleAppSubscribableContext}); +// simpleAppCtxt.setComponents(simpleAppComponentCtxt); +// // subscribable information +// SubscribableInfoContext simpleAppSubscribableInfoCtxt = new SubscribableInfoContext(); +// simpleAppSubscribableInfoCtxt.setAlias("myphp"); +// simpleAppSubscribableInfoCtxt.setAutoscalingPolicy("deployment_policy_1"); +// simpleAppSubscribableInfoCtxt.setAutoscalingPolicy("autoscale_policy_1"); +// simpleAppSubscribableInfoCtxt.setRepoUrl("www.mygit.com/myphp.git"); +// simpleAppSubscribableInfoCtxt.setPrivateRepo(true); +// simpleAppSubscribableInfoCtxt.setRepoUsername("admin"); +// simpleAppSubscribableInfoCtxt.setRepoUrl("admin123"); +// simpleAppCtxt.setSubscribableInfoContext(new SubscribableInfoContext[]{simpleAppSubscribableInfoCtxt}); +// +// // parse +// applicationParser.parse(simpleAppCtxt); +// } +// +// @Test(expected = ApplicationDefinitionException.class) +// public void testParseSimpleApplicationWithoutSubcriptionInformation() throws ApplicationDefinitionException { +// +// ApplicationParser applicationParser = new DefaultApplicationParser(); +// ApplicationContext simpleAppCtxt = new ApplicationContext(); +// // app id +// simpleAppCtxt.setApplicationId("simpleInvalidApp"); +// simpleAppCtxt.setAlias("simpleInvalidAppAlias"); +// // tenant info +// simpleAppCtxt.setTenantId(-1234); +// // components +// ComponentContext simpleAppComponentCtxt = new ComponentContext(); +// SubscribableContext simpleAppSubscribableContext = new SubscribableContext(); +// // give invalid cartridge type +// simpleAppSubscribableContext.setType("php1"); +// simpleAppSubscribableContext.setAlias("myphp"); +// simpleAppComponentCtxt.setSubscribableContexts(new SubscribableContext[]{simpleAppSubscribableContext}); +// simpleAppCtxt.setComponents(simpleAppComponentCtxt); +// // invalid Subscription information +// SubscribableInfoContext simpleAppEmptySubscribableInfoCtxt = new SubscribableInfoContext(); +// simpleAppCtxt.setSubscribableInfoContext(new SubscribableInfoContext[]{simpleAppEmptySubscribableInfoCtxt}); +// +// // parse +// applicationParser.parse(simpleAppCtxt); +// } +// +// @Test +// public void testParseSimpleApplicationWithMultipleSubsriptions () throws ApplicationDefinitionException { +// +// ApplicationParser applicationParser = new DefaultApplicationParser(); +// ApplicationContext simpleAppCtxt = new ApplicationContext(); +// // app id +// simpleAppCtxt.setApplicationId("simpleInvalidApp"); +// simpleAppCtxt.setAlias("simpleInvalidAppAlias"); +// // tenant info +// simpleAppCtxt.setTenantId(-1234); +// // components +// ComponentContext simpleAppComponentCtxt = new ComponentContext(); +// SubscribableContext simpleAppPhpSubscribableContext = new SubscribableContext(); +// simpleAppPhpSubscribableContext.setType("php"); +// simpleAppPhpSubscribableContext.setAlias("myphp"); +// SubscribableContext simpleAppMySqlSubscribableContext = new SubscribableContext(); +// simpleAppMySqlSubscribableContext.setType("mysql"); +// simpleAppMySqlSubscribableContext.setAlias("mysql1"); +// simpleAppComponentCtxt.setSubscribableContexts(new SubscribableContext[]{simpleAppPhpSubscribableContext, +// simpleAppMySqlSubscribableContext}); +// +// DependencyContext simpleAppDependecyCtxt = new DependencyContext(); +// simpleAppDependecyCtxt.setTerminationBehaviour("terminate-dependents"); +// simpleAppDependecyCtxt.setStartupOrdersContexts(new String[]{"cartridge.mysql1,cartridge.myphp"}); +// simpleAppComponentCtxt.setDependencyContext(simpleAppDependecyCtxt); +// +// simpleAppCtxt.setComponents(simpleAppComponentCtxt); +// +// // subscribable information +// SubscribableInfoContext simpleAppPhpSubscribableInfoCtxt = new SubscribableInfoContext(); +// simpleAppPhpSubscribableInfoCtxt.setAlias("myphp"); +// simpleAppPhpSubscribableInfoCtxt.setAutoscalingPolicy("deployment_policy_1"); +// simpleAppPhpSubscribableInfoCtxt.setAutoscalingPolicy("autoscale_policy_1"); +// simpleAppPhpSubscribableInfoCtxt.setRepoUrl("www.mygit.com/myphp.git"); +// simpleAppPhpSubscribableInfoCtxt.setPrivateRepo(true); +// simpleAppPhpSubscribableInfoCtxt.setRepoUsername("admin"); +// simpleAppPhpSubscribableInfoCtxt.setRepoUrl("admin123"); +// +// SubscribableInfoContext simpleAppMySqlSubscribableInfoCtxt = new SubscribableInfoContext(); +// simpleAppMySqlSubscribableInfoCtxt.setAlias("mysql1"); +// simpleAppMySqlSubscribableInfoCtxt.setAutoscalingPolicy("deployment_policy_2"); +// simpleAppMySqlSubscribableInfoCtxt.setAutoscalingPolicy("autoscale_policy_2"); +// +// simpleAppCtxt.setSubscribableInfoContext(new SubscribableInfoContext[]{simpleAppPhpSubscribableInfoCtxt, +// simpleAppMySqlSubscribableInfoCtxt}); +// +// // parse +// applicationParser.parse(simpleAppCtxt); +// } +// +// @Test(expected = ApplicationDefinitionException.class) +// public void testParseSimpleApplicationWithMultipleSubsriptionsInvalidStartupOrder () throws ApplicationDefinitionException { +// +// ApplicationParser applicationParser = new DefaultApplicationParser(); +// ApplicationContext simpleAppCtxt = new ApplicationContext(); +// // app id +// simpleAppCtxt.setApplicationId("simpleInvalidApp"); +// simpleAppCtxt.setAlias("simpleInvalidAppAlias"); +// // tenant info +// simpleAppCtxt.setTenantId(-1234); +// // components +// ComponentContext simpleAppComponentCtxt = new ComponentContext(); +// SubscribableContext simpleAppPhpSubscribableContext = new SubscribableContext(); +// simpleAppPhpSubscribableContext.setType("php"); +// simpleAppPhpSubscribableContext.setAlias("myphp"); +// SubscribableContext simpleAppMySqlSubscribableContext = new SubscribableContext(); +// simpleAppMySqlSubscribableContext.setType("mysql"); +// simpleAppMySqlSubscribableContext.setAlias("mysql1"); +// simpleAppComponentCtxt.setSubscribableContexts(new SubscribableContext[]{simpleAppPhpSubscribableContext, +// simpleAppMySqlSubscribableContext}); +// +// DependencyContext simpleAppDependecyCtxt = new DependencyContext(); +// simpleAppDependecyCtxt.setTerminationBehaviour("terminate-dependents"); +// // startup order is invalid, without prefix 'cartridge.' for mysql1 +// simpleAppDependecyCtxt.setStartupOrdersContexts(new String[]{"mysql1,cartridge.myphp"}); +// simpleAppComponentCtxt.setDependencyContext(simpleAppDependecyCtxt); +// +// simpleAppCtxt.setComponents(simpleAppComponentCtxt); +// +// // subscribable information +// SubscribableInfoContext simpleAppPhpSubscribableInfoCtxt = new SubscribableInfoContext(); +// simpleAppPhpSubscribableInfoCtxt.setAlias("myphp"); +// simpleAppPhpSubscribableInfoCtxt.setAutoscalingPolicy("deployment_policy_1"); +// simpleAppPhpSubscribableInfoCtxt.setAutoscalingPolicy("autoscale_policy_1"); +// simpleAppPhpSubscribableInfoCtxt.setRepoUrl("www.mygit.com/myphp.git"); +// simpleAppPhpSubscribableInfoCtxt.setPrivateRepo(true); +// simpleAppPhpSubscribableInfoCtxt.setRepoUsername("admin"); +// simpleAppPhpSubscribableInfoCtxt.setRepoUrl("admin123"); +// +// SubscribableInfoContext simpleAppMySqlSubscribableInfoCtxt = new SubscribableInfoContext(); +// simpleAppMySqlSubscribableInfoCtxt.setAlias("mysql1"); +// simpleAppMySqlSubscribableInfoCtxt.setAutoscalingPolicy("deployment_policy_2"); +// simpleAppMySqlSubscribableInfoCtxt.setAutoscalingPolicy("autoscale_policy_2"); +// +// simpleAppCtxt.setSubscribableInfoContext(new SubscribableInfoContext[]{simpleAppPhpSubscribableInfoCtxt, +// simpleAppMySqlSubscribableInfoCtxt}); +// +// // parse +// applicationParser.parse(simpleAppCtxt); +// } +// +// @Test +// public void testAppWithOneCartridgeAndOneGroup () throws ApplicationDefinitionException { +// +// ApplicationParser applicationParser = new DefaultApplicationParser(); +// ApplicationContext simpleAppCtxt = new ApplicationContext(); +// // app id +// simpleAppCtxt.setApplicationId("simpleApp"); +// simpleAppCtxt.setAlias("simpleAppAlias"); +// // tenant info +// simpleAppCtxt.setTenantId(-1234); +// // components +// ComponentContext simpleAppComponentCtxt = new ComponentContext(); +// // top level cartridges +// SubscribableContext simpleAppSubscribableContext = new SubscribableContext(); +// simpleAppSubscribableContext.setType("php"); +// simpleAppSubscribableContext.setAlias("myphp"); +// simpleAppComponentCtxt.setSubscribableContexts(new SubscribableContext[]{simpleAppSubscribableContext}); +// // top level group +// GroupContext simpleGroupContext = new GroupContext(); +// simpleGroupContext.setName("group1"); +// simpleGroupContext.setAlias("mygroup1"); +// simpleGroupContext.setAutoscalingPolicy("group_autoscaling_policy_1"); +// simpleGroupContext.setDeploymentPolicy("group_deployment_policy_1"); +// SubscribableContext groupSubscribableCtxt = new SubscribableContext(); +// groupSubscribableCtxt.setType("mysql"); +// groupSubscribableCtxt.setAlias("mygroup1mysql"); +// simpleGroupContext.setSubscribableContexts(new SubscribableContext[]{groupSubscribableCtxt}); +// simpleAppComponentCtxt.setGroupContexts(new GroupContext[]{simpleGroupContext}); +// simpleAppCtxt.setComponents(simpleAppComponentCtxt); +// // subscribable information +// SubscribableInfoContext simpleAppSubscribableInfoCtxt = new SubscribableInfoContext(); +// simpleAppSubscribableInfoCtxt.setAlias("myphp"); +// simpleAppSubscribableInfoCtxt.setAutoscalingPolicy("deployment_policy_1"); +// simpleAppSubscribableInfoCtxt.setAutoscalingPolicy("autoscale_policy_1"); +// simpleAppSubscribableInfoCtxt.setRepoUrl("www.mygit.com/myphp.git"); +// simpleAppSubscribableInfoCtxt.setPrivateRepo(true); +// simpleAppSubscribableInfoCtxt.setRepoUsername("admin"); +// simpleAppSubscribableInfoCtxt.setRepoUrl("admin123"); +// +// SubscribableInfoContext simpleAppGroupSubscribableInfoCtxt = new SubscribableInfoContext(); +// simpleAppGroupSubscribableInfoCtxt.setAlias("mygroup1mysql"); +// simpleAppGroupSubscribableInfoCtxt.setAutoscalingPolicy("mysql_autoscaling_policy"); +// simpleAppGroupSubscribableInfoCtxt.setDeploymentPolicy("mysql_deployment_policy"); +// +// simpleAppCtxt.setSubscribableInfoContext(new SubscribableInfoContext[]{simpleAppSubscribableInfoCtxt, +// simpleAppGroupSubscribableInfoCtxt}); +// +// // parse +// applicationParser.parse(simpleAppCtxt); +// } +// +// @Test (expected = ApplicationDefinitionException.class) +// public void testAppWithOneCartridgeAndInvalidGroup () throws ApplicationDefinitionException { +// +// ApplicationParser applicationParser = new DefaultApplicationParser(); +// ApplicationContext simpleAppCtxt = new ApplicationContext(); +// // app id +// simpleAppCtxt.setApplicationId("simpleApp"); +// simpleAppCtxt.setAlias("simpleAppAlias"); +// // tenant info +// simpleAppCtxt.setTenantId(-1234); +// // components +// ComponentContext simpleAppComponentCtxt = new ComponentContext(); +// // top level cartridges +// SubscribableContext simpleAppSubscribableContext = new SubscribableContext(); +// simpleAppSubscribableContext.setType("php"); +// simpleAppSubscribableContext.setAlias("myphp"); +// simpleAppComponentCtxt.setSubscribableContexts(new SubscribableContext[]{simpleAppSubscribableContext}); +// // top level group +// GroupContext simpleGroupContext = new GroupContext(); +// // invalid Group 'group11' +// simpleGroupContext.setName("group11"); +// simpleGroupContext.setAlias("mygroup1"); +// simpleGroupContext.setAutoscalingPolicy("group_autoscaling_policy_1"); +// simpleGroupContext.setDeploymentPolicy("group_deployment_policy_1"); +// SubscribableContext groupSubscribableCtxt = new SubscribableContext(); +// groupSubscribableCtxt.setType("mysql"); +// groupSubscribableCtxt.setAlias("mygroup1mysql"); +// simpleGroupContext.setSubscribableContexts(new SubscribableContext[]{groupSubscribableCtxt}); +// simpleAppComponentCtxt.setGroupContexts(new GroupContext[]{simpleGroupContext}); +// simpleAppCtxt.setComponents(simpleAppComponentCtxt); +// // subscribable information +// SubscribableInfoContext simpleAppSubscribableInfoCtxt = new SubscribableInfoContext(); +// simpleAppSubscribableInfoCtxt.setAlias("myphp"); +// simpleAppSubscribableInfoCtxt.setAutoscalingPolicy("deployment_policy_1"); +// simpleAppSubscribableInfoCtxt.setAutoscalingPolicy("autoscale_policy_1"); +// simpleAppSubscribableInfoCtxt.setRepoUrl("www.mygit.com/myphp.git"); +// simpleAppSubscribableInfoCtxt.setPrivateRepo(true); +// simpleAppSubscribableInfoCtxt.setRepoUsername("admin"); +// simpleAppSubscribableInfoCtxt.setRepoUrl("admin123"); +// +// SubscribableInfoContext simpleAppGroupSubscribableInfoCtxt = new SubscribableInfoContext(); +// simpleAppGroupSubscribableInfoCtxt.setAlias("mygroup1mysql"); +// simpleAppGroupSubscribableInfoCtxt.setAutoscalingPolicy("mysql_autoscaling_policy"); +// simpleAppGroupSubscribableInfoCtxt.setDeploymentPolicy("mysql_deployment_policy"); +// +// simpleAppCtxt.setSubscribableInfoContext(new SubscribableInfoContext[]{simpleAppSubscribableInfoCtxt, +// simpleAppGroupSubscribableInfoCtxt}); +// +// // parse +// applicationParser.parse(simpleAppCtxt); +// } +// +// @Test +// public void testAppWithOneCartridgeAndOneGroupWithDependencies () throws ApplicationDefinitionException { +// +// ApplicationParser applicationParser = new DefaultApplicationParser(); +// ApplicationContext simpleAppCtxt = new ApplicationContext(); +// // app id +// simpleAppCtxt.setApplicationId("simpleApp"); +// simpleAppCtxt.setAlias("simpleAppAlias"); +// // tenant info +// simpleAppCtxt.setTenantId(-1234); +// // components +// ComponentContext simpleAppComponentCtxt = new ComponentContext(); +// // top level cartridges +// SubscribableContext simpleAppSubscribableContext = new SubscribableContext(); +// simpleAppSubscribableContext.setType("php"); +// simpleAppSubscribableContext.setAlias("myphp"); +// simpleAppComponentCtxt.setSubscribableContexts(new SubscribableContext[]{simpleAppSubscribableContext}); +// // top level group +// GroupContext simpleGroupContext = new GroupContext(); +// simpleGroupContext.setName("group1"); +// simpleGroupContext.setAlias("mygroup1"); +// simpleGroupContext.setAutoscalingPolicy("group_autoscaling_policy_1"); +// simpleGroupContext.setDeploymentPolicy("group_deployment_policy_1"); +// SubscribableContext groupSubscribableCtxt = new SubscribableContext(); +// groupSubscribableCtxt.setType("mysql"); +// groupSubscribableCtxt.setAlias("mygroup1mysql"); +// simpleGroupContext.setSubscribableContexts(new SubscribableContext[]{groupSubscribableCtxt}); +// simpleAppComponentCtxt.setGroupContexts(new GroupContext[]{simpleGroupContext}); +// simpleAppCtxt.setComponents(simpleAppComponentCtxt); +// // dependencies +// DependencyContext simpleAppDependecyCtxt = new DependencyContext(); +// simpleAppDependecyCtxt.setTerminationBehaviour("terminate-dependents"); +// simpleAppDependecyCtxt.setStartupOrdersContexts(new String[]{"group.group1,cartridge.myphp"}); +// simpleAppComponentCtxt.setDependencyContext(simpleAppDependecyCtxt); +// // subscribable information +// SubscribableInfoContext simpleAppSubscribableInfoCtxt = new SubscribableInfoContext(); +// simpleAppSubscribableInfoCtxt.setAlias("myphp"); +// simpleAppSubscribableInfoCtxt.setAutoscalingPolicy("deployment_policy_1"); +// simpleAppSubscribableInfoCtxt.setAutoscalingPolicy("autoscale_policy_1"); +// simpleAppSubscribableInfoCtxt.setRepoUrl("www.mygit.com/myphp.git"); +// simpleAppSubscribableInfoCtxt.setPrivateRepo(true); +// simpleAppSubscribableInfoCtxt.setRepoUsername("admin"); +// simpleAppSubscribableInfoCtxt.setRepoUrl("admin123"); +// +// SubscribableInfoContext simpleAppGroupSubscribableInfoCtxt = new SubscribableInfoContext(); +// simpleAppGroupSubscribableInfoCtxt.setAlias("mygroup1mysql"); +// simpleAppGroupSubscribableInfoCtxt.setAutoscalingPolicy("mysql_autoscaling_policy"); +// simpleAppGroupSubscribableInfoCtxt.setDeploymentPolicy("mysql_deployment_policy"); +// +// simpleAppCtxt.setSubscribableInfoContext(new SubscribableInfoContext[]{simpleAppSubscribableInfoCtxt, +// simpleAppGroupSubscribableInfoCtxt}); +// +// // parse +// applicationParser.parse(simpleAppCtxt); +// } +// +// @Test (expected = ApplicationDefinitionException.class) +// public void testAppWithOneCartridgeAndOneGroupWithInvalidDependencies () throws ApplicationDefinitionException { +// +// ApplicationParser applicationParser = new DefaultApplicationParser(); +// ApplicationContext simpleAppCtxt = new ApplicationContext(); +// // app id +// simpleAppCtxt.setApplicationId("simpleApp"); +// simpleAppCtxt.setAlias("simpleAppAlias"); +// // tenant info +// simpleAppCtxt.setTenantId(-1234); +// // components +// ComponentContext simpleAppComponentCtxt = new ComponentContext(); +// // top level cartridges +// SubscribableContext simpleAppSubscribableContext = new SubscribableContext(); +// simpleAppSubscribableContext.setType("php"); +// simpleAppSubscribableContext.setAlias("myphp"); +// simpleAppComponentCtxt.setSubscribableContexts(new SubscribableContext[]{simpleAppSubscribableContext}); +// // top level group +// GroupContext simpleGroupContext = new GroupContext(); +// simpleGroupContext.setName("group1"); +// simpleGroupContext.setAlias("mygroup1"); +// simpleGroupContext.setAutoscalingPolicy("group_autoscaling_policy_1"); +// simpleGroupContext.setDeploymentPolicy("group_deployment_policy_1"); +// SubscribableContext groupSubscribableCtxt = new SubscribableContext(); +// groupSubscribableCtxt.setType("mysql"); +// groupSubscribableCtxt.setAlias("mygroup1mysql"); +// simpleGroupContext.setSubscribableContexts(new SubscribableContext[]{groupSubscribableCtxt}); +// simpleAppComponentCtxt.setGroupContexts(new GroupContext[]{simpleGroupContext}); +// simpleAppCtxt.setComponents(simpleAppComponentCtxt); +// // dependencies +// DependencyContext simpleAppDependecyCtxt = new DependencyContext(); +// simpleAppDependecyCtxt.setTerminationBehaviour("terminate-dependents"); +// // invalid startup order, starting with 'group1' +// simpleAppDependecyCtxt.setStartupOrdersContexts(new String[]{"group1.group1,cartridge.myphp"}); +// simpleAppComponentCtxt.setDependencyContext(simpleAppDependecyCtxt); +// // subscribable information +// SubscribableInfoContext simpleAppSubscribableInfoCtxt = new SubscribableInfoContext(); +// simpleAppSubscribableInfoCtxt.setAlias("myphp"); +// simpleAppSubscribableInfoCtxt.setAutoscalingPolicy("deployment_policy_1"); +// simpleAppSubscribableInfoCtxt.setAutoscalingPolicy("autoscale_policy_1"); +// simpleAppSubscribableInfoCtxt.setRepoUrl("www.mygit.com/myphp.git"); +// simpleAppSubscribableInfoCtxt.setPrivateRepo(true); +// simpleAppSubscribableInfoCtxt.setRepoUsername("admin"); +// simpleAppSubscribableInfoCtxt.setRepoUrl("admin123"); +// +// SubscribableInfoContext simpleAppGroupSubscribableInfoCtxt = new SubscribableInfoContext(); +// simpleAppGroupSubscribableInfoCtxt.setAlias("mygroup1mysql"); +// simpleAppGroupSubscribableInfoCtxt.setAutoscalingPolicy("mysql_autoscaling_policy"); +// simpleAppGroupSubscribableInfoCtxt.setDeploymentPolicy("mysql_deployment_policy"); +// +// simpleAppCtxt.setSubscribableInfoContext(new SubscribableInfoContext[]{simpleAppSubscribableInfoCtxt, +// simpleAppGroupSubscribableInfoCtxt}); +// +// // parse +// applicationParser.parse(simpleAppCtxt); +// } +// +// @Test (expected = ApplicationDefinitionException.class) +// public void testAppWithOneCartridgeAndOneGroupWithNoSubcribableInfoForGroup () throws ApplicationDefinitionException { +// +// ApplicationParser applicationParser = new DefaultApplicationParser(); +// ApplicationContext simpleAppCtxt = new ApplicationContext(); +// // app id +// simpleAppCtxt.setApplicationId("simpleApp"); +// simpleAppCtxt.setAlias("simpleAppAlias"); +// // tenant info +// simpleAppCtxt.setTenantId(-1234); +// // components +// ComponentContext simpleAppComponentCtxt = new ComponentContext(); +// // top level cartridges +// SubscribableContext simpleAppSubscribableContext = new SubscribableContext(); +// simpleAppSubscribableContext.setType("php"); +// simpleAppSubscribableContext.setAlias("myphp"); +// simpleAppComponentCtxt.setSubscribableContexts(new SubscribableContext[]{simpleAppSubscribableContext}); +// // top level group +// GroupContext simpleGroupContext = new GroupContext(); +// simpleGroupContext.setName("group1"); +// simpleGroupContext.setAlias("mygroup1"); +// simpleGroupContext.setAutoscalingPolicy("group_autoscaling_policy_1"); +// simpleGroupContext.setDeploymentPolicy("group_deployment_policy_1"); +// SubscribableContext groupSubscribableCtxt = new SubscribableContext(); +// groupSubscribableCtxt.setType("mysql"); +// groupSubscribableCtxt.setAlias("mygroup1mysql"); +// simpleGroupContext.setSubscribableContexts(new SubscribableContext[]{groupSubscribableCtxt}); +// simpleAppComponentCtxt.setGroupContexts(new GroupContext[]{simpleGroupContext}); +// simpleAppCtxt.setComponents(simpleAppComponentCtxt); +// // subscribable information +// SubscribableInfoContext simpleAppSubscribableInfoCtxt = new SubscribableInfoContext(); +// simpleAppSubscribableInfoCtxt.setAlias("myphp"); +// simpleAppSubscribableInfoCtxt.setAutoscalingPolicy("deployment_policy_1"); +// simpleAppSubscribableInfoCtxt.setAutoscalingPolicy("autoscale_policy_1"); +// simpleAppSubscribableInfoCtxt.setRepoUrl("www.mygit.com/myphp.git"); +// simpleAppSubscribableInfoCtxt.setPrivateRepo(true); +// simpleAppSubscribableInfoCtxt.setRepoUsername("admin"); +// simpleAppSubscribableInfoCtxt.setRepoUrl("admin123"); +// +// simpleAppCtxt.setSubscribableInfoContext(new SubscribableInfoContext[]{simpleAppSubscribableInfoCtxt}); +// +// // parse +// applicationParser.parse(simpleAppCtxt); +// } +// +// @AfterClass +// public static void tearDownAfterClass() { +// +// dataHolder = null; +// } +//}
http://git-wip-us.apache.org/repos/asf/stratos/blob/572cbe32/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/CloudControllerServiceClient.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/CloudControllerServiceClient.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/CloudControllerServiceClient.java index 75f48d8..a848c11 100644 --- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/CloudControllerServiceClient.java +++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/CloudControllerServiceClient.java @@ -24,7 +24,6 @@ import org.apache.axis2.context.ConfigurationContext; import org.apache.axis2.transport.http.HTTPConstants; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.stratos.cloud.controller.stub.pojo.application.ApplicationContext; import org.apache.stratos.cloud.controller.stub.*; import org.apache.stratos.cloud.controller.stub.pojo.*; import org.apache.stratos.manager.internal.DataHolder; @@ -130,22 +129,6 @@ public class CloudControllerServiceClient { } - - public void deployApplicationDefinition(ApplicationContext applicationContext) - throws RemoteException, - CloudControllerServiceInvalidIaasProviderExceptionException, CloudControllerServiceApplicationDefinitionExceptionException { - - stub.deployApplicationDefinition(applicationContext); - - } - - public void undeployApplicationDefinition (String applicationId, int tenantId, String tenantDomain) throws CloudControllerServiceApplicationDefinitionExceptionException, - RemoteException { - - stub.unDeployApplicationDefinition(applicationId, tenantId, tenantDomain); - } - - @SuppressWarnings("unused") private Properties extractProperties(java.util.Properties properties) { http://git-wip-us.apache.org/repos/asf/stratos/blob/572cbe32/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/ClusterDataHolder.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/ClusterDataHolder.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/ClusterDataHolder.java index 6a7e421..9f41b0e 100644 --- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/ClusterDataHolder.java +++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/applications/ClusterDataHolder.java @@ -30,7 +30,6 @@ public class ClusterDataHolder implements Serializable { // Service/Cartridge type private String serviceType; - // Cluster id private String clusterId; http://git-wip-us.apache.org/repos/asf/stratos/blob/572cbe32/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java index 012611f..a7ab51b 100644 --- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java +++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java @@ -31,7 +31,6 @@ import org.apache.stratos.cloud.controller.stub.*; import org.apache.stratos.cloud.controller.stub.pojo.CartridgeConfig; import org.apache.stratos.cloud.controller.stub.pojo.CartridgeInfo; import org.apache.stratos.cloud.controller.stub.pojo.Property; -import org.apache.stratos.cloud.controller.stub.pojo.application.ApplicationContext; import org.apache.stratos.manager.client.AutoscalerServiceClient; import org.apache.stratos.manager.client.CloudControllerServiceClient; import org.apache.stratos.manager.composite.application.beans.ApplicationDefinition; http://git-wip-us.apache.org/repos/asf/stratos/blob/572cbe32/service-stubs/org.apache.stratos.cloud.controller.service.stub/pom.xml ---------------------------------------------------------------------- diff --git a/service-stubs/org.apache.stratos.cloud.controller.service.stub/pom.xml b/service-stubs/org.apache.stratos.cloud.controller.service.stub/pom.xml index 7aff966..e527dd4 100644 --- a/service-stubs/org.apache.stratos.cloud.controller.service.stub/pom.xml +++ b/service-stubs/org.apache.stratos.cloud.controller.service.stub/pom.xml @@ -46,7 +46,7 @@ <configuration> <tasks> <java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true"> - <arg line="-uri src/main/resources/CloudControllerService.wsdl -u -uw -o target/generated-code -p org.apache.stratos.cloud.controller.stub -ns2p http://policy.deployment.controller.cloud.stratos.apache.org/xsd=org.apache.stratos.cloud.controller.stub.deployment.policy,http://partition.deployment.controller.cloud.stratos.apache.org/xsd=org.apache.stratos.cloud.controller.stub.deployment.partition,http://exception.controller.cloud.stratos.apache.org/xsd=org.apache.stratos.cloud.controller.stub.exception,http://pojo.controller.cloud.stratos.apache.org/xsd=org.apache.stratos.cloud.controller.stub.pojo,,http://application.pojo.controller.cloud.stratos.apache.org/xsd=org.apache.stratos.cloud.controller.stub.pojo.application,http://impl.controller.cloud.stratos.apache.org=org.apache.stratos.cloud.controller.stub.impl" /> + <arg line="-uri src/main/resources/CloudControllerService.wsdl -u -uw -o target/generated-code -p org.apache.stratos.cloud.controller.stub -ns2p http://policy.deployment.controller.cloud.stratos.apache.org/xsd=org.apache.stratos.cloud.controller.stub.deployment.policy,http://partition.deployment.controller.cloud.stratos.apache.org/xsd=org.apache.stratos.cloud.controller.stub.deployment.partition,http://exception.controller.cloud.stratos.apache.org/xsd=org.apache.stratos.cloud.controller.stub.exception,http://pojo.controller.cloud.stratos.apache.org/xsd=org.apache.stratos.cloud.controller.stub.pojo,http://impl.controller.cloud.stratos.apache.org=org.apache.stratos.cloud.controller.stub.impl" /> <classpath refid="maven.dependency.classpath" /> <classpath refid="maven.compile.classpath" /> <classpath refid="maven.runtime.classpath" /> @@ -89,7 +89,6 @@ org.apache.stratos.cloud.controller.stub.exception.*; version=${project.version}, org.apache.stratos.cloud.controller.stub.deployment.partition.*; version=${project.version}, org.apache.stratos.cloud.controller.stub.pojo.*; version=${project.version}, - org.apache.stratos.cloud.controller.stub.pojo.application.*; version=${project.version}, org.apache.stratos.cloud.controller.stub.impl.*; version=${project.version}, org.apache.stratos.cloud.controller.stub.*; version=${project.version} </Export-Package>
