You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by dr...@apache.org on 2017/02/07 09:37:25 UTC
[3/4] brooklyn-server git commit: AbstractYamlRebindTest: updates as
per AbstractYamlTest
AbstractYamlRebindTest: updates as per AbstractYamlTest
Replaced the createAndStartApplication impl with that from
AbstractYamlTest. (Before this change, I saw a NoSuchElementException
because it failed to find the task for the start effector - I\u2019m guessing
there\u2019s a race for when that task is created).
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/9275edb5
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/9275edb5
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/9275edb5
Branch: refs/heads/master
Commit: 9275edb58c09081fe6ec9d9d5a7bbb241e3f5e8f
Parents: 316452e
Author: Aled Sage <al...@gmail.com>
Authored: Mon Feb 6 13:53:25 2017 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Mon Feb 6 14:20:19 2017 +0000
----------------------------------------------------------------------
.../camp/brooklyn/AbstractYamlRebindTest.java | 47 +++++++++++---------
1 file changed, 26 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/9275edb5/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/AbstractYamlRebindTest.java
----------------------------------------------------------------------
diff --git a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/AbstractYamlRebindTest.java b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/AbstractYamlRebindTest.java
index c9a57ce..9322866 100644
--- a/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/AbstractYamlRebindTest.java
+++ b/camp/camp-brooklyn/src/test/java/org/apache/brooklyn/camp/brooklyn/AbstractYamlRebindTest.java
@@ -20,25 +20,33 @@ package org.apache.brooklyn.camp.brooklyn;
import java.io.Reader;
import java.io.StringReader;
+import java.util.Map;
import java.util.Set;
import org.apache.brooklyn.api.catalog.CatalogItem;
+import org.apache.brooklyn.api.entity.Application;
import org.apache.brooklyn.api.entity.Entity;
+import org.apache.brooklyn.api.entity.EntitySpec;
import org.apache.brooklyn.api.mgmt.ManagementContext;
import org.apache.brooklyn.api.mgmt.Task;
import org.apache.brooklyn.camp.brooklyn.BrooklynCampPlatform;
import org.apache.brooklyn.camp.brooklyn.BrooklynCampPlatformLauncherNoServer;
+import org.apache.brooklyn.camp.brooklyn.spi.creation.CampTypePlanTransformer;
import org.apache.brooklyn.camp.spi.Assembly;
import org.apache.brooklyn.camp.spi.AssemblyTemplate;
import org.apache.brooklyn.core.catalog.internal.CatalogUtils;
import org.apache.brooklyn.core.entity.Entities;
import org.apache.brooklyn.core.entity.StartableApplication;
+import org.apache.brooklyn.core.entity.trait.Startable;
import org.apache.brooklyn.core.mgmt.BrooklynTaskTags;
import org.apache.brooklyn.core.mgmt.internal.LocalManagementContext;
import org.apache.brooklyn.core.mgmt.rebind.RebindOptions;
import org.apache.brooklyn.core.mgmt.rebind.RebindTestFixture;
+import org.apache.brooklyn.core.typereg.RegisteredTypeLoadingContexts;
+import org.apache.brooklyn.util.collections.MutableMap;
import org.apache.brooklyn.util.core.ResourceUtils;
import org.apache.brooklyn.util.core.config.ConfigBag;
+import org.apache.brooklyn.util.stream.Streams;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testng.annotations.AfterMethod;
@@ -129,34 +137,31 @@ public class AbstractYamlRebindTest extends RebindTestFixture<StartableApplicati
return new StringReader(builder.toString());
}
+ /**
+ * @deprecated since 0.11.0, use {@link #createAndStartApplication(String)} instead,
+ * in the same way as {@link AbstractYamlTest}.
+ */
+ @Deprecated
+ protected Entity createAndStartApplication(Reader input) throws Exception {
+ return createAndStartApplication(Streams.readFully(input));
+ }
+
protected Entity createAndStartApplication(String... multiLineYaml) throws Exception {
return createAndStartApplication(joinLines(multiLineYaml));
}
protected Entity createAndStartApplication(String input) throws Exception {
- return createAndStartApplication(new StringReader(input));
+ return createAndStartApplication(input, MutableMap.<String,String>of());
}
-
- protected Entity createAndStartApplication(Reader input) throws Exception {
- AssemblyTemplate at = platform.pdp().registerDeploymentPlan(input);
- Assembly assembly;
- try {
- assembly = at.getInstantiator().newInstance().instantiate(at, platform);
- } catch (Exception e) {
- getLogger().warn("Unable to instantiate " + at + " (rethrowing): " + e);
- throw e;
- }
- getLogger().info("Test - created " + assembly);
- final Entity app = mgmt().getEntityManager().getEntity(assembly.getId());
- getLogger().info("App - " + app);
-
- // wait for app to have started
- Set<Task<?>> tasks = mgmt().getExecutionManager().getTasksWithAllTags(ImmutableList.of(
- BrooklynTaskTags.EFFECTOR_TAG,
- BrooklynTaskTags.tagForContextEntity(app),
- BrooklynTaskTags.tagForEffectorCall(app, "start", ConfigBag.newInstance(ImmutableMap.of("locations", ImmutableMap.of())))));
- Iterables.getOnlyElement(tasks).get();
+
+ protected Entity createAndStartApplication(String input, Map<String,?> startParameters) throws Exception {
+ EntitySpec<?> spec =
+ mgmt().getTypeRegistry().createSpecFromPlan(CampTypePlanTransformer.FORMAT, input, RegisteredTypeLoadingContexts.spec(Application.class), EntitySpec.class);
+ final Entity app = mgmt().getEntityManager().createEntity(spec);
+ getLogger().info("Test created app, and will now start " + app);
+ // start the app (happens automatically if we use camp to instantiate, but not if we use crate spec approach)
+ app.invoke(Startable.START, startParameters).get();
return app;
}