http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/d03f254b/brooklyn-server/camp/camp-base/src/main/java/org/apache/brooklyn/camp/spi/resolve/interpret/PlanInterpretationContext.java ---------------------------------------------------------------------- diff --git a/brooklyn-server/camp/camp-base/src/main/java/org/apache/brooklyn/camp/spi/resolve/interpret/PlanInterpretationContext.java b/brooklyn-server/camp/camp-base/src/main/java/org/apache/brooklyn/camp/spi/resolve/interpret/PlanInterpretationContext.java deleted file mode 100644 index f45d7c6..0000000 --- a/brooklyn-server/camp/camp-base/src/main/java/org/apache/brooklyn/camp/spi/resolve/interpret/PlanInterpretationContext.java +++ /dev/null @@ -1,152 +0,0 @@ -/* - * 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.brooklyn.camp.spi.resolve.interpret; - -import java.util.List; -import java.util.Map; - -import org.apache.brooklyn.camp.spi.resolve.PlanInterpreter; -import org.apache.brooklyn.util.collections.MutableMap; - -import com.google.common.collect.ImmutableList; - -public class PlanInterpretationContext { - - private final Map<String,Object> originalDeploymentPlan; - private final List<PlanInterpreter> interpreters; - private final PlanInterpreter allInterpreter; - - public PlanInterpretationContext(Map<String,?> originalDeploymentPlan, List<PlanInterpreter> interpreters) { - super(); - this.originalDeploymentPlan = MutableMap.copyOf(originalDeploymentPlan).asUnmodifiable(); - this.interpreters = ImmutableList.copyOf(interpreters); - this.allInterpreter = new PlanInterpreter() { - @Override - public boolean isInterestedIn(PlanInterpretationNode node) { - return true; - } - - @Override - public void applyYamlPrimitive(PlanInterpretationNode node) { - for (PlanInterpreter i: PlanInterpretationContext.this.interpreters) { - if (node.isExcluded()) - break; - if (i.isInterestedIn(node)) { - i.applyYamlPrimitive(node); - } - } - } - - @Override - public boolean applyMapBefore(PlanInterpretationNode node, Map<Object, Object> mapIn) { - boolean result = true; - for (PlanInterpreter i: PlanInterpretationContext.this.interpreters) { - if (node.isExcluded()) - break; - if (i.isInterestedIn(node)) { - boolean ri= i.applyMapBefore(node, mapIn); - result &= ri; - } - } - return result; - } - - @Override - public boolean applyMapEntry(PlanInterpretationNode node, Map<Object, Object> mapIn, Map<Object, Object> mapOut, - PlanInterpretationNode key, PlanInterpretationNode value) { - boolean result = true; - for (PlanInterpreter i: PlanInterpretationContext.this.interpreters) { - if (node.isExcluded()) - break; - if (i.isInterestedIn(key)) { - boolean ri = i.applyMapEntry(node, mapIn, mapOut, key, value); - result &= ri; - } - } - return result; - } - - @Override - public void applyMapAfter(PlanInterpretationNode node, Map<Object, Object> mapIn, Map<Object, Object> mapOut) { - for (PlanInterpreter i: PlanInterpretationContext.this.interpreters) { - if (node.isExcluded()) - break; - if (i.isInterestedIn(node)) { - i.applyMapAfter(node, mapIn, mapOut); - } - } - } - - @Override - public boolean applyListBefore(PlanInterpretationNode node, List<Object> listIn) { - boolean result = true; - for (PlanInterpreter i: PlanInterpretationContext.this.interpreters) { - if (node.isExcluded()) - break; - if (i.isInterestedIn(node)) { - boolean ri = i.applyListBefore(node, listIn); - result &= ri; - } - } - return result; - } - - @Override - public boolean applyListEntry(PlanInterpretationNode node, List<Object> listIn, List<Object> listOut, - PlanInterpretationNode value) { - boolean result = true; - for (PlanInterpreter i: PlanInterpretationContext.this.interpreters) { - if (node.isExcluded()) - break; - if (i.isInterestedIn(value)) { - boolean ri = i.applyListEntry(node, listIn, listOut, value); - result &= ri; - } - } - return result; - } - - @Override - public void applyListAfter(PlanInterpretationNode node, List<Object> listIn, List<Object> listOut) { - for (PlanInterpreter i: PlanInterpretationContext.this.interpreters) { - if (node.isExcluded()) - break; - if (i.isInterestedIn(node)) { - i.applyListAfter(node, listIn, listOut); - } - } - } - - }; - } - - /** returns an interpreter which recurses through all interpreters */ - PlanInterpreter getAllInterpreter() { - return allInterpreter; - } - - public Map<String,Object> getOriginalDeploymentPlan() { - return originalDeploymentPlan; - } - - public List<PlanInterpreter> getInterpreters() { - return interpreters; - } - -}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/d03f254b/brooklyn-server/camp/camp-base/src/main/java/org/apache/brooklyn/camp/spi/resolve/interpret/PlanInterpretationNode.java ---------------------------------------------------------------------- diff --git a/brooklyn-server/camp/camp-base/src/main/java/org/apache/brooklyn/camp/spi/resolve/interpret/PlanInterpretationNode.java b/brooklyn-server/camp/camp-base/src/main/java/org/apache/brooklyn/camp/spi/resolve/interpret/PlanInterpretationNode.java deleted file mode 100644 index 2cf3d5d..0000000 --- a/brooklyn-server/camp/camp-base/src/main/java/org/apache/brooklyn/camp/spi/resolve/interpret/PlanInterpretationNode.java +++ /dev/null @@ -1,259 +0,0 @@ -/* - * 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.brooklyn.camp.spi.resolve.interpret; - -import java.util.Map; - -import org.apache.brooklyn.camp.spi.resolve.PlanInterpreter; -import org.apache.brooklyn.util.collections.MutableList; -import org.apache.brooklyn.util.collections.MutableMap; -import org.apache.brooklyn.util.text.StringPredicates; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.google.common.collect.Iterables; - -/** Helper class for {@link PlanInterpreter} instances, doing the recursive work */ -public class PlanInterpretationNode { - - private static final Logger log = LoggerFactory.getLogger(PlanInterpretationNode.class); - - public enum Role { MAP_KEY, MAP_VALUE, LIST_ENTRY, YAML_PRIMITIVE } - - protected final PlanInterpretationNode parent; - protected final Role roleInParent; - protected final Object originalValue; - protected final PlanInterpretationContext context; - protected Object newValue = null; - protected Boolean changed = null; - protected boolean excluded = false; - protected boolean immutable = false; - - /** creates a root node with {@link #apply()} called */ - public PlanInterpretationNode(PlanInterpretationContext context) { - this.parent = null; - this.roleInParent = null; - this.originalValue = context.getOriginalDeploymentPlan(); - this.context = context; - apply(); - } - - /** internal use: creates an internal node on which {@link #apply()} has *not* been called */ - protected PlanInterpretationNode(PlanInterpretationNode parent, Role roleInParent, Object originalItem) { - this.parent = parent; - this.roleInParent = roleInParent; - this.originalValue = originalItem; - this.context = parent.getContext(); - } - - public PlanInterpretationContext getContext() { - return context; - } - - public PlanInterpretationNode getParent() { - return parent; - } - - public Role getRoleInParent() { - return roleInParent; - } - - protected void apply() { - if (changed!=null) throw new IllegalStateException("can only be applied once"); - - if (!excluded) { - if (originalValue instanceof Map) { - applyToMap(); - immutable(); - } else if (originalValue instanceof Iterable) { - applyToIterable(); - immutable(); - } else { - applyToYamlPrimitive(); - } - } - - if (changed==null) changed = false; - } - - /** convenience for interpreters, tests if nodes are not excluded, and if not: - * for string nodes, true iff the current value equals the given target; - * for nodes which are currently maps or lists, - * true iff not excluded and the value contains such an entry (key, in the case of map) - **/ - public boolean matchesLiteral(String target) { - if (isExcluded()) return false; - if (getNewValue() instanceof CharSequence) - return getNewValue().toString().equals(target); - if (getNewValue() instanceof Map) - return ((Map<?,?>)getOriginalValue()).containsKey(target); - if (getNewValue() instanceof Iterable) - return Iterables.contains((Iterable<?>)getOriginalValue(), target); - return false; - } - - /** convenience for interpreters, tests if nodes are not excluded, and if not: - * for string nodes, true iff the current value starts with the given prefix; - * for nodes which are currently maps or lists, - * true iff not excluded and the value contains such an entry (key, in the case of map) */ - public boolean matchesPrefix(String prefix) { - if (isExcluded()) return false; - if (getNewValue() instanceof CharSequence) - return getNewValue().toString().startsWith(prefix); - if (getNewValue() instanceof Map) - return Iterables.tryFind(((Map<?,?>)getNewValue()).keySet(), StringPredicates.isStringStartingWith(prefix)).isPresent(); - if (getNewValue() instanceof Iterable) - return Iterables.tryFind((Iterable<?>)getNewValue(), StringPredicates.isStringStartingWith(prefix)).isPresent(); - return false; - } - - // TODO matchesRegex ? - - public Object getOriginalValue() { - return originalValue; - } - - public Object getNewValue() { - if (changed==null || !isChanged()) return originalValue; - return newValue; - } - - public boolean isChanged() { - if (changed==null) throw new IllegalStateException("not yet applied"); - return changed; - } - - public boolean isExcluded() { - return excluded; - } - - /** indicates that a node should no longer be translated */ - public PlanInterpretationNode exclude() { - this.excluded = true; - return this; - } - - public PlanInterpretationNode setNewValue(Object newItem) { - if (immutable) - throw new IllegalStateException("Node "+this+" has been set immutable"); - this.newValue = newItem; - this.changed = true; - return this; - } - - protected PlanInterpretationNode newPlanInterpretation(PlanInterpretationNode parent, Role roleInParent, Object item) { - return new PlanInterpretationNode(parent, roleInParent, item); - } - - protected void applyToMap() { - Map<Object, Object> input = MutableMap.<Object,Object>copyOf((Map<?,?>)originalValue); - Map<Object, Object> result = MutableMap.<Object,Object>of(); - newValue = result; - - // first do a "whole-node" application - if (getContext().getAllInterpreter().applyMapBefore(this, input)) { - - for (Map.Entry<Object,Object> entry: input.entrySet()) { - // then recurse in to this node and do various in-the-node applications - PlanInterpretationNode value = newPlanInterpretation(this, Role.MAP_VALUE, entry.getValue()); - value.apply(); - - PlanInterpretationNode key = newPlanInterpretation(this, Role.MAP_KEY, entry.getKey()); - key.apply(); - - if (key.isChanged() || value.isChanged()) - changed = true; - - if (getContext().getAllInterpreter().applyMapEntry(this, input, result, key, value)) - result.put(key.getNewValue(), value.getNewValue()); - else - changed = true; - } - - // finally try applying to this node again - getContext().getAllInterpreter().applyMapAfter(this, input, result); - } - - if (changed==null) changed = false; - } - - protected void applyToIterable() { - MutableList<Object> input = MutableList.copyOf((Iterable<?>)originalValue); - MutableList<Object> result = new MutableList<Object>(); - newValue = result; - - // first do a "whole-node" application - if (getContext().getAllInterpreter().applyListBefore(this, input)) { - - for (Object entry: input) { - // then recurse in to this node and do various in-the-node applications - PlanInterpretationNode value = newPlanInterpretation(this, Role.LIST_ENTRY, entry); - value.apply(); - - if (value.isChanged()) - changed = true; - - if (getContext().getAllInterpreter().applyListEntry(this, input, result, value)) - result.add(value.getNewValue()); - } - - // finally try applying to this node again - getContext().getAllInterpreter().applyListAfter(this, input, result); - } - - if (changed==null) changed = false; - } - - protected void applyToYamlPrimitive() { - getContext().getAllInterpreter().applyYamlPrimitive(this); - } - - public void immutable() { - if (!isChanged()) { - if (!checkCollectionImmutable(getNewValue())) { - // results of Yaml parse are not typically immutable, - // so force them to be changed so result of interpretation is immutable - changed = true; - setNewValue(immutable(getNewValue())); - } - } else { - setNewValue(immutable(getNewValue())); - } - checkImmutable(getNewValue()); - immutable = true; - } - - private void checkImmutable(Object in) { - if (!checkCollectionImmutable(in)) - log.warn("Node original value "+in+" at "+this+" should be immutable"); - } - - private static boolean checkCollectionImmutable(Object in) { - // not used -- input might now be UnmodifiableMap, as some args might be null, - // and UnmodifiableMap is private :( ... (and same for list) - return true; - } - - private static Object immutable(Object in) { - if (in instanceof Map) return MutableMap.copyOf((Map<?,?>)in).asUnmodifiable(); - if (in instanceof Iterable) return MutableList.copyOf((Iterable<?>)in).asUnmodifiable(); - return in; - } - -} http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/d03f254b/brooklyn-server/camp/camp-base/src/main/java/org/apache/brooklyn/camp/util/yaml/Yamls.java ---------------------------------------------------------------------- diff --git a/brooklyn-server/camp/camp-base/src/main/java/org/apache/brooklyn/camp/util/yaml/Yamls.java b/brooklyn-server/camp/camp-base/src/main/java/org/apache/brooklyn/camp/util/yaml/Yamls.java deleted file mode 100644 index 1bfde6f..0000000 --- a/brooklyn-server/camp/camp-base/src/main/java/org/apache/brooklyn/camp/util/yaml/Yamls.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * 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.brooklyn.camp.util.yaml; - -/** @deprecated since 0.7.0 use {@link org.apache.brooklyn.util.yaml.Yamls} */ -@Deprecated -public class Yamls extends org.apache.brooklyn.util.yaml.Yamls { -} http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/d03f254b/brooklyn-server/camp/camp-base/src/test/java/org/apache/brooklyn/camp/spi/pdp/DeploymentPlanToyInterpreterTest.java ---------------------------------------------------------------------- diff --git a/brooklyn-server/camp/camp-base/src/test/java/org/apache/brooklyn/camp/spi/pdp/DeploymentPlanToyInterpreterTest.java b/brooklyn-server/camp/camp-base/src/test/java/org/apache/brooklyn/camp/spi/pdp/DeploymentPlanToyInterpreterTest.java deleted file mode 100644 index 51dcc2f..0000000 --- a/brooklyn-server/camp/camp-base/src/test/java/org/apache/brooklyn/camp/spi/pdp/DeploymentPlanToyInterpreterTest.java +++ /dev/null @@ -1,112 +0,0 @@ -/* - * 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.brooklyn.camp.spi.pdp; - -import java.util.Map; - -import org.apache.brooklyn.camp.BasicCampPlatform; -import org.apache.brooklyn.camp.spi.resolve.PlanInterpreter.PlanInterpreterAdapter; -import org.apache.brooklyn.camp.spi.resolve.interpret.PlanInterpretationNode; -import org.apache.brooklyn.util.stream.Streams; -import org.apache.brooklyn.util.text.Strings; -import org.apache.brooklyn.util.yaml.Yamls; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.testng.Assert; -import org.testng.annotations.Test; - -@Test -public class DeploymentPlanToyInterpreterTest { - - private static final Logger log = LoggerFactory.getLogger(DeploymentPlanToyInterpreterTest.class); - - /** - * Allows testing: - * - * $sample:foo becomes "bar" - * $sample:caps:x capitalises the argument x - * $sample:ignore as key causes key-value to be dropped (and value 0 for good measure) - * $sample:reset causes containing map or list to be cleared at that point - * $sample:remove as key causes argument as map to be dropped - */ - public static class ToyInterpreter extends PlanInterpreterAdapter { - - @Override - public boolean isInterestedIn(PlanInterpretationNode node) { - return node.matchesPrefix("$sample:"); - } - - @Override - public void applyYamlPrimitive(PlanInterpretationNode node) { - if (node.matchesLiteral("$sample:foo")) node.setNewValue("bar").exclude(); - if (node.matchesPrefix("$sample:caps:")) { - node.setNewValue(Strings.removeFromStart(node.getNewValue().toString(), "$sample:caps:").toUpperCase()).exclude(); - } - } - - @Override - public boolean applyMapBefore(PlanInterpretationNode node, Map<Object, Object> mapIn) { - if (node.matchesLiteral("$sample:ignore")) - // replace - mapIn.put("$sample:ignore", 0); - return super.applyMapBefore(node, mapIn); - } - - @Override - public boolean applyMapEntry(PlanInterpretationNode node, Map<Object, Object> mapIn, Map<Object, Object> mapOut, - PlanInterpretationNode key, PlanInterpretationNode value) { - if (key.matchesLiteral("$sample:ignore")) { - Assert.assertEquals(value.getNewValue(), 0); - return false; - } - if (key.matchesLiteral("$sample:reset")) { - mapOut.clear(); - return false; - } - - return super.applyMapEntry(node, mapIn, mapOut, key, value); - } - - @SuppressWarnings("rawtypes") - @Override - public void applyMapAfter(PlanInterpretationNode node, Map<Object, Object> mapIn, Map<Object, Object> mapOut) { - if (mapOut.containsKey("$sample:remove")) { - Map toRemove = (Map) mapOut.get("$sample:remove"); - for (Object vv: toRemove.keySet()) mapOut.remove(vv); - mapOut.remove("$sample:remove"); - } - } - } - - @SuppressWarnings("unchecked") - public void testToyInterpreter() { - @SuppressWarnings("rawtypes") - Map y1 = Yamls.getAs( Yamls.parseAll( Streams.reader(getClass().getResourceAsStream("yaml-sample-toy-interpreter.yaml"))), Map.class ); - log.info("pre-interpreter have: "+y1); - - BasicCampPlatform p = new BasicCampPlatform(); - p.pdp().addInterpreter(new ToyInterpreter()); - Map<String, Object> y2 = p.pdp().applyInterpreters(y1); - log.info("interpreter gives: "+y2); - - Map<String, Object> y3 = Yamls.getAs( Yamls.parseAll( Streams.reader(getClass().getResourceAsStream("yaml-sample-toy-interpreter-result.yaml"))), Map.class ); - Assert.assertEquals(y2, y3); - } - -} http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/d03f254b/brooklyn-server/camp/camp-base/src/test/java/org/apache/brooklyn/camp/spi/pdp/PdpYamlTest.java ---------------------------------------------------------------------- diff --git a/brooklyn-server/camp/camp-base/src/test/java/org/apache/brooklyn/camp/spi/pdp/PdpYamlTest.java b/brooklyn-server/camp/camp-base/src/test/java/org/apache/brooklyn/camp/spi/pdp/PdpYamlTest.java deleted file mode 100644 index b9fee6f..0000000 --- a/brooklyn-server/camp/camp-base/src/test/java/org/apache/brooklyn/camp/spi/pdp/PdpYamlTest.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * 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.brooklyn.camp.spi.pdp; - -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.Reader; - -import org.apache.brooklyn.camp.BasicCampPlatform; -import org.apache.brooklyn.camp.spi.AssemblyTemplate; -import org.apache.brooklyn.camp.spi.pdp.Artifact; -import org.apache.brooklyn.camp.spi.pdp.DeploymentPlan; -import org.apache.brooklyn.camp.spi.pdp.Service; -import org.apache.brooklyn.camp.test.mock.web.MockWebPlatform; -import org.apache.brooklyn.util.stream.Streams; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.testng.Assert; -import org.testng.annotations.Test; - -public class PdpYamlTest { - - private static final Logger log = LoggerFactory.getLogger(PdpYamlTest.class); - - @Test - public void testSimpleYamlArtifactParse() throws IOException { - BasicCampPlatform platform = MockWebPlatform.populate(new BasicCampPlatform()); - Reader input = Streams.reader(getClass().getResourceAsStream("pdp-single-artifact.yaml")); - DeploymentPlan plan = platform.pdp().parseDeploymentPlan(input); - log.info("DP is:\n"+plan.toString()); - Assert.assertEquals(plan.getName(), "sample"); - Assert.assertEquals(plan.getArtifacts().size(), 1); - Assert.assertEquals(plan.getServices().size(), 0); - - Artifact artifact1 = plan.getArtifacts().iterator().next(); - Assert.assertEquals(artifact1.getName(), "sample WAR"); - } - - @Test - public void testSimpleYamlServiceParse() throws IOException { - BasicCampPlatform platform = MockWebPlatform.populate(new BasicCampPlatform()); - Reader input = Streams.reader(getClass().getResourceAsStream("pdp-single-service.yaml")); - DeploymentPlan plan = platform.pdp().parseDeploymentPlan(input); - log.info("DP is:\n"+plan.toString()); - Assert.assertEquals(plan.getName(), "sample"); - Assert.assertEquals(plan.getArtifacts().size(), 0); - Assert.assertEquals(plan.getServices().size(), 1); - - Service service1 = plan.getServices().iterator().next(); - Assert.assertEquals(service1.getName(), "Hello WAR"); - } - - @Test - public void testSimpleYamlMatch() throws IOException { - BasicCampPlatform platform = MockWebPlatform.populate(new BasicCampPlatform()); - Reader input = new InputStreamReader(getClass().getResourceAsStream("pdp-single-artifact.yaml")); - AssemblyTemplate at = platform.pdp().registerDeploymentPlan(input); - log.info("AT is:\n"+at.toString()); - Assert.assertEquals(at.getApplicationComponentTemplates().links().size(), 1); - Assert.assertEquals(at.getName(), "sample"); - } - -} http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/d03f254b/brooklyn-server/camp/camp-base/src/test/java/org/apache/brooklyn/camp/test/mock/web/MockAssemblyTemplateInstantiator.java ---------------------------------------------------------------------- diff --git a/brooklyn-server/camp/camp-base/src/test/java/org/apache/brooklyn/camp/test/mock/web/MockAssemblyTemplateInstantiator.java b/brooklyn-server/camp/camp-base/src/test/java/org/apache/brooklyn/camp/test/mock/web/MockAssemblyTemplateInstantiator.java deleted file mode 100644 index a358eed..0000000 --- a/brooklyn-server/camp/camp-base/src/test/java/org/apache/brooklyn/camp/test/mock/web/MockAssemblyTemplateInstantiator.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * 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.brooklyn.camp.test.mock.web; - -import org.apache.brooklyn.camp.CampPlatform; -import org.apache.brooklyn.camp.spi.Assembly; -import org.apache.brooklyn.camp.spi.AssemblyTemplate; -import org.apache.brooklyn.camp.spi.instantiate.AssemblyTemplateInstantiator; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class MockAssemblyTemplateInstantiator implements AssemblyTemplateInstantiator { - - private static final Logger log = LoggerFactory.getLogger(MockAssemblyTemplateInstantiator.class); - - public Assembly instantiate(AssemblyTemplate template, CampPlatform platform) { - log.debug("Ignoring request to instantiate "+template); - return null; - } - -} http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/d03f254b/brooklyn-server/camp/camp-base/src/test/java/org/apache/brooklyn/camp/test/mock/web/MockWebPlatform.java ---------------------------------------------------------------------- diff --git a/brooklyn-server/camp/camp-base/src/test/java/org/apache/brooklyn/camp/test/mock/web/MockWebPlatform.java b/brooklyn-server/camp/camp-base/src/test/java/org/apache/brooklyn/camp/test/mock/web/MockWebPlatform.java deleted file mode 100644 index 4a60d1c..0000000 --- a/brooklyn-server/camp/camp-base/src/test/java/org/apache/brooklyn/camp/test/mock/web/MockWebPlatform.java +++ /dev/null @@ -1,131 +0,0 @@ -/* - * 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.brooklyn.camp.test.mock.web; - -import javax.annotation.Nullable; - -import org.apache.brooklyn.camp.BasicCampPlatform; -import org.apache.brooklyn.camp.spi.ApplicationComponentTemplate; -import org.apache.brooklyn.camp.spi.AssemblyTemplate; -import org.apache.brooklyn.camp.spi.PlatformComponentTemplate; -import org.apache.brooklyn.camp.spi.collection.BasicResourceLookup; -import org.apache.brooklyn.camp.spi.collection.ResolvableLink; -import org.apache.brooklyn.camp.spi.instantiate.AssemblyTemplateInstantiator; -import org.apache.brooklyn.camp.spi.pdp.Artifact; -import org.apache.brooklyn.camp.spi.pdp.AssemblyTemplateConstructor; -import org.apache.brooklyn.camp.spi.pdp.Service; -import org.apache.brooklyn.camp.spi.resolve.PdpMatcher; -import org.apache.brooklyn.util.guava.Maybe; - -public class MockWebPlatform { - - public static final ApplicationComponentTemplate WAR = - ApplicationComponentTemplate.builder() - .name("io.camp.mock:WAR") - .description("Mock WAR") - .build(); - - public static final PlatformComponentTemplate APPSERVER = - PlatformComponentTemplate.builder() - .name("io.camp.mock:AppServer") - .description("Mock Application Server") - .build(); - - public static final PlatformComponentTemplate DATABASE = - PlatformComponentTemplate.builder() - .name("io.camp.mock:Database") - .description("Mock Database") - .build(); - - public static final AssemblyTemplate ASSEMBLY1 = - AssemblyTemplate.builder() - .name("WebAppAssembly1") - .description("Mock Web App Assembly Template") - .applicationComponentTemplates(BasicResourceLookup.of(WAR)) - .instantiator(MockAssemblyTemplateInstantiator.class) - .build(); - - public static final PdpMatcher WAR_GETS_WAR_MATCHER = new PdpMatcher.ArtifactMatcher("com.java:WAR") { - public boolean apply(Object art, AssemblyTemplateConstructor atc) { - ApplicationComponentTemplate act = ApplicationComponentTemplate.builder() - .name( ((Artifact)art).getName() ) - .description( ((Artifact)art).getDescription() ) - .customAttribute("implementation", WAR.getName()) - .customAttribute("artifactType", ((Artifact)art).getArtifactType()) - .build(); - - // TODO requirements, etc - - atc.add(act); - - return true; - } - }; - - public static final PdpMatcher newLiteralServiceTypeToPlatformComponentTemplateMatcher(final BasicCampPlatform platform, @Nullable final Class<? extends AssemblyTemplateInstantiator> instantiator) { - return new PdpMatcher() { - public boolean apply(Object item, AssemblyTemplateConstructor atc) { - if (!(item instanceof Service)) return false; - Service svc = (Service)item; - String type = svc.getServiceType(); - - for (ResolvableLink<PlatformComponentTemplate> t: platform.platformComponentTemplates().links()) { - if (type.equals(t.getName())) { - PlatformComponentTemplate pct = PlatformComponentTemplate.builder() - .name(svc.getName()) - .customAttribute("serviceType", type) - .description(Maybe.fromNullable(svc.getDescription()).or(t.resolve().getDescription())) - .build(); - if (atc!=null) { - atc.add(pct); - if (instantiator!=null) - atc.instantiator(instantiator); - } - return true; - } - } - return false; - } - - @Override - public boolean accepts(Object deploymentPlanItem) { - return apply(deploymentPlanItem, null); - } - }; - } - - public static <T extends BasicCampPlatform> T populate(T platform) { - return populate(platform, null); - } - public static <T extends BasicCampPlatform> T populate(T platform, @Nullable Class<? extends AssemblyTemplateInstantiator> instantiator) { - platform.platformComponentTemplates().addAll(APPSERVER, DATABASE); - platform.applicationComponentTemplates().add(WAR); - platform.assemblyTemplates().add(ASSEMBLY1); - - platform.pdp().addMatcher(WAR_GETS_WAR_MATCHER); - platform.pdp().addMatcher(newLiteralServiceTypeToPlatformComponentTemplateMatcher(platform, instantiator)); - - return platform; - } - - public static BasicCampPlatform newPlatform() { - return MockWebPlatform.populate(new BasicCampPlatform()); - } - -} http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/d03f254b/brooklyn-server/camp/camp-base/src/test/java/org/apache/brooklyn/camp/test/platform/BasicCampPlatformTest.java ---------------------------------------------------------------------- diff --git a/brooklyn-server/camp/camp-base/src/test/java/org/apache/brooklyn/camp/test/platform/BasicCampPlatformTest.java b/brooklyn-server/camp/camp-base/src/test/java/org/apache/brooklyn/camp/test/platform/BasicCampPlatformTest.java deleted file mode 100644 index ccebaa6..0000000 --- a/brooklyn-server/camp/camp-base/src/test/java/org/apache/brooklyn/camp/test/platform/BasicCampPlatformTest.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * 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.brooklyn.camp.test.platform; - -import org.apache.brooklyn.camp.BasicCampPlatform; -import org.apache.brooklyn.camp.spi.AbstractResource; -import org.apache.brooklyn.camp.spi.ApplicationComponentTemplate; -import org.apache.brooklyn.camp.spi.PlatformComponentTemplate; -import org.apache.brooklyn.camp.spi.collection.ResolvableLink; -import org.apache.brooklyn.camp.test.mock.web.MockWebPlatform; -import org.testng.Assert; -import org.testng.annotations.Test; - -public class BasicCampPlatformTest { - - @Test - public void testEmptyPlatform() { - BasicCampPlatform p = new BasicCampPlatform(); - assertResourceFieldsNotNull(p.root()); - Assert.assertEquals(p.platformComponentTemplates().links().size(), 0); - } - - @Test - public void testWebPctSetup() { - BasicCampPlatform p = new BasicCampPlatform(); - p.platformComponentTemplates().add(MockWebPlatform.APPSERVER); - - assertResourceFieldsNotNull(p.root()); - - Assert.assertEquals(p.platformComponentTemplates().links().size(), 1); - ResolvableLink<PlatformComponentTemplate> l = p.platformComponentTemplates().links().get(0); - assertLinkFieldsNotNull(l); - Assert.assertEquals(l.getName(), "io.camp.mock:AppServer"); - - PlatformComponentTemplate pct = l.resolve(); - assertResourceFieldsNotNull(pct); - } - - @Test - public void testWarActSetup() { - BasicCampPlatform p = new BasicCampPlatform(); - p.applicationComponentTemplates().add(MockWebPlatform.WAR); - - assertResourceFieldsNotNull(p.root()); - - Assert.assertEquals(p.platformComponentTemplates().links().size(), 0); - Assert.assertEquals(p.applicationComponentTemplates().links().size(), 1); - ResolvableLink<ApplicationComponentTemplate> l = p.applicationComponentTemplates().links().get(0); - assertLinkFieldsNotNull(l); - Assert.assertEquals(l.getName(), "io.camp.mock:WAR"); - - ApplicationComponentTemplate act = l.resolve(); - assertResourceFieldsNotNull(act); - } - - - public static void assertLinkFieldsNotNull(ResolvableLink<?> x) { - Assert.assertNotNull(x.getId()); - Assert.assertNotNull(x.getName()); - } - - public static void assertResourceFieldsNotNull(AbstractResource x) { - Assert.assertNotNull(x.getId()); - Assert.assertNotNull(x.getType()); - Assert.assertNotNull(x.getCreated()); - Assert.assertNotNull(x.getName()); - Assert.assertNotNull(x.getTags()); - } - -} http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/d03f254b/brooklyn-server/camp/camp-base/src/test/resources/org/apache/brooklyn/camp/spi/pdp/pdp-single-artifact.yaml ---------------------------------------------------------------------- diff --git a/brooklyn-server/camp/camp-base/src/test/resources/org/apache/brooklyn/camp/spi/pdp/pdp-single-artifact.yaml b/brooklyn-server/camp/camp-base/src/test/resources/org/apache/brooklyn/camp/spi/pdp/pdp-single-artifact.yaml deleted file mode 100644 index 0b4518b..0000000 --- a/brooklyn-server/camp/camp-base/src/test/resources/org/apache/brooklyn/camp/spi/pdp/pdp-single-artifact.yaml +++ /dev/null @@ -1,27 +0,0 @@ -# -# 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. -# -name: sample -description: Tomcat sample JSP and servlet application. -origin: http://www.oracle.com/nCAMP/Hand -artifacts: - - - type: com.java:WAR - content: { href: sample.war } - name: sample WAR - description: Tomcat sample WAR file http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/d03f254b/brooklyn-server/camp/camp-base/src/test/resources/org/apache/brooklyn/camp/spi/pdp/pdp-single-service.yaml ---------------------------------------------------------------------- diff --git a/brooklyn-server/camp/camp-base/src/test/resources/org/apache/brooklyn/camp/spi/pdp/pdp-single-service.yaml b/brooklyn-server/camp/camp-base/src/test/resources/org/apache/brooklyn/camp/spi/pdp/pdp-single-service.yaml deleted file mode 100644 index fe052d6..0000000 --- a/brooklyn-server/camp/camp-base/src/test/resources/org/apache/brooklyn/camp/spi/pdp/pdp-single-service.yaml +++ /dev/null @@ -1,29 +0,0 @@ -# -# 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. -# -name: sample -description: Tomcat sample JSP and servlet application. -origin: http://www.oracle.com/nCAMP/Hand -services: - - - type: brooklyn:WebAppCluster - name: Hello WAR - wars: - /: hello.war - controller.spec: - port: 80 http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/d03f254b/brooklyn-server/camp/camp-base/src/test/resources/org/apache/brooklyn/camp/spi/pdp/yaml-sample-toy-interpreter-result.yaml ---------------------------------------------------------------------- diff --git a/brooklyn-server/camp/camp-base/src/test/resources/org/apache/brooklyn/camp/spi/pdp/yaml-sample-toy-interpreter-result.yaml b/brooklyn-server/camp/camp-base/src/test/resources/org/apache/brooklyn/camp/spi/pdp/yaml-sample-toy-interpreter-result.yaml deleted file mode 100644 index 71b0ba8..0000000 --- a/brooklyn-server/camp/camp-base/src/test/resources/org/apache/brooklyn/camp/spi/pdp/yaml-sample-toy-interpreter-result.yaml +++ /dev/null @@ -1,22 +0,0 @@ -# -# 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. -# -keep: 1 -mess: - a: bar - b: [ c, D ] http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/d03f254b/brooklyn-server/camp/camp-base/src/test/resources/org/apache/brooklyn/camp/spi/pdp/yaml-sample-toy-interpreter.yaml ---------------------------------------------------------------------- diff --git a/brooklyn-server/camp/camp-base/src/test/resources/org/apache/brooklyn/camp/spi/pdp/yaml-sample-toy-interpreter.yaml b/brooklyn-server/camp/camp-base/src/test/resources/org/apache/brooklyn/camp/spi/pdp/yaml-sample-toy-interpreter.yaml deleted file mode 100644 index 8aa01d2..0000000 --- a/brooklyn-server/camp/camp-base/src/test/resources/org/apache/brooklyn/camp/spi/pdp/yaml-sample-toy-interpreter.yaml +++ /dev/null @@ -1,28 +0,0 @@ -# -# 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. -# -$sample:ignore: 1 -keep: 1 -mess: - 2: z - $sample:reset: - $sample:ignore: z - a: $sample:foo - b: [ c, "$sample:caps:d" ] - 3: $sample:caps:x - $sample:remove: {3: X} http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/d03f254b/brooklyn-server/camp/camp-brooklyn/README.md ---------------------------------------------------------------------- diff --git a/brooklyn-server/camp/camp-brooklyn/README.md b/brooklyn-server/camp/camp-brooklyn/README.md deleted file mode 100644 index e0a112a..0000000 --- a/brooklyn-server/camp/camp-brooklyn/README.md +++ /dev/null @@ -1,20 +0,0 @@ - -Depends on brooklyncentral/camp-server - ----- -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. \ No newline at end of file http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/d03f254b/brooklyn-server/camp/camp-brooklyn/pom.xml ---------------------------------------------------------------------- diff --git a/brooklyn-server/camp/camp-brooklyn/pom.xml b/brooklyn-server/camp/camp-brooklyn/pom.xml deleted file mode 100644 index b818b99..0000000 --- a/brooklyn-server/camp/camp-brooklyn/pom.xml +++ /dev/null @@ -1,217 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - 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. ---> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <artifactId>brooklyn-camp</artifactId> - <packaging>jar</packaging> - <name>Brooklyn CAMP REST API</name> - <description> - Brooklyn support for the Oasis CAMP server - </description> - - <parent> - <groupId>org.apache.brooklyn</groupId> - <artifactId>brooklyn-parent</artifactId> - <version>0.9.0-SNAPSHOT</version><!-- BROOKLYN_VERSION --> - <relativePath>../../parent/pom.xml</relativePath> - </parent> - - <dependencies> - - <dependency> - <groupId>org.apache.brooklyn</groupId> - <artifactId>brooklyn-core</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.apache.brooklyn</groupId> - <artifactId>brooklyn-api</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.apache.brooklyn</groupId> - <artifactId>brooklyn-policy</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.apache.brooklyn</groupId> - <artifactId>brooklyn-utils-common</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.apache.brooklyn.camp</groupId> - <artifactId>camp-base</artifactId> - <version>${project.version}</version> - <exclusions> - <!-- Dependency versions mismatch between transitive dependencies, declare explicitly --> - <exclusion> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>com.google.guava</groupId> - <artifactId>guava</artifactId> - </dependency> - <dependency> - <groupId>com.google.code.findbugs</groupId> - <artifactId>jsr305</artifactId> - </dependency> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-api</artifactId> - </dependency> - - <!-- for $brooklyn:object --> - <dependency> - <groupId>commons-beanutils</groupId> - <artifactId>commons-beanutils</artifactId> - <version>1.9.1</version> - <exclusions> - <!-- Dependency versions mismatch between transitive dependencies, declare explicitly --> - <exclusion> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </exclusion> - </exclusions> - </dependency> - - <!-- TODO not enamoured of including software-base here, but it allows us to reference chef and vanilla for short names; - ideally there is a mixin strategy by which they can be discovered (eg using java service discovery) --> - <dependency> - <groupId>org.apache.brooklyn</groupId> - <artifactId>brooklyn-software-base</artifactId> - <version>${project.version}</version> - </dependency> - - <dependency> - <groupId>org.apache.brooklyn</groupId> - <artifactId>brooklyn-logback-xml</artifactId> - <version>${project.version}</version> - <!-- optional so that this project has logging; dependencies may redeclare or supply their own --> - <optional>true</optional> - </dependency> - - <!-- demo and tests --> - <dependency> - <groupId>org.apache.brooklyn.camp</groupId> - <artifactId>camp-base</artifactId> - <version>${project.version}</version> - <classifier>tests</classifier> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.brooklyn</groupId> - <artifactId>brooklyn-core</artifactId> - <version>${project.version}</version> - <classifier>tests</classifier> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.brooklyn</groupId> - <artifactId>brooklyn-rt-osgi</artifactId> - <version>${project.version}</version> - <classifier>tests</classifier> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.brooklyn</groupId> - <artifactId>brooklyn-software-base</artifactId> - <version>${project.version}</version> - <classifier>tests</classifier> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.brooklyn</groupId> - <artifactId>brooklyn-locations-jclouds</artifactId> - <version>${project.version}</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.brooklyn</groupId> - <artifactId>brooklyn-test-support</artifactId> - <version>${project.version}</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.testng</groupId> - <artifactId>testng</artifactId> - <scope>test</scope> - </dependency> - - <!-- Transitive dependencies, declared explicitly due to version mismatch --> - <dependency> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - <version>${commons-logging.version}</version> - </dependency> - </dependencies> - - <build> - <plugins> - - <plugin> - <groupId>org.apache.felix</groupId> - <artifactId>maven-bundle-plugin</artifactId> - <configuration> - <supportedProjectTypes> - <supportedProjectType>jar</supportedProjectType> - </supportedProjectTypes> - <instructions> - <Export-Package>org.apache.brooklyn.*</Export-Package> - </instructions> - </configuration> - </plugin> - -<!-- if you want to build a WAR, full or skinny: - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-war-plugin</artifactId> - <version>${maven-war-plugin.version}</version> - <executions> - <execution> - <id>make-skinny-war</id> - <phase>install</phase> - <goals> - <goal>war</goal> - </goals> - <configuration> - <classifier>skinny</classifier> - <packagingExcludes>WEB-INF/lib/*.jar,WEB-INF/classes/**/*.class</packagingExcludes> - </configuration> - </execution> - <execution> - <id>make-full-war</id> - <phase>install</phase> - <goals> - <goal>war</goal> - </goals> - <configuration> - <classifier>full</classifier> - </configuration> - </execution> - </executions> - </plugin> ---> - - </plugins> - </build> -</project> http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/d03f254b/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/BrooklynCampConstants.java ---------------------------------------------------------------------- diff --git a/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/BrooklynCampConstants.java b/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/BrooklynCampConstants.java deleted file mode 100644 index d3641f2..0000000 --- a/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/BrooklynCampConstants.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * 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.brooklyn.camp.brooklyn; - -import java.util.Set; - -import org.apache.brooklyn.camp.CampPlatform; -import org.apache.brooklyn.config.ConfigInheritance; -import org.apache.brooklyn.config.ConfigKey; -import org.apache.brooklyn.core.config.ConfigKeys; - -import com.google.common.collect.ImmutableSet; - -public class BrooklynCampConstants { - - public static final String PLAN_ID_FLAG = "planId"; - - public static final ConfigKey<String> PLAN_ID = ConfigKeys.builder(String.class, "camp.plan.id") - .description("Identifier supplied in the deployment plan for component to which this entity corresponds " - + "(human-readable, for correlating across plan, template, and instance)") - .inheritance(ConfigInheritance.NONE) - .build(); - - public static final ConfigKey<String> TEMPLATE_ID = ConfigKeys.builder(String.class, "camp.template.id") - .description("UID of the component in the CAMP template from which this entity was created") - .inheritance(ConfigInheritance.NONE) - .build(); - - public static final ConfigKey<CampPlatform> CAMP_PLATFORM = ConfigKeys.newConfigKey(CampPlatform.class, "brooklyn.camp.platform", - "Config set at brooklyn management platform to find the CampPlatform instance (bi-directional)"); - - public static final Set<String> YAML_URL_PROTOCOL_WHITELIST = ImmutableSet.of("classpath", "http", "https"); -} http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/d03f254b/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/BrooklynCampPlatform.java ---------------------------------------------------------------------- diff --git a/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/BrooklynCampPlatform.java b/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/BrooklynCampPlatform.java deleted file mode 100644 index 7290c24..0000000 --- a/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/BrooklynCampPlatform.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * 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.brooklyn.camp.brooklyn; - -import static com.google.common.base.Preconditions.checkState; - -import java.util.Map; - -import org.apache.brooklyn.api.mgmt.ManagementContext; -import org.apache.brooklyn.api.mgmt.ManagementContext.PropertiesReloadListener; -import org.apache.brooklyn.camp.AggregatingCampPlatform; -import org.apache.brooklyn.camp.CampPlatform; -import org.apache.brooklyn.camp.brooklyn.spi.creation.BrooklynEntityMatcher; -import org.apache.brooklyn.camp.brooklyn.spi.dsl.BrooklynDslInterpreter; -import org.apache.brooklyn.camp.brooklyn.spi.platform.BrooklynImmutableCampPlatform; -import org.apache.brooklyn.camp.spi.PlatformRootSummary; -import org.apache.brooklyn.core.mgmt.HasBrooklynManagementContext; -import org.apache.brooklyn.core.mgmt.internal.ManagementContextInternal; -import org.apache.brooklyn.core.mgmt.internal.CampYamlParser; - -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableSet; - -/** {@link CampPlatform} implementation which includes Brooklyn entities - * (via {@link BrooklynImmutableCampPlatform}) - * and allows customisation / additions */ -public class BrooklynCampPlatform extends AggregatingCampPlatform implements HasBrooklynManagementContext { - - private final ManagementContext bmc; - - public BrooklynCampPlatform(PlatformRootSummary root, ManagementContext managementContext) { - super(root); - addPlatform(new BrooklynImmutableCampPlatform(root, managementContext)); - - this.bmc = managementContext; - - addMatchers(); - addInterpreters(); - - managementContext.addPropertiesReloadListener(new PropertiesReloadListener() { - private static final long serialVersionUID = -3739276553334749184L; - @Override public void reloaded() { - setConfigKeyAtManagmentContext(); - } - }); - } - - // --- brooklyn setup - - @Override - public ManagementContext getBrooklynManagementContext() { - return bmc; - } - - protected void addMatchers() { - // TODO artifacts - pdp().addMatcher(new BrooklynEntityMatcher(bmc)); - } - - protected void addInterpreters() { - pdp().addInterpreter(new BrooklynDslInterpreter()); - } - - public BrooklynCampPlatform setConfigKeyAtManagmentContext() { - ((ManagementContextInternal)bmc).getBrooklynProperties().put(BrooklynCampConstants.CAMP_PLATFORM, this); - ((ManagementContextInternal)bmc).getBrooklynProperties().put(CampYamlParser.YAML_PARSER_KEY, new YamlParserImpl(this)); - return this; - } - - public static class YamlParserImpl implements CampYamlParser { - private final BrooklynCampPlatform platform; - - YamlParserImpl(BrooklynCampPlatform platform) { - this.platform = platform; - } - - public Map<String, Object> parse(Map<String, Object> map) { - return platform.pdp().applyInterpreters(map); - } - - public Object parse(String val) { - Map<String, Object> result = platform.pdp().applyInterpreters(ImmutableMap.of("dummyKey", val)); - checkState(result.keySet().equals(ImmutableSet.of("dummyKey")), "expected single result, but got %s", result); - return result.get("dummyKey"); - } - } -} http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/d03f254b/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/BrooklynCampPlatformLauncherAbstract.java ---------------------------------------------------------------------- diff --git a/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/BrooklynCampPlatformLauncherAbstract.java b/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/BrooklynCampPlatformLauncherAbstract.java deleted file mode 100644 index 921615e..0000000 --- a/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/BrooklynCampPlatformLauncherAbstract.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * 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.brooklyn.camp.brooklyn; - -import org.apache.brooklyn.api.mgmt.ManagementContext; -import org.apache.brooklyn.camp.spi.PlatformRootSummary; -import org.apache.brooklyn.core.mgmt.internal.LocalManagementContext; - -import com.google.common.annotations.Beta; - -/** launcher for {@link BrooklynCampPlatform}, which may or may not start a (web) server depending on children */ -@Beta -public abstract class BrooklynCampPlatformLauncherAbstract { - - protected BrooklynCampPlatform platform; - protected ManagementContext mgmt; - - public BrooklynCampPlatformLauncherAbstract useManagementContext(ManagementContext mgmt) { - if (this.mgmt!=null && mgmt!=this.mgmt) - throw new IllegalStateException("Attempt to change mgmt context; not supported."); - - this.mgmt = mgmt; - - return this; - } - - public BrooklynCampPlatformLauncherAbstract launch() { - if (platform!=null) - throw new IllegalStateException("platform already created"); - - if (getBrooklynMgmt()==null) - useManagementContext(newMgmtContext()); - - platform = new BrooklynCampPlatform( - PlatformRootSummary.builder().name("Brooklyn CAMP Platform").build(), - getBrooklynMgmt()) - .setConfigKeyAtManagmentContext(); - - return this; - } - - protected LocalManagementContext newMgmtContext() { - return new LocalManagementContext(); - } - - public ManagementContext getBrooklynMgmt() { - return mgmt; - } - - public BrooklynCampPlatform getCampPlatform() { - return platform; - } - - /** stops any servers (camp and brooklyn) launched by this launcher */ - public abstract void stopServers() throws Exception; - -} http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/d03f254b/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/BrooklynCampPlatformLauncherNoServer.java ---------------------------------------------------------------------- diff --git a/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/BrooklynCampPlatformLauncherNoServer.java b/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/BrooklynCampPlatformLauncherNoServer.java deleted file mode 100644 index be2488b..0000000 --- a/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/BrooklynCampPlatformLauncherNoServer.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * 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.brooklyn.camp.brooklyn; - -import com.google.common.annotations.Beta; - - -/** launcher for {@link BrooklynCampPlatform}, which does not start a server (and can live in this project) */ -@Beta -public class BrooklynCampPlatformLauncherNoServer extends BrooklynCampPlatformLauncherAbstract { - - @Override - public void stopServers() { - // nothing to do - } - - public static void main(String[] args) { - new BrooklynCampPlatformLauncherNoServer().launch(); - } - -} http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/d03f254b/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/BrooklynCampReservedKeys.java ---------------------------------------------------------------------- diff --git a/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/BrooklynCampReservedKeys.java b/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/BrooklynCampReservedKeys.java deleted file mode 100644 index 52f52e9..0000000 --- a/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/BrooklynCampReservedKeys.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * 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.brooklyn.camp.brooklyn; - -public interface BrooklynCampReservedKeys { - public static final String BROOKLYN_CONFIG = "brooklyn.config"; - public static final String BROOKLYN_FLAGS = "brooklyn.flags"; - public static final String BROOKLYN_POLICIES = "brooklyn.policies"; - public static final String BROOKLYN_ENRICHERS = "brooklyn.enrichers"; - public static final String BROOKLYN_CHILDREN = "brooklyn.children"; - public static final String BROOKLYN_INITIALIZERS = "brooklyn.initializers"; - public static final String BROOKLYN_PARAMETERS = "brooklyn.parameters"; - public static final String BROOKLYN_CATALOG = "brooklyn.catalog"; -} http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/d03f254b/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/YamlLauncherAbstract.java ---------------------------------------------------------------------- diff --git a/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/YamlLauncherAbstract.java b/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/YamlLauncherAbstract.java deleted file mode 100644 index 931a358..0000000 --- a/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/YamlLauncherAbstract.java +++ /dev/null @@ -1,131 +0,0 @@ -/* - * 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.brooklyn.camp.brooklyn; - -import java.io.Reader; -import java.util.Set; - -import org.apache.brooklyn.api.entity.Application; -import org.apache.brooklyn.api.entity.Entity; -import org.apache.brooklyn.api.mgmt.ManagementContext; -import org.apache.brooklyn.api.mgmt.Task; -import org.apache.brooklyn.camp.spi.Assembly; -import org.apache.brooklyn.camp.spi.AssemblyTemplate; -import org.apache.brooklyn.core.entity.Entities; -import org.apache.brooklyn.core.mgmt.BrooklynTaskTags; -import org.apache.brooklyn.core.mgmt.internal.BrooklynShutdownHooks; -import org.apache.brooklyn.util.core.ResourceUtils; -import org.apache.brooklyn.util.exceptions.Exceptions; -import org.apache.brooklyn.util.stream.Streams; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.google.common.annotations.Beta; - -/** convenience for launching YAML files directly */ -@Beta -public abstract class YamlLauncherAbstract { - - private static final Logger log = LoggerFactory.getLogger(YamlLauncherAbstract.class); - - protected final BrooklynCampPlatformLauncherAbstract platformLauncher; - - protected final BrooklynCampPlatform platform; - protected final ManagementContext brooklynMgmt; - protected boolean shutdownAppsOnExit = false; - - public YamlLauncherAbstract() { - this.platformLauncher = newPlatformLauncher(); - platformLauncher.launch(); - this.platform = platformLauncher.getCampPlatform(); - this.brooklynMgmt = platformLauncher.getBrooklynMgmt(); - } - - public ManagementContext getManagementContext() { - return brooklynMgmt; - } - - public boolean getShutdownAppsOnExit() { - return shutdownAppsOnExit; - } - - public void setShutdownAppsOnExit(boolean shutdownAppsOnExit) { - this.shutdownAppsOnExit = shutdownAppsOnExit; - } - - protected abstract BrooklynCampPlatformLauncherAbstract newPlatformLauncher(); - - public Application launchAppYaml(String url) { - return launchAppYaml(url, true); - } - - public Application launchAppYaml(String url, boolean waitForTasksToComplete) { - try { - Reader input = Streams.reader(new ResourceUtils(this).getResourceFromUrl(url)); - Application app = launchAppYaml(input, waitForTasksToComplete); - log.info("Application started from YAML file "+url+": "+app); - return app; - } catch (Exception e) { - throw Exceptions.propagate(e); - } - } - - public Application launchAppYaml(Reader input) { - return launchAppYaml(input, true); - } - - public Application launchAppYaml(Reader input, boolean waitForTasksToComplete) { - try { - AssemblyTemplate at = platform.pdp().registerDeploymentPlan(input); - - Assembly assembly = at.getInstantiator().newInstance().instantiate(at, platform); - Entity app = brooklynMgmt.getEntityManager().getEntity(assembly.getId()); - log.info("Launching "+app); - - if (getShutdownAppsOnExit()) BrooklynShutdownHooks.invokeStopOnShutdown(app); - - if (waitForTasksToComplete) { - Set<Task<?>> tasks = BrooklynTaskTags.getTasksInEntityContext(brooklynMgmt.getExecutionManager(), app); - log.info("Waiting on "+tasks.size()+" task(s)"); - for (Task<?> t: tasks) { - t.blockUntilEnded(); - } - } - - log.info("Application started from YAML: "+app); - Entities.dumpInfo(app); - return (Application)app; - } catch (Exception e) { - throw Exceptions.propagate(e); - } - } - - /** kills all apps, web servers, and mgmt context - * <p> - * this launcher does not support being used again subsequently */ - public void destroyAll() { - Entities.destroyAll(getManagementContext()); - try { - platformLauncher.stopServers(); - } catch (Exception e) { - log.warn("Unable to stop servers (ignoring): "+e); - } - } - -} http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/d03f254b/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/YamlLauncherNoServer.java ---------------------------------------------------------------------- diff --git a/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/YamlLauncherNoServer.java b/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/YamlLauncherNoServer.java deleted file mode 100644 index 1ec3c8d..0000000 --- a/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/YamlLauncherNoServer.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * 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.brooklyn.camp.brooklyn; - -import com.google.common.annotations.Beta; - -/** convenience for launching YAML files directly */ -@Beta -public class YamlLauncherNoServer extends YamlLauncherAbstract { - - @Override - protected BrooklynCampPlatformLauncherAbstract newPlatformLauncher() { - return new BrooklynCampPlatformLauncherNoServer(); - } - - public static void main(String[] args) { - YamlLauncherNoServer l = new YamlLauncherNoServer(); - l.setShutdownAppsOnExit(true); - - l.launchAppYaml("java-web-app-and-db-with-function.yaml"); - } - -} http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/d03f254b/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/api/AssemblyTemplateSpecInstantiator.java ---------------------------------------------------------------------- diff --git a/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/api/AssemblyTemplateSpecInstantiator.java b/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/api/AssemblyTemplateSpecInstantiator.java deleted file mode 100644 index 8540663..0000000 --- a/brooklyn-server/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/api/AssemblyTemplateSpecInstantiator.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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.brooklyn.camp.brooklyn.api; - -import java.util.List; -import java.util.Set; - -import org.apache.brooklyn.api.entity.Application; -import org.apache.brooklyn.api.entity.EntitySpec; -import org.apache.brooklyn.api.mgmt.classloading.BrooklynClassLoadingContext; -import org.apache.brooklyn.camp.CampPlatform; -import org.apache.brooklyn.camp.spi.AssemblyTemplate; -import org.apache.brooklyn.camp.spi.instantiate.AssemblyTemplateInstantiator; - -public interface AssemblyTemplateSpecInstantiator extends AssemblyTemplateInstantiator { - - /** - * Gets the single item returned by {@link #createServiceSpecs} - * and wraps it in an Application if needed, applying top-level - * attributes and locations to the root entity. - */ - EntitySpec<? extends Application> createApplicationSpec(AssemblyTemplate template, CampPlatform platform, BrooklynClassLoadingContext loader, Set<String> encounteredCatalogTypes); - - /** Returns specs for each item in the services list */ - List<EntitySpec<?>> createServiceSpecs(AssemblyTemplate template, CampPlatform platform, BrooklynClassLoadingContext itemLoader, Set<String> encounteredCatalogTypes); - -}
