You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by ha...@apache.org on 2015/10/17 18:17:34 UTC
[1/5] incubator-brooklyn git commit: BROOKLYN-184: Entities
auto-managed
Repository: incubator-brooklyn
Updated Branches:
refs/heads/master ddc3dd9ff -> f1d90c638
BROOKLYN-184: Entities auto-managed
- Deprecates Entities.manage
- Deprecates ApplicationBuilder
- Deprecates BrooklynLauncher.application(Application)
- BrooklynRestResourceUtils uses EntitySpec (with DslComponent for
soleChild ref)
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/5f2a296b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/5f2a296b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/5f2a296b
Branch: refs/heads/master
Commit: 5f2a296b572fd858766031a386682806ad8edead
Parents: 9402f85
Author: Aled Sage <al...@gmail.com>
Authored: Thu Oct 15 16:34:09 2015 +0200
Committer: Aled Sage <al...@gmail.com>
Committed: Thu Oct 15 21:19:34 2015 +0100
----------------------------------------------------------------------
.../brooklyn/core/entity/AbstractEntity.java | 7 +-
.../apache/brooklyn/core/entity/Entities.java | 41 ++-
.../core/entity/factory/ApplicationBuilder.java | 6 +-
.../core/mgmt/EntityManagementUtils.java | 2 -
.../core/mgmt/internal/LocalEntityManager.java | 6 +-
.../entity/group/AbstractGroupImpl.java | 1 -
.../entity/group/DynamicClusterImpl.java | 5 +-
.../entity/group/DynamicFabricImpl.java | 4 +
.../entity/group/DynamicMultiGroupImpl.java | 1 -
.../core/entity/EntityAutomanagedTest.java | 329 +++++++++++++++++++
.../BrooklynNodeUpgradeEffectorBody.java | 2 +-
.../messaging/activemq/ActiveMQBrokerImpl.java | 2 -
.../messaging/kafka/KafkaClusterImpl.java | 2 -
.../entity/messaging/qpid/QpidBrokerImpl.java | 2 -
.../messaging/rabbit/RabbitBrokerImpl.java | 1 -
.../ControlledDynamicWebAppClusterImpl.java | 7 +-
.../BrooklynAssemblyTemplateInstantiator.java | 3 +-
.../brooklyn/launcher/BrooklynLauncher.java | 4 +
.../rest/util/BrooklynRestResourceUtils.java | 20 +-
19 files changed, 411 insertions(+), 34 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5f2a296b/core/src/main/java/org/apache/brooklyn/core/entity/AbstractEntity.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/entity/AbstractEntity.java b/core/src/main/java/org/apache/brooklyn/core/entity/AbstractEntity.java
index 49afc60..65ec72f 100644
--- a/core/src/main/java/org/apache/brooklyn/core/entity/AbstractEntity.java
+++ b/core/src/main/java/org/apache/brooklyn/core/entity/AbstractEntity.java
@@ -662,13 +662,16 @@ public abstract class AbstractEntity extends AbstractBrooklynObject implements E
@Override
public <T extends Entity> T addChild(EntitySpec<T> spec) {
if (spec.getParent()==null) {
- spec = EntitySpec.create(spec).parent(this);
+ spec = EntitySpec.create(spec).parent(getProxyIfAvailable());
}
if (!this.equals(spec.getParent())) {
throw new IllegalArgumentException("Attempt to create child of "+this+" with entity spec "+spec+
" failed because spec has different parent: "+spec.getParent());
}
- return addChild(getEntityManager().createEntity(spec));
+
+ // The spec now includes this as the parent, so no need to call addChild;
+ // that is done by InternalEntityFactory.
+ return getEntityManager().createEntity(spec);
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5f2a296b/core/src/main/java/org/apache/brooklyn/core/entity/Entities.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/entity/Entities.java b/core/src/main/java/org/apache/brooklyn/core/entity/Entities.java
index a9616d8..0120fd7 100644
--- a/core/src/main/java/org/apache/brooklyn/core/entity/Entities.java
+++ b/core/src/main/java/org/apache/brooklyn/core/entity/Entities.java
@@ -49,6 +49,7 @@ import org.apache.brooklyn.api.entity.drivers.EntityDriver;
import org.apache.brooklyn.api.entity.drivers.downloads.DownloadResolver;
import org.apache.brooklyn.api.location.Location;
import org.apache.brooklyn.api.location.LocationSpec;
+import org.apache.brooklyn.api.mgmt.EntityManager;
import org.apache.brooklyn.api.mgmt.ExecutionContext;
import org.apache.brooklyn.api.mgmt.LocationManager;
import org.apache.brooklyn.api.mgmt.ManagementContext;
@@ -695,7 +696,7 @@ public class Entities {
* (after the application is started) */
public static void start(Entity e, Collection<? extends Location> locations) {
if (!isManaged(e) && !manage(e)) {
- log.warn("Using discouraged mechanism to start management -- Entities.start(Application, Locations) -- caller should create and use the preferred management context");
+ log.warn("Using deprecated discouraged mechanism to start management -- Entities.start(Application, Locations) -- caller should create and use the preferred management context");
startManagement(e);
}
if (e instanceof Startable) Entities.invokeEffector((EntityLocal)e, e, Startable.START,
@@ -871,8 +872,18 @@ public class Entities {
*
* @throws IllegalStateException if {@literal e} is an {@link Application}.
* @see #startManagement(Entity)
+ *
+ * @deprecated since 0.9.0; entities are automatically managed when created via {@link Entity#addChild(EntitySpec)},
+ * or with {@link EntityManager#createEntity(EntitySpec)} (it is strongly encouraged to include the parent
+ * if using the latter for anything but a top-level app).
*/
+ @Deprecated
public static boolean manage(Entity e) {
+ if (Entities.isManaged(e)) {
+ return true; // no-op
+ }
+
+ log.warn("Deprecated use of Entities.manage(Entity), for unmanaged entity "+e);
Entity o = e.getParent();
Entity eum = e; // Highest unmanaged ancestor
if (o==null) throw new IllegalArgumentException("Can't manage "+e+" because it is an orphan");
@@ -901,9 +912,15 @@ public class Entities {
* <p>
* <b>NOTE</b> This method may change, but is provided as a stop-gap to prevent ad-hoc things
* being done in the code which are even more likely to break!
+ *
+ * @deprecated since 0.9.0; entities are automatically managed when created via {@link Entity#addChild(EntitySpec)},
+ * or with {@link EntityManager#createEntity(EntitySpec)}.
*/
+ @Deprecated
@Beta
public static ManagementContext startManagement(Entity e) {
+ log.warn("Deprecated use of Entities.startManagement(Entity), for entity "+e);
+
Entity o = e;
Entity eum = e; // Highest unmanaged ancestor
while (o.getParent()!=null) {
@@ -929,11 +946,24 @@ public class Entities {
* Starts managing the given (unmanaged) app, using the given management context.
*
* @see #startManagement(Entity)
+ *
+ * @deprecated since 0.9.0; entities are automatically managed when created with
+ * {@link EntityManager#createEntity(EntitySpec)}. For top-level apps, use code like
+ * {@code managementContext.getEntityManager().createEntity(EntitySpec.create(...))}.
*/
+ @Deprecated
public static ManagementContext startManagement(Application app, ManagementContext mgmt) {
+ log.warn("Deprecated use of Entities.startManagement(Application, ManagementContext), for app "+app);
+
if (isManaged(app)) {
- throw new IllegalStateException("Application "+app+" is already managed, so can't set brooklyn properties");
+ if (app.getManagementContext() == mgmt) {
+ // no-op; app was presumably auto-managed
+ return mgmt;
+ } else {
+ throw new IllegalStateException("Application "+app+" is already managed by "+app.getManagementContext()+", so cannot be managed by "+mgmt);
+ }
}
+
mgmt.getEntityManager().manage(app);
return mgmt;
}
@@ -943,8 +973,15 @@ public class Entities {
* management context.
*
* @see #startManagement(Entity)
+ *
+ * @deprecated since 0.9.0; entities are automatically managed when created via {@link Entity#addChild(EntitySpec)},
+ * or with {@link EntityManager#createEntity(EntitySpec)}. For top-level apps, use code like
+ * {@code managementContext.getEntityManager().createEntity(EntitySpec.create(...))}.
*/
+ @Deprecated
public static ManagementContext startManagement(Application app, BrooklynProperties props) {
+ log.warn("Deprecated use of Entities.startManagement(Application, BrooklynProperties), for app "+app);
+
if (isManaged(app)) {
throw new IllegalStateException("Application "+app+" is already managed, so can't set brooklyn properties");
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5f2a296b/core/src/main/java/org/apache/brooklyn/core/entity/factory/ApplicationBuilder.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/entity/factory/ApplicationBuilder.java b/core/src/main/java/org/apache/brooklyn/core/entity/factory/ApplicationBuilder.java
index 7e00305..2d3ee08 100644
--- a/core/src/main/java/org/apache/brooklyn/core/entity/factory/ApplicationBuilder.java
+++ b/core/src/main/java/org/apache/brooklyn/core/entity/factory/ApplicationBuilder.java
@@ -63,7 +63,11 @@ import com.google.common.annotations.Beta;
* </pre>
*
* @author aled
+ *
+ * @deprecated since 0.9.0; use {@link EntitySpec} and {@link EntityManager#createEntity(EntitySpec)}, having
+ * added the children to the spec etc.
*/
+@Deprecated
@Beta
public abstract class ApplicationBuilder {
@@ -213,8 +217,8 @@ public abstract class ApplicationBuilder {
}
try {
checkNotManaged();
- this.app = managementContext.getEntityManager().createEntity(appSpec);
this.managementContext = managementContext;
+ this.app = managementContext.getEntityManager().createEntity(appSpec);
doBuild();
Entities.startManagement(app, managementContext);
managed = true;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5f2a296b/core/src/main/java/org/apache/brooklyn/core/mgmt/EntityManagementUtils.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/EntityManagementUtils.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/EntityManagementUtils.java
index 5536a1e..889f74f 100644
--- a/core/src/main/java/org/apache/brooklyn/core/mgmt/EntityManagementUtils.java
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/EntityManagementUtils.java
@@ -79,7 +79,6 @@ public class EntityManagementUtils {
/** creates an application from the given app spec, managed by the given management context */
public static <T extends Application> T createUnstarted(ManagementContext mgmt, EntitySpec<T> spec) {
T app = mgmt.getEntityManager().createEntity(spec);
- Entities.startManagement(app, mgmt);
return app;
}
@@ -188,7 +187,6 @@ public class EntityManagementUtils {
final List<Entity> children = MutableList.of();
for (EntitySpec<?> spec: specs) {
Entity child = (Entity)parent.addChild(spec);
- Entities.manage(child);
children.add(child);
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5f2a296b/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/LocalEntityManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/LocalEntityManager.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/LocalEntityManager.java
index 6c9022d..7d3b705 100644
--- a/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/LocalEntityManager.java
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/LocalEntityManager.java
@@ -144,7 +144,11 @@ public class LocalEntityManager implements EntityManagerInternal {
try {
T entity = entityFactory.createEntity(spec);
Entity proxy = ((AbstractEntity)entity).getProxy();
- return (T) checkNotNull(proxy, "proxy for entity %s, spec %s", entity, spec);
+ checkNotNull(proxy, "proxy for entity %s, spec %s", entity, spec);
+
+ manage(entity);
+
+ return (T) proxy;
} catch (Throwable e) {
log.warn("Failed to create entity using spec "+spec+" (rethrowing)", e);
throw Exceptions.propagate(e);
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5f2a296b/core/src/main/java/org/apache/brooklyn/entity/group/AbstractGroupImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/entity/group/AbstractGroupImpl.java b/core/src/main/java/org/apache/brooklyn/entity/group/AbstractGroupImpl.java
index 7ece9bf..8108c9f 100644
--- a/core/src/main/java/org/apache/brooklyn/entity/group/AbstractGroupImpl.java
+++ b/core/src/main/java/org/apache/brooklyn/entity/group/AbstractGroupImpl.java
@@ -152,7 +152,6 @@ public abstract class AbstractGroupImpl extends AbstractEntity implements Abstra
DelegateEntity child = addChild(EntitySpec.create(DelegateEntity.class)
.configure(DelegateEntity.DELEGATE_ENTITY, member)
.displayName(String.format(nameFormat, member.getDisplayName())));
- Entities.manage(child);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5f2a296b/core/src/main/java/org/apache/brooklyn/entity/group/DynamicClusterImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/entity/group/DynamicClusterImpl.java b/core/src/main/java/org/apache/brooklyn/entity/group/DynamicClusterImpl.java
index 3fcebdf..004a537 100644
--- a/core/src/main/java/org/apache/brooklyn/entity/group/DynamicClusterImpl.java
+++ b/core/src/main/java/org/apache/brooklyn/entity/group/DynamicClusterImpl.java
@@ -293,7 +293,6 @@ public class DynamicClusterImpl extends AbstractGroupImpl implements DynamicClus
QuarantineGroup quarantineGroup = getAttribute(QUARANTINE_GROUP);
if (quarantineGroup==null || !Entities.isManaged(quarantineGroup)) {
quarantineGroup = addChild(EntitySpec.create(QuarantineGroup.class).displayName("quarantine"));
- Entities.manage(quarantineGroup);
sensors().set(QUARANTINE_GROUP, quarantineGroup);
}
}
@@ -770,12 +769,16 @@ public class DynamicClusterImpl extends AbstractGroupImpl implements DynamicClus
LOG.debug("Creating and adding a node to cluster {}({}) with properties {}", new Object[] { this, getId(), createFlags });
}
+ // TODO should refactor to have a createNodeSpec; and spec should support initial sensor values
Entity entity = createNode(loc, createFlags);
entity.sensors().set(CLUSTER_MEMBER, true);
entity.sensors().set(CLUSTER, this);
+ // Continue to call manage(), because some uses of NodeFactory (in tests) still instantiate the
+ // entity via its constructor
Entities.manage(entity);
+
addMember(entity);
return entity;
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5f2a296b/core/src/main/java/org/apache/brooklyn/entity/group/DynamicFabricImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/entity/group/DynamicFabricImpl.java b/core/src/main/java/org/apache/brooklyn/entity/group/DynamicFabricImpl.java
index 23c05b5..67c4c79 100644
--- a/core/src/main/java/org/apache/brooklyn/entity/group/DynamicFabricImpl.java
+++ b/core/src/main/java/org/apache/brooklyn/entity/group/DynamicFabricImpl.java
@@ -247,7 +247,11 @@ public class DynamicFabricImpl extends AbstractGroupImpl implements DynamicFabri
((EntityLocal)entity).setDisplayName(entity.getDisplayName() +" ("+locationName+")");
}
if (entity.getParent()==null) entity.setParent(this);
+
+ // Continue to call manage(), because some uses of NodeFactory (in tests) still instantiate the
+ // entity via its constructor
Entities.manage(entity);
+
addMember(entity);
return entity;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5f2a296b/core/src/main/java/org/apache/brooklyn/entity/group/DynamicMultiGroupImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/entity/group/DynamicMultiGroupImpl.java b/core/src/main/java/org/apache/brooklyn/entity/group/DynamicMultiGroupImpl.java
index b6f5d55..5c507a3 100644
--- a/core/src/main/java/org/apache/brooklyn/entity/group/DynamicMultiGroupImpl.java
+++ b/core/src/main/java/org/apache/brooklyn/entity/group/DynamicMultiGroupImpl.java
@@ -181,7 +181,6 @@ public class DynamicMultiGroupImpl extends DynamicGroupImpl implements DynamicMu
BasicGroup bucket = buckets.get(name);
if (bucket == null) {
bucket = addChild(EntitySpec.create(bucketSpec).displayName(name));
- Entities.manage(bucket);
buckets.put(name, bucket);
}
bucket.setMembers(entityMapping.get(name));
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5f2a296b/core/src/test/java/org/apache/brooklyn/core/entity/EntityAutomanagedTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/core/entity/EntityAutomanagedTest.java b/core/src/test/java/org/apache/brooklyn/core/entity/EntityAutomanagedTest.java
new file mode 100644
index 0000000..a940a11
--- /dev/null
+++ b/core/src/test/java/org/apache/brooklyn/core/entity/EntityAutomanagedTest.java
@@ -0,0 +1,329 @@
+/*
+ * 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.core.entity;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
+import static org.testng.Assert.fail;
+
+import java.util.List;
+import java.util.Set;
+
+import org.apache.brooklyn.api.entity.Entity;
+import org.apache.brooklyn.api.entity.EntitySpec;
+import org.apache.brooklyn.core.entity.EntityAutomanagedTest.RecordingCollectionChangeListener.ChangeEvent;
+import org.apache.brooklyn.core.entity.EntityAutomanagedTest.RecordingCollectionChangeListener.ChangeType;
+import org.apache.brooklyn.core.test.BrooklynAppUnitTestSupport;
+import org.apache.brooklyn.core.test.entity.TestApplication;
+import org.apache.brooklyn.core.test.entity.TestEntity;
+import org.apache.brooklyn.test.Asserts;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import com.google.common.base.Objects;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
+
+public class EntityAutomanagedTest extends BrooklynAppUnitTestSupport {
+
+ // TODO Want to use a RecordingCollectionChangeListener to ensure on auto-manage
+ // we are notified of the entity being added etc, but compilation fails on command line,
+ // running `mvn clean install` (using 1.7.0_65, build 24.65-b04)!
+ // - when written "properly", it complains about the @Override annotation on onItemAdded(Entity item)
+ // - when that is removed, it complains about the call to mgmt.addEntitySetListener not being compatible
+ // - when try stripping out generics, it complains that "cannot find symbol" for the declaration of this class
+ //
+ // In your IDE (at least in Eclipse), you can uncomment the bits beside the TODO and run it
+ // with those insertions!
+
+ protected RecordingCollectionChangeListener listener;
+
+ @BeforeMethod(alwaysRun=true)
+ public void setUp() throws Exception {
+ super.setUp();
+ listener = new RecordingCollectionChangeListener();
+
+ // TODO Compiler problems - see comment at top of class
+ //mgmt.addEntitySetListener((CollectionChangeListener)listener);
+ }
+
+
+ //////////////////////////////////////
+ // Variants of addChild(EntitySpec) //
+ //////////////////////////////////////
+
+ @Test
+ public void testAddedChildSpec() throws Exception {
+ TestEntity e = app.addChild(EntitySpec.create(TestEntity.class));
+ assertTrue(Entities.isManaged(e));
+ listener.assertEventsEqualsEventually(ImmutableList.of(new ChangeEvent(ChangeType.ADDED, e)));
+ }
+
+ @Test
+ public void testAddedChildHierarchySpec() throws Exception {
+ TestEntity e = app.addChild(EntitySpec.create(TestEntity.class)
+ .child(EntitySpec.create(TestEntity.class)
+ .child(EntitySpec.create(TestEntity.class))));
+ TestEntity e2 = (TestEntity) Iterables.getOnlyElement(e.getChildren());
+ TestEntity e3 = (TestEntity) Iterables.getOnlyElement(e2.getChildren());
+
+ assertTrue(Entities.isManaged(e));
+ assertTrue(Entities.isManaged(e2));
+ assertTrue(Entities.isManaged(e3));
+ assertEquals(e.getParent(), app);
+ assertEquals(e2.getParent(), e);
+ assertEquals(e3.getParent(), e2);
+ listener.assertEventsEqualsEventually(ImmutableList.of(
+ new ChangeEvent(ChangeType.ADDED, e),
+ new ChangeEvent(ChangeType.ADDED, e2),
+ new ChangeEvent(ChangeType.ADDED, e3)));
+ }
+
+ @Test
+ public void testNewEntityWithParent() throws Exception {
+ TestEntity e = app.addChild(EntitySpec.create(TestEntity.class)
+ .parent(app));
+ assertTrue(Entities.isManaged(e));
+ assertEquals(e.getParent(), app);
+ listener.assertEventsEqualsEventually(ImmutableList.of(new ChangeEvent(ChangeType.ADDED, e)));
+ }
+
+ @Test
+ public void testNewEntityHierarchyWithParent() throws Exception {
+ TestEntity e = mgmt.getEntityManager().createEntity(EntitySpec.create(TestEntity.class)
+ .child(EntitySpec.create(TestEntity.class)
+ .child(EntitySpec.create(TestEntity.class)))
+ .parent(app));
+ TestEntity e2 = (TestEntity) Iterables.getOnlyElement(e.getChildren());
+ TestEntity e3 = (TestEntity) Iterables.getOnlyElement(e2.getChildren());
+
+ assertTrue(Entities.isManaged(e));
+ assertTrue(Entities.isManaged(e2));
+ assertTrue(Entities.isManaged(e3));
+ assertEquals(e.getParent(), app);
+ assertEquals(e2.getParent(), e);
+ assertEquals(e3.getParent(), e2);
+ listener.assertEventsEqualsEventually(ImmutableList.of(
+ new ChangeEvent(ChangeType.ADDED, e),
+ new ChangeEvent(ChangeType.ADDED, e2),
+ new ChangeEvent(ChangeType.ADDED, e3)));
+ }
+
+ @Test
+ public void testAddingSameChildAgainIsNoop() throws Exception {
+ TestEntity e = app.addChild(EntitySpec.create(TestEntity.class)
+ .parent(app));
+
+ app.addChild(e);
+ assertTrue(Entities.isManaged(e));
+ assertEquals(e.getParent(), app);
+ listener.assertEventsEqualsEventually(ImmutableList.of(new ChangeEvent(ChangeType.ADDED, e)));
+ }
+
+
+ //////////////////////////////////////
+ // Variants of createEntity for app //
+ //////////////////////////////////////
+
+ @Test
+ public void testNewApp() throws Exception {
+ TestApplication app2 = mgmt.getEntityManager().createEntity(EntitySpec.create(TestApplication.class));
+ assertTrue(Entities.isManaged(app2));
+
+ assertTrue(mgmt.getApplications().contains(app2), "app="+app2+"; apps="+mgmt.getApplications());
+ app.addChild(app2);
+ assertTrue(Entities.isManaged(app2));
+ listener.assertEventsEqualsEventually(ImmutableList.of(new ChangeEvent(ChangeType.ADDED, app2)));
+ }
+
+
+ ////////////////////////////////////////////////////////////////
+ // Variants of Entities.startManagement and Entities.manage() //
+ ////////////////////////////////////////////////////////////////
+
+ @Test
+ public void testManageIsNoop() throws Exception {
+ TestEntity child = mgmt.getEntityManager().createEntity(EntitySpec.create(TestEntity.class)
+ .parent(app));
+
+ Entities.manage(child);
+ assertTrue(Entities.isManaged(child));
+ listener.assertEventsEqualsEventually(ImmutableList.of(new ChangeEvent(ChangeType.ADDED, child)));
+ }
+
+ @Test
+ public void testStartManagementIsNoop() throws Exception {
+ TestApplication app2 = mgmt.getEntityManager().createEntity(EntitySpec.create(TestApplication.class));
+ assertTrue(Entities.isManaged(app2));
+
+ Entities.startManagement(app2, mgmt);
+ assertTrue(Entities.isManaged(app2));
+ listener.assertEventsEqualsEventually(ImmutableList.of(new ChangeEvent(ChangeType.ADDED, app2)));
+ }
+
+ @Test
+ public void testStartManagementOfEntityIsNoop() throws Exception {
+ Entity app2 = mgmt.getEntityManager().createEntity(EntitySpec.create(TestApplication.class));
+ assertTrue(Entities.isManaged(app2));
+
+ Entities.startManagement(app2);
+ assertTrue(Entities.isManaged(app2));
+ listener.assertEventsEqualsEventually(ImmutableList.of(new ChangeEvent(ChangeType.ADDED, app2)));
+ }
+
+ @Test
+ public void testStartManagementFailsIfAppDeleted() throws Exception {
+ TestApplication app2 = mgmt.getEntityManager().createEntity(EntitySpec.create(TestApplication.class));
+ Entities.unmanage(app2);
+
+ try {
+ Entities.startManagement(app2, mgmt);
+ fail("Managed deleted app "+app2+" in "+mgmt);
+ } catch (IllegalStateException e) {
+ if (!(e.toString().contains("No concrete entity known"))) throw e;
+ }
+ }
+
+ @Test
+ public void testManageFailsIfEntityDeleted() throws Exception {
+ TestEntity child = mgmt.getEntityManager().createEntity(EntitySpec.create(TestEntity.class)
+ .parent(app));
+ Entities.unmanage(child);
+
+ try {
+ Entities.manage(child);
+ fail("Managed deleted entity "+child+" in "+mgmt);
+ } catch (IllegalStateException e) {
+ if (!(e.toString().contains("No concrete entity known"))) throw e;
+ }
+ }
+
+
+ ///////////////////////////////////////////
+ // Variants of createEntity for non-apps //
+ ///////////////////////////////////////////
+
+ // TODO Controversial? Should it be based on reachability from parent? Can entities be (temporarily) top-level?
+ // But management model is simpler if it becomes managed immediately.
+ @Test
+ public void testNewOrphanedEntityIsManaged() throws Exception {
+ TestEntity e = mgmt.getEntityManager().createEntity(EntitySpec.create(TestEntity.class));
+ assertTrue(Entities.isManaged(e));
+ listener.assertEventsEqualsEventually(ImmutableList.of(new ChangeEvent(ChangeType.ADDED, e)));
+
+ // Check that orphaned entity doesn't interfere with getApplications
+ Asserts.assertEqualsIgnoringOrder(mgmt.getApplications(), ImmutableList.of(app));
+ }
+
+ @Test
+ public void testOrphanedEntityHierarchyIsManaged() throws Exception {
+ TestEntity e = mgmt.getEntityManager().createEntity(EntitySpec.create(TestEntity.class)
+ .child(EntitySpec.create(TestEntity.class)
+ .child(EntitySpec.create(TestEntity.class))));
+ TestEntity e2 = (TestEntity) Iterables.getOnlyElement(e.getChildren());
+ TestEntity e3 = (TestEntity) Iterables.getOnlyElement(e2.getChildren());
+
+ assertTrue(Entities.isManaged(e));
+ assertTrue(Entities.isManaged(e2));
+ assertTrue(Entities.isManaged(e3));
+ assertEquals(e.getParent(), null);
+ assertEquals(e2.getParent(), e);
+ assertEquals(e3.getParent(), e2);
+ listener.assertEventsEqualsEventually(ImmutableList.of(
+ new ChangeEvent(ChangeType.ADDED, e),
+ new ChangeEvent(ChangeType.ADDED, e2),
+ new ChangeEvent(ChangeType.ADDED, e3)));
+ }
+
+ @Test
+ public void testNewOrphanedEntityCanBeAddedToChild() throws Exception {
+ TestEntity e = mgmt.getEntityManager().createEntity(EntitySpec.create(TestEntity.class));
+
+ app.addChild(e);
+ assertTrue(Entities.isManaged(e));
+ listener.assertEventsEqualsEventually(ImmutableList.of(new ChangeEvent(ChangeType.ADDED, e)));
+ }
+
+ // TODO Compiler problems - see comment at top of class
+ public static class RecordingCollectionChangeListener { // FIXME implements CollectionChangeListener<Entity> {
+ public enum ChangeType {
+ ADDED, REMOVED;
+ }
+ public static class ChangeEvent {
+ public final ChangeType type;
+ public final Entity entity;
+
+ ChangeEvent(ChangeType type, Entity entity) {
+ this.type = checkNotNull(type, "type");
+ this.entity = checkNotNull(entity, "entity");
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hashCode(type, entity);
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (!(obj instanceof ChangeEvent)) return false;
+ ChangeEvent o = (ChangeEvent) obj;
+ return type.equals(o.type) && entity.equals(o.entity);
+ }
+
+ @Override
+ public String toString() {
+ return Objects.toStringHelper(this).add("type", type).add("entity", entity).toString();
+ }
+ }
+
+ private final List<ChangeEvent> events = Lists.newCopyOnWriteArrayList();
+ private final Set<Entity> items = Sets.newConcurrentHashSet();
+
+ public void assertEventsEqualsEventually(final Iterable<? extends ChangeEvent> expected) {
+ // TODO Compiler problems - see comment at top of class
+// Asserts.succeedsEventually(new Runnable() {
+// public void run() {
+// assertEquals(events, ImmutableList.copyOf(expected));
+// }});
+ }
+
+ public void assertItemsEqualsEventually(final Iterable<? extends Entity> expected) {
+ // TODO Compiler problems - see comment at top of class
+// Asserts.succeedsEventually(new Runnable() {
+// public void run() {
+// assertEquals(items, ImmutableSet.copyOf(expected));
+// }});
+ }
+
+ // TODO Want to include @Override; compiler problems - see comment at top of class
+ public void onItemAdded(Entity item) {
+ items.add(item);
+ events.add(new ChangeEvent(ChangeType.ADDED, item));
+ }
+
+ // TODO Want to include @Override; compiler problems - see comment at top of class
+ public void onItemRemoved(Entity item) {
+ items.remove(item);
+ events.add(new ChangeEvent(ChangeType.REMOVED, item));
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5f2a296b/software/base/src/main/java/org/apache/brooklyn/entity/brooklynnode/effector/BrooklynNodeUpgradeEffectorBody.java
----------------------------------------------------------------------
diff --git a/software/base/src/main/java/org/apache/brooklyn/entity/brooklynnode/effector/BrooklynNodeUpgradeEffectorBody.java b/software/base/src/main/java/org/apache/brooklyn/entity/brooklynnode/effector/BrooklynNodeUpgradeEffectorBody.java
index 021da69..4e75121 100644
--- a/software/base/src/main/java/org/apache/brooklyn/entity/brooklynnode/effector/BrooklynNodeUpgradeEffectorBody.java
+++ b/software/base/src/main/java/org/apache/brooklyn/entity/brooklynnode/effector/BrooklynNodeUpgradeEffectorBody.java
@@ -174,13 +174,13 @@ public class BrooklynNodeUpgradeEffectorBody extends EffectorBody<Void> {
//force this to start as hot-standby
// TODO alternatively could use REST API as in BrooklynClusterUpgradeEffectorBody
+ // TODO Want better way to append to the config (so can do it all in the spec)
String launchParameters = dryRunChild.getConfig(BrooklynNode.EXTRA_LAUNCH_PARAMETERS);
if (Strings.isBlank(launchParameters)) launchParameters = "";
else launchParameters += " ";
launchParameters += "--highAvailability "+HighAvailabilityMode.HOT_STANDBY;
((EntityInternal)dryRunChild).config().set(BrooklynNode.EXTRA_LAUNCH_PARAMETERS, launchParameters);
- Entities.manage(dryRunChild);
final String dryRunNodeUid = dryRunChild.getId();
((EntityInternal)dryRunChild).setDisplayName("Dry-Run Upgraded Brooklyn Node ("+dryRunNodeUid+")");
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5f2a296b/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/activemq/ActiveMQBrokerImpl.java
----------------------------------------------------------------------
diff --git a/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/activemq/ActiveMQBrokerImpl.java b/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/activemq/ActiveMQBrokerImpl.java
index 22719d0..6954e81 100644
--- a/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/activemq/ActiveMQBrokerImpl.java
+++ b/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/activemq/ActiveMQBrokerImpl.java
@@ -74,7 +74,6 @@ public class ActiveMQBrokerImpl extends JMSBrokerImpl<ActiveMQQueue, ActiveMQTop
@Override
public ActiveMQQueue createQueue(Map properties) {
ActiveMQQueue result = addChild(EntitySpec.create(ActiveMQQueue.class).configure(properties));
- Entities.manage(result);
result.create();
return result;
}
@@ -82,7 +81,6 @@ public class ActiveMQBrokerImpl extends JMSBrokerImpl<ActiveMQQueue, ActiveMQTop
@Override
public ActiveMQTopic createTopic(Map properties) {
ActiveMQTopic result = addChild(EntitySpec.create(ActiveMQTopic.class).configure(properties));
- Entities.manage(result);
result.create();
return result;
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5f2a296b/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/kafka/KafkaClusterImpl.java
----------------------------------------------------------------------
diff --git a/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/kafka/KafkaClusterImpl.java b/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/kafka/KafkaClusterImpl.java
index cb4481c..8f4e7fb 100644
--- a/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/kafka/KafkaClusterImpl.java
+++ b/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/kafka/KafkaClusterImpl.java
@@ -72,7 +72,6 @@ public class KafkaClusterImpl extends AbstractEntity implements KafkaCluster {
log.debug("creating zookeeper using custom spec for {}", this);
}
zookeeper = addChild(zookeeperSpec);
- if (Entities.isManaged(this)) Entities.manage(zookeeper);
sensors().set(ZOOKEEPER, zookeeper);
}
@@ -87,7 +86,6 @@ public class KafkaClusterImpl extends AbstractEntity implements KafkaCluster {
// We add the zookeeper configuration to the KafkaBroker specification here
DynamicCluster cluster = addChild(EntitySpec.create(DynamicCluster.class)
.configure("memberSpec", EntitySpec.create(brokerSpec).configure(KafkaBroker.ZOOKEEPER, zookeeper)));
- if (Entities.isManaged(this)) Entities.manage(cluster);
sensors().set(CLUSTER, cluster);
connectSensors();
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5f2a296b/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/qpid/QpidBrokerImpl.java
----------------------------------------------------------------------
diff --git a/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/qpid/QpidBrokerImpl.java b/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/qpid/QpidBrokerImpl.java
index 5b2529c..67b132c 100644
--- a/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/qpid/QpidBrokerImpl.java
+++ b/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/qpid/QpidBrokerImpl.java
@@ -90,14 +90,12 @@ public class QpidBrokerImpl extends JMSBrokerImpl<QpidQueue, QpidTopic> implemen
public QpidQueue createQueue(Map properties) {
QpidQueue result = addChild(EntitySpec.create(QpidQueue.class).configure(properties));
- Entities.manage(result);
result.create();
return result;
}
public QpidTopic createTopic(Map properties) {
QpidTopic result = addChild(EntitySpec.create(QpidTopic.class).configure(properties));
- Entities.manage(result);
result.create();
return result;
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5f2a296b/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/rabbit/RabbitBrokerImpl.java
----------------------------------------------------------------------
diff --git a/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/rabbit/RabbitBrokerImpl.java b/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/rabbit/RabbitBrokerImpl.java
index 1227365..bdf7299 100644
--- a/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/rabbit/RabbitBrokerImpl.java
+++ b/software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/rabbit/RabbitBrokerImpl.java
@@ -76,7 +76,6 @@ public class RabbitBrokerImpl extends SoftwareProcessImpl implements RabbitBroke
public RabbitQueue createQueue(Map properties) {
RabbitQueue result = addChild(EntitySpec.create(RabbitQueue.class).configure(properties));
- Entities.manage(result);
result.create();
return result;
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5f2a296b/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/ControlledDynamicWebAppClusterImpl.java
----------------------------------------------------------------------
diff --git a/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/ControlledDynamicWebAppClusterImpl.java b/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/ControlledDynamicWebAppClusterImpl.java
index be7b5a7..78898bd 100644
--- a/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/ControlledDynamicWebAppClusterImpl.java
+++ b/software/webapp/src/main/java/org/apache/brooklyn/entity/webapp/ControlledDynamicWebAppClusterImpl.java
@@ -117,7 +117,6 @@ public class ControlledDynamicWebAppClusterImpl extends DynamicGroupImpl impleme
sensors().set(WEB_CLUSTER_SPEC, webClusterSpec);
DynamicWebAppCluster cluster = addChild(webClusterSpec);
- if (Entities.isManaged(this)) Entities.manage(cluster);
sensors().set(CLUSTER, cluster);
setEntityFilter(EntityPredicates.isMemberOf(cluster));
@@ -132,8 +131,10 @@ public class ControlledDynamicWebAppClusterImpl extends DynamicGroupImpl impleme
log.debug("creating controller using custom spec for {}", this);
}
controller = addChild(controllerSpec);
- enrichers().add(Enrichers.builder().propagating(LoadBalancer.PROXY_HTTP_PORT, LoadBalancer.PROXY_HTTPS_PORT).from(controller).build());
- if (Entities.isManaged(this)) Entities.manage(controller);
+ enrichers().add(Enrichers.builder()
+ .propagating(LoadBalancer.PROXY_HTTP_PORT, LoadBalancer.PROXY_HTTPS_PORT)
+ .from(controller)
+ .build());
sensors().set(CONTROLLER, controller);
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5f2a296b/usage/camp/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynAssemblyTemplateInstantiator.java
----------------------------------------------------------------------
diff --git a/usage/camp/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynAssemblyTemplateInstantiator.java b/usage/camp/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynAssemblyTemplateInstantiator.java
index f295e90..1876e99 100644
--- a/usage/camp/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynAssemblyTemplateInstantiator.java
+++ b/usage/camp/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/creation/BrooklynAssemblyTemplateInstantiator.java
@@ -66,8 +66,7 @@ public class BrooklynAssemblyTemplateInstantiator implements AssemblyTemplateSpe
BrooklynClassLoadingContext loader = JavaBrooklynClassLoadingContext.create(mgmt);
EntitySpec<? extends Application> spec = createApplicationSpec(template, platform, loader);
Application instance = mgmt.getEntityManager().createEntity(spec);
- log.info("CAMP placing '{}' under management", instance);
- Entities.startManagement(instance, mgmt);
+ log.info("CAMP created '{}'", instance);
return instance;
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5f2a296b/usage/launcher/src/main/java/org/apache/brooklyn/launcher/BrooklynLauncher.java
----------------------------------------------------------------------
diff --git a/usage/launcher/src/main/java/org/apache/brooklyn/launcher/BrooklynLauncher.java b/usage/launcher/src/main/java/org/apache/brooklyn/launcher/BrooklynLauncher.java
index 7425865..ca5cda4 100644
--- a/usage/launcher/src/main/java/org/apache/brooklyn/launcher/BrooklynLauncher.java
+++ b/usage/launcher/src/main/java/org/apache/brooklyn/launcher/BrooklynLauncher.java
@@ -192,7 +192,11 @@ public class BrooklynLauncher {
* subsequently call {@link #start()} or {@link #getApplications()}.
*
* @see #application(ApplicationBuilder)
+ *
+ * @deprecated since 0.9.0; instead use {@link #application(String)} for YAML apps, or {@link #application(EntitySpec)}.
+ * Note that apps are now auto-managed on construction through EntitySpec/YAML.
*/
+ @Deprecated
public BrooklynLauncher application(Application app) {
if (Entities.isManaged(app)) throw new IllegalArgumentException("Application must not already be managed");
appsToManage.add(checkNotNull(app, "app"));
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/5f2a296b/usage/rest-server/src/main/java/org/apache/brooklyn/rest/util/BrooklynRestResourceUtils.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/main/java/org/apache/brooklyn/rest/util/BrooklynRestResourceUtils.java b/usage/rest-server/src/main/java/org/apache/brooklyn/rest/util/BrooklynRestResourceUtils.java
index 2d6802e..157ba67 100644
--- a/usage/rest-server/src/main/java/org/apache/brooklyn/rest/util/BrooklynRestResourceUtils.java
+++ b/usage/rest-server/src/main/java/org/apache/brooklyn/rest/util/BrooklynRestResourceUtils.java
@@ -50,6 +50,9 @@ import org.apache.brooklyn.api.location.LocationRegistry;
import org.apache.brooklyn.api.mgmt.ManagementContext;
import org.apache.brooklyn.api.mgmt.Task;
import org.apache.brooklyn.api.policy.Policy;
+import org.apache.brooklyn.camp.brooklyn.BrooklynCampConstants;
+import org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.DslComponent;
+import org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.DslComponent.Scope;
import org.apache.brooklyn.config.ConfigKey;
import org.apache.brooklyn.core.catalog.internal.CatalogUtils;
import org.apache.brooklyn.core.entity.AbstractEntity;
@@ -268,14 +271,13 @@ public class BrooklynRestResourceUtils {
} else if (Application.class.isAssignableFrom(clazz)) {
org.apache.brooklyn.api.entity.EntitySpec<?> coreSpec = toCoreEntitySpec(clazz, name, configO, catalogItemId);
configureRenderingMetadata(spec, coreSpec);
- instance = (Application) mgmt.getEntityManager().createEntity(coreSpec);
for (EntitySpec entitySpec : entities) {
log.info("REST creating instance for entity {}", entitySpec.getType());
- instance.addChild(mgmt.getEntityManager().createEntity(toCoreEntitySpec(entitySpec)));
+ coreSpec.child(toCoreEntitySpec(entitySpec));
}
log.info("REST placing '{}' under management", spec.getName() != null ? spec.getName() : spec);
- Entities.startManagement(instance, mgmt);
+ instance = (Application) mgmt.getEntityManager().createEntity(coreSpec);
} else if (Entity.class.isAssignableFrom(clazz)) {
if (entities.size() > 0)
@@ -284,19 +286,17 @@ public class BrooklynRestResourceUtils {
org.apache.brooklyn.api.entity.EntitySpec<?> coreSpec = toCoreEntitySpec(BasicApplication.class, name, configO, catalogItemId);
configureRenderingMetadata(spec, coreSpec);
- instance = (Application) mgmt.getEntityManager().createEntity(coreSpec);
-
- Entity soleChild = mgmt.getEntityManager().createEntity(toCoreEntitySpec(clazz, name, configO, catalogItemId));
- instance.addChild(soleChild);
- instance.enrichers().add(Enrichers.builder()
+ coreSpec.child(toCoreEntitySpec(clazz, name, configO, catalogItemId)
+ .configure(BrooklynCampConstants.PLAN_ID, "soleChildId"));
+ coreSpec.enricher(Enrichers.builder()
.propagatingAllBut(Attributes.SERVICE_UP, Attributes.SERVICE_NOT_UP_INDICATORS,
Attributes.SERVICE_STATE_ACTUAL, Attributes.SERVICE_STATE_EXPECTED,
Attributes.SERVICE_PROBLEMS)
- .from(soleChild)
+ .from(new DslComponent(Scope.CHILD, "soleChildId").newTask())
.build());
log.info("REST placing '{}' under management", spec.getName());
- Entities.startManagement(instance, mgmt);
+ instance = (Application) mgmt.getEntityManager().createEntity(coreSpec);
} else {
throw new IllegalArgumentException("Class " + clazz + " must extend one of ApplicationBuilder, Application or Entity");
[4/5] incubator-brooklyn git commit: Remove deprecated uses of
Entities.manage
Posted by ha...@apache.org.
Remove deprecated uses of Entities.manage
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/f1d8cba1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/f1d8cba1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/f1d8cba1
Branch: refs/heads/master
Commit: f1d8cba1e570441ed6884d1acf757921efbaed3b
Parents: 5f2a296
Author: Aled Sage <al...@gmail.com>
Authored: Thu Oct 15 16:35:25 2015 +0200
Committer: Aled Sage <al...@gmail.com>
Committed: Thu Oct 15 21:19:35 2015 +0100
----------------------------------------------------------------------
.../entity/AbstractApplicationLegacyTest.java | 16 +-
.../brooklyn/core/entity/AttributeMapTest.java | 14 +-
.../core/entity/EntityAutomanagedTest.java | 4 +-
.../core/entity/EntityPreManagementTest.java | 146 -------------------
.../core/entity/hello/LocalEntitiesTest.java | 15 +-
.../internal/EntityConfigMapUsageTest.java | 6 +-
.../ApplicationBuilderOverridingTest.java | 15 +-
.../core/feed/ConfigToAttributesTest.java | 1 -
.../brooklyn/core/mgmt/ha/HotStandbyTest.java | 4 -
.../internal/LocalSubscriptionManagerTest.java | 6 -
.../mgmt/rebind/ActivePartialRebindTest.java | 3 -
.../core/mgmt/rebind/CheckpointEntityTest.java | 1 -
.../mgmt/rebind/RebindDynamicGroupTest.java | 1 -
.../core/test/entity/TestApplicationImpl.java | 5 +-
.../stock/CustomAggregatingEnricherTest.java | 11 +-
.../brooklyn/enricher/stock/EnrichersTest.java | 3 -
.../entity/group/DynamicFabricTest.java | 4 +-
.../brooklyn/entity/group/DynamicGroupTest.java | 21 ++-
.../entity/group/DynamicMultiGroupTest.java | 5 -
.../group/MembershipTrackingPolicyTest.java | 1 -
.../entity/stock/BasicStartableTest.java | 5 -
.../feed/ssh/SshFeedIntegrationTest.java | 11 +-
...lusterDatabaseExampleAppIntegrationTest.java | 1 -
.../BalanceableWorkerPoolTest.java | 1 -
.../BrooklynNodeIntegrationTest.java | 1 -
.../entity/brooklynnode/BrooklynNodeTest.java | 20 +--
.../entity/java/VanillaJavaAppRebindTest.java | 4 +-
.../software/base/SameServerEntityTest.java | 2 -
...ftwareProcessAndChildrenIntegrationTest.java | 1 -
.../location/WinRmMachineLocationLiveTest.java | 3 +
.../monitoring/monit/MonitIntegrationTest.java | 13 +-
.../network/bind/BindDnsServerLiveTest.java | 2 -
.../entity/proxy/AbstractControllerTest.java | 2 -
.../nginx/NginxClusterIntegrationTest.java | 6 +-
.../proxy/nginx/NginxRebindIntegrationTest.java | 7 +-
.../nginx/NginxUrlMappingIntegrationTest.java | 66 +++------
.../org/apache/brooklyn/qa/load/LoadTest.java | 5 +-
.../brooklyn/rest/domain/ApplicationTest.java | 16 +-
.../util/BrooklynRestResourceUtilsTest.java | 37 ++---
39 files changed, 133 insertions(+), 352 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/core/src/test/java/org/apache/brooklyn/core/entity/AbstractApplicationLegacyTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/core/entity/AbstractApplicationLegacyTest.java b/core/src/test/java/org/apache/brooklyn/core/entity/AbstractApplicationLegacyTest.java
index 3f4c38b..647e102 100644
--- a/core/src/test/java/org/apache/brooklyn/core/entity/AbstractApplicationLegacyTest.java
+++ b/core/src/test/java/org/apache/brooklyn/core/entity/AbstractApplicationLegacyTest.java
@@ -26,13 +26,13 @@ import java.util.List;
import org.apache.brooklyn.api.entity.EntitySpec;
import org.apache.brooklyn.api.location.LocationSpec;
-import org.apache.brooklyn.core.entity.AbstractApplication;
-import org.apache.brooklyn.core.entity.Entities;
import org.apache.brooklyn.core.entity.factory.ApplicationBuilder;
import org.apache.brooklyn.core.location.SimulatedLocation;
import org.apache.brooklyn.core.test.BrooklynAppUnitTestSupport;
import org.apache.brooklyn.core.test.entity.TestApplication;
+import org.apache.brooklyn.core.test.entity.TestApplicationImpl;
import org.apache.brooklyn.core.test.entity.TestEntity;
+import org.apache.brooklyn.core.test.entity.TestEntityImpl;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
@@ -61,8 +61,8 @@ public class AbstractApplicationLegacyTest extends BrooklynAppUnitTestSupport {
@Test
public void testStartAndStopUnmanagedAppAutomanagesTheAppAndChildren() throws Exception {
// deliberately unmanaged
- TestApplication app2 = mgmt.getEntityManager().createEntity(EntitySpec.create(TestApplication.class));
- TestEntity child = app2.addChild(EntitySpec.create(TestEntity.class));
+ TestApplication app2 = new TestApplicationImpl();
+ TestEntity child = new TestEntityImpl(app2);
assertFalse(Entities.isManaged(app2));
assertFalse(Entities.isManaged(child));
@@ -96,7 +96,9 @@ public class AbstractApplicationLegacyTest extends BrooklynAppUnitTestSupport {
@Test
public void testStartOnManagedAppDoesNotStartPremanagedChildren() {
- TestEntity child = app.addChild(EntitySpec.create(TestEntity.class));
+ // deliberately unmanaged
+ TestEntity child = new TestEntityImpl(app);
+ assertFalse(Entities.isManaged(child));
app.start(locs);
assertEquals(child.getCallHistory(), ImmutableList.of());
@@ -128,7 +130,9 @@ public class AbstractApplicationLegacyTest extends BrooklynAppUnitTestSupport {
public void testStopOnManagedAppDoesNotStopPremanagedChildren() {
app.start(locs);
- TestEntity child = app.addChild(EntitySpec.create(TestEntity.class));
+ // deliberately unmanaged
+ TestEntity child = new TestEntityImpl(app);
+ assertFalse(Entities.isManaged(child));
app.stop();
assertEquals(child.getCallHistory(), ImmutableList.of());
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/core/src/test/java/org/apache/brooklyn/core/entity/AttributeMapTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/core/entity/AttributeMapTest.java b/core/src/test/java/org/apache/brooklyn/core/entity/AttributeMapTest.java
index 95d9bad..c1ae306 100644
--- a/core/src/test/java/org/apache/brooklyn/core/entity/AttributeMapTest.java
+++ b/core/src/test/java/org/apache/brooklyn/core/entity/AttributeMapTest.java
@@ -30,11 +30,12 @@ import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import org.apache.brooklyn.api.entity.Application;
+import org.apache.brooklyn.api.entity.EntitySpec;
import org.apache.brooklyn.api.sensor.AttributeSensor;
-import org.apache.brooklyn.core.entity.Entities;
import org.apache.brooklyn.core.sensor.AttributeMap;
import org.apache.brooklyn.core.sensor.Sensors;
import org.apache.brooklyn.core.test.entity.TestApplication;
+import org.apache.brooklyn.core.test.entity.TestEntity;
import org.apache.brooklyn.core.test.entity.TestEntityImpl;
import org.apache.brooklyn.test.Asserts;
import org.apache.brooklyn.util.collections.MutableMap;
@@ -53,16 +54,17 @@ public class AttributeMapTest {
final int NUM_TASKS = Math.min(500 * Runtime.getRuntime().availableProcessors(), 1000);
Application app;
- TestEntityImpl entity;
+ TestEntity entity;
+ TestEntityImpl entityImpl;
AttributeMap map;
ExecutorService executor;
@BeforeMethod(alwaysRun=true)
public void setUp() {
app = TestApplication.Factory.newManagedInstanceForTests();
- entity = new TestEntityImpl(app);
- map = new AttributeMap(entity, Collections.synchronizedMap(MutableMap.<Collection<String>,Object>of()));
- Entities.manage(entity);
+ TestEntity entity = app.addChild(EntitySpec.create(TestEntity.class));
+ entityImpl = (TestEntityImpl) Entities.deproxy(entity);
+ map = new AttributeMap(entityImpl, Collections.synchronizedMap(MutableMap.<Collection<String>,Object>of()));
executor = Executors.newCachedThreadPool();
}
@@ -189,7 +191,7 @@ public class AttributeMapTest {
AttributeSensor<Integer> childSensor = Sensors.newIntegerSensor("a.b", "");
final RecordingSensorEventListener<Object> listener = new RecordingSensorEventListener<>();
- entity.subscriptions().subscribe(entity, sensor, listener);
+ entityImpl.subscriptions().subscribe(entityImpl, sensor, listener);
map.modify(childSensor, Functions.constant(Maybe.<Integer>absent()));
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/core/src/test/java/org/apache/brooklyn/core/entity/EntityAutomanagedTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/core/entity/EntityAutomanagedTest.java b/core/src/test/java/org/apache/brooklyn/core/entity/EntityAutomanagedTest.java
index a940a11..741b936 100644
--- a/core/src/test/java/org/apache/brooklyn/core/entity/EntityAutomanagedTest.java
+++ b/core/src/test/java/org/apache/brooklyn/core/entity/EntityAutomanagedTest.java
@@ -212,8 +212,8 @@ public class EntityAutomanagedTest extends BrooklynAppUnitTestSupport {
try {
Entities.manage(child);
fail("Managed deleted entity "+child+" in "+mgmt);
- } catch (IllegalStateException e) {
- if (!(e.toString().contains("No concrete entity known"))) throw e;
+ } catch (IllegalArgumentException e) {
+ if (!(e.toString().contains("Can't manage"))) throw e;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/core/src/test/java/org/apache/brooklyn/core/entity/EntityPreManagementTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/core/entity/EntityPreManagementTest.java b/core/src/test/java/org/apache/brooklyn/core/entity/EntityPreManagementTest.java
deleted file mode 100644
index 043de6d..0000000
--- a/core/src/test/java/org/apache/brooklyn/core/entity/EntityPreManagementTest.java
+++ /dev/null
@@ -1,146 +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.core.entity;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.brooklyn.api.entity.EntityLocal;
-import org.apache.brooklyn.api.entity.EntitySpec;
-import org.apache.brooklyn.api.mgmt.EntityManager;
-import org.apache.brooklyn.api.mgmt.ManagementContext;
-import org.apache.brooklyn.api.sensor.SensorEvent;
-import org.apache.brooklyn.api.sensor.SensorEventListener;
-import org.apache.brooklyn.core.entity.Attributes;
-import org.apache.brooklyn.core.entity.Entities;
-import org.apache.brooklyn.core.entity.factory.ApplicationBuilder;
-import org.apache.brooklyn.core.policy.AbstractPolicy;
-import org.apache.brooklyn.core.test.entity.LocalManagementContextForTests;
-import org.apache.brooklyn.core.test.entity.TestApplication;
-import org.apache.brooklyn.core.test.entity.TestEntity;
-import org.apache.brooklyn.test.Asserts;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.testng.Assert;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-
-@SuppressWarnings({"rawtypes","unchecked"})
-public class EntityPreManagementTest {
-
- @SuppressWarnings("unused")
- private static final Logger log = LoggerFactory.getLogger(EntityPreManagementTest.class);
-
- private ManagementContext managementContext;
- private EntityManager entityManager;
- private TestApplication app;
-
- @BeforeMethod(alwaysRun=true)
- public void setUp() throws Exception {
- managementContext = new LocalManagementContextForTests();
- entityManager = managementContext.getEntityManager();
- }
-
- @AfterMethod(alwaysRun=true)
- public void tearDown() throws Exception {
- if (managementContext != null) Entities.destroyAll(managementContext);
- }
-
- @Test
- public void testSetSensorBeforeManaged() {
- TestEntity e = entityManager.createEntity(EntitySpec.create(TestEntity.class));
-
- e.sensors().set(Attributes.HOSTNAME, "martian.martian");
- Assert.assertEquals(e.getAttribute(Attributes.HOSTNAME), "martian.martian");
-
- Assert.assertFalse(e.getManagementSupport().isManagementContextReal());
- }
-
- @Test
- public void testAddPolicyToEntityBeforeManaged() {
- TestEntity e = entityManager.createEntity(EntitySpec.create(TestEntity.class));
- final List events = new ArrayList();
-
- e.policies().add(new AbstractPolicy() {
- @Override
- public void setEntity(EntityLocal entity) {
- super.setEntity(entity);
- subscriptions().subscribe(entity, Attributes.HOSTNAME, new SensorEventListener() {
- @Override
- public void onEvent(SensorEvent event) {
- events.add(event);
- }
- });
- }
- });
-
- e.sensors().set(Attributes.HOSTNAME, "martian.martian");
- Assert.assertEquals(e.getAttribute(Attributes.HOSTNAME), "martian.martian");
-
- if (!events.isEmpty()) Assert.fail("Shouldn't have events yet: "+events);
- Assert.assertFalse(e.getManagementSupport().isManagementContextReal());
-
- TestApplication app = ApplicationBuilder.newManagedApp(TestApplication.class, managementContext);
- e.setParent(app);
- Entities.manage(e);
-
- Asserts.succeedsEventually(new Runnable() {
- @Override
- public void run() {
- if (events.isEmpty()) Assert.fail("no events received");
- }});
- Assert.assertEquals(events.size(), 1, "Expected 1 event; got: "+events);
- }
-
- @Test
- public void testAddPolicyToApplicationBeforeManaged() {
- app = entityManager.createEntity(EntitySpec.create(TestApplication.class));
- final List events = new ArrayList();
-
- app.policies().add(new AbstractPolicy() {
- @Override
- public void setEntity(EntityLocal entity) {
- super.setEntity(entity);
- subscriptions().subscribe(entity, Attributes.HOSTNAME, new SensorEventListener() {
- @Override
- public void onEvent(SensorEvent event) {
- events.add(event);
- }
- });
- }
- });
-
- app.sensors().set(Attributes.HOSTNAME, "martian.martian");
- Assert.assertEquals(app.getAttribute(Attributes.HOSTNAME), "martian.martian");
-
- if (!events.isEmpty()) Assert.fail("Shouldn't have events yet: "+events);
-
- Entities.startManagement(app, managementContext);
-
- Asserts.succeedsEventually(new Runnable() {
- @Override
- public void run() {
- if (events.isEmpty()) Assert.fail("no events received");
- }});
- Assert.assertEquals(events.size(), 1, "Expected 1 event; got: "+events);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/core/src/test/java/org/apache/brooklyn/core/entity/hello/LocalEntitiesTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/core/entity/hello/LocalEntitiesTest.java b/core/src/test/java/org/apache/brooklyn/core/entity/hello/LocalEntitiesTest.java
index 9ce3b73..320d7a3 100644
--- a/core/src/test/java/org/apache/brooklyn/core/entity/hello/LocalEntitiesTest.java
+++ b/core/src/test/java/org/apache/brooklyn/core/entity/hello/LocalEntitiesTest.java
@@ -177,8 +177,7 @@ public class LocalEntitiesTest extends BrooklynAppUnitTestSupport {
app.config().set(HelloEntity.MY_NAME, "Bob");
HelloEntity dad = app.createAndManageChild(EntitySpec.create(HelloEntity.class));
- HelloEntity son = entityManager.createEntity(EntitySpec.create(HelloEntity.class).parent(dad));
- Entities.manage(son);
+ HelloEntity son = dad.addChild(EntitySpec.create(HelloEntity.class));
//config is inherited
assertEquals("Bob", app.getConfig(HelloEntity.MY_NAME));
@@ -195,13 +194,11 @@ public class LocalEntitiesTest extends BrooklynAppUnitTestSupport {
app.config().set(HelloEntity.MY_NAME, "Bob");
final HelloEntity dad = app.createAndManageChild(EntitySpec.create(HelloEntity.class));
- final HelloEntity son = entityManager.createEntity(EntitySpec.create(HelloEntity.class)
- .parent(dad)
+ final HelloEntity son = dad.addChild(EntitySpec.create(HelloEntity.class)
.configure(HelloEntity.MY_NAME, attributeWhenReady(dad, HelloEntity.FAVOURITE_NAME
/* third param is closure; defaults to groovy truth (see google), but could be e.g.
, { it!=null && it.length()>0 && it!="Jebediah" }
*/ )));
- Entities.manage(son);
app.start(ImmutableList.of(loc));
@@ -247,13 +244,11 @@ public class LocalEntitiesTest extends BrooklynAppUnitTestSupport {
app.config().set(HelloEntity.MY_NAME, "Bob");
HelloEntity dad = app.createAndManageChild(EntitySpec.create(HelloEntity.class));
- HelloEntity son = entityManager.createEntity(EntitySpec.create(HelloEntity.class)
- .parent(dad)
+ HelloEntity son = dad.addChild(EntitySpec.create(HelloEntity.class)
.configure(HelloEntity.MY_NAME, transform(attributeWhenReady(dad, HelloEntity.FAVOURITE_NAME), new Function<String,String>() {
public String apply(String input) {
return input+input.charAt(input.length()-1)+"y";
}})));
- Entities.manage(son);
app.start(ImmutableList.of(loc));
((EntityLocal)dad).sensors().set(HelloEntity.FAVOURITE_NAME, "Dan");
@@ -266,13 +261,11 @@ public class LocalEntitiesTest extends BrooklynAppUnitTestSupport {
HelloEntity dad = app.createAndManageChild(EntitySpec.create(HelloEntity.class));
// the unnecessary (HelloEntity) cast is required as a work-around to an IntelliJ issue that prevents Brooklyn from launching from the IDE
- HelloEntity son = (HelloEntity)entityManager.createEntity(EntitySpec.create(HelloEntity.class)
- .parent(dad)
+ HelloEntity son = (HelloEntity) dad.addChild(EntitySpec.create(HelloEntity.class)
.configure(HelloEntity.MY_NAME, transform(attributeWhenReady(dad, HelloEntity.FAVOURITE_NAME, (Closure)null), new Function<String,String>() {
public String apply(String input) {
return input+input.charAt(input.length()-1)+"y";
}})));
- Entities.manage(son);
app.start(ImmutableList.of(loc));
((EntityLocal)dad).sensors().set(HelloEntity.FAVOURITE_NAME, "Dan");
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/core/src/test/java/org/apache/brooklyn/core/entity/internal/EntityConfigMapUsageTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/core/entity/internal/EntityConfigMapUsageTest.java b/core/src/test/java/org/apache/brooklyn/core/entity/internal/EntityConfigMapUsageTest.java
index 5dd9a5a..e5e39a4 100644
--- a/core/src/test/java/org/apache/brooklyn/core/entity/internal/EntityConfigMapUsageTest.java
+++ b/core/src/test/java/org/apache/brooklyn/core/entity/internal/EntityConfigMapUsageTest.java
@@ -126,7 +126,6 @@ public class EntityConfigMapUsageTest extends BrooklynAppUnitTestSupport {
TestEntity entity = app.addChild(EntitySpec.create(TestEntity.class));
((EntityLocal)entity).config().set(strKey, "aval");
((EntityLocal)entity).config().set(intKey, 2);
- Entities.manage(entity);
assertEquals(entity.getConfig(strKey), "aval");
assertEquals(entity.getConfig(intKey), (Integer)2);
@@ -137,7 +136,6 @@ public class EntityConfigMapUsageTest extends BrooklynAppUnitTestSupport {
TestEntity parent = app.addChild(EntitySpec.create(TestEntity.class)
.configure(strKey, "aval"));
((EntityLocal)parent).config().set(intKey, 2);
- Entities.manage(parent);
TestEntity entity = parent.createAndManageChild(EntitySpec.create(TestEntity.class));
assertEquals(entity.getConfig(strKey), "aval");
@@ -169,17 +167,15 @@ public class EntityConfigMapUsageTest extends BrooklynAppUnitTestSupport {
TestEntity entity = app.createAndManageChild(EntitySpec.create(TestEntity.class)
.configure(strKey, "aval"));
((EntityLocal)entity).config().set(strKey, "diffval");
- Entities.manage(entity);
assertEquals(entity.getConfig(strKey), "diffval");
}
@Test
- public void testConfigSetOnParentInheritedByExistingChildrenBeforeStarted() throws Exception {
+ public void testConfigSetOnParentInheritedByExistingChildren() throws Exception {
TestEntity parent = app.addChild(EntitySpec.create(TestEntity.class));
TestEntity entity = parent.createChild(EntitySpec.create(TestEntity.class));
((EntityLocal)parent).config().set(strKey,"aval");
- Entities.manage(entity);
assertEquals(entity.getConfig(strKey), "aval");
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/core/src/test/java/org/apache/brooklyn/core/entity/proxying/ApplicationBuilderOverridingTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/core/entity/proxying/ApplicationBuilderOverridingTest.java b/core/src/test/java/org/apache/brooklyn/core/entity/proxying/ApplicationBuilderOverridingTest.java
index 5a8003d..824439b 100644
--- a/core/src/test/java/org/apache/brooklyn/core/entity/proxying/ApplicationBuilderOverridingTest.java
+++ b/core/src/test/java/org/apache/brooklyn/core/entity/proxying/ApplicationBuilderOverridingTest.java
@@ -119,11 +119,24 @@ public class ApplicationBuilderOverridingTest {
assertEquals(expectedChild.get().getParent(), app);
}
- @Test
+ @Test(enabled=false)
public void testAppHierarchyIsManaged() {
app = new ApplicationBuilder() {
@Override public void doBuild() {
Entity entity = addChild(EntitySpec.create(TestEntity.class));
+ }
+ }.manage();
+
+ assertIsManaged(app);
+ assertIsManaged(Iterables.get(app.getChildren(), 0));
+ }
+
+ // TODO Can't assert the child added in doBuild is unmanaged
+ @Test(enabled=false)
+ public void testEntityAddedInDoBuildIsUnmanagedUntilAppIsManaged() {
+ app = new ApplicationBuilder() {
+ @Override public void doBuild() {
+ Entity entity = addChild(EntitySpec.create(TestEntity.class));
assertFalse(getManagementContext().getEntityManager().isManaged(entity));
}
}.manage();
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/core/src/test/java/org/apache/brooklyn/core/feed/ConfigToAttributesTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/core/feed/ConfigToAttributesTest.java b/core/src/test/java/org/apache/brooklyn/core/feed/ConfigToAttributesTest.java
index 1cc48df..f392bad 100644
--- a/core/src/test/java/org/apache/brooklyn/core/feed/ConfigToAttributesTest.java
+++ b/core/src/test/java/org/apache/brooklyn/core/feed/ConfigToAttributesTest.java
@@ -51,7 +51,6 @@ public class ConfigToAttributesTest {
public void testApplyTemplatedConfigWithEntity() {
TestApplication app = managementContext.getEntityManager().createEntity(EntitySpec.create(TestApplication.class)
.configure(TestEntity.CONF_NAME, "myval"));
- Entities.startManagement(app, managementContext);
BasicAttributeSensorAndConfigKey<String> key = new TemplatedStringAttributeSensorAndConfigKey("mykey", "my descr", "${config['test.confName']!'notfound'}");
String val = ConfigToAttributes.apply(app, key);
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/core/src/test/java/org/apache/brooklyn/core/mgmt/ha/HotStandbyTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/core/mgmt/ha/HotStandbyTest.java b/core/src/test/java/org/apache/brooklyn/core/mgmt/ha/HotStandbyTest.java
index 2eaebcf..cb4baad 100644
--- a/core/src/test/java/org/apache/brooklyn/core/mgmt/ha/HotStandbyTest.java
+++ b/core/src/test/java/org/apache/brooklyn/core/mgmt/ha/HotStandbyTest.java
@@ -298,7 +298,6 @@ public class HotStandbyTest {
// test additions - new child, new app
TestEntity child = app.addChild(EntitySpec.create(TestEntity.class).configure(TestEntity.CONF_NAME, "first-child"));
- Entities.manage(child);
TestApplication app2 = TestApplication.Factory.newManagedInstanceForTests(n1.mgmt);
app2.config().set(TestEntity.CONF_NAME, "second-app");
@@ -477,7 +476,6 @@ public class HotStandbyTest {
assertUsedMemoryMaxDelta("Standby created", DELTA);
TestEntity lastChild = app.addChild(EntitySpec.create(TestEntity.class).configure(TestEntity.CONF_NAME, "first-child"));
- Entities.manage(lastChild);
forcePersistNow(n1);
forceRebindNow(n2);
assertUsedMemoryMaxDelta("Child created and rebinded once", DELTA);
@@ -488,7 +486,6 @@ public class HotStandbyTest {
usedMemory.removeLast();
}
TestEntity newChild = app.addChild(EntitySpec.create(TestEntity.class).configure(TestEntity.CONF_NAME, "first-child"));
- Entities.manage(newChild);
Entities.unmanage(lastChild);
lastChild = newChild;
@@ -523,7 +520,6 @@ public class HotStandbyTest {
HaMgmtNode n2 = createHotStandby(Duration.PRACTICALLY_FOREVER);
TestEntity child = app.addChild(EntitySpec.create(TestEntity.class).configure(TestEntity.CONF_NAME, "first-child"));
- Entities.manage(child);
TestApplication app2 = TestApplication.Factory.newManagedInstanceForTests(n1.mgmt);
app2.config().set(TestEntity.CONF_NAME, "second-app");
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/core/src/test/java/org/apache/brooklyn/core/mgmt/internal/LocalSubscriptionManagerTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/core/mgmt/internal/LocalSubscriptionManagerTest.java b/core/src/test/java/org/apache/brooklyn/core/mgmt/internal/LocalSubscriptionManagerTest.java
index 10f07ab..a077f31 100644
--- a/core/src/test/java/org/apache/brooklyn/core/mgmt/internal/LocalSubscriptionManagerTest.java
+++ b/core/src/test/java/org/apache/brooklyn/core/mgmt/internal/LocalSubscriptionManagerTest.java
@@ -56,11 +56,6 @@ public class LocalSubscriptionManagerTest extends BrooklynAppUnitTestSupport {
entity = app.createAndManageChild(EntitySpec.create(TestEntity.class));
}
- private void manage(Entity ...entities) {
- for (Entity e: entities)
- Entities.manage(e);
- }
-
@Test
public void testSubscribeToEntityAttributeChange() throws Exception {
final CountDownLatch latch = new CountDownLatch(1);
@@ -117,7 +112,6 @@ public class LocalSubscriptionManagerTest extends BrooklynAppUnitTestSupport {
public void testSubscribeToMemberAttributeChange() throws Exception {
BasicGroup group = app.createAndManageChild(EntitySpec.create(BasicGroup.class));
TestEntity member = app.createAndManageChild(EntitySpec.create(TestEntity.class));
- manage(group, member);
group.addMember(member);
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/core/src/test/java/org/apache/brooklyn/core/mgmt/rebind/ActivePartialRebindTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/core/mgmt/rebind/ActivePartialRebindTest.java b/core/src/test/java/org/apache/brooklyn/core/mgmt/rebind/ActivePartialRebindTest.java
index bf74df9..771171d 100644
--- a/core/src/test/java/org/apache/brooklyn/core/mgmt/rebind/ActivePartialRebindTest.java
+++ b/core/src/test/java/org/apache/brooklyn/core/mgmt/rebind/ActivePartialRebindTest.java
@@ -44,7 +44,6 @@ public class ActivePartialRebindTest extends RebindTestFixtureWithApp {
@Test
public void testRebindChildSimple() throws Exception {
TestEntity c1 = origApp.addChild(EntitySpec.create(TestEntity.class));
- Entities.manage(c1);
AbstractEntity c1r = Entities.deproxy(c1);
doPartialRebindOfIds(c1.getId());
@@ -59,7 +58,6 @@ public class ActivePartialRebindTest extends RebindTestFixtureWithApp {
@Test
public void testRebindParentSimple() throws Exception {
TestEntity c1 = origApp.addChild(EntitySpec.create(TestEntity.class));
- Entities.manage(c1);
AbstractEntity origAppr = Entities.deproxy(origApp);
@@ -82,7 +80,6 @@ public class ActivePartialRebindTest extends RebindTestFixtureWithApp {
@Test(groups="Integration")
public void testRebindCheckingMemoryLeak() throws Exception {
TestEntity c1 = origApp.addChild(EntitySpec.create(TestEntity.class));
- Entities.manage(c1);
c1.config().set(TestEntity.CONF_NAME, Strings.makeRandomId(1000000));
gcAndLog("before");
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/core/src/test/java/org/apache/brooklyn/core/mgmt/rebind/CheckpointEntityTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/core/mgmt/rebind/CheckpointEntityTest.java b/core/src/test/java/org/apache/brooklyn/core/mgmt/rebind/CheckpointEntityTest.java
index 2c3b281..d2aa5d6 100644
--- a/core/src/test/java/org/apache/brooklyn/core/mgmt/rebind/CheckpointEntityTest.java
+++ b/core/src/test/java/org/apache/brooklyn/core/mgmt/rebind/CheckpointEntityTest.java
@@ -68,7 +68,6 @@ public class CheckpointEntityTest extends RebindTestFixtureWithApp {
@Test
public void testAutoCheckpointsOnManageDynamicEntity() throws Exception {
final MyEntity origE2 = origApp.createAndManageChild(EntitySpec.create(MyEntity.class).configure("myconfig", "myval2"));
- Entities.manage(origE2);
newApp = rebind();
MyEntity newE2 = (MyEntity) Iterables.find(newApp.getChildren(), new Predicate<Entity>() {
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/core/src/test/java/org/apache/brooklyn/core/mgmt/rebind/RebindDynamicGroupTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/core/mgmt/rebind/RebindDynamicGroupTest.java b/core/src/test/java/org/apache/brooklyn/core/mgmt/rebind/RebindDynamicGroupTest.java
index 7232e52..2f9bc8e 100644
--- a/core/src/test/java/org/apache/brooklyn/core/mgmt/rebind/RebindDynamicGroupTest.java
+++ b/core/src/test/java/org/apache/brooklyn/core/mgmt/rebind/RebindDynamicGroupTest.java
@@ -52,7 +52,6 @@ public class RebindDynamicGroupTest extends RebindTestFixtureWithApp {
// And should detect new members that match the filter
final MyEntity newE2 = newApp.createAndManageChild(EntitySpec.create(MyEntity.class));
- Entities.manage(newE2);
Asserts.succeedsEventually(new Runnable() {
@Override public void run() {
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/core/src/test/java/org/apache/brooklyn/core/test/entity/TestApplicationImpl.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/core/test/entity/TestApplicationImpl.java b/core/src/test/java/org/apache/brooklyn/core/test/entity/TestApplicationImpl.java
index 7ce08d3..ae3cc5f 100644
--- a/core/src/test/java/org/apache/brooklyn/core/test/entity/TestApplicationImpl.java
+++ b/core/src/test/java/org/apache/brooklyn/core/test/entity/TestApplicationImpl.java
@@ -53,12 +53,11 @@ public class TestApplicationImpl extends AbstractApplication implements TestAppl
super(flags);
}
+ // TODO Deprecate this; no longer needed - can always use {@link #addChild(EntitySpec)}
@Override
public <T extends Entity> T createAndManageChild(EntitySpec<T> spec) {
if (!getManagementSupport().isDeployed()) throw new IllegalStateException("Entity "+this+" not managed");
- T child = addChild(spec);
- getEntityManager().manage(child);
- return child;
+ return addChild(spec);
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/core/src/test/java/org/apache/brooklyn/enricher/stock/CustomAggregatingEnricherTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/enricher/stock/CustomAggregatingEnricherTest.java b/core/src/test/java/org/apache/brooklyn/enricher/stock/CustomAggregatingEnricherTest.java
index 4aed5c6..9216381 100644
--- a/core/src/test/java/org/apache/brooklyn/enricher/stock/CustomAggregatingEnricherTest.java
+++ b/core/src/test/java/org/apache/brooklyn/enricher/stock/CustomAggregatingEnricherTest.java
@@ -47,7 +47,6 @@ public class CustomAggregatingEnricherTest extends BrooklynAppUnitTestSupport {
public static final Logger log = LoggerFactory.getLogger(CustomAggregatingEnricherTest.class);
- private static final long TIMEOUT_MS = 10*1000;
private static final long SHORT_WAIT_MS = 50;
TestEntity entity;
@@ -358,12 +357,11 @@ public class CustomAggregatingEnricherTest extends BrooklynAppUnitTestSupport {
@Test
public void testAggregatesExistingMembersOfGroup() {
BasicGroup group = app.addChild(EntitySpec.create(BasicGroup.class));
- TestEntity p1 = app.getManagementContext().getEntityManager().createEntity(EntitySpec.create(TestEntity.class).parent(group));
- TestEntity p2 = app.getManagementContext().getEntityManager().createEntity(EntitySpec.create(TestEntity.class).parent(group));
+ TestEntity p1 = group.addChild(EntitySpec.create(TestEntity.class));
+ TestEntity p2 = group.addChild(EntitySpec.create(TestEntity.class));
group.addMember(p1);
group.addMember(p2);
p1.sensors().set(intSensor, 1);
- Entities.manage(group);
group.enrichers().add(Enrichers.builder()
.aggregating(intSensor)
@@ -385,12 +383,11 @@ public class CustomAggregatingEnricherTest extends BrooklynAppUnitTestSupport {
@Test
public void testAggregatesMembersOfProducer() {
BasicGroup group = app.addChild(EntitySpec.create(BasicGroup.class));
- TestEntity p1 = app.getManagementContext().getEntityManager().createEntity(EntitySpec.create(TestEntity.class).parent(group));
- TestEntity p2 = app.getManagementContext().getEntityManager().createEntity(EntitySpec.create(TestEntity.class).parent(group));
+ TestEntity p1 = group.addChild(EntitySpec.create(TestEntity.class));
+ TestEntity p2 = group.addChild(EntitySpec.create(TestEntity.class));
group.addMember(p1);
group.addMember(p2);
p1.sensors().set(intSensor, 1);
- Entities.manage(group);
app.enrichers().add(Enrichers.builder()
.aggregating(intSensor)
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/core/src/test/java/org/apache/brooklyn/enricher/stock/EnrichersTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/enricher/stock/EnrichersTest.java b/core/src/test/java/org/apache/brooklyn/enricher/stock/EnrichersTest.java
index 832b974..371d2b5 100644
--- a/core/src/test/java/org/apache/brooklyn/enricher/stock/EnrichersTest.java
+++ b/core/src/test/java/org/apache/brooklyn/enricher/stock/EnrichersTest.java
@@ -268,7 +268,6 @@ public class EnrichersTest extends BrooklynAppUnitTestSupport {
@Test
public void testAggregatingGroupSum() {
TestEntity child1 = group.addChild(EntitySpec.create(TestEntity.class));
- Entities.manage(child1);
group.addMember(entity);
group.addMember(entity2);
group.enrichers().add(Enrichers.builder()
@@ -288,9 +287,7 @@ public class EnrichersTest extends BrooklynAppUnitTestSupport {
public void testAggregatingChildrenSum() {
group.addMember(entity);
TestEntity child1 = group.addChild(EntitySpec.create(TestEntity.class));
- Entities.manage(child1);
TestEntity child2 = group.addChild(EntitySpec.create(TestEntity.class));
- Entities.manage(child2);
group.enrichers().add(Enrichers.builder()
.aggregating(NUM1)
.publishing(NUM2)
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/core/src/test/java/org/apache/brooklyn/entity/group/DynamicFabricTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/entity/group/DynamicFabricTest.java b/core/src/test/java/org/apache/brooklyn/entity/group/DynamicFabricTest.java
index 9d1830e..015c168 100644
--- a/core/src/test/java/org/apache/brooklyn/entity/group/DynamicFabricTest.java
+++ b/core/src/test/java/org/apache/brooklyn/entity/group/DynamicFabricTest.java
@@ -348,9 +348,7 @@ public class DynamicFabricTest extends BrooklynAppUnitTestSupport {
fabric.start(ImmutableList.of(loc1));
- BasicEntity extraChild = app.getManagementContext().getEntityManager().createEntity(EntitySpec.create(BasicEntity.class)
- .parent(fabric));
- Entities.manage(extraChild);
+ BasicEntity extraChild = fabric.addChild(EntitySpec.create(BasicEntity.class));
fabric.stop();
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/core/src/test/java/org/apache/brooklyn/entity/group/DynamicGroupTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/entity/group/DynamicGroupTest.java b/core/src/test/java/org/apache/brooklyn/entity/group/DynamicGroupTest.java
index dc327e3..eefe4a3 100644
--- a/core/src/test/java/org/apache/brooklyn/entity/group/DynamicGroupTest.java
+++ b/core/src/test/java/org/apache/brooklyn/entity/group/DynamicGroupTest.java
@@ -120,13 +120,8 @@ public class DynamicGroupTest {
@Test
public void testGroupDetectsNewlyManagedMatchingMember() throws Exception {
- final Entity e3 = new AbstractEntity() {};
- group.setEntityFilter(EntityPredicates.idEqualTo(e3.getId()));
- e3.setParent(app);
-
- assertEqualsIgnoringOrder(group.getMembers(), ImmutableSet.of());
-
- Entities.manage(e3);
+ group.setEntityFilter(EntityPredicates.displayNameEqualTo("myname"));
+ final Entity e3 = app.addChild(EntitySpec.create(TestEntity.class).displayName("myname"));
Asserts.succeedsEventually(new Runnable() {
public void run() {
@@ -136,9 +131,9 @@ public class DynamicGroupTest {
@Test
public void testGroupUsesNewFilter() throws Exception {
- Entity e3 = new AbstractEntity(app) {};
- Entities.manage(e3);
- group.setEntityFilter(EntityPredicates.idEqualTo(e3.getId()));
+ final Entity e3 = app.addChild(EntitySpec.create(TestEntity.class).displayName("myname"));
+
+ group.setEntityFilter(EntityPredicates.displayNameEqualTo("myname"));
assertEqualsIgnoringOrder(group.getMembers(), ImmutableSet.of(e3));
}
@@ -146,7 +141,7 @@ public class DynamicGroupTest {
@Test
public void testGroupDetectsChangedEntities() throws Exception {
final AttributeSensor<String> MY_ATTRIBUTE = Sensors.newStringSensor("test.myAttribute", "My test attribute");
-
+
group.setEntityFilter(EntityPredicates.attributeEqualTo(MY_ATTRIBUTE, "yes"));
group.addSubscription(null, MY_ATTRIBUTE);
@@ -395,7 +390,9 @@ public class DynamicGroupTest {
}
// See Deadlock in https://github.com/brooklyncentral/brooklyn/issues/378
- @Test
+ // TODO Now that entities are auto-managed, this test is no longer appropriate.
+ // Should it be re-written or deleted?
+ @Test(groups="WIP")
public void testDoesNotDeadlockOnManagedAndMemberAddedConcurrently() throws Exception {
final CountDownLatch rescanReachedLatch = new CountDownLatch(1);
final CountDownLatch entityAddedReachedLatch = new CountDownLatch(1);
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/core/src/test/java/org/apache/brooklyn/entity/group/DynamicMultiGroupTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/entity/group/DynamicMultiGroupTest.java b/core/src/test/java/org/apache/brooklyn/entity/group/DynamicMultiGroupTest.java
index 7f96d71..b156bb5 100644
--- a/core/src/test/java/org/apache/brooklyn/entity/group/DynamicMultiGroupTest.java
+++ b/core/src/test/java/org/apache/brooklyn/entity/group/DynamicMultiGroupTest.java
@@ -85,8 +85,6 @@ public class DynamicMultiGroupTest {
EntitySpec<TestEntity> childSpec = EntitySpec.create(TestEntity.class);
TestEntity child1 = group.addChild(EntitySpec.create(childSpec).displayName("child1"));
TestEntity child2 = group.addChild(EntitySpec.create(childSpec).displayName("child2"));
- Entities.manage(child1);
- Entities.manage(child2);
checkDistribution(group, dmg, childSpec, child1, child2);
}
@@ -104,8 +102,6 @@ public class DynamicMultiGroupTest {
EntitySpec<TestEntity> childSpec = EntitySpec.create(TestEntity.class);
TestEntity child1 = group.addChild(EntitySpec.create(childSpec).displayName("child1"));
TestEntity child2 = group.addChild(EntitySpec.create(childSpec).displayName("child2"));
- Entities.manage(child1);
- Entities.manage(child2);
checkDistribution(group, dmg, childSpec, child1, child2);
}
@@ -186,7 +182,6 @@ public class DynamicMultiGroupTest {
// Add new child 3, associated with new bucket C
final TestEntity child3 = group.addChild(EntitySpec.create(childSpec).displayName("child3"));
- Entities.manage(child3);
child3.sensors().set(SENSOR, "bucketC");
Asserts.succeedsEventually(new Runnable() {
public void run() {
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/core/src/test/java/org/apache/brooklyn/entity/group/MembershipTrackingPolicyTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/entity/group/MembershipTrackingPolicyTest.java b/core/src/test/java/org/apache/brooklyn/entity/group/MembershipTrackingPolicyTest.java
index 2f17540..5325a1d 100644
--- a/core/src/test/java/org/apache/brooklyn/entity/group/MembershipTrackingPolicyTest.java
+++ b/core/src/test/java/org/apache/brooklyn/entity/group/MembershipTrackingPolicyTest.java
@@ -75,7 +75,6 @@ public class MembershipTrackingPolicyTest extends BrooklynAppUnitTestSupport {
private TestEntity createAndManageChildOf(Entity parent) {
EntityManager entityManager = app.getManagementContext().getEntityManager();
TestEntity result = entityManager.createEntity(EntitySpec.create(TestEntity.class).parent(parent));
- Entities.manage(result);
return result;
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/core/src/test/java/org/apache/brooklyn/entity/stock/BasicStartableTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/entity/stock/BasicStartableTest.java b/core/src/test/java/org/apache/brooklyn/entity/stock/BasicStartableTest.java
index 1746777..f257f63 100644
--- a/core/src/test/java/org/apache/brooklyn/entity/stock/BasicStartableTest.java
+++ b/core/src/test/java/org/apache/brooklyn/entity/stock/BasicStartableTest.java
@@ -78,7 +78,6 @@ public class BasicStartableTest {
@Test
public void testSetsLocations() throws Exception {
startable = app.addChild(EntitySpec.create(BasicStartable.class));
- Entities.startManagement(startable);
app.start(ImmutableList.of(loc1, loc2));
assertEqualsIgnoringOrder(startable.getLocations(), ImmutableSet.of(loc1, loc2));
@@ -89,7 +88,6 @@ public class BasicStartableTest {
startable = app.addChild(EntitySpec.create(BasicStartable.class));
entity = startable.addChild(EntitySpec.create(TestEntity.class));
entity2 = startable.addChild(EntitySpec.create(TestEntity.class));
- Entities.startManagement(startable);
app.start(ImmutableList.of(loc1, loc2));
assertEqualsIgnoringOrder(entity.getLocations(), ImmutableSet.of(loc1, loc2));
@@ -122,7 +120,6 @@ public class BasicStartableTest {
.configure(BasicStartable.LOCATIONS_FILTER, filter));
entity = startable.addChild(EntitySpec.create(TestEntity.class).displayName("1"));
entity2 = startable.addChild(EntitySpec.create(TestEntity.class).displayName("2"));
- Entities.startManagement(startable);
app.start(ImmutableList.of(loc1, loc2));
assertEqualsIgnoringOrder(entity.getLocations(), ImmutableSet.of(loc1));
@@ -142,7 +139,6 @@ public class BasicStartableTest {
startable = app.addChild(EntitySpec.create(BasicStartable.class)
.configure(BasicStartable.LOCATIONS_FILTER, filter));
BasicEntity entity = startable.addChild(EntitySpec.create(BasicEntity.class));
- Entities.startManagement(startable);
app.start(ImmutableList.of(loc1, loc2));
assertEqualsIgnoringOrder(entity.getLocations(), ImmutableSet.of());
@@ -156,7 +152,6 @@ public class BasicStartableTest {
managementContext.getSubscriptionContext(startable)
.subscribe(startable, Attributes.SERVICE_STATE_ACTUAL, listener);
- Entities.startManagement(startable);
app.start(ImmutableList.of(loc1));
app.stop();
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/core/src/test/java/org/apache/brooklyn/feed/ssh/SshFeedIntegrationTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/feed/ssh/SshFeedIntegrationTest.java b/core/src/test/java/org/apache/brooklyn/feed/ssh/SshFeedIntegrationTest.java
index d926903..4559247 100644
--- a/core/src/test/java/org/apache/brooklyn/feed/ssh/SshFeedIntegrationTest.java
+++ b/core/src/test/java/org/apache/brooklyn/feed/ssh/SshFeedIntegrationTest.java
@@ -200,14 +200,11 @@ public class SshFeedIntegrationTest extends BrooklynAppUnitTestSupport {
.build();
}
}));
- Time.sleep(Duration.seconds(2));
- // would be nice to hook in and assert no errors
- Assert.assertEquals(entity2.getAttribute(SENSOR_STRING), null);
- Entities.manage(entity2);
- Time.sleep(Duration.seconds(2));
- Assert.assertEquals(entity2.getAttribute(SENSOR_STRING), null);
+
+ // TODO would be nice to hook in and assert no errors
+ EntityTestUtils.assertAttributeEqualsContinually(entity2, SENSOR_STRING, null);
+
entity2.sensors().set(Attributes.SERVICE_UP, true);
-
EntityTestUtils.assertAttributeEventually(entity2, SENSOR_STRING, StringPredicates.containsLiteral("hello"));
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/examples/simple-web-cluster/src/test/java/org/apache/brooklyn/demo/RebindWebClusterDatabaseExampleAppIntegrationTest.java
----------------------------------------------------------------------
diff --git a/examples/simple-web-cluster/src/test/java/org/apache/brooklyn/demo/RebindWebClusterDatabaseExampleAppIntegrationTest.java b/examples/simple-web-cluster/src/test/java/org/apache/brooklyn/demo/RebindWebClusterDatabaseExampleAppIntegrationTest.java
index 001d81c..349c268 100644
--- a/examples/simple-web-cluster/src/test/java/org/apache/brooklyn/demo/RebindWebClusterDatabaseExampleAppIntegrationTest.java
+++ b/examples/simple-web-cluster/src/test/java/org/apache/brooklyn/demo/RebindWebClusterDatabaseExampleAppIntegrationTest.java
@@ -99,7 +99,6 @@ public class RebindWebClusterDatabaseExampleAppIntegrationTest extends RebindTes
StartableApplication result = origManagementContext.getEntityManager().createEntity(EntitySpec.create(StartableApplication.class)
.impl(WebClusterDatabaseExampleApp.class)
.configure(DynamicCluster.INITIAL_SIZE, 2));
- Entities.startManagement(result, origManagementContext);
return result;
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/policy/src/test/java/org/apache/brooklyn/policy/loadbalancing/BalanceableWorkerPoolTest.java
----------------------------------------------------------------------
diff --git a/policy/src/test/java/org/apache/brooklyn/policy/loadbalancing/BalanceableWorkerPoolTest.java b/policy/src/test/java/org/apache/brooklyn/policy/loadbalancing/BalanceableWorkerPoolTest.java
index 5b657ed..770e3f5 100644
--- a/policy/src/test/java/org/apache/brooklyn/policy/loadbalancing/BalanceableWorkerPoolTest.java
+++ b/policy/src/test/java/org/apache/brooklyn/policy/loadbalancing/BalanceableWorkerPoolTest.java
@@ -96,7 +96,6 @@ public class BalanceableWorkerPoolTest {
BalanceableWorkerPool pool2 = app.createAndManageChild(EntitySpec.create(BalanceableWorkerPool.class));
pool2.setContents(resizable, itemGroup);
- Entities.manage(pool2);
pool2.resize(123);
assertEquals(resizable.getCurrentSize(), (Integer) 123);
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/software/base/src/test/java/org/apache/brooklyn/entity/brooklynnode/BrooklynNodeIntegrationTest.java
----------------------------------------------------------------------
diff --git a/software/base/src/test/java/org/apache/brooklyn/entity/brooklynnode/BrooklynNodeIntegrationTest.java b/software/base/src/test/java/org/apache/brooklyn/entity/brooklynnode/BrooklynNodeIntegrationTest.java
index 32899da..92ec962 100644
--- a/software/base/src/test/java/org/apache/brooklyn/entity/brooklynnode/BrooklynNodeIntegrationTest.java
+++ b/software/base/src/test/java/org/apache/brooklyn/entity/brooklynnode/BrooklynNodeIntegrationTest.java
@@ -644,7 +644,6 @@ services:
Entity mirror = brooklynNode.addChild(EntitySpec.create(BrooklynEntityMirror.class)
.configure(BrooklynEntityMirror.MIRRORED_ENTITY_URL, entityUrl)
.configure(BrooklynEntityMirror.MIRRORED_ENTITY_ID, id));
- Entities.manage(mirror);
assertEquals(brooklynNode.getChildren().size(), 1);
return brooklynNode;
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/software/base/src/test/java/org/apache/brooklyn/entity/brooklynnode/BrooklynNodeTest.java
----------------------------------------------------------------------
diff --git a/software/base/src/test/java/org/apache/brooklyn/entity/brooklynnode/BrooklynNodeTest.java b/software/base/src/test/java/org/apache/brooklyn/entity/brooklynnode/BrooklynNodeTest.java
index 27f627e..b367422 100644
--- a/software/base/src/test/java/org/apache/brooklyn/entity/brooklynnode/BrooklynNodeTest.java
+++ b/software/base/src/test/java/org/apache/brooklyn/entity/brooklynnode/BrooklynNodeTest.java
@@ -23,6 +23,7 @@ import static org.testng.Assert.assertTrue;
import java.util.List;
+import org.apache.brooklyn.api.entity.EntityLocal;
import org.apache.brooklyn.api.entity.EntitySpec;
import org.apache.brooklyn.api.entity.drivers.downloads.DownloadResolver;
import org.apache.brooklyn.api.location.Location;
@@ -31,9 +32,7 @@ import org.apache.brooklyn.core.entity.Entities;
import org.apache.brooklyn.core.entity.trait.Startable;
import org.apache.brooklyn.core.feed.ConfigToAttributes;
import org.apache.brooklyn.core.test.entity.TestApplication;
-import org.apache.brooklyn.entity.brooklynnode.BrooklynNode;
-import org.apache.brooklyn.entity.brooklynnode.BrooklynNodeImpl;
-import org.apache.brooklyn.entity.brooklynnode.BrooklynNodeSshDriver;
+import org.apache.brooklyn.location.ssh.SshMachineLocation;
import org.apache.brooklyn.test.Asserts;
import org.apache.brooklyn.util.collections.MutableMap;
import org.apache.brooklyn.util.collections.MutableSet;
@@ -46,8 +45,6 @@ import org.testng.annotations.Test;
import com.google.common.collect.ImmutableMap;
-import org.apache.brooklyn.location.ssh.SshMachineLocation;
-
public class BrooklynNodeTest {
// TODO Need test for copying/setting classpath
@@ -96,12 +93,12 @@ public class BrooklynNodeTest {
private void runTestGeneratesCorrectDownloadUrl(String version, String expectedUrl) throws Exception {
// TODO Using BrooklynNodeImpl directly, because want to instantiate a BroolynNodeSshDriver.
// Really want to make that easier to test, without going through "wrong" code path for creating entity.
- BrooklynNodeImpl entity = new BrooklynNodeImpl();
- entity.config().set(BrooklynNode.SUGGESTED_VERSION, version);
- entity.setParent(app);
- Entities.manage(entity);
- ConfigToAttributes.apply(entity);
- BrooklynNodeSshDriver driver = new BrooklynNodeSshDriver(entity, loc);
+ BrooklynNode entity = app.addChild(EntitySpec.create(BrooklynNode.class)
+ .configure(BrooklynNode.SUGGESTED_VERSION, version));
+ BrooklynNodeImpl entityImpl = (BrooklynNodeImpl) Entities.deproxy(entity);
+
+ ConfigToAttributes.apply((EntityLocal)entity);
+ BrooklynNodeSshDriver driver = new BrooklynNodeSshDriver(entityImpl, loc);
DownloadResolver resolver = Entities.newDownloader(driver);
List<String> urls = resolver.getTargets();
@@ -113,7 +110,6 @@ public class BrooklynNodeTest {
@Test(groups = "Integration")
public void testUnmanageOnStop() throws Exception {
final BrooklynNode node = app.addChild(EntitySpec.create(BrooklynNode.class).impl(SlowStopBrooklynNode.class));
- Entities.manage(node);
assertTrue(Entities.isManaged(node), "Entity " + node + " must be managed.");
node.invoke(Startable.STOP, ImmutableMap.<String,Object>of()).asTask().getUnchecked();
//The UnmanageTask will unblock after the STOP effector completes, so we are competing with it here.
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/software/base/src/test/java/org/apache/brooklyn/entity/java/VanillaJavaAppRebindTest.java
----------------------------------------------------------------------
diff --git a/software/base/src/test/java/org/apache/brooklyn/entity/java/VanillaJavaAppRebindTest.java b/software/base/src/test/java/org/apache/brooklyn/entity/java/VanillaJavaAppRebindTest.java
index c2187a4..6b31151 100644
--- a/software/base/src/test/java/org/apache/brooklyn/entity/java/VanillaJavaAppRebindTest.java
+++ b/software/base/src/test/java/org/apache/brooklyn/entity/java/VanillaJavaAppRebindTest.java
@@ -95,7 +95,6 @@ public class VanillaJavaAppRebindTest {
VanillaJavaApp javaProcess = app.addChild(EntitySpec.create(VanillaJavaApp.class, TestingJavaOptsVanillaJavaAppImpl.class)
.configure("main", MAIN_CLASS.getCanonicalName()).configure("classpath", ImmutableList.of(BROOKLYN_THIS_CLASSPATH)));
- Entities.manage(javaProcess);
app.start(ImmutableList.of(loc));
rebind();
@@ -108,7 +107,7 @@ public class VanillaJavaAppRebindTest {
public void testRebindToKilledJavaApp() throws Exception {
VanillaJavaApp javaProcess = app.addChild(EntitySpec.create(VanillaJavaApp.class, TestingJavaOptsVanillaJavaAppImpl.class)
.configure("main", MAIN_CLASS.getCanonicalName()).configure("classpath", ImmutableList.of(BROOKLYN_THIS_CLASSPATH)));
- Entities.manage(javaProcess);
+
app.start(ImmutableList.of(loc));
javaProcess.kill();
@@ -129,7 +128,6 @@ public class VanillaJavaAppRebindTest {
VanillaJavaApp javaProcess = app.addChild(EntitySpec.create(VanillaJavaApp.class, EnrichedVanillaJavaAppImpl.class)
.configure("main", MAIN_CLASS.getCanonicalName()).configure("classpath", ImmutableList.of(BROOKLYN_THIS_CLASSPATH)));
- Entities.manage(javaProcess);
app.start(ImmutableList.of(loc));
EntityTestUtils.assertAttributeEventuallyNonNull(javaProcess, EnrichedVanillaJavaAppImpl.AVG1);
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/software/base/src/test/java/org/apache/brooklyn/entity/software/base/SameServerEntityTest.java
----------------------------------------------------------------------
diff --git a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/SameServerEntityTest.java b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/SameServerEntityTest.java
index 23b56fb..c9a0d5c 100644
--- a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/SameServerEntityTest.java
+++ b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/SameServerEntityTest.java
@@ -64,8 +64,6 @@ public class SameServerEntityTest {
public void testUsesSameMachineLocationForEachChild() throws Exception {
Entity child1 = entity.addChild(EntitySpec.create(TestEntity.class));
Entity child2 = entity.addChild(EntitySpec.create(TestEntity.class));
- Entities.manage(child1);
- Entities.manage(child2);
app.start(ImmutableList.of(loc));
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/software/base/src/test/java/org/apache/brooklyn/entity/software/base/VanillaSoftwareProcessAndChildrenIntegrationTest.java
----------------------------------------------------------------------
diff --git a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/VanillaSoftwareProcessAndChildrenIntegrationTest.java b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/VanillaSoftwareProcessAndChildrenIntegrationTest.java
index f6e8bf0..228c441 100644
--- a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/VanillaSoftwareProcessAndChildrenIntegrationTest.java
+++ b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/VanillaSoftwareProcessAndChildrenIntegrationTest.java
@@ -187,7 +187,6 @@ public class VanillaSoftwareProcessAndChildrenIntegrationTest {
);
p2 = p1.addChild(EntitySpec.create(VanillaSoftwareProcess.class)
.configure(VanillaSoftwareProcess.LAUNCH_COMMAND, childCmd));
- Entities.manage(p2);
log.info("testing "+JavaClassNames.callerNiceClassAndMethod(1)+", using "+p1+" and "+p2);
}
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/location/WinRmMachineLocationLiveTest.java
----------------------------------------------------------------------
diff --git a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/location/WinRmMachineLocationLiveTest.java b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/location/WinRmMachineLocationLiveTest.java
index 615eda7..4eab220 100644
--- a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/location/WinRmMachineLocationLiveTest.java
+++ b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/location/WinRmMachineLocationLiveTest.java
@@ -101,6 +101,9 @@ public class WinRmMachineLocationLiveTest {
loc = WindowsTestFixture.setUpWindowsLocation(mgmt);
machine = loc.obtain(ImmutableMap.of());
+
+ LOG.info("PROVISIONED: "+machine.getAddress()+":"+machine.config().get(WinRmMachineLocation.WINRM_PORT)
+ +", "+machine.getUser()+":"+machine.config().get(WinRmMachineLocation.PASSWORD));
}
@AfterClass(alwaysRun=true)
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/software/monitoring/src/test/java/org/apache/brooklyn/entity/monitoring/monit/MonitIntegrationTest.java
----------------------------------------------------------------------
diff --git a/software/monitoring/src/test/java/org/apache/brooklyn/entity/monitoring/monit/MonitIntegrationTest.java b/software/monitoring/src/test/java/org/apache/brooklyn/entity/monitoring/monit/MonitIntegrationTest.java
index 685f662..f19e6b9 100644
--- a/software/monitoring/src/test/java/org/apache/brooklyn/entity/monitoring/monit/MonitIntegrationTest.java
+++ b/software/monitoring/src/test/java/org/apache/brooklyn/entity/monitoring/monit/MonitIntegrationTest.java
@@ -88,7 +88,7 @@ public class MonitIntegrationTest extends BrooklynAppLiveTestSupport {
public void test_monitorMySql() throws Exception {
SameServerEntity sameServerEntity = app.createAndManageChild(EntitySpec.create(SameServerEntity.class));
MySqlNode mySqlNode = sameServerEntity.addChild(EntitySpec.create(MySqlNode.class));
- Entities.manage(mySqlNode);
+
Function<String, Map<String, Object>> controlFileSubstitutionsFunction = new Function<String, Map<String, Object>>() {
public Map<String, Object> apply(String input) {
return ImmutableMap.<String, Object>of("targetPidFile", input);
@@ -99,7 +99,7 @@ public class MonitIntegrationTest extends BrooklynAppLiveTestSupport {
.configure(MonitNode.CONTROL_FILE_SUBSTITUTIONS, DependentConfiguration.valueWhenAttributeReady(mySqlNode,
SoftwareProcess.PID_FILE, controlFileSubstitutionsFunction));
final MonitNode monitNode = sameServerEntity.addChild(monitSpec);
- Entities.manage(monitNode);
+
app.start(ImmutableSet.of(loc));
LOG.info("Monit and MySQL started");
EntityTestUtils.assertAttributeEqualsEventually(monitNode, MonitNode.MONIT_TARGET_PROCESS_STATUS, "Running");
@@ -145,7 +145,7 @@ public class MonitIntegrationTest extends BrooklynAppLiveTestSupport {
.configure(MySqlNode.INSTALL_DIR, mySqlInstallDir)
.configure(MySqlNode.RUN_DIR, mySqlRunDir)
.configure(MySqlNode.DATA_DIR, mySqlDataDir));
- Entities.manage(mySqlNode);
+
Function<String, Map<String, Object>> controlFileSubstitutionsFunction = new Function<String, Map<String, Object>>() {
public Map<String, Object> apply(String input) {
return ImmutableMap.<String, Object>of(
@@ -158,12 +158,11 @@ public class MonitIntegrationTest extends BrooklynAppLiveTestSupport {
}
};
- EntitySpec<MonitNode> monitSpec = EntitySpec.create(MonitNode.class)
+ final MonitNode monitNode = sameServerEntity.addChild(EntitySpec.create(MonitNode.class)
.configure(MonitNode.CONTROL_FILE_URL, "classpath:///org/apache/brooklyn/entity/monitoring/monit/monitmysqlwithrestart.monitrc")
.configure(MonitNode.CONTROL_FILE_SUBSTITUTIONS, DependentConfiguration.valueWhenAttributeReady(mySqlNode,
- SoftwareProcess.PID_FILE, controlFileSubstitutionsFunction));
- final MonitNode monitNode = sameServerEntity.addChild(monitSpec);
- Entities.manage(monitNode);
+ SoftwareProcess.PID_FILE, controlFileSubstitutionsFunction)));
+
app.start(ImmutableSet.of(loc));
LOG.info("Monit and MySQL started");
final String[] initialPid = {""};
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/software/network/src/test/java/org/apache/brooklyn/entity/network/bind/BindDnsServerLiveTest.java
----------------------------------------------------------------------
diff --git a/software/network/src/test/java/org/apache/brooklyn/entity/network/bind/BindDnsServerLiveTest.java b/software/network/src/test/java/org/apache/brooklyn/entity/network/bind/BindDnsServerLiveTest.java
index bff8068..56273c7 100644
--- a/software/network/src/test/java/org/apache/brooklyn/entity/network/bind/BindDnsServerLiveTest.java
+++ b/software/network/src/test/java/org/apache/brooklyn/entity/network/bind/BindDnsServerLiveTest.java
@@ -59,8 +59,6 @@ public class BindDnsServerLiveTest {
dns = sse.addChild((EntitySpec.create(BindDnsServer.class)
.configure(BindDnsServer.ENTITY_FILTER, Predicates.instanceOf(EmptySoftwareProcess.class))
.configure(BindDnsServer.HOSTNAME_SENSOR, PrefixAndIdEnricher.SENSOR)));
- Entities.manage(cluster);
- Entities.manage(dns);
app.start(ImmutableList.of(testLocation));
assertAttributeEqualsEventually(dns, Attributes.SERVICE_UP, true);
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/software/webapp/src/test/java/org/apache/brooklyn/entity/proxy/AbstractControllerTest.java
----------------------------------------------------------------------
diff --git a/software/webapp/src/test/java/org/apache/brooklyn/entity/proxy/AbstractControllerTest.java b/software/webapp/src/test/java/org/apache/brooklyn/entity/proxy/AbstractControllerTest.java
index ff84dce..7e98d41 100644
--- a/software/webapp/src/test/java/org/apache/brooklyn/entity/proxy/AbstractControllerTest.java
+++ b/software/webapp/src/test/java/org/apache/brooklyn/entity/proxy/AbstractControllerTest.java
@@ -104,7 +104,6 @@ public class AbstractControllerTest extends BrooklynAppUnitTestSupport {
@Test
public void testUpdateCalledWhenChildHostnameAndPortChanges() throws Exception {
TestEntity child = cluster.addChild(EntitySpec.create(TestEntity.class));
- Entities.manage(child);
cluster.addMember(child);
List<Collection<String>> u = Lists.newArrayList(controller.getUpdates());
@@ -213,7 +212,6 @@ public class AbstractControllerTest extends BrooklynAppUnitTestSupport {
controller.start(Arrays.asList(loc));
TestEntity child = cluster.addChild(EntitySpec.create(TestEntity.class));
- Entities.manage(child);
cluster.addMember(child);
List<Collection<String>> u = Lists.newArrayList(controller.getUpdates());
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/software/webapp/src/test/java/org/apache/brooklyn/entity/proxy/nginx/NginxClusterIntegrationTest.java
----------------------------------------------------------------------
diff --git a/software/webapp/src/test/java/org/apache/brooklyn/entity/proxy/nginx/NginxClusterIntegrationTest.java b/software/webapp/src/test/java/org/apache/brooklyn/entity/proxy/nginx/NginxClusterIntegrationTest.java
index f7ee033..4c5d85b 100644
--- a/software/webapp/src/test/java/org/apache/brooklyn/entity/proxy/nginx/NginxClusterIntegrationTest.java
+++ b/software/webapp/src/test/java/org/apache/brooklyn/entity/proxy/nginx/NginxClusterIntegrationTest.java
@@ -134,12 +134,10 @@ public class NginxClusterIntegrationTest extends BrooklynAppLiveTestSupport {
.configure("initialSize", 1)
.configure(JavaWebAppService.NAMED_WARS, ImmutableList.of(getTestWar())));
- UrlMapping urlMapping = entityManager.createEntity(EntitySpec.create(UrlMapping.class)
+ UrlMapping urlMapping = urlMappings.addChild(EntitySpec.create(UrlMapping.class)
.configure("domain", "localhost")
.configure("path", "/hello-world($|/.*)")
- .configure("target", c1)
- .parent(urlMappings));
- Entities.manage(urlMapping);
+ .configure("target", c1));
loadBalancerCluster = app.createAndManageChild(EntitySpec.create(LoadBalancerCluster.class)
.configure("urlMappings", urlMappings)
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/software/webapp/src/test/java/org/apache/brooklyn/entity/proxy/nginx/NginxRebindIntegrationTest.java
----------------------------------------------------------------------
diff --git a/software/webapp/src/test/java/org/apache/brooklyn/entity/proxy/nginx/NginxRebindIntegrationTest.java b/software/webapp/src/test/java/org/apache/brooklyn/entity/proxy/nginx/NginxRebindIntegrationTest.java
index 4eb0a9a..e9bc684 100644
--- a/software/webapp/src/test/java/org/apache/brooklyn/entity/proxy/nginx/NginxRebindIntegrationTest.java
+++ b/software/webapp/src/test/java/org/apache/brooklyn/entity/proxy/nginx/NginxRebindIntegrationTest.java
@@ -34,7 +34,6 @@ import org.apache.brooklyn.api.entity.EntitySpec;
import org.apache.brooklyn.api.entity.Group;
import org.apache.brooklyn.api.location.LocationSpec;
import org.apache.brooklyn.api.mgmt.ManagementContext;
-import org.apache.brooklyn.core.entity.Entities;
import org.apache.brooklyn.core.entity.lifecycle.Lifecycle;
import org.apache.brooklyn.core.mgmt.rebind.RebindOptions;
import org.apache.brooklyn.core.mgmt.rebind.RebindTestFixtureWithApp;
@@ -238,12 +237,10 @@ public class NginxRebindIntegrationTest extends RebindTestFixtureWithApp {
.configure(DynamicCluster.MEMBER_SPEC, EntitySpec.create(Tomcat8Server.class).configure("war", getTestWar()))
.configure("initialSize", 1));
- UrlMapping origMapping = origApp.getManagementContext().getEntityManager().createEntity(EntitySpec.create(UrlMapping.class)
+ UrlMapping origMapping = origUrlMappingsGroup.addChild(EntitySpec.create(UrlMapping.class)
.configure("domain", "localhost1")
.configure("target", origServerPool)
- .configure("rewrites", ImmutableList.of(new UrlRewriteRule("/foo/(.*)", "/$1")))
- .parent(origUrlMappingsGroup));
- Entities.manage(origMapping);
+ .configure("rewrites", ImmutableList.of(new UrlRewriteRule("/foo/(.*)", "/$1"))));
NginxController origNginx = origApp.createAndManageChild(EntitySpec.create(NginxController.class)
.configure("domain", "localhost")
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/software/webapp/src/test/java/org/apache/brooklyn/entity/proxy/nginx/NginxUrlMappingIntegrationTest.java
----------------------------------------------------------------------
diff --git a/software/webapp/src/test/java/org/apache/brooklyn/entity/proxy/nginx/NginxUrlMappingIntegrationTest.java b/software/webapp/src/test/java/org/apache/brooklyn/entity/proxy/nginx/NginxUrlMappingIntegrationTest.java
index 11672cf..1aee752 100644
--- a/software/webapp/src/test/java/org/apache/brooklyn/entity/proxy/nginx/NginxUrlMappingIntegrationTest.java
+++ b/software/webapp/src/test/java/org/apache/brooklyn/entity/proxy/nginx/NginxUrlMappingIntegrationTest.java
@@ -125,35 +125,29 @@ public class NginxUrlMappingIntegrationTest extends BrooklynAppLiveTestSupport {
.configure("initialSize", 1)
.configure(DynamicCluster.MEMBER_SPEC, EntitySpec.create(Tomcat8Server.class).configure("httpPort", "8100+"))
.configure(JavaWebAppService.ROOT_WAR, getTestWar()));
- UrlMapping u0 = entityManager.createEntity(EntitySpec.create(UrlMapping.class)
+ UrlMapping u0 = urlMappingsGroup.addChild(EntitySpec.create(UrlMapping.class)
.configure("domain", "localhost1")
- .configure("target", c0)
- .parent(urlMappingsGroup));
- Entities.manage(u0);
+ .configure("target", c0));
//cluster 1 at localhost2 /hello-world/
DynamicCluster c1 = app.createAndManageChild(EntitySpec.create(DynamicCluster.class)
.configure("initialSize", 1)
.configure(DynamicCluster.MEMBER_SPEC, EntitySpec.create(Tomcat8Server.class).configure("httpPort", "8100+"))
.configure(JavaWebAppService.NAMED_WARS, ImmutableList.of(getTestWar())));
- UrlMapping u1 = entityManager.createEntity(EntitySpec.create(UrlMapping.class)
+ UrlMapping u1 = urlMappingsGroup.addChild(EntitySpec.create(UrlMapping.class)
.configure("domain", "localhost2")
.configure("path", "/hello-world($|/.*)")
- .configure("target", c1)
- .parent(urlMappingsGroup));
- Entities.manage(u1);
+ .configure("target", c1));
// cluster 2 at localhost3 /c2/ and mapping /hello/xxx to /hello/new xxx
DynamicCluster c2 = app.createAndManageChild(EntitySpec.create(DynamicCluster.class)
.configure("initialSize", 1)
.configure(DynamicCluster.MEMBER_SPEC, EntitySpec.create(Tomcat8Server.class).configure("httpPort", "8100+")));
- UrlMapping u2 = entityManager.createEntity(EntitySpec.create(UrlMapping.class)
+ UrlMapping u2 = urlMappingsGroup.addChild(EntitySpec.create(UrlMapping.class)
.configure("domain", "localhost3")
.configure("path", "/c2($|/.*)")
.configure("target", c2)
- .configure("rewrites", ImmutableList.of(new UrlRewriteRule("(.*/|)(hello/)(.*)", "$1$2new $3").setBreak()))
- .parent(urlMappingsGroup));
- Entities.manage(u2);
+ .configure("rewrites", ImmutableList.of(new UrlRewriteRule("(.*/|)(hello/)(.*)", "$1$2new $3").setBreak())));
// FIXME rewrite not a config
app.start(ImmutableList.of(localLoc));
@@ -208,22 +202,18 @@ public class NginxUrlMappingIntegrationTest extends BrooklynAppLiveTestSupport {
DynamicCluster c0 = app.createAndManageChild(EntitySpec.create(DynamicCluster.class)
.configure("initialSize", 1)
.configure(DynamicCluster.MEMBER_SPEC, EntitySpec.create(Tomcat8Server.class).configure("httpPort", "8100+")));
- UrlMapping u0 = entityManager.createEntity(EntitySpec.create(UrlMapping.class)
+ UrlMapping u0 = urlMappingsGroup.addChild(EntitySpec.create(UrlMapping.class)
.configure("domain", "localhost")
.configure("path", "/atC0($|/.*)")
- .configure("target", c0)
- .parent(urlMappingsGroup));
- Entities.manage(u0);
+ .configure("target", c0));
DynamicCluster c1 = app.createAndManageChild(EntitySpec.create(DynamicCluster.class)
.configure("initialSize", 1)
.configure(DynamicCluster.MEMBER_SPEC, EntitySpec.create(Tomcat8Server.class).configure("httpPort", "8100+")));
- UrlMapping u1 = entityManager.createEntity(EntitySpec.create(UrlMapping.class)
+ UrlMapping u1 = urlMappingsGroup.addChild(EntitySpec.create(UrlMapping.class)
.configure("domain", "localhost")
.configure("path", "/atC1($|/.*)")
- .configure("target", c1)
- .parent(urlMappingsGroup));
- Entities.manage(u1);
+ .configure("target", c1));
nginx = app.createAndManageChild(EntitySpec.create(NginxController.class)
.configure("domain", "localhost")
@@ -262,11 +252,9 @@ public class NginxUrlMappingIntegrationTest extends BrooklynAppLiveTestSupport {
.configure("initialSize", 1)
.configure(DynamicCluster.MEMBER_SPEC, EntitySpec.create(Tomcat8Server.class).configure("httpPort", "8100+"))
.configure(JavaWebAppService.ROOT_WAR, getTestWar()));
- UrlMapping u0 = entityManager.createEntity(EntitySpec.create(UrlMapping.class)
+ UrlMapping u0 = urlMappingsGroup.addChild(EntitySpec.create(UrlMapping.class)
.configure("domain", "localhost2")
- .configure("target", c0)
- .parent(urlMappingsGroup));
- Entities.manage(u0);
+ .configure("target", c0));
nginx = app.createAndManageChild(EntitySpec.create(NginxController.class)
.configure("domain", "localhost")
@@ -301,11 +289,9 @@ public class NginxUrlMappingIntegrationTest extends BrooklynAppLiveTestSupport {
.configure("initialSize", 1)
.configure(DynamicCluster.MEMBER_SPEC, EntitySpec.create(Tomcat8Server.class).configure("httpPort", "8100+"))
.configure(JavaWebAppService.NAMED_WARS, ImmutableList.of(getTestWar())));
- UrlMapping u1 = entityManager.createEntity(EntitySpec.create(UrlMapping.class)
+ UrlMapping u1 = urlMappingsGroup.addChild(EntitySpec.create(UrlMapping.class)
.configure("domain", "localhost1")
- .configure("target", c1)
- .parent(urlMappingsGroup));
- Entities.manage(u1);
+ .configure("target", c1));
nginx = app.createAndManageChild(EntitySpec.create(NginxController.class)
.configure("serverPool", coreCluster)
@@ -338,15 +324,13 @@ public class NginxUrlMappingIntegrationTest extends BrooklynAppLiveTestSupport {
.configure("initialSize", 1)
.configure(DynamicCluster.MEMBER_SPEC, EntitySpec.create(Tomcat8Server.class).configure("httpPort", "8100+"))
.configure(JavaWebAppService.ROOT_WAR, getTestWar()));
- UrlMapping u0 = entityManager.createEntity(EntitySpec.create(UrlMapping.class)
+ UrlMapping u0 = urlMappingsGroup.addChild(EntitySpec.create(UrlMapping.class)
.configure("domain", "localhost1")
- .configure("target", c0)
- .parent(urlMappingsGroup));
+ .configure("target", c0));
u0.addRewrite("/goodbye/al(.*)", "/hello/al$1");
u0.addRewrite(new UrlRewriteRule("/goodbye(|/.*)$", "/hello$1").setBreak());
u0.addRewrite("(.*)/hello/al(.*)", "$1/hello/Big Al$2");
u0.addRewrite("/hello/an(.*)", "/hello/Sir An$1");
- Entities.manage(u0);
app.start(ImmutableList.of(localLoc));
final int port = nginx.getAttribute(NginxController.PROXY_HTTP_PORT);
@@ -391,11 +375,9 @@ public class NginxUrlMappingIntegrationTest extends BrooklynAppLiveTestSupport {
.configure("initialSize", 1)
.configure(DynamicCluster.MEMBER_SPEC, EntitySpec.create(Tomcat8Server.class).configure("httpPort", "8100+"))
.configure(JavaWebAppService.ROOT_WAR, getTestWar()));
- final UrlMapping u1 = entityManager.createEntity(EntitySpec.create(UrlMapping.class)
+ final UrlMapping u1 = urlMappingsGroup.addChild(EntitySpec.create(UrlMapping.class)
.configure("domain", "localhost1")
- .configure("target", c1)
- .parent(urlMappingsGroup));
- Entities.manage(u1);
+ .configure("target", c1));
app.start(ImmutableList.of(localLoc));
int port = nginx.getAttribute(NginxController.PROXY_HTTP_PORT);
@@ -455,12 +437,10 @@ public class NginxUrlMappingIntegrationTest extends BrooklynAppLiveTestSupport {
DynamicCluster c0 = app.createAndManageChild(EntitySpec.create(DynamicCluster.class)
.configure("initialSize", 1)
.configure(DynamicCluster.MEMBER_SPEC, EntitySpec.create(Tomcat8Server.class).configure("httpPort", "8100+")));
- UrlMapping u0 = entityManager.createEntity(EntitySpec.create(UrlMapping.class)
+ UrlMapping u0 = urlMappingsGroup.addChild(EntitySpec.create(UrlMapping.class)
.configure("domain", "localhost")
.configure("path", "/atC0($|/.*)")
- .configure("target", c0)
- .parent(urlMappingsGroup));
- Entities.manage(u0);
+ .configure("target", c0));
nginx = app.createAndManageChild(EntitySpec.create(NginxController.class)
.configure("cluster", nullCluster)
@@ -497,11 +477,9 @@ public class NginxUrlMappingIntegrationTest extends BrooklynAppLiveTestSupport {
.configure("initialSize", 1)
.configure(DynamicCluster.MEMBER_SPEC, EntitySpec.create(Tomcat8Server.class).configure("httpPort", "8100+"))
.configure(JavaWebAppService.ROOT_WAR, getTestWar()));
- UrlMapping u0 = entityManager.createEntity(EntitySpec.create(UrlMapping.class)
+ UrlMapping u0 = urlMappingsGroup.addChild(EntitySpec.create(UrlMapping.class)
.configure("domain", "localhost1")
- .configure("target", c0)
- .parent(urlMappingsGroup));
- Entities.manage(u0);
+ .configure("target", c0));
nginx = app.createAndManageChild(EntitySpec.create(NginxController.class)
.configure("urlMappings", urlMappingsGroup));
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/usage/qa/src/test/java/org/apache/brooklyn/qa/load/LoadTest.java
----------------------------------------------------------------------
diff --git a/usage/qa/src/test/java/org/apache/brooklyn/qa/load/LoadTest.java b/usage/qa/src/test/java/org/apache/brooklyn/qa/load/LoadTest.java
index 8567b8a..6a57570 100644
--- a/usage/qa/src/test/java/org/apache/brooklyn/qa/load/LoadTest.java
+++ b/usage/qa/src/test/java/org/apache/brooklyn/qa/load/LoadTest.java
@@ -224,12 +224,11 @@ public class LoadTest {
}
}
- protected <T extends StartableApplication> Callable<T> newProvisionAppTask(final ManagementContext managementContext, final EntitySpec<T> entitySpec) {
+ protected <T extends StartableApplication> Callable<T> newProvisionAppTask(final ManagementContext managementContext, final EntitySpec<T> appSpec) {
return new Callable<T>() {
public T call() {
Stopwatch stopwatch = Stopwatch.createStarted();
- T app = managementContext.getEntityManager().createEntity(entitySpec);
- Entities.startManagement(app, managementContext);
+ T app = managementContext.getEntityManager().createEntity(appSpec);
app.start(ImmutableList.of(localhost));
Duration duration = Duration.of(stopwatch.elapsed(TimeUnit.MILLISECONDS), TimeUnit.MILLISECONDS);
LOG.info("Provisioning time: "+duration);
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/usage/rest-server/src/test/java/org/apache/brooklyn/rest/domain/ApplicationTest.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/test/java/org/apache/brooklyn/rest/domain/ApplicationTest.java b/usage/rest-server/src/test/java/org/apache/brooklyn/rest/domain/ApplicationTest.java
index b09d829..c992ec2 100644
--- a/usage/rest-server/src/test/java/org/apache/brooklyn/rest/domain/ApplicationTest.java
+++ b/usage/rest-server/src/test/java/org/apache/brooklyn/rest/domain/ApplicationTest.java
@@ -30,10 +30,12 @@ import java.util.Map;
import org.apache.brooklyn.api.entity.Entity;
import org.apache.brooklyn.api.mgmt.ManagementContext;
import org.apache.brooklyn.core.entity.Entities;
-import org.apache.brooklyn.core.test.entity.TestApplicationImpl;
-import org.testng.Assert;
+import org.apache.brooklyn.core.test.entity.LocalManagementContextForTests;
+import org.apache.brooklyn.core.test.entity.TestApplication;
+import org.apache.brooklyn.test.Asserts;
import org.testng.annotations.Test;
+import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
@@ -79,13 +81,11 @@ public class ApplicationTest {
@Test
public void testAppInAppTest() throws IOException {
- TestApplicationImpl app = new TestApplicationImpl();
- ManagementContext mgmt = Entities.startManagement(app);
+ ManagementContext mgmt = LocalManagementContextForTests.newInstance();
try {
- Entity e2 = app.addChild(new TestApplicationImpl());
- Entities.manage(e2);
- if (mgmt.getApplications().size()!=1)
- Assert.fail("Apps in Apps should not be listed at top level: "+mgmt.getApplications());
+ TestApplication app = mgmt.getEntityManager().createEntity(org.apache.brooklyn.api.entity.EntitySpec.create(TestApplication.class));
+ TestApplication e2 = app.addChild(org.apache.brooklyn.api.entity.EntitySpec.create(TestApplication.class));
+ Asserts.assertEqualsIgnoringOrder(mgmt.getApplications(), ImmutableList.of(app));
} finally {
Entities.destroyAll(mgmt);
}
[2/5] incubator-brooklyn git commit: Enrichers: support producer as
Task for deferred supplier
Posted by ha...@apache.org.
Enrichers: support producer as Task for deferred supplier
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/9402f850
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/9402f850
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/9402f850
Branch: refs/heads/master
Commit: 9402f8508c67fa520be4c1d67f9e0d18f82b589b
Parents: f380b58
Author: Aled Sage <al...@gmail.com>
Authored: Thu Oct 15 16:34:57 2015 +0200
Committer: Aled Sage <al...@gmail.com>
Committed: Thu Oct 15 21:19:34 2015 +0100
----------------------------------------------------------------------
.../brooklyn/enricher/stock/Enrichers.java | 13 +-
.../stock/EnricherWithDeferredSupplierTest.java | 132 +++++++++++++++++++
2 files changed, 144 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9402f850/core/src/main/java/org/apache/brooklyn/enricher/stock/Enrichers.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/enricher/stock/Enrichers.java b/core/src/main/java/org/apache/brooklyn/enricher/stock/Enrichers.java
index 64da60b..2ce2b21 100644
--- a/core/src/main/java/org/apache/brooklyn/enricher/stock/Enrichers.java
+++ b/core/src/main/java/org/apache/brooklyn/enricher/stock/Enrichers.java
@@ -27,6 +27,7 @@ import java.util.Map;
import java.util.Set;
import org.apache.brooklyn.api.entity.Entity;
+import org.apache.brooklyn.api.mgmt.Task;
import org.apache.brooklyn.api.sensor.AttributeSensor;
import org.apache.brooklyn.api.sensor.Enricher;
import org.apache.brooklyn.api.sensor.EnricherSpec;
@@ -493,6 +494,7 @@ public class Enrichers {
protected final Boolean propagatingAll;
protected final Iterable<? extends Sensor<?>> propagatingAllBut;
protected Entity fromEntity;
+ protected Task<? extends Entity> fromEntitySupplier;
public AbstractPropagatorBuilder(Map<? extends Sensor<?>, ? extends Sensor<?>> vals) {
super(Propagator.class);
@@ -520,6 +522,10 @@ public class Enrichers {
this.fromEntity = checkNotNull(val);
return self();
}
+ public B from(Task<? extends Entity> val) {
+ this.fromEntitySupplier = checkNotNull(val);
+ return self();
+ }
@Override
protected String getDefaultUniqueTag() {
List<String> summary = MutableList.of();
@@ -539,11 +545,15 @@ public class Enrichers {
summary.add("ALL_BUT:"+com.google.common.base.Joiner.on(",").join(allBut));
}
- return "propagating["+fromEntity.getId()+":"+com.google.common.base.Joiner.on(",").join(summary)+"]";
+ // TODO What to use as the entity id if using fromEntitySupplier?
+ String fromId = (fromEntity != null) ? fromEntity.getId() : fromEntitySupplier.getId();
+
+ return "propagating["+fromId+":"+com.google.common.base.Joiner.on(",").join(summary)+"]";
}
public EnricherSpec<? extends Enricher> build() {
return super.build().configure(MutableMap.builder()
.putIfNotNull(Propagator.PRODUCER, fromEntity)
+ .putIfNotNull(Propagator.PRODUCER, fromEntitySupplier)
.putIfNotNull(Propagator.SENSOR_MAPPING, propagating)
.putIfNotNull(Propagator.PROPAGATING_ALL, propagatingAll)
.putIfNotNull(Propagator.PROPAGATING_ALL_BUT, propagatingAllBut)
@@ -555,6 +565,7 @@ public class Enrichers {
return Objects.toStringHelper(this)
.omitNullValues()
.add("fromEntity", fromEntity)
+ .add("fromEntitySupplier", fromEntitySupplier)
.add("propagating", propagating)
.add("propagatingAll", propagatingAll)
.add("propagatingAllBut", propagatingAllBut)
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9402f850/core/src/test/java/org/apache/brooklyn/enricher/stock/EnricherWithDeferredSupplierTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/enricher/stock/EnricherWithDeferredSupplierTest.java b/core/src/test/java/org/apache/brooklyn/enricher/stock/EnricherWithDeferredSupplierTest.java
new file mode 100644
index 0000000..9727403
--- /dev/null
+++ b/core/src/test/java/org/apache/brooklyn/enricher/stock/EnricherWithDeferredSupplierTest.java
@@ -0,0 +1,132 @@
+/*
+ * 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.enricher.stock;
+
+import java.util.Collection;
+import java.util.NoSuchElementException;
+import java.util.concurrent.Callable;
+
+import org.apache.brooklyn.api.entity.Entity;
+import org.apache.brooklyn.api.entity.EntitySpec;
+import org.apache.brooklyn.api.mgmt.Task;
+import org.apache.brooklyn.api.mgmt.TaskFactory;
+import org.apache.brooklyn.api.sensor.AttributeSensor;
+import org.apache.brooklyn.config.ConfigKey;
+import org.apache.brooklyn.core.config.ConfigKeys;
+import org.apache.brooklyn.core.effector.EffectorTasks;
+import org.apache.brooklyn.core.entity.Entities;
+import org.apache.brooklyn.core.entity.EntityInternal;
+import org.apache.brooklyn.core.entity.EntityPredicates;
+import org.apache.brooklyn.core.location.SimulatedLocation;
+import org.apache.brooklyn.core.mgmt.BrooklynTaskTags;
+import org.apache.brooklyn.core.sensor.BasicAttributeSensor;
+import org.apache.brooklyn.core.test.BrooklynAppUnitTestSupport;
+import org.apache.brooklyn.core.test.entity.TestEntity;
+import org.apache.brooklyn.test.EntityTestUtils;
+import org.apache.brooklyn.util.core.task.DeferredSupplier;
+import org.apache.brooklyn.util.core.task.TaskBuilder;
+import org.apache.brooklyn.util.exceptions.Exceptions;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.testng.annotations.Test;
+
+import com.google.common.base.Optional;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Iterables;
+
+public class EnricherWithDeferredSupplierTest extends BrooklynAppUnitTestSupport {
+
+ public static final Logger log = LoggerFactory.getLogger(EnricherWithDeferredSupplierTest.class);
+
+ protected static final ConfigKey<String> TAG = ConfigKeys.newStringConfigKey("mytag");
+
+ TestEntity producer;
+ TestEntity target;
+ AttributeSensor<Integer> sensor;
+
+ @Test
+ public void testProducerUsingDeferredSupplier() throws Exception {
+ producer = app.createAndManageChild(EntitySpec.create(TestEntity.class)
+ .configure(TAG, "myproducer"));
+ target = app.createAndManageChild(EntitySpec.create(TestEntity.class));
+ sensor = new BasicAttributeSensor<Integer>(Integer.class, "int.sensor.a");
+
+ app.start(ImmutableList.of(new SimulatedLocation()));
+
+ producer.sensors().set(sensor, 3);
+
+ target.enrichers().add(Enrichers.builder()
+ .propagating(sensor)
+ .from(new EntityDeferredSupplier("myproducer").newTask())
+ .build());
+
+ EntityTestUtils.assertAttributeEqualsEventually(target, sensor, 3);
+ }
+
+ // TODO This is a cut-down version of DslComponent, from the camp project
+ public static class EntityDeferredSupplier implements DeferredSupplier<Entity>, TaskFactory<Task<Entity>> {
+
+ private static final Logger log = LoggerFactory.getLogger(EntityDeferredSupplier.class);
+
+ private final String tag;
+
+ EntityDeferredSupplier(String tag) {
+ this.tag = tag;
+ }
+
+ protected final static EntityInternal entity() {
+ // rely on implicit ThreadLocal for now
+ return (EntityInternal) EffectorTasks.findEntity();
+ }
+
+ @Override
+ public final synchronized Entity get() {
+ try {
+ if (log.isDebugEnabled())
+ log.debug("Queuing task to resolve child "+tag);
+ Entity result = Entities.submit(entity(), newTask()).get();
+ if (log.isDebugEnabled())
+ log.debug("Resolved "+result+" from child "+tag);
+ return result;
+ } catch (Exception e) {
+ throw Exceptions.propagate(e);
+ }
+ }
+
+ @Override
+ public Task<Entity> newTask() {
+ return TaskBuilder.<Entity>builder()
+ .displayName(toString())
+ .tag(BrooklynTaskTags.TRANSIENT_TASK_TAG)
+ .body(new Callable<Entity>() {
+ public Entity call() {
+ EntityInternal entity = entity();
+ Collection<Entity> entitiesToSearch = entity.getManagementContext().getEntityManager().getEntities();
+ Optional<Entity> result = Iterables.tryFind(entitiesToSearch, EntityPredicates.configEqualTo(TAG, tag));
+
+ if (result.isPresent()) {
+ return result.get();
+ } else {
+ throw new NoSuchElementException("No entity matching id " + tag+" in "+entitiesToSearch);
+ }
+ }})
+ .build();
+ }
+ }
+}
[5/5] incubator-brooklyn git commit: This closes #963
Posted by ha...@apache.org.
This closes #963
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/f1d90c63
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/f1d90c63
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/f1d90c63
Branch: refs/heads/master
Commit: f1d90c6385437508255ca37311aa419be4c23960
Parents: ddc3dd9 f1d8cba
Author: Hadrian Zbarcea <ha...@apache.org>
Authored: Sat Oct 17 12:05:24 2015 -0400
Committer: Hadrian Zbarcea <ha...@apache.org>
Committed: Sat Oct 17 12:05:24 2015 -0400
----------------------------------------------------------------------
.../brooklyn/core/entity/AbstractEntity.java | 7 +-
.../apache/brooklyn/core/entity/Entities.java | 41 ++-
.../core/entity/factory/ApplicationBuilder.java | 6 +-
.../core/mgmt/EntityManagementUtils.java | 2 -
.../core/mgmt/internal/LocalEntityManager.java | 6 +-
.../brooklyn/enricher/stock/Enrichers.java | 13 +-
.../entity/group/AbstractGroupImpl.java | 1 -
.../entity/group/DynamicClusterImpl.java | 5 +-
.../entity/group/DynamicFabricImpl.java | 4 +
.../entity/group/DynamicMultiGroupImpl.java | 1 -
.../entity/AbstractApplicationLegacyTest.java | 16 +-
.../brooklyn/core/entity/AttributeMapTest.java | 14 +-
.../core/entity/EntityAutomanagedTest.java | 329 +++++++++++++++++++
.../core/entity/EntityPreManagementTest.java | 146 --------
.../core/entity/hello/LocalEntitiesTest.java | 15 +-
.../internal/EntityConfigMapUsageTest.java | 6 +-
.../ApplicationBuilderOverridingTest.java | 15 +-
.../core/feed/ConfigToAttributesTest.java | 1 -
.../brooklyn/core/mgmt/ha/HotStandbyTest.java | 4 -
.../internal/LocalSubscriptionManagerTest.java | 6 -
.../mgmt/rebind/ActivePartialRebindTest.java | 3 -
.../core/mgmt/rebind/CheckpointEntityTest.java | 1 -
.../mgmt/rebind/RebindDynamicGroupTest.java | 1 -
.../core/test/entity/TestApplicationImpl.java | 5 +-
.../stock/CustomAggregatingEnricherTest.java | 11 +-
.../stock/EnricherWithDeferredSupplierTest.java | 132 ++++++++
.../brooklyn/enricher/stock/EnrichersTest.java | 3 -
.../entity/group/DynamicFabricTest.java | 4 +-
.../brooklyn/entity/group/DynamicGroupTest.java | 21 +-
.../entity/group/DynamicMultiGroupTest.java | 5 -
.../group/MembershipTrackingPolicyTest.java | 1 -
.../entity/stock/BasicStartableTest.java | 5 -
.../feed/ssh/SshFeedIntegrationTest.java | 11 +-
...lusterDatabaseExampleAppIntegrationTest.java | 1 -
.../BalanceableWorkerPoolTest.java | 1 -
.../BrooklynNodeUpgradeEffectorBody.java | 2 +-
.../BrooklynNodeIntegrationTest.java | 1 -
.../entity/brooklynnode/BrooklynNodeTest.java | 20 +-
.../entity/java/VanillaJavaAppRebindTest.java | 4 +-
.../software/base/SameServerEntityTest.java | 2 -
...ftwareProcessAndChildrenIntegrationTest.java | 1 -
.../location/WinRmMachineLocationLiveTest.java | 3 +
.../messaging/activemq/ActiveMQBrokerImpl.java | 2 -
.../messaging/kafka/KafkaClusterImpl.java | 2 -
.../entity/messaging/qpid/QpidBrokerImpl.java | 2 -
.../messaging/rabbit/RabbitBrokerImpl.java | 1 -
.../monitoring/monit/MonitIntegrationTest.java | 13 +-
.../network/bind/BindDnsServerLiveTest.java | 2 -
.../ControlledDynamicWebAppClusterImpl.java | 7 +-
.../entity/proxy/AbstractControllerTest.java | 2 -
.../nginx/NginxClusterIntegrationTest.java | 6 +-
.../proxy/nginx/NginxRebindIntegrationTest.java | 7 +-
.../nginx/NginxUrlMappingIntegrationTest.java | 66 ++--
.../BrooklynAssemblyTemplateInstantiator.java | 3 +-
.../brooklyn/launcher/BrooklynLauncher.java | 4 +
.../org/apache/brooklyn/qa/load/LoadTest.java | 5 +-
.../rest/util/BrooklynRestResourceUtils.java | 20 +-
.../brooklyn/rest/domain/ApplicationTest.java | 16 +-
.../util/BrooklynRestResourceUtilsTest.java | 37 ++-
59 files changed, 686 insertions(+), 385 deletions(-)
----------------------------------------------------------------------
[3/5] incubator-brooklyn git commit: Remove deprecated uses of
Entities.manage
Posted by ha...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/f1d8cba1/usage/rest-server/src/test/java/org/apache/brooklyn/rest/util/BrooklynRestResourceUtilsTest.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/test/java/org/apache/brooklyn/rest/util/BrooklynRestResourceUtilsTest.java b/usage/rest-server/src/test/java/org/apache/brooklyn/rest/util/BrooklynRestResourceUtilsTest.java
index d190614..0c7e849 100644
--- a/usage/rest-server/src/test/java/org/apache/brooklyn/rest/util/BrooklynRestResourceUtilsTest.java
+++ b/usage/rest-server/src/test/java/org/apache/brooklyn/rest/util/BrooklynRestResourceUtilsTest.java
@@ -24,9 +24,6 @@ import static org.testng.Assert.assertTrue;
import java.util.Map;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
import org.apache.brooklyn.api.catalog.Catalog;
import org.apache.brooklyn.api.entity.Application;
import org.apache.brooklyn.api.entity.Entity;
@@ -41,11 +38,16 @@ import org.apache.brooklyn.core.mgmt.internal.LocalManagementContext;
import org.apache.brooklyn.core.objs.proxy.EntityProxy;
import org.apache.brooklyn.core.policy.AbstractPolicy;
import org.apache.brooklyn.core.test.entity.LocalManagementContextForTests;
+import org.apache.brooklyn.core.test.entity.TestApplication;
+import org.apache.brooklyn.core.test.entity.TestEntity;
import org.apache.brooklyn.core.test.entity.TestEntityImpl;
import org.apache.brooklyn.entity.stock.BasicEntity;
import org.apache.brooklyn.rest.domain.ApplicationSpec;
import org.apache.brooklyn.rest.domain.EntitySpec;
import org.apache.brooklyn.util.collections.MutableMap;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
@@ -174,23 +176,22 @@ public class BrooklynRestResourceUtilsTest {
public void testNestedApplications() {
// hierarchy is: app -> subapp -> subentity (where subentity has a policy)
- SampleNoOpApplication app = new SampleNoOpApplication();
- app.setDisplayName("app");
-
- SampleNoOpApplication subapp = new SampleNoOpApplication();
- subapp.setDisplayName("subapp");
-
- TestEntityImpl subentity = new TestEntityImpl(MutableMap.of("displayName", "subentity"), subapp);
- subentity.policies().add(new MyPolicy(MutableMap.of("name", "mypolicy")));
- subentity.getApplication(); // force this to be cached
+ Application app = managementContext.getEntityManager().createEntity(org.apache.brooklyn.api.entity.EntitySpec.create(TestApplication.class)
+ .displayName("app")
+ .child(org.apache.brooklyn.api.entity.EntitySpec.create(TestApplication.class)
+ .displayName("subapp")
+ .child(org.apache.brooklyn.api.entity.EntitySpec.create(TestEntity.class)
+ .displayName("subentity")
+ .policy(org.apache.brooklyn.api.policy.PolicySpec.create(MyPolicy.class)
+ .displayName("mypolicy")))));
+
+ Application subapp = (Application) Iterables.getOnlyElement(app.getChildren());
+ TestEntity subentity = (TestEntity) Iterables.getOnlyElement(subapp.getChildren());
- app.addChild(subapp);
- Entities.startManagement(app, managementContext);
-
- EntityLocal subappRetrieved = util.getEntity(app.getId(), subapp.getId());
+ Entity subappRetrieved = util.getEntity(app.getId(), subapp.getId());
assertEquals(subappRetrieved.getDisplayName(), "subapp");
- EntityLocal subentityRetrieved = util.getEntity(app.getId(), subentity.getId());
+ Entity subentityRetrieved = util.getEntity(app.getId(), subentity.getId());
assertEquals(subentityRetrieved.getDisplayName(), "subentity");
Policy subappPolicy = util.getPolicy(app.getId(), subentity.getId(), "mypolicy");
@@ -207,6 +208,8 @@ public class BrooklynRestResourceUtilsTest {
}
public static class MyPolicy extends AbstractPolicy {
+ public MyPolicy() {
+ }
public MyPolicy(Map<String, ?> flags) {
super(flags);
}