You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2017/06/20 08:57:13 UTC
[2/4] brooklyn-server git commit: Delete deprecated ApplicationBuilder
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/52f9ebdd/core/src/test/java/org/apache/brooklyn/location/byon/FixedListMachineProvisioningLocationRebindTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/location/byon/FixedListMachineProvisioningLocationRebindTest.java b/core/src/test/java/org/apache/brooklyn/location/byon/FixedListMachineProvisioningLocationRebindTest.java
index caef64e..f8d8440 100644
--- a/core/src/test/java/org/apache/brooklyn/location/byon/FixedListMachineProvisioningLocationRebindTest.java
+++ b/core/src/test/java/org/apache/brooklyn/location/byon/FixedListMachineProvisioningLocationRebindTest.java
@@ -20,23 +20,16 @@ package org.apache.brooklyn.location.byon;
import static org.testng.Assert.assertEquals;
-import java.io.File;
import java.util.Set;
import javax.annotation.Nullable;
import org.apache.brooklyn.api.location.Location;
-import org.apache.brooklyn.api.mgmt.ManagementContext;
-import org.apache.brooklyn.core.entity.Entities;
-import org.apache.brooklyn.core.entity.factory.ApplicationBuilder;
import org.apache.brooklyn.core.location.LocationConfigKeys;
-import org.apache.brooklyn.core.mgmt.rebind.RebindTestUtils;
+import org.apache.brooklyn.core.mgmt.rebind.RebindTestFixtureWithApp;
import org.apache.brooklyn.core.test.entity.TestApplication;
-import org.apache.brooklyn.location.byon.FixedListMachineProvisioningLocation;
import org.apache.brooklyn.location.ssh.SshMachineLocation;
import org.apache.brooklyn.util.collections.MutableSet;
-import org.apache.brooklyn.util.os.Os;
-import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
@@ -44,19 +37,13 @@ import com.google.common.base.Function;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
-public class FixedListMachineProvisioningLocationRebindTest {
+public class FixedListMachineProvisioningLocationRebindTest extends RebindTestFixtureWithApp {
private FixedListMachineProvisioningLocation<SshMachineLocation> origLoc;
- private ClassLoader classLoader = getClass().getClassLoader();
- private ManagementContext origManagementContext;
- private TestApplication origApp;
- private TestApplication newApp;
- private File mementoDir;
@BeforeMethod(alwaysRun=true)
public void setUp() throws Exception {
- mementoDir = Os.newTempDir(getClass());
- origManagementContext = RebindTestUtils.newPersistingManagementContext(mementoDir, classLoader, 1);
+ super.setUp();
origLoc = new FixedListMachineProvisioningLocation.Builder(origManagementContext.getLocationManager())
.addAddresses("localhost", "127.0.0.1")
@@ -65,17 +52,9 @@ public class FixedListMachineProvisioningLocationRebindTest {
.keyData("myKeyData")
.keyPassphrase("myKeyPassphrase")
.build();
- origApp = ApplicationBuilder.newManagedApp(TestApplication.class, origManagementContext);
origApp.start(ImmutableList.of(origLoc));
}
- @AfterMethod(alwaysRun = true)
- public void tearDown() throws Exception {
- if (origManagementContext != null) Entities.destroyAll(origManagementContext);
- if (newApp != null) Entities.destroyAll(newApp.getManagementContext());
- if (mementoDir != null) RebindTestUtils.deleteMementoDir(mementoDir);
- }
-
@Test
public void testRebindPreservesConfig() throws Exception {
newApp = rebind();
@@ -112,11 +91,6 @@ public class FixedListMachineProvisioningLocationRebindTest {
assertLocationIdsEqual(newLoc.getAvailable(), origLoc.getAvailable());
}
- private TestApplication rebind() throws Exception {
- RebindTestUtils.stopPersistence(origApp);
- return (TestApplication) RebindTestUtils.rebind(mementoDir, getClass().getClassLoader());
- }
-
private void assertLocationIdsEqual(Iterable<? extends Location> actual, Iterable<? extends Location> expected) {
Function<Location, String> locationIdFunction = new Function<Location, String>() {
@Override public String apply(@Nullable Location input) {
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/52f9ebdd/core/src/test/java/org/apache/brooklyn/location/multi/MultiLocationRebindTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/location/multi/MultiLocationRebindTest.java b/core/src/test/java/org/apache/brooklyn/location/multi/MultiLocationRebindTest.java
index e26b210..6ebd492 100644
--- a/core/src/test/java/org/apache/brooklyn/location/multi/MultiLocationRebindTest.java
+++ b/core/src/test/java/org/apache/brooklyn/location/multi/MultiLocationRebindTest.java
@@ -18,27 +18,17 @@
*/
package org.apache.brooklyn.location.multi;
-import java.io.File;
import java.util.List;
-import org.apache.brooklyn.api.entity.EntitySpec;
import org.apache.brooklyn.api.location.Location;
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.factory.ApplicationBuilder;
import org.apache.brooklyn.core.location.cloud.AvailabilityZoneExtension;
-import org.apache.brooklyn.core.mgmt.rebind.RebindTestUtils;
-import org.apache.brooklyn.core.test.entity.TestApplication;
+import org.apache.brooklyn.core.mgmt.rebind.RebindTestFixtureWithApp;
import org.apache.brooklyn.location.byon.FixedListMachineProvisioningLocation;
-import org.apache.brooklyn.location.multi.MultiLocation;
import org.apache.brooklyn.location.ssh.SshMachineLocation;
import org.apache.brooklyn.test.Asserts;
import org.apache.brooklyn.util.collections.MutableSet;
import org.apache.brooklyn.util.net.Networking;
-import org.apache.brooklyn.util.os.Os;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import com.google.common.base.Function;
@@ -46,36 +36,14 @@ import com.google.common.base.Predicates;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
-public class MultiLocationRebindTest {
+public class MultiLocationRebindTest extends RebindTestFixtureWithApp {
- private ClassLoader classLoader = getClass().getClassLoader();
- private ManagementContext origManagementContext;
- private ManagementContext newManagementContext;
- private File mementoDir;
-
- private TestApplication origApp;
- private TestApplication newApp;
private SshMachineLocation mac1a;
private SshMachineLocation mac2a;
private FixedListMachineProvisioningLocation<SshMachineLocation> loc1;
private FixedListMachineProvisioningLocation<SshMachineLocation> loc2;
private MultiLocation<SshMachineLocation> multiLoc;
- @BeforeMethod(alwaysRun=true)
- public void setUp() throws Exception {
- mementoDir = Os.newTempDir(getClass());
- origManagementContext = RebindTestUtils.newPersistingManagementContext(mementoDir, classLoader, 1);
- origApp = ApplicationBuilder.newManagedApp(EntitySpec.create(TestApplication.class), origManagementContext);
- }
-
- @AfterMethod(alwaysRun=true)
- public void tearDown() throws Exception {
- if (origManagementContext != null) Entities.destroyAll(origManagementContext);
- if (newApp != null) Entities.destroyAll(newApp.getManagementContext());
- if (newManagementContext != null) Entities.destroyAll(newManagementContext);
- if (mementoDir != null) RebindTestUtils.deleteMementoDir(mementoDir);
- }
-
@SuppressWarnings("unchecked")
@Test
public void testRebindsMultiLocation() throws Exception {
@@ -98,7 +66,7 @@ public class MultiLocationRebindTest {
newApp = rebind();
newManagementContext = newApp.getManagementContext();
- MultiLocation newMultiLoc = (MultiLocation) Iterables.find(newManagementContext.getLocationManager().getLocations(), Predicates.instanceOf(MultiLocation.class));
+ MultiLocation<?> newMultiLoc = (MultiLocation<?>) Iterables.find(newManagementContext.getLocationManager().getLocations(), Predicates.instanceOf(MultiLocation.class));
AvailabilityZoneExtension azExtension = newMultiLoc.getExtension(AvailabilityZoneExtension.class);
List<Location> newSublLocs = azExtension.getAllSubLocations();
Iterable<String> newSubLocNames = Iterables.transform(newSublLocs, new Function<Location, String>() {
@@ -107,16 +75,4 @@ public class MultiLocationRebindTest {
}});
Asserts.assertEqualsIgnoringOrder(newSubLocNames, ImmutableList.of("loc1", "loc2"));
}
-
- private TestApplication rebind() throws Exception {
- return rebind(true);
- }
-
- private TestApplication rebind(boolean checkSerializable) throws Exception {
- RebindTestUtils.stopPersistence(origApp);
- if (checkSerializable) {
- RebindTestUtils.checkCurrentMementoSerializable(origApp);
- }
- return (TestApplication) RebindTestUtils.rebind(mementoDir, getClass().getClassLoader());
- }
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/52f9ebdd/launcher-common/src/main/java/org/apache/brooklyn/launcher/common/BasicLauncher.java
----------------------------------------------------------------------
diff --git a/launcher-common/src/main/java/org/apache/brooklyn/launcher/common/BasicLauncher.java b/launcher-common/src/main/java/org/apache/brooklyn/launcher/common/BasicLauncher.java
index 12f6833..03efc5d 100644
--- a/launcher-common/src/main/java/org/apache/brooklyn/launcher/common/BasicLauncher.java
+++ b/launcher-common/src/main/java/org/apache/brooklyn/launcher/common/BasicLauncher.java
@@ -45,7 +45,6 @@ import org.apache.brooklyn.config.ConfigKey;
import org.apache.brooklyn.core.catalog.internal.CatalogInitialization;
import org.apache.brooklyn.core.entity.Attributes;
import org.apache.brooklyn.core.entity.Entities;
-import org.apache.brooklyn.core.entity.StartableApplication;
import org.apache.brooklyn.core.entity.trait.Startable;
import org.apache.brooklyn.core.internal.BrooklynProperties;
import org.apache.brooklyn.core.mgmt.EntityManagementUtils;
@@ -105,8 +104,7 @@ public class BasicLauncher<T extends BasicLauncher<T>> {
private final List<String> locationSpecs = new ArrayList<String>();
private final List<Location> locations = new ArrayList<Location>();
- @SuppressWarnings("deprecation") // TODO convert to EntitySpec; should be easy when users not allowed to pass in a builder
- private final List<org.apache.brooklyn.core.entity.factory.ApplicationBuilder> appBuildersToManage = new ArrayList<org.apache.brooklyn.core.entity.factory.ApplicationBuilder>();
+ private final List<EntitySpec<? extends Application>> appSpecsToManage = new ArrayList<>();
private final List<String> yamlAppsToManage = new ArrayList<String>();
private final List<Application> apps = new ArrayList<Application>();
@@ -143,36 +141,13 @@ public class BasicLauncher<T extends BasicLauncher<T>> {
}
/**
- * Specifies that the launcher should build and manage the given Brooklyn application.
- * The application must not yet be managed.
- * The application will not be started as part of this call (callers can
- * subsequently call {@link #start()} or {@link #getApplications()}.
- *
- * @see #application(EntitySpec)
- *
- * @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 T application(org.apache.brooklyn.core.entity.factory.ApplicationBuilder appBuilder) {
- LOG.warn("Caller supplied ApplicationBuilder; convert to EntitySpec as this style builder may not be supported in future.");
- appBuildersToManage.add(checkNotNull(appBuilder, "appBuilder"));
- return self();
- }
-
- /**
* Specifies that the launcher should build and manage the Brooklyn application
* described by the given spec.
* The application will not be started as part of this call (callers can
* subsequently call {@link #start()} or {@link #getApplications()}.
- *
- * @see #application(Application)
*/
- @SuppressWarnings("deprecation") // when appsToManage is EntitySpec this will no longer be needed
- public T application(EntitySpec<? extends StartableApplication> appSpec) {
- appBuildersToManage.add(new org.apache.brooklyn.core.entity.factory.ApplicationBuilder(checkNotNull(appSpec, "appSpec")) {
- @Override protected void doBuild() {
- }});
+ public T application(EntitySpec<? extends Application> appSpec) {
+ appSpecsToManage.add(appSpec);
return self();
}
@@ -652,10 +627,9 @@ public class BasicLauncher<T extends BasicLauncher<T>> {
rebindManager.startPersistence();
}
- @SuppressWarnings("deprecation")
protected void createApps() {
- for (org.apache.brooklyn.core.entity.factory.ApplicationBuilder appBuilder : appBuildersToManage) {
- StartableApplication app = appBuilder.manage(managementContext);
+ for (EntitySpec<? extends Application> spec : appSpecsToManage) {
+ Application app = managementContext.getEntityManager().createEntity(spec);
apps.add(app);
}
for (String blueprint : yamlAppsToManage) {
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/52f9ebdd/launcher/src/test/java/org/apache/brooklyn/entity/brooklynnode/BrooklynEntityMirrorIntegrationTest.java
----------------------------------------------------------------------
diff --git a/launcher/src/test/java/org/apache/brooklyn/entity/brooklynnode/BrooklynEntityMirrorIntegrationTest.java b/launcher/src/test/java/org/apache/brooklyn/entity/brooklynnode/BrooklynEntityMirrorIntegrationTest.java
index e013884..3c874f8 100644
--- a/launcher/src/test/java/org/apache/brooklyn/entity/brooklynnode/BrooklynEntityMirrorIntegrationTest.java
+++ b/launcher/src/test/java/org/apache/brooklyn/entity/brooklynnode/BrooklynEntityMirrorIntegrationTest.java
@@ -37,7 +37,6 @@ import org.apache.brooklyn.api.entity.EntitySpec;
import org.apache.brooklyn.api.mgmt.ManagementContext;
import org.apache.brooklyn.core.entity.Entities;
import org.apache.brooklyn.core.entity.EntityInternal;
-import org.apache.brooklyn.core.entity.factory.ApplicationBuilder;
import org.apache.brooklyn.core.test.entity.LocalManagementContextForTests;
import org.apache.brooklyn.core.test.entity.TestApplication;
import org.apache.brooklyn.launcher.BrooklynWebServer;
@@ -90,7 +89,7 @@ public class BrooklynEntityMirrorIntegrationTest {
server.start();
serverMgmt.getHighAvailabilityManager().disabled();
- serverApp = ApplicationBuilder.newManagedApp(TestApplication.class, serverMgmt);
+ serverApp = TestApplication.Factory.newManagedInstanceForTests(serverMgmt);
((LocalManagementContextForTests)serverMgmt).noteStartupComplete();
} catch (Exception e) {
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/52f9ebdd/launcher/src/test/java/org/apache/brooklyn/entity/brooklynnode/BrooklynNodeRestTest.java
----------------------------------------------------------------------
diff --git a/launcher/src/test/java/org/apache/brooklyn/entity/brooklynnode/BrooklynNodeRestTest.java b/launcher/src/test/java/org/apache/brooklyn/entity/brooklynnode/BrooklynNodeRestTest.java
index ca8f699..b54fe3c 100644
--- a/launcher/src/test/java/org/apache/brooklyn/entity/brooklynnode/BrooklynNodeRestTest.java
+++ b/launcher/src/test/java/org/apache/brooklyn/entity/brooklynnode/BrooklynNodeRestTest.java
@@ -45,7 +45,6 @@ import org.apache.brooklyn.core.config.BasicConfigKey;
import org.apache.brooklyn.core.entity.Attributes;
import org.apache.brooklyn.core.entity.Entities;
import org.apache.brooklyn.core.entity.EntityInternal;
-import org.apache.brooklyn.core.entity.factory.ApplicationBuilder;
import org.apache.brooklyn.core.test.entity.TestApplication;
import org.apache.brooklyn.core.test.entity.TestEntity;
import org.apache.brooklyn.launcher.SimpleYamlLauncherForTests;
@@ -67,7 +66,7 @@ public class BrooklynNodeRestTest {
public void testBrooklynNodeRestDeployAndMirror() {
final SimpleYamlLauncher l = new SimpleYamlLauncherForTests();
try {
- TestApplication app = ApplicationBuilder.newManagedApp(TestApplication.class, l.getManagementContext());
+ TestApplication app = TestApplication.Factory.newManagedInstanceForTests(l.getManagementContext());
BrooklynNode bn = app.createAndManageChild(EntitySpec.create(BrooklynNode.class, SameBrooklynNodeImpl.class));
bn.start(MutableSet.<Location>of());
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/52f9ebdd/launcher/src/test/java/org/apache/brooklyn/launcher/BrooklynLauncherTest.java
----------------------------------------------------------------------
diff --git a/launcher/src/test/java/org/apache/brooklyn/launcher/BrooklynLauncherTest.java b/launcher/src/test/java/org/apache/brooklyn/launcher/BrooklynLauncherTest.java
index 8e89352..f2fb412 100644
--- a/launcher/src/test/java/org/apache/brooklyn/launcher/BrooklynLauncherTest.java
+++ b/launcher/src/test/java/org/apache/brooklyn/launcher/BrooklynLauncherTest.java
@@ -172,19 +172,6 @@ public class BrooklynLauncherTest {
}
@Test
- @SuppressWarnings("deprecation")
- public void testStartsAppFromBuilder() throws Exception {
- launcher = newLauncherForTests(true)
- .webconsole(false)
- .application(new org.apache.brooklyn.core.entity.factory.ApplicationBuilder(EntitySpec.create(TestApplication.class)) {
- @Override protected void doBuild() {
- }})
- .start();
-
- assertOnlyApp(launcher, TestApplication.class);
- }
-
- @Test
public void testStartsAppFromYAML() throws Exception {
String yaml = "name: example-app\n" +
"services:\n" +
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/52f9ebdd/policy/src/test/java/org/apache/brooklyn/policy/ha/ConnectionFailureDetectorTest.java
----------------------------------------------------------------------
diff --git a/policy/src/test/java/org/apache/brooklyn/policy/ha/ConnectionFailureDetectorTest.java b/policy/src/test/java/org/apache/brooklyn/policy/ha/ConnectionFailureDetectorTest.java
index 0ef1ac8..e8ea2a1 100644
--- a/policy/src/test/java/org/apache/brooklyn/policy/ha/ConnectionFailureDetectorTest.java
+++ b/policy/src/test/java/org/apache/brooklyn/policy/ha/ConnectionFailureDetectorTest.java
@@ -28,15 +28,11 @@ import java.net.ServerSocket;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
-import org.apache.brooklyn.api.mgmt.ManagementContext;
import org.apache.brooklyn.api.policy.PolicySpec;
import org.apache.brooklyn.api.sensor.Sensor;
import org.apache.brooklyn.api.sensor.SensorEvent;
import org.apache.brooklyn.api.sensor.SensorEventListener;
-import org.apache.brooklyn.core.entity.Entities;
-import org.apache.brooklyn.core.entity.factory.ApplicationBuilder;
-import org.apache.brooklyn.core.test.entity.LocalManagementContextForTests;
-import org.apache.brooklyn.core.test.entity.TestApplication;
+import org.apache.brooklyn.core.test.BrooklynAppUnitTestSupport;
import org.apache.brooklyn.policy.ha.HASensors.FailureDescriptor;
import org.apache.brooklyn.test.Asserts;
import org.apache.brooklyn.util.collections.MutableMap;
@@ -55,26 +51,23 @@ import com.google.common.net.HostAndPort;
// at least one report of *test* failures, as in no events coming in;
// log unavailable but the test has been passing everywhere else so we
// suspect some environments don't support this test
-public class ConnectionFailureDetectorTest {
+public class ConnectionFailureDetectorTest extends BrooklynAppUnitTestSupport {
private static final int TIMEOUT_MS = 30*1000;
private static final int OVERHEAD = 250;
private static final int POLL_PERIOD = 100;
- private ManagementContext managementContext;
- private TestApplication app;
-
private List<SensorEvent<FailureDescriptor>> events;
private ServerSocket serverSocket;
private HostAndPort serverSocketAddress;
@BeforeMethod(alwaysRun=true)
+ @Override
public void setUp() throws Exception {
- events = new CopyOnWriteArrayList<SensorEvent<FailureDescriptor>>();
+ super.setUp();
- managementContext = new LocalManagementContextForTests();
- app = ApplicationBuilder.newManagedApp(TestApplication.class, managementContext);
+ events = new CopyOnWriteArrayList<SensorEvent<FailureDescriptor>>();
app.getManagementContext().getSubscriptionManager().subscribe(
app,
@@ -98,8 +91,11 @@ public class ConnectionFailureDetectorTest {
@AfterMethod(alwaysRun=true)
public void tearDown() throws Exception {
- stopServerSocket();
- if (managementContext != null) Entities.destroyAll(managementContext);
+ try {
+ stopServerSocket();
+ } finally {
+ super.tearDown();
+ }
}
private HostAndPort startServerSocket() throws Exception {
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/52f9ebdd/policy/src/test/java/org/apache/brooklyn/policy/ha/ServiceFailureDetectorStabilizationTest.java
----------------------------------------------------------------------
diff --git a/policy/src/test/java/org/apache/brooklyn/policy/ha/ServiceFailureDetectorStabilizationTest.java b/policy/src/test/java/org/apache/brooklyn/policy/ha/ServiceFailureDetectorStabilizationTest.java
index 8c67489..faeeba8 100644
--- a/policy/src/test/java/org/apache/brooklyn/policy/ha/ServiceFailureDetectorStabilizationTest.java
+++ b/policy/src/test/java/org/apache/brooklyn/policy/ha/ServiceFailureDetectorStabilizationTest.java
@@ -25,53 +25,47 @@ import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import org.apache.brooklyn.api.entity.EntitySpec;
-import org.apache.brooklyn.api.mgmt.ManagementContext;
import org.apache.brooklyn.api.sensor.EnricherSpec;
import org.apache.brooklyn.api.sensor.Sensor;
import org.apache.brooklyn.api.sensor.SensorEvent;
import org.apache.brooklyn.api.sensor.SensorEventListener;
-import org.apache.brooklyn.core.entity.Entities;
-import org.apache.brooklyn.core.entity.factory.ApplicationBuilder;
import org.apache.brooklyn.core.entity.lifecycle.Lifecycle;
import org.apache.brooklyn.core.entity.lifecycle.ServiceStateLogic;
import org.apache.brooklyn.core.entity.lifecycle.ServiceStateLogicTest;
-import org.apache.brooklyn.core.test.entity.LocalManagementContextForTests;
-import org.apache.brooklyn.core.test.entity.TestApplication;
+import org.apache.brooklyn.core.test.BrooklynAppUnitTestSupport;
import org.apache.brooklyn.core.test.entity.TestEntity;
+import org.apache.brooklyn.policy.ha.HASensors.FailureDescriptor;
import org.apache.brooklyn.test.Asserts;
import org.apache.brooklyn.util.collections.MutableMap;
import org.apache.brooklyn.util.time.Duration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
-import org.apache.brooklyn.policy.ha.HASensors.FailureDescriptor;
import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
import com.google.common.collect.ImmutableMap;
/** also see more primitive tests in {@link ServiceStateLogicTest} */
-public class ServiceFailureDetectorStabilizationTest {
+public class ServiceFailureDetectorStabilizationTest extends BrooklynAppUnitTestSupport {
private static final Logger LOG = LoggerFactory.getLogger(ServiceFailureDetectorStabilizationTest.class);
private static final int TIMEOUT_MS = 10*1000;
private static final int OVERHEAD = 250;
- private ManagementContext managementContext;
- private TestApplication app;
private TestEntity e1;
private List<SensorEvent<FailureDescriptor>> events;
@BeforeMethod(alwaysRun=true)
+ @Override
public void setUp() throws Exception {
+ super.setUp();
+
events = new CopyOnWriteArrayList<SensorEvent<FailureDescriptor>>();
- managementContext = new LocalManagementContextForTests();
- app = ApplicationBuilder.newManagedApp(TestApplication.class, managementContext);
e1 = app.createAndManageChild(EntitySpec.create(TestEntity.class));
e1.sensors().set(TestEntity.SERVICE_UP, true);
ServiceStateLogic.setExpectedState(e1, Lifecycle.RUNNING);
@@ -94,11 +88,6 @@ public class ServiceFailureDetectorStabilizationTest {
});
}
- @AfterMethod(alwaysRun=true)
- public void tearDown() throws Exception {
- if (managementContext != null) Entities.destroyAll(managementContext);
- }
-
@Test(groups="Integration") // Because slow
public void testNotNotifiedOfTemporaryFailuresDuringStabilisationDelay() throws Exception {
e1.enrichers().add(EnricherSpec.create(ServiceFailureDetector.class)
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/52f9ebdd/policy/src/test/java/org/apache/brooklyn/policy/ha/ServiceFailureDetectorTest.java
----------------------------------------------------------------------
diff --git a/policy/src/test/java/org/apache/brooklyn/policy/ha/ServiceFailureDetectorTest.java b/policy/src/test/java/org/apache/brooklyn/policy/ha/ServiceFailureDetectorTest.java
index 8f15e99..6df79bb 100644
--- a/policy/src/test/java/org/apache/brooklyn/policy/ha/ServiceFailureDetectorTest.java
+++ b/policy/src/test/java/org/apache/brooklyn/policy/ha/ServiceFailureDetectorTest.java
@@ -26,50 +26,46 @@ import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import org.apache.brooklyn.api.entity.EntitySpec;
-import org.apache.brooklyn.api.mgmt.ManagementContext;
import org.apache.brooklyn.api.sensor.EnricherSpec;
import org.apache.brooklyn.api.sensor.Sensor;
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.EntityAsserts;
-import org.apache.brooklyn.core.entity.factory.ApplicationBuilder;
import org.apache.brooklyn.core.entity.lifecycle.Lifecycle;
import org.apache.brooklyn.core.entity.lifecycle.ServiceStateLogic;
import org.apache.brooklyn.core.entity.lifecycle.ServiceStateLogic.ServiceProblemsLogic;
-import org.apache.brooklyn.core.test.entity.LocalManagementContextForTests;
-import org.apache.brooklyn.core.test.entity.TestApplication;
+import org.apache.brooklyn.core.test.BrooklynAppUnitTestSupport;
import org.apache.brooklyn.core.test.entity.TestEntity;
+import org.apache.brooklyn.policy.ha.HASensors.FailureDescriptor;
import org.apache.brooklyn.test.Asserts;
import org.apache.brooklyn.util.collections.MutableMap;
import org.apache.brooklyn.util.time.Duration;
import org.apache.brooklyn.util.time.Time;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
-import org.apache.brooklyn.policy.ha.HASensors.FailureDescriptor;
import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
import com.google.common.collect.ImmutableMap;
-public class ServiceFailureDetectorTest {
+public class ServiceFailureDetectorTest extends BrooklynAppUnitTestSupport {
private static final Logger log = LoggerFactory.getLogger(ServiceFailureDetectorTest.class);
private static final int TIMEOUT_MS = 10*1000;
- private ManagementContext managementContext;
- private TestApplication app;
private TestEntity e1;
private List<SensorEvent<FailureDescriptor>> events;
private SensorEventListener<FailureDescriptor> eventListener;
@BeforeMethod(alwaysRun=true)
+ @Override
public void setUp() throws Exception {
+ super.setUp();
+
events = new CopyOnWriteArrayList<SensorEvent<FailureDescriptor>>();
eventListener = new SensorEventListener<FailureDescriptor>() {
@Override public void onEvent(SensorEvent<FailureDescriptor> event) {
@@ -77,8 +73,6 @@ public class ServiceFailureDetectorTest {
}
};
- managementContext = new LocalManagementContextForTests();
- app = ApplicationBuilder.newManagedApp(TestApplication.class, managementContext);
e1 = app.createAndManageChild(EntitySpec.create(TestEntity.class));
e1.enrichers().add(ServiceStateLogic.newEnricherForServiceStateFromProblemsAndUp());
@@ -86,11 +80,6 @@ public class ServiceFailureDetectorTest {
app.getManagementContext().getSubscriptionManager().subscribe(e1, HASensors.ENTITY_RECOVERED, eventListener);
}
- @AfterMethod(alwaysRun=true)
- public void tearDown() throws Exception {
- if (managementContext != null) Entities.destroyAll(managementContext);
- }
-
@Test(groups="Integration") // Has a 1 second wait
public void testNotNotifiedOfFailuresForHealthy() throws Exception {
// Create members before and after the policy is registered, to test both scenarios
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/52f9ebdd/policy/src/test/java/org/apache/brooklyn/policy/ha/ServiceReplacerTest.java
----------------------------------------------------------------------
diff --git a/policy/src/test/java/org/apache/brooklyn/policy/ha/ServiceReplacerTest.java b/policy/src/test/java/org/apache/brooklyn/policy/ha/ServiceReplacerTest.java
index 5faf289..392a50c 100644
--- a/policy/src/test/java/org/apache/brooklyn/policy/ha/ServiceReplacerTest.java
+++ b/policy/src/test/java/org/apache/brooklyn/policy/ha/ServiceReplacerTest.java
@@ -31,7 +31,6 @@ import org.apache.brooklyn.api.entity.Entity;
import org.apache.brooklyn.api.entity.EntitySpec;
import org.apache.brooklyn.api.location.Location;
import org.apache.brooklyn.api.location.LocationSpec;
-import org.apache.brooklyn.api.mgmt.ManagementContext;
import org.apache.brooklyn.api.policy.PolicySpec;
import org.apache.brooklyn.api.sensor.SensorEvent;
import org.apache.brooklyn.api.sensor.SensorEventListener;
@@ -39,15 +38,14 @@ import org.apache.brooklyn.core.entity.Attributes;
import org.apache.brooklyn.core.entity.Entities;
import org.apache.brooklyn.core.entity.EntityAsserts;
import org.apache.brooklyn.core.entity.EntityInternal;
-import org.apache.brooklyn.core.entity.factory.ApplicationBuilder;
import org.apache.brooklyn.core.entity.lifecycle.Lifecycle;
import org.apache.brooklyn.core.entity.lifecycle.ServiceStateLogic.ComputeServiceIndicatorsFromChildrenAndMembers;
import org.apache.brooklyn.core.entity.trait.FailingEntity;
import org.apache.brooklyn.core.location.SimulatedLocation;
-import org.apache.brooklyn.core.test.entity.LocalManagementContextForTests;
-import org.apache.brooklyn.core.test.entity.TestApplication;
+import org.apache.brooklyn.core.test.BrooklynAppUnitTestSupport;
import org.apache.brooklyn.core.test.entity.TestEntity;
import org.apache.brooklyn.entity.group.DynamicCluster;
+import org.apache.brooklyn.policy.ha.HASensors.FailureDescriptor;
import org.apache.brooklyn.test.Asserts;
import org.apache.brooklyn.util.collections.QuorumCheck;
import org.apache.brooklyn.util.core.config.ConfigBag;
@@ -55,10 +53,8 @@ import org.apache.brooklyn.util.javalang.JavaClassNames;
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;
-import org.apache.brooklyn.policy.ha.HASensors.FailureDescriptor;
import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
@@ -68,21 +64,19 @@ import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
-public class ServiceReplacerTest {
+public class ServiceReplacerTest extends BrooklynAppUnitTestSupport {
private static final Logger log = LoggerFactory.getLogger(ServiceReplacerTest.class);
- private ManagementContext managementContext;
- private TestApplication app;
private SimulatedLocation loc;
private SensorEventListener<Object> eventListener;
private List<SensorEvent<?>> events;
@BeforeMethod(alwaysRun=true)
public void setUp() throws Exception {
- managementContext = new LocalManagementContextForTests();
- app = ApplicationBuilder.newManagedApp(TestApplication.class, managementContext);
- loc = managementContext.getLocationManager().createLocation(LocationSpec.create(SimulatedLocation.class));
+ super.setUp();
+
+ loc = app.newSimulatedLocation();
events = Lists.newCopyOnWriteArrayList();
eventListener = new SensorEventListener<Object>() {
@Override public void onEvent(SensorEvent<Object> event) {
@@ -91,11 +85,6 @@ public class ServiceReplacerTest {
};
}
- @AfterMethod(alwaysRun=true)
- public void tearDown() throws Exception {
- if (managementContext != null) Entities.destroyAll(managementContext);
- }
-
@Test
public void testReplacesFailedMember() throws Exception {
final DynamicCluster cluster = app.createAndManageChild(EntitySpec.create(DynamicCluster.class)
@@ -165,7 +154,7 @@ public class ServiceReplacerTest {
// Expect to have the second failed entity still kicking around as proof (in quarantine)
// The cluster should NOT go on fire until after the 2nd failure
- Iterable<Entity> members = Iterables.filter(managementContext.getEntityManager().getEntities(), Predicates.instanceOf(FailingEntity.class));
+ Iterable<Entity> members = Iterables.filter(mgmt.getEntityManager().getEntities(), Predicates.instanceOf(FailingEntity.class));
assertEquals(Iterables.size(members), 2);
// e2 failed to start, so it won't have called stop on e1
@@ -300,7 +289,7 @@ public class ServiceReplacerTest {
if (i <= 3) {
Asserts.succeedsEventually(new Runnable() {
@Override public void run() {
- Set<FailingEntity> all = ImmutableSet.copyOf(Iterables.filter(managementContext.getEntityManager().getEntities(), FailingEntity.class));
+ Set<FailingEntity> all = ImmutableSet.copyOf(Iterables.filter(mgmt.getEntityManager().getEntities(), FailingEntity.class));
Set<FailingEntity> replacements = Sets.difference(all, initialMembers);
Set<?> replacementMembers = Sets.intersection(ImmutableSet.of(cluster.getMembers()), replacements);
assertTrue(replacementMembers.isEmpty());
@@ -309,7 +298,7 @@ public class ServiceReplacerTest {
} else {
Asserts.succeedsContinually(new Runnable() {
@Override public void run() {
- Set<FailingEntity> all = ImmutableSet.copyOf(Iterables.filter(managementContext.getEntityManager().getEntities(), FailingEntity.class));
+ Set<FailingEntity> all = ImmutableSet.copyOf(Iterables.filter(mgmt.getEntityManager().getEntities(), FailingEntity.class));
Set<FailingEntity> replacements = Sets.difference(all, initialMembers);
assertEquals(replacements.size(), 4);
}});
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/52f9ebdd/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 770e3f5..52f99b4 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
@@ -24,45 +24,39 @@ import static org.testng.Assert.fail;
import org.apache.brooklyn.api.entity.EntitySpec;
import org.apache.brooklyn.api.entity.Group;
import org.apache.brooklyn.api.entity.ImplementedBy;
-import org.apache.brooklyn.core.entity.Entities;
-import org.apache.brooklyn.core.entity.factory.ApplicationBuilder;
+import org.apache.brooklyn.api.location.LocationSpec;
import org.apache.brooklyn.core.entity.trait.Resizable;
import org.apache.brooklyn.core.location.SimulatedLocation;
-import org.apache.brooklyn.core.test.entity.TestApplication;
+import org.apache.brooklyn.core.test.BrooklynAppUnitTestSupport;
import org.apache.brooklyn.entity.group.AbstractGroup;
import org.apache.brooklyn.entity.group.AbstractGroupImpl;
import org.apache.brooklyn.entity.group.DynamicGroup;
-import org.apache.brooklyn.util.collections.MutableMap;
import org.apache.brooklyn.util.exceptions.Exceptions;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import com.google.common.base.Predicates;
import com.google.common.collect.ImmutableList;
-public class BalanceableWorkerPoolTest {
+public class BalanceableWorkerPoolTest extends BrooklynAppUnitTestSupport {
- private static final Logger LOG = LoggerFactory.getLogger(BalanceableWorkerPoolTest.class);
-
protected static final long TIMEOUT_MS = 10*1000;
protected static final long SHORT_WAIT_MS = 250;
protected static final long CONTAINER_STARTUP_DELAY_MS = 100;
- protected TestApplication app;
protected SimulatedLocation loc;
protected BalanceableWorkerPool pool;
protected Group containerGroup;
protected Group itemGroup;
@BeforeMethod(alwaysRun=true)
- public void before() {
- loc = new SimulatedLocation(MutableMap.of("name", "loc"));
+ @Override
+ public void setUp() throws Exception {
+ super.setUp();
+ loc = mgmt.getLocationManager().createLocation(LocationSpec.create(SimulatedLocation.class)
+ .configure("name", "loc"));
- app = ApplicationBuilder.newManagedApp(TestApplication.class);
containerGroup = app.createAndManageChild(EntitySpec.create(DynamicGroup.class)
.displayName("containerGroup")
.configure(DynamicGroup.ENTITY_FILTER, Predicates.instanceOf(MockContainerEntity.class)));
@@ -75,11 +69,6 @@ public class BalanceableWorkerPoolTest {
app.start(ImmutableList.of(loc));
}
- @AfterMethod(alwaysRun=true)
- public void after() {
- if (app != null) Entities.destroyAll(app.getManagementContext());
- }
-
@Test
public void testDefaultResizeFailsIfContainerGroupNotResizable() throws Exception {
try {
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/52f9ebdd/policy/src/test/java/org/apache/brooklyn/policy/loadbalancing/ItemsInContainersGroupTest.java
----------------------------------------------------------------------
diff --git a/policy/src/test/java/org/apache/brooklyn/policy/loadbalancing/ItemsInContainersGroupTest.java b/policy/src/test/java/org/apache/brooklyn/policy/loadbalancing/ItemsInContainersGroupTest.java
index 973a1a3..59a9b24 100644
--- a/policy/src/test/java/org/apache/brooklyn/policy/loadbalancing/ItemsInContainersGroupTest.java
+++ b/policy/src/test/java/org/apache/brooklyn/policy/loadbalancing/ItemsInContainersGroupTest.java
@@ -23,14 +23,14 @@ import static org.testng.Assert.assertEquals;
import org.apache.brooklyn.api.entity.Entity;
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.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.entity.group.DynamicGroup;
import org.apache.brooklyn.test.Asserts;
import org.apache.brooklyn.util.collections.MutableMap;
-import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
@@ -38,21 +38,21 @@ import com.google.common.base.Predicate;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
-public class ItemsInContainersGroupTest {
+public class ItemsInContainersGroupTest extends BrooklynAppUnitTestSupport {
// all tests are 20ms or less, but use a big timeout just in case very slow machine!
private static final long TIMEOUT_MS = 15000;
- private TestApplication app;
private SimulatedLocation loc;
private Group containerGroup;
private ItemsInContainersGroup itemGroup;
@BeforeMethod(alwaysRun=true)
public void setUp() throws Exception {
- loc = new SimulatedLocation(MutableMap.of("name", "loc"));
+ super.setUp();
+ loc = mgmt.getLocationManager().createLocation(LocationSpec.create(SimulatedLocation.class)
+ .configure("name", "loc"));
- app = ApplicationBuilder.newManagedApp(TestApplication.class);
containerGroup = app.createAndManageChild(EntitySpec.create(DynamicGroup.class)
.displayName("containerGroup")
.configure(DynamicGroup.ENTITY_FILTER, new Predicate<Entity>() {
@@ -68,11 +68,6 @@ public class ItemsInContainersGroupTest {
app.start(ImmutableList.of(loc));
}
- @AfterMethod(alwaysRun=true)
- public void tearDown() throws Exception {
- if (app != null) Entities.destroyAll(app.getManagementContext());
- }
-
@Test
public void testSimpleMembership() throws Exception {
MockContainerEntity containerIn = newContainer(app, "A", "ingroup");
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/52f9ebdd/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/util/BrooklynRestResourceUtils.java
----------------------------------------------------------------------
diff --git a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/util/BrooklynRestResourceUtils.java b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/util/BrooklynRestResourceUtils.java
index d9eb7ee..600c90f 100644
--- a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/util/BrooklynRestResourceUtils.java
+++ b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/util/BrooklynRestResourceUtils.java
@@ -21,7 +21,6 @@ package org.apache.brooklyn.rest.util;
import static com.google.common.collect.Iterables.transform;
import static org.apache.brooklyn.rest.util.WebResourceUtils.notFound;
-import java.lang.reflect.Constructor;
import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedHashMap;
@@ -300,7 +299,6 @@ public class BrooklynRestResourceUtils {
}
}
- @SuppressWarnings({ "deprecation" })
public Application create(ApplicationSpec spec) {
log.warn("Using deprecated functionality (as of 0.9.0), ApplicationSpec style (pre CAMP plans). " +
"Transition to actively supported spec plans.");
@@ -332,21 +330,7 @@ public class BrooklynRestResourceUtils {
}
try {
- if (org.apache.brooklyn.core.entity.factory.ApplicationBuilder.class.isAssignableFrom(itemAndClass.clazz)) {
- // warning only added in 0.9.0
- log.warn("Using deprecated ApplicationBuilder "+itemAndClass.clazz+"; callers must migrate to use of Application");
- Constructor<?> constructor = itemAndClass.clazz.getConstructor();
- org.apache.brooklyn.core.entity.factory.ApplicationBuilder appBuilder = (org.apache.brooklyn.core.entity.factory.ApplicationBuilder) constructor.newInstance();
- if (!Strings.isEmpty(name)) appBuilder.appDisplayName(name);
- if (entities.size() > 0)
- log.warn("Cannot supply additional entities when using an ApplicationBuilder; ignoring in spec {}", spec);
-
- log.info("REST placing '{}' under management", spec.getName());
- appBuilder.configure(convertFlagsToKeys(appBuilder.getType(), configO));
- configureRenderingMetadata(spec, appBuilder);
- instance = appBuilder.manage(mgmt);
-
- } else if (Application.class.isAssignableFrom(itemAndClass.clazz)) {
+ if (Application.class.isAssignableFrom(itemAndClass.clazz)) {
org.apache.brooklyn.api.entity.EntitySpec<?> coreSpec = toCoreEntitySpec(itemAndClass.clazz, name, configO, itemAndClass.catalogItemId);
configureRenderingMetadata(spec, coreSpec);
for (EntitySpec entitySpec : entities) {
@@ -432,11 +416,6 @@ public class BrooklynRestResourceUtils {
return result;
}
- @SuppressWarnings("deprecation")
- protected void configureRenderingMetadata(ApplicationSpec spec, org.apache.brooklyn.core.entity.factory.ApplicationBuilder appBuilder) {
- appBuilder.configure(getRenderingConfigurationFor(spec.getType()));
- }
-
protected void configureRenderingMetadata(ApplicationSpec input, org.apache.brooklyn.api.entity.EntitySpec<?> entity) {
entity.configure(getRenderingConfigurationFor(input.getType()));
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/52f9ebdd/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/ApplicationResourceTest.java
----------------------------------------------------------------------
diff --git a/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/ApplicationResourceTest.java b/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/ApplicationResourceTest.java
index 967d72d..277fd32 100644
--- a/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/ApplicationResourceTest.java
+++ b/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/resources/ApplicationResourceTest.java
@@ -212,31 +212,6 @@ public class ApplicationResourceTest extends BrooklynRestResourceTest {
assertEquals(client().path(appUri).get(ApplicationSummary.class).getSpec().getName(), "simple-app-interface");
}
- @SuppressWarnings("deprecation")
- @Test(dependsOnMethods = { "testDeployApplication", "testLocatedLocation" })
- public void testDeployApplicationFromBuilder() throws Exception {
- ApplicationSpec spec = ApplicationSpec.builder()
- .type(org.apache.brooklyn.rest.testing.mocks.RestMockAppBuilder.class.getCanonicalName())
- .name("simple-app-builder")
- .locations(ImmutableSet.of("localhost"))
- .build();
-
- Response response = clientDeploy(spec);
- assertTrue(response.getStatus() / 100 == 2, "response is " + response);
-
- // Expect app to be running
- URI appUri = response.getLocation();
- waitForApplicationToBeRunning(response.getLocation(), Duration.TEN_SECONDS);
- assertEquals(client().path(appUri).get(ApplicationSummary.class).getSpec().getName(), "simple-app-builder");
-
- // Expect app to have the child-entity
- Set<EntitySummary> entities = client().path(appUri.toString() + "/entities")
- .get(new GenericType<Set<EntitySummary>>() {});
- assertEquals(entities.size(), 1);
- assertEquals(Iterables.getOnlyElement(entities).getName(), "child1");
- assertEquals(Iterables.getOnlyElement(entities).getType(), RestMockSimpleEntity.class.getCanonicalName());
- }
-
@Test(dependsOnMethods = { "testDeployApplication", "testLocatedLocation" })
public void testDeployApplicationYaml() throws Exception {
String yaml = "{ name: simple-app-yaml, location: localhost, services: [ { serviceType: "+BasicApplication.class.getCanonicalName()+" } ] }";
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/52f9ebdd/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/testing/mocks/RestMockAppBuilder.java
----------------------------------------------------------------------
diff --git a/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/testing/mocks/RestMockAppBuilder.java b/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/testing/mocks/RestMockAppBuilder.java
deleted file mode 100644
index affb3f3..0000000
--- a/rest/rest-resources/src/test/java/org/apache/brooklyn/rest/testing/mocks/RestMockAppBuilder.java
+++ /dev/null
@@ -1,41 +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.rest.testing.mocks;
-
-import org.apache.brooklyn.api.entity.Entity;
-import org.apache.brooklyn.api.entity.EntitySpec;
-import org.apache.brooklyn.core.entity.StartableApplication;
-import org.apache.brooklyn.core.entity.factory.ApplicationBuilder;
-import org.apache.brooklyn.util.javalang.Reflections;
-
-/** @deprecated since 0.9.0 don't use {@link ApplicationBuilder} */
-@Deprecated
-public class RestMockAppBuilder extends ApplicationBuilder {
-
- public RestMockAppBuilder() {
- super(EntitySpec.create(StartableApplication.class).impl(RestMockApp.class));
- }
-
- @Override
- protected void doBuild() {
- addChild(EntitySpec.create(Entity.class).impl(RestMockSimpleEntity.class)
- .additionalInterfaces(Reflections.getAllInterfaces(RestMockSimpleEntity.class))
- .displayName("child1"));
- }
-}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/52f9ebdd/server-cli/src/main/java/org/apache/brooklyn/cli/Main.java
----------------------------------------------------------------------
diff --git a/server-cli/src/main/java/org/apache/brooklyn/cli/Main.java b/server-cli/src/main/java/org/apache/brooklyn/cli/Main.java
index 41c7e28..f68f142 100644
--- a/server-cli/src/main/java/org/apache/brooklyn/cli/Main.java
+++ b/server-cli/src/main/java/org/apache/brooklyn/cli/Main.java
@@ -59,7 +59,6 @@ import org.apache.brooklyn.core.entity.AbstractApplication;
import org.apache.brooklyn.core.entity.AbstractEntity;
import org.apache.brooklyn.core.entity.Entities;
import org.apache.brooklyn.core.entity.StartableApplication;
-import org.apache.brooklyn.core.entity.factory.ApplicationBuilder;
import org.apache.brooklyn.core.entity.trait.Startable;
import org.apache.brooklyn.core.mgmt.ShutdownHandler;
import org.apache.brooklyn.core.mgmt.ha.OsgiManager;
@@ -67,6 +66,7 @@ import org.apache.brooklyn.core.mgmt.persist.BrooklynPersistenceUtils;
import org.apache.brooklyn.core.mgmt.persist.PersistMode;
import org.apache.brooklyn.core.mgmt.rebind.transformer.CompoundTransformer;
import org.apache.brooklyn.core.objs.BrooklynTypes;
+import org.apache.brooklyn.entity.stock.BasicApplication;
import org.apache.brooklyn.launcher.BrooklynLauncher;
import org.apache.brooklyn.launcher.BrooklynServerDetails;
import org.apache.brooklyn.launcher.config.StopWhichAppsOnShutdown;
@@ -78,6 +78,7 @@ import org.apache.brooklyn.util.exceptions.FatalRuntimeException;
import org.apache.brooklyn.util.exceptions.UserFacingException;
import org.apache.brooklyn.util.guava.Maybe;
import org.apache.brooklyn.util.javalang.Enums;
+import org.apache.brooklyn.util.javalang.Reflections;
import org.apache.brooklyn.util.net.Networking;
import org.apache.brooklyn.util.text.Identifiers;
import org.apache.brooklyn.util.text.StringEscapes.JavaStringEscapes;
@@ -683,8 +684,8 @@ public class Main extends AbstractMain {
String content = utils.getResourceAsString(app);
launcher.application(content);
} else {
- ApplicationBuilder loadedApp = loadApplicationFromClasspathOrParse(utils, loader, app);
- launcher.application(loadedApp);
+ EntitySpec<? extends Application> appSpec = loadApplicationFromClasspathOrParse(utils, loader, app);
+ launcher.application(appSpec);
}
}
}
@@ -731,49 +732,46 @@ public class Main extends AbstractMain {
}
/**
- * Helper method that gets an instance of a brooklyn {@link AbstractApplication} or an {@link ApplicationBuilder}.
- * Guaranteed to be non-null result of one of those types (throwing exception if app not appropriate).
+ * Helper method that gets an instance of a brooklyn {@link EntitySpec}.
+ * Guaranteed to be non-null result (throwing exception if app not appropriate).
+ *
+ * @throws FatalConfigurationRuntimeException if class is not an {@link Application} or {@link Entity}
*/
@SuppressWarnings("unchecked")
- protected ApplicationBuilder loadApplicationFromClasspathOrParse(ResourceUtils utils, GroovyClassLoader loader, String app)
+ protected EntitySpec<? extends Application> loadApplicationFromClasspathOrParse(ResourceUtils utils, GroovyClassLoader loader, String app)
throws NoSuchMethodException, InvocationTargetException, IllegalAccessException, InstantiationException {
- Class<?> tempclazz;
+ Class<?> clazz;
log.debug("Loading application as class on classpath: {}", app);
try {
- tempclazz = loader.loadClass(app, true, false);
+ clazz = loader.loadClass(app, true, false);
} catch (ClassNotFoundException cnfe) { // Not a class on the classpath
throw new IllegalStateException("Unable to load app class '"+app+"'", cnfe);
}
- final Class<?> clazz = tempclazz;
- // Instantiate an app builder (wrapping app/entity class in ApplicationBuilder)
- // TODO Should change to use EntitySpec
- if (ApplicationBuilder.class.isAssignableFrom(clazz)) {
- Constructor<?> constructor = clazz.getConstructor();
- return (ApplicationBuilder) constructor.newInstance();
- } else if (StartableApplication.class.isAssignableFrom(clazz)) {
- EntitySpec<? extends StartableApplication> appSpec;
- if (tempclazz.isInterface())
- appSpec = EntitySpec.create((Class<? extends StartableApplication>) clazz);
- else
- appSpec = EntitySpec.create(StartableApplication.class, (Class<? extends StartableApplication>) clazz);
- return new ApplicationBuilder(appSpec) {
- @Override protected void doBuild() {
- }};
- } else if (AbstractEntity.class.isAssignableFrom(clazz)) {
- // TODO Should we really accept any entity type, and just wrap it in an app? That's not documented!
- return new ApplicationBuilder() {
- @Override protected void doBuild() {
- addChild(EntitySpec.create(Entity.class).impl((Class<? extends AbstractEntity>)clazz).additionalInterfaces(clazz.getInterfaces()));
- }};
+ if (Application.class.isAssignableFrom(clazz)) {
+ if (clazz.isInterface()) {
+ return EntitySpec.create((Class<? extends Application>)clazz);
+ } else {
+ return EntitySpec.create(Application.class)
+ .impl((Class<? extends Application>) clazz)
+ .additionalInterfaces(Reflections.getAllInterfaces(clazz));
+ }
+
} else if (Entity.class.isAssignableFrom(clazz)) {
- return new ApplicationBuilder() {
- @Override protected void doBuild() {
- addChild(EntitySpec.create((Class<? extends Entity>)clazz));
- }};
+ // TODO Should we really accept any entity type, and just wrap it in an app? That's not documented!
+ EntitySpec<?> childSpec;
+ if (clazz.isInterface()) {
+ childSpec = EntitySpec.create((Class<? extends Entity>)clazz);
+ } else {
+ childSpec = EntitySpec.create(Entity.class)
+ .impl((Class<? extends Application>) clazz)
+ .additionalInterfaces(Reflections.getAllInterfaces(clazz));
+ }
+ return EntitySpec.create(BasicApplication.class).child(childSpec);
+
} else {
- throw new FatalConfigurationRuntimeException("Application class "+clazz+" must extend one of ApplicationBuilder or AbstractApplication");
+ throw new FatalConfigurationRuntimeException("Application class "+clazz+" must be an Application or Entity");
}
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/52f9ebdd/server-cli/src/test/java/org/apache/brooklyn/cli/CliTest.java
----------------------------------------------------------------------
diff --git a/server-cli/src/test/java/org/apache/brooklyn/cli/CliTest.java b/server-cli/src/test/java/org/apache/brooklyn/cli/CliTest.java
index c3fbf28..2751d00 100644
--- a/server-cli/src/test/java/org/apache/brooklyn/cli/CliTest.java
+++ b/server-cli/src/test/java/org/apache/brooklyn/cli/CliTest.java
@@ -40,6 +40,7 @@ import java.util.concurrent.atomic.AtomicReference;
import java.util.regex.Pattern;
import org.apache.brooklyn.api.catalog.CatalogItem;
+import org.apache.brooklyn.api.entity.Application;
import org.apache.brooklyn.api.entity.Entity;
import org.apache.brooklyn.api.entity.EntitySpec;
import org.apache.brooklyn.api.entity.ImplementedBy;
@@ -58,7 +59,6 @@ import org.apache.brooklyn.core.entity.AbstractApplication;
import org.apache.brooklyn.core.entity.AbstractEntity;
import org.apache.brooklyn.core.entity.Entities;
import org.apache.brooklyn.core.entity.StartableApplication;
-import org.apache.brooklyn.core.entity.factory.ApplicationBuilder;
import org.apache.brooklyn.core.entity.trait.Startable;
import org.apache.brooklyn.core.location.SimulatedLocation;
import org.apache.brooklyn.core.objs.proxy.EntityProxy;
@@ -100,7 +100,8 @@ public class CliTest {
public static final AtomicBoolean GROOVY_INVOKED = new AtomicBoolean(false);
private ExecutorService executor;
- private StartableApplication app;
+ private Application app;
+ private ManagementContext mgmt;
private List<File> filesToDelete;
private static volatile ExampleEntity exampleEntity;
@@ -123,6 +124,7 @@ public class CliTest {
public void tearDown() throws Exception {
if (executor != null) executor.shutdownNow();
if (app != null) Entities.destroyAll(app.getManagementContext());
+ if (mgmt != null && mgmt.isRunning()) Entities.destroyAll(mgmt);
if (exampleEntity != null && exampleEntity.getApplication() != null) Entities.destroyAll(exampleEntity.getApplication().getManagementContext());
if (filesToDelete != null) {
for (File file : filesToDelete) {
@@ -135,25 +137,21 @@ public class CliTest {
@Test
public void testLoadApplicationFromClasspath() throws Exception {
String appName = ExampleApp.class.getName();
- Object appBuilder = loadApplicationFromClasspathOrParse(appName);
- assertTrue(appBuilder instanceof ApplicationBuilder, "app="+appBuilder);
- assertAppWrappedInBuilder((ApplicationBuilder)appBuilder, ExampleApp.class.getCanonicalName());
- }
-
- @Test
- public void testLoadApplicationBuilderFromClasspath() throws Exception {
- String appName = ExampleAppBuilder.class.getName();
- Object appBuilder = loadApplicationFromClasspathOrParse(appName);
- assertTrue(appBuilder instanceof ExampleAppBuilder, "app="+appBuilder);
+ Object appSpec = loadApplicationFromClasspathOrParse(appName);
+ assertTrue(appSpec instanceof EntitySpec, "app="+appSpec);
+
+ assertEquals(((EntitySpec<?>)appSpec).getImplementation(), ExampleApp.class);
}
@Test
public void testLoadEntityFromClasspath() throws Exception {
String entityName = ExampleEntity.class.getName();
- Object appBuilder = loadApplicationFromClasspathOrParse(entityName);
- assertTrue(appBuilder instanceof ApplicationBuilder, "app="+appBuilder);
+ Object appSpec = loadApplicationFromClasspathOrParse(entityName);
+ assertTrue(appSpec instanceof EntitySpec, "app="+appSpec);
- app = ((ApplicationBuilder)appBuilder).manage();
+ mgmt = LocalManagementContextForTests.newInstance();
+ app = (Application) mgmt.getEntityManager().createEntity((EntitySpec<?>)appSpec);
+
Collection<Entity> entities = app.getChildren();
assertEquals(entities.size(), 1, "entities="+entities);
assertTrue(Iterables.getOnlyElement(entities) instanceof ExampleEntity, "entities="+entities+"; ifs="+Iterables.getOnlyElement(entities).getClass().getInterfaces());
@@ -164,10 +162,12 @@ public class CliTest {
@Test
public void testLoadEntityImplFromClasspath() throws Exception {
String entityName = ExampleEntityImpl.class.getName();
- Object appBuilder = loadApplicationFromClasspathOrParse(entityName);
- assertTrue(appBuilder instanceof ApplicationBuilder, "app="+appBuilder);
+ Object appSpec = loadApplicationFromClasspathOrParse(entityName);
+ assertTrue(appSpec instanceof EntitySpec, "app="+appSpec);
+
+ mgmt = LocalManagementContextForTests.newInstance();
+ app = (Application) mgmt.getEntityManager().createEntity((EntitySpec<?>)appSpec);
- app = ((ApplicationBuilder)appBuilder).manage();
Collection<Entity> entities = app.getChildren();
assertEquals(entities.size(), 1, "entities="+entities);
assertEquals(Iterables.getOnlyElement(entities).getEntityType().getName(), ExampleEntity.class.getCanonicalName(), "entities="+entities);
@@ -181,16 +181,6 @@ public class CliTest {
return launchCommand.loadApplicationFromClasspathOrParse(resourceUtils, loader, appName);
}
- private void assertAppWrappedInBuilder(ApplicationBuilder builder, String expectedAppTypeName) {
- StartableApplication app = builder.manage();
- try {
- String typeName = app.getEntityType().getName();
- assertEquals(typeName, expectedAppTypeName, "app="+app+"; typeName="+typeName);
- } finally {
- Entities.destroyAll(app.getManagementContext());
- }
- }
-
@Test
public void testInvokeGroovyScript() throws Exception {
File groovyFile = File.createTempFile("testinvokegroovy", "groovy");
@@ -756,11 +746,4 @@ public class CliTest {
@Override public void restart() {
}
}
-
- // An empty app builder to be used for testing
- public static class ExampleAppBuilder extends ApplicationBuilder {
- @Override protected void doBuild() {
- // no-op
- }
- }
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/52f9ebdd/software/base/src/test/java/org/apache/brooklyn/entity/AbstractGoogleComputeLiveTest.java
----------------------------------------------------------------------
diff --git a/software/base/src/test/java/org/apache/brooklyn/entity/AbstractGoogleComputeLiveTest.java b/software/base/src/test/java/org/apache/brooklyn/entity/AbstractGoogleComputeLiveTest.java
index e2c0dcc..7d70dd0 100644
--- a/software/base/src/test/java/org/apache/brooklyn/entity/AbstractGoogleComputeLiveTest.java
+++ b/software/base/src/test/java/org/apache/brooklyn/entity/AbstractGoogleComputeLiveTest.java
@@ -22,15 +22,9 @@ import java.util.List;
import java.util.Map;
import org.apache.brooklyn.api.location.Location;
-import org.apache.brooklyn.api.mgmt.ManagementContext;
-import org.apache.brooklyn.core.entity.Entities;
-import org.apache.brooklyn.core.entity.factory.ApplicationBuilder;
import org.apache.brooklyn.core.internal.BrooklynProperties;
-import org.apache.brooklyn.core.mgmt.internal.LocalManagementContext;
-import org.apache.brooklyn.core.test.entity.TestApplication;
+import org.apache.brooklyn.core.test.BrooklynAppLiveTestSupport;
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.base.CaseFormat;
@@ -40,7 +34,7 @@ import com.google.common.collect.ImmutableMap;
/**
* Runs a test with many different distros and versions.
*/
-public abstract class AbstractGoogleComputeLiveTest {
+public abstract class AbstractGoogleComputeLiveTest extends BrooklynAppLiveTestSupport {
// TODO See todos in AbstractEc2LiveTest
@@ -50,39 +44,28 @@ public abstract class AbstractGoogleComputeLiveTest {
public static final String STANDARD_HARDWARE_ID = "us-central1-b/n1-standard-1-d";
private static final int MAX_TAG_LENGTH = 63;
- protected BrooklynProperties brooklynProperties;
- protected ManagementContext ctx;
-
- protected TestApplication app;
protected Location jcloudsLocation;
- @BeforeMethod(alwaysRun=true)
- public void setUp() throws Exception {
+ @Override
+ protected BrooklynProperties getBrooklynProperties() {
+ // Don't let any defaults from brooklyn.properties (except credentials) interfere with test
List<String> propsToRemove = ImmutableList.of("imageId", "imageDescriptionRegex", "imageNameRegex", "inboundPorts", "hardwareId", "minRam");
-
- // Don't let any defaults from brooklyn.properties (except credentials) interfere with test
- brooklynProperties = BrooklynProperties.Factory.newDefault();
+ BrooklynProperties result = BrooklynProperties.Factory.newDefault();
for (String propToRemove : propsToRemove) {
for (String propVariant : ImmutableList.of(propToRemove, CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_HYPHEN, propToRemove))) {
- brooklynProperties.remove("brooklyn.locations.jclouds."+PROVIDER+"."+propVariant);
- brooklynProperties.remove("brooklyn.locations."+propVariant);
- brooklynProperties.remove("brooklyn.jclouds."+PROVIDER+"."+propVariant);
- brooklynProperties.remove("brooklyn.jclouds."+propVariant);
+ result.remove("brooklyn.locations.jclouds."+PROVIDER+"."+propVariant);
+ result.remove("brooklyn.locations."+propVariant);
+ result.remove("brooklyn.jclouds."+PROVIDER+"."+propVariant);
+ result.remove("brooklyn.jclouds."+propVariant);
}
}
// Also removes scriptHeader (e.g. if doing `. ~/.bashrc` and `. ~/.profile`, then that can cause "stdin: is not a tty")
- brooklynProperties.remove("brooklyn.ssh.config.scriptHeader");
+ result.remove("brooklyn.ssh.config.scriptHeader");
- ctx = new LocalManagementContext(brooklynProperties);
- app = ApplicationBuilder.newManagedApp(TestApplication.class, ctx);
- }
-
- @AfterMethod(alwaysRun=true)
- public void tearDown() throws Exception {
- if (app != null) Entities.destroyAllCatching(app.getManagementContext());
+ return result;
}
-
+
@Test(groups = {"Live"})
public void test_DefaultImage() throws Exception {
runTest(ImmutableMap.<String,String>of());
@@ -128,7 +111,7 @@ public abstract class AbstractGoogleComputeLiveTest {
.put("tags", ImmutableList.of(tag))
.putAll(flags)
.build();
- jcloudsLocation = ctx.getLocationRegistry().getLocationManaged(LOCATION_SPEC, allFlags);
+ jcloudsLocation = mgmt.getLocationRegistry().getLocationManaged(LOCATION_SPEC, allFlags);
doTest(jcloudsLocation);
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/52f9ebdd/software/base/src/test/java/org/apache/brooklyn/entity/AbstractSoftlayerLiveTest.java
----------------------------------------------------------------------
diff --git a/software/base/src/test/java/org/apache/brooklyn/entity/AbstractSoftlayerLiveTest.java b/software/base/src/test/java/org/apache/brooklyn/entity/AbstractSoftlayerLiveTest.java
index 5ef83ab..f7e7e07 100644
--- a/software/base/src/test/java/org/apache/brooklyn/entity/AbstractSoftlayerLiveTest.java
+++ b/software/base/src/test/java/org/apache/brooklyn/entity/AbstractSoftlayerLiveTest.java
@@ -22,17 +22,11 @@ import java.util.List;
import java.util.Map;
import org.apache.brooklyn.api.location.Location;
-import org.apache.brooklyn.api.mgmt.ManagementContext;
-import org.apache.brooklyn.core.entity.Entities;
-import org.apache.brooklyn.core.entity.factory.ApplicationBuilder;
import org.apache.brooklyn.core.internal.BrooklynProperties;
-import org.apache.brooklyn.core.mgmt.internal.LocalManagementContext;
-import org.apache.brooklyn.core.test.entity.TestApplication;
+import org.apache.brooklyn.core.test.BrooklynAppLiveTestSupport;
import org.apache.brooklyn.util.collections.MutableMap;
import org.apache.brooklyn.util.text.StringShortener;
import org.apache.brooklyn.util.text.Strings;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import com.google.common.base.CaseFormat;
@@ -42,45 +36,35 @@ import com.google.common.collect.ImmutableMap;
/**
* Runs a test with many different distros and versions.
*/
-public abstract class AbstractSoftlayerLiveTest {
+public abstract class AbstractSoftlayerLiveTest extends BrooklynAppLiveTestSupport {
public static final String PROVIDER = "softlayer";
public static final int MAX_TAG_LENGTH = 20;
public static final int MAX_VM_NAME_LENGTH = 30;
- protected BrooklynProperties brooklynProperties;
- protected ManagementContext ctx;
-
- protected TestApplication app;
protected Location jcloudsLocation;
- @BeforeMethod(alwaysRun=true)
- public void setUp() throws Exception {
+ @Override
+ protected BrooklynProperties getBrooklynProperties() {
List<String> propsToRemove = ImmutableList.of("imageId", "imageDescriptionRegex", "imageNameRegex", "inboundPorts", "hardwareId", "minRam");
// Don't let any defaults from brooklyn.properties (except credentials) interfere with test
- brooklynProperties = BrooklynProperties.Factory.newDefault();
+ BrooklynProperties result = BrooklynProperties.Factory.newDefault();
for (String propToRemove : propsToRemove) {
for (String propVariant : ImmutableList.of(propToRemove, CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_HYPHEN, propToRemove))) {
- brooklynProperties.remove("brooklyn.locations.jclouds."+PROVIDER+"."+propVariant);
- brooklynProperties.remove("brooklyn.locations."+propVariant);
- brooklynProperties.remove("brooklyn.jclouds."+PROVIDER+"."+propVariant);
- brooklynProperties.remove("brooklyn.jclouds."+propVariant);
+ result.remove("brooklyn.locations.jclouds."+PROVIDER+"."+propVariant);
+ result.remove("brooklyn.locations."+propVariant);
+ result.remove("brooklyn.jclouds."+PROVIDER+"."+propVariant);
+ result.remove("brooklyn.jclouds."+propVariant);
}
}
// Also removes scriptHeader (e.g. if doing `. ~/.bashrc` and `. ~/.profile`, then that can cause "stdin: is not a tty")
- brooklynProperties.remove("brooklyn.ssh.config.scriptHeader");
+ result.remove("brooklyn.ssh.config.scriptHeader");
- ctx = new LocalManagementContext(brooklynProperties);
- app = ApplicationBuilder.newManagedApp(TestApplication.class, ctx);
- }
-
- @AfterMethod(alwaysRun=true)
- public void tearDown() throws Exception {
- if (app != null) Entities.destroyAll(app.getManagementContext());
+ return result;
}
-
+
@Test(groups = {"Live"})
public void test_Default() throws Exception {
runTest(ImmutableMap.<String,Object>of());
@@ -106,7 +90,7 @@ public abstract class AbstractSoftlayerLiveTest {
.put("vmNameMaxLength", MAX_VM_NAME_LENGTH)
.putAll(flags)
.build();
- jcloudsLocation = ctx.getLocationRegistry().getLocationManaged(PROVIDER, allFlags);
+ jcloudsLocation = mgmt.getLocationRegistry().getLocationManaged(PROVIDER, allFlags);
doTest(jcloudsLocation);
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/52f9ebdd/software/base/src/test/java/org/apache/brooklyn/entity/chef/ChefConfigsTest.java
----------------------------------------------------------------------
diff --git a/software/base/src/test/java/org/apache/brooklyn/entity/chef/ChefConfigsTest.java b/software/base/src/test/java/org/apache/brooklyn/entity/chef/ChefConfigsTest.java
index de77a64..dfdb85f 100644
--- a/software/base/src/test/java/org/apache/brooklyn/entity/chef/ChefConfigsTest.java
+++ b/software/base/src/test/java/org/apache/brooklyn/entity/chef/ChefConfigsTest.java
@@ -20,28 +20,16 @@ package org.apache.brooklyn.entity.chef;
import java.util.Set;
-import org.apache.brooklyn.core.entity.Entities;
-import org.apache.brooklyn.core.entity.factory.ApplicationBuilder;
-import org.apache.brooklyn.core.test.entity.TestApplication;
+import org.apache.brooklyn.core.test.BrooklynAppUnitTestSupport;
import org.apache.brooklyn.entity.chef.ChefConfig;
import org.apache.brooklyn.entity.chef.ChefConfigs;
import org.testng.Assert;
-import org.testng.annotations.AfterMethod;
import org.testng.annotations.Test;
-public class ChefConfigsTest {
+public class ChefConfigsTest extends BrooklynAppUnitTestSupport {
- private TestApplication app = null;
-
- @AfterMethod(alwaysRun=true)
- public void tearDown() {
- if (app!=null) Entities.destroyAll(app.getManagementContext());
- app = null;
- }
-
@Test
public void testAddToRunList() {
- app = ApplicationBuilder.newManagedApp(TestApplication.class);
ChefConfigs.addToLaunchRunList(app, "a", "b");
Set<? extends String> runs = app.getConfig(ChefConfig.CHEF_LAUNCH_RUN_LIST);
Assert.assertEquals(runs.size(), 2, "runs="+runs);
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/52f9ebdd/software/base/src/test/java/org/apache/brooklyn/entity/chef/ChefServerTasksIntegrationTest.java
----------------------------------------------------------------------
diff --git a/software/base/src/test/java/org/apache/brooklyn/entity/chef/ChefServerTasksIntegrationTest.java b/software/base/src/test/java/org/apache/brooklyn/entity/chef/ChefServerTasksIntegrationTest.java
index ff5441e..a7b5803 100644
--- a/software/base/src/test/java/org/apache/brooklyn/entity/chef/ChefServerTasksIntegrationTest.java
+++ b/software/base/src/test/java/org/apache/brooklyn/entity/chef/ChefServerTasksIntegrationTest.java
@@ -21,10 +21,8 @@ package org.apache.brooklyn.entity.chef;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
-import org.apache.brooklyn.api.mgmt.ManagementContext;
import org.apache.brooklyn.core.entity.Entities;
-import org.apache.brooklyn.core.entity.factory.ApplicationBuilder;
-import org.apache.brooklyn.core.test.entity.TestApplication;
+import org.apache.brooklyn.core.test.BrooklynAppLiveTestSupport;
import org.apache.brooklyn.entity.chef.ChefConfig;
import org.apache.brooklyn.entity.chef.ChefServerTasks;
import org.apache.brooklyn.util.core.task.system.ProcessTaskWrapper;
@@ -34,8 +32,6 @@ import org.apache.brooklyn.util.time.Time;
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;
/** Many tests expect knife on the path, but none require any configuration beyond that.
@@ -65,25 +61,12 @@ import org.testng.annotations.Test;
* Note also that some tests require a location named:ChefLive to be set up in your brooklyn.properties.
* This can be a cloud (but will require frequent chef-node pruning) or a permanently set-up machine.
**/
-public class ChefServerTasksIntegrationTest {
+// TODO Does it really need to be a live test? When converting from ApplicationBuilder, preserved
+// existing behaviour of using the live BrooklynProperties.
+public class ChefServerTasksIntegrationTest extends BrooklynAppLiveTestSupport {
private static final Logger log = LoggerFactory.getLogger(ChefServerTasksIntegrationTest.class);
- protected TestApplication app;
- protected ManagementContext mgmt;
-
- @BeforeMethod(alwaysRun=true)
- public void setup() throws Exception {
- app = ApplicationBuilder.newManagedApp(TestApplication.class);
- mgmt = app.getManagementContext();
- }
-
- @AfterMethod(alwaysRun=true)
- public void tearDown() throws Exception {
- if (mgmt != null) Entities.destroyAll(mgmt);
- mgmt = null;
- }
-
/** @deprecated use {@link ChefLiveTestSupport} */
@Deprecated
public synchronized static String installBrooklynChefHostedConfig() {
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/52f9ebdd/software/base/src/test/java/org/apache/brooklyn/entity/software/base/AbstractDockerLiveTest.java
----------------------------------------------------------------------
diff --git a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/AbstractDockerLiveTest.java b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/AbstractDockerLiveTest.java
index f7602c0..c2f626d 100644
--- a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/AbstractDockerLiveTest.java
+++ b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/AbstractDockerLiveTest.java
@@ -23,15 +23,9 @@ import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import org.apache.brooklyn.api.location.Location;
-import org.apache.brooklyn.api.mgmt.ManagementContext;
-import org.apache.brooklyn.core.entity.Entities;
-import org.apache.brooklyn.core.entity.factory.ApplicationBuilder;
import org.apache.brooklyn.core.internal.BrooklynProperties;
-import org.apache.brooklyn.core.mgmt.internal.LocalManagementContext;
-import org.apache.brooklyn.core.test.entity.TestApplication;
+import org.apache.brooklyn.core.test.BrooklynAppLiveTestSupport;
import org.apache.brooklyn.util.collections.MutableMap;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.util.List;
@@ -40,44 +34,34 @@ import java.util.Map;
/**
* Runs a test with many different distros and versions.
*/
-public abstract class AbstractDockerLiveTest {
+public abstract class AbstractDockerLiveTest extends BrooklynAppLiveTestSupport {
public static final String PROVIDER = "docker";
- protected BrooklynProperties brooklynProperties;
- protected ManagementContext ctx;
-
- protected TestApplication app;
protected Location jcloudsLocation;
- @BeforeMethod(alwaysRun=true)
- public void setUp() throws Exception {
+ @Override
+ protected BrooklynProperties getBrooklynProperties() {
+ // Don't let any defaults from brooklyn.properties (except credentials) interfere with test
List<String> propsToRemove = ImmutableList.of("imageDescriptionRegex", "imageNameRegex", "inboundPorts",
"hardwareId", "minRam");
-
- // Don't let any defaults from brooklyn.properties (except credentials) interfere with test
- brooklynProperties = BrooklynProperties.Factory.newDefault();
+
+ BrooklynProperties result = BrooklynProperties.Factory.newDefault();
for (String propToRemove : propsToRemove) {
for (String propVariant : ImmutableList.of(propToRemove, CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_HYPHEN, propToRemove))) {
- brooklynProperties.remove("brooklyn.locations.jclouds."+PROVIDER+"."+propVariant);
- brooklynProperties.remove("brooklyn.locations."+propVariant);
- brooklynProperties.remove("brooklyn.jclouds."+PROVIDER+"."+propVariant);
- brooklynProperties.remove("brooklyn.jclouds."+propVariant);
+ result.remove("brooklyn.locations.jclouds."+PROVIDER+"."+propVariant);
+ result.remove("brooklyn.locations."+propVariant);
+ result.remove("brooklyn.jclouds."+PROVIDER+"."+propVariant);
+ result.remove("brooklyn.jclouds."+propVariant);
}
}
// Also removes scriptHeader (e.g. if doing `. ~/.bashrc` and `. ~/.profile`, then that can cause "stdin: is not a tty")
- brooklynProperties.remove("brooklyn.ssh.config.scriptHeader");
-
- ctx = new LocalManagementContext(brooklynProperties);
- app = ApplicationBuilder.newManagedApp(TestApplication.class, ctx);
- }
+ result.remove("brooklyn.ssh.config.scriptHeader");
- @AfterMethod(alwaysRun=true)
- public void tearDown() throws Exception {
- if (app != null) Entities.destroyAllCatching(app.getManagementContext());
+ return result;
}
-
+
@Test(groups={"Live", "WIP"})
public void test_Ubuntu_13_10() throws Exception {
runTest(ImmutableMap.of("imageId", "7fe2ec2ff748c411cf0d6833120741778c00e1b07a83c4104296b6258b5331c4",
@@ -91,7 +75,7 @@ public abstract class AbstractDockerLiveTest {
.put("tags", ImmutableList.of(tag))
.putAll(flags)
.build();
- jcloudsLocation = ctx.getLocationRegistry().getLocationManaged(PROVIDER, allFlags);
+ jcloudsLocation = mgmt.getLocationRegistry().getLocationManaged(PROVIDER, allFlags);
doTest(jcloudsLocation);
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/52f9ebdd/software/base/src/test/java/org/apache/brooklyn/entity/software/base/SoftwareProcessOpenIptablesStreamsLiveTest.java
----------------------------------------------------------------------
diff --git a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/SoftwareProcessOpenIptablesStreamsLiveTest.java b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/SoftwareProcessOpenIptablesStreamsLiveTest.java
index 990556f..81b58fd 100644
--- a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/SoftwareProcessOpenIptablesStreamsLiveTest.java
+++ b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/SoftwareProcessOpenIptablesStreamsLiveTest.java
@@ -26,12 +26,8 @@ import org.apache.brooklyn.api.entity.EntitySpec;
import org.apache.brooklyn.api.location.Location;
import org.apache.brooklyn.api.mgmt.HasTaskChildren;
import org.apache.brooklyn.api.mgmt.Task;
-import org.apache.brooklyn.core.entity.factory.ApplicationBuilder;
-import org.apache.brooklyn.core.internal.BrooklynProperties;
import org.apache.brooklyn.core.mgmt.BrooklynTaskTags;
import org.apache.brooklyn.core.test.BrooklynAppLiveTestSupport;
-import org.apache.brooklyn.core.test.entity.LocalManagementContextForTests;
-import org.apache.brooklyn.core.test.entity.TestApplication;
import org.apache.brooklyn.util.core.task.TaskPredicates;
import org.apache.brooklyn.util.text.StringPredicates;
import org.slf4j.Logger;
@@ -47,25 +43,18 @@ public class SoftwareProcessOpenIptablesStreamsLiveTest extends BrooklynAppLiveT
private static final Logger LOG = LoggerFactory.getLogger(SoftwareProcessOpenIptablesStreamsLiveTest.class);
- protected BrooklynProperties brooklynProperties;
-
protected Location jcloudsLocation;
- protected TestApplication app;
-
@Override
@BeforeMethod(alwaysRun=true)
public void setUp() throws Exception {
-
- mgmt = new LocalManagementContextForTests(BrooklynProperties.Factory.newDefault());
+ super.setUp();
jcloudsLocation = mgmt.getLocationRegistry().getLocationManaged("jclouds:aws-ec2:us-west-1", ImmutableMap.<String, Object>builder()
.put("osFamily", "centos")
.put("osVersionRegex", "6\\..*")
.put("inboundPorts", ImmutableList.of(22, 31880, 31001, 8080, 8443, 1099))
.build());
-
- app = ApplicationBuilder.newManagedApp(newAppSpec(), mgmt);
}
@Test(groups = "Live")