more rest-server tidies
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/30c9eaa0 Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/30c9eaa0 Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/30c9eaa0 Branch: refs/heads/master Commit: 30c9eaa03da988fc15f2ab3a0991348d2f9ad5b0 Parents: 7e88061 Author: Alex Heneveld <[email protected]> Authored: Tue Aug 18 14:32:30 2015 +0100 Committer: Alex Heneveld <[email protected]> Committed: Tue Aug 18 14:51:58 2015 +0100 ---------------------------------------------------------------------- .../brooklyn/config/render/RendererHints.java | 6 +- .../config/render/TestRendererHints.java | 36 -------- .../brooklynnode/DeployBlueprintTest.java | 93 -------------------- .../brooklyn/rest/BrooklynRestApiLauncher.java | 27 +++--- .../rest/resources/EntityResourceTest.java | 26 +++--- .../SensorResourceIntegrationTest.java | 22 +++-- .../rest/resources/SensorResourceTest.java | 20 ++--- .../ServerResourceIntegrationTest.java | 16 ++-- .../rest/resources/ServerResourceTest.java | 24 ++--- .../rest/resources/ServerShutdownTest.java | 12 ++- .../test/config/render/TestRendererHints.java | 36 ++++++++ .../brooklynnode/DeployBlueprintTest.java | 91 +++++++++++++++++++ 12 files changed, 195 insertions(+), 214 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/30c9eaa0/core/src/main/java/brooklyn/config/render/RendererHints.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/brooklyn/config/render/RendererHints.java b/core/src/main/java/brooklyn/config/render/RendererHints.java index 8787b89..7628ac1 100644 --- a/core/src/main/java/brooklyn/config/render/RendererHints.java +++ b/core/src/main/java/brooklyn/config/render/RendererHints.java @@ -52,9 +52,11 @@ public class RendererHints { private static final Logger log = LoggerFactory.getLogger(RendererHints.class); - @VisibleForTesting - static SetMultimap<Object, Hint<?>> registry = Multimaps.synchronizedSetMultimap(LinkedHashMultimap.<Object, Hint<?>>create()); + private static SetMultimap<Object, Hint<?>> registry = Multimaps.synchronizedSetMultimap(LinkedHashMultimap.<Object, Hint<?>>create()); + @VisibleForTesting + public static SetMultimap<Object, Hint<?>> getRegistry() { return registry; } + /** * Registers a {@link Hint} against the given element. * <p> http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/30c9eaa0/usage/rest-server/src/test/java/brooklyn/config/render/TestRendererHints.java ---------------------------------------------------------------------- diff --git a/usage/rest-server/src/test/java/brooklyn/config/render/TestRendererHints.java b/usage/rest-server/src/test/java/brooklyn/config/render/TestRendererHints.java deleted file mode 100644 index 131866c..0000000 --- a/usage/rest-server/src/test/java/brooklyn/config/render/TestRendererHints.java +++ /dev/null @@ -1,36 +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 brooklyn.config.render; - -import brooklyn.config.render.RendererHints; - -/** Methods used when testing the {@link RendererHints} regiostry. */ -public class TestRendererHints { - - /** Clear the registry. - * - * MUST be used by a single test only. - * TestNG interleaves the tests (sequentially) which results in tearDown - * executing in the middle of another class' tests. Only one tearDown may - * call this method. - **/ - public static void clearRegistry() { - RendererHints.registry.clear(); - } -} http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/30c9eaa0/usage/rest-server/src/test/java/org/apache/brooklyn/entity/brooklynnode/DeployBlueprintTest.java ---------------------------------------------------------------------- diff --git a/usage/rest-server/src/test/java/org/apache/brooklyn/entity/brooklynnode/DeployBlueprintTest.java b/usage/rest-server/src/test/java/org/apache/brooklyn/entity/brooklynnode/DeployBlueprintTest.java deleted file mode 100644 index 2a1a0de..0000000 --- a/usage/rest-server/src/test/java/org/apache/brooklyn/entity/brooklynnode/DeployBlueprintTest.java +++ /dev/null @@ -1,93 +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.entity.brooklynnode; - -import static org.testng.Assert.assertEquals; - -import java.net.URI; -import java.util.List; -import java.util.Map; - -import org.apache.brooklyn.test.HttpTestUtils; -import org.eclipse.jetty.server.Server; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; - -import brooklyn.entity.basic.BasicApplication; -import brooklyn.entity.brooklynnode.BrooklynNode; -import brooklyn.entity.brooklynnode.BrooklynNode.DeployBlueprintEffector; -import brooklyn.event.feed.http.JsonFunctions; - -import org.apache.brooklyn.api.entity.basic.EntityLocal; -import org.apache.brooklyn.api.entity.proxying.EntitySpec; -import org.apache.brooklyn.api.management.EntityManager; -import org.apache.brooklyn.rest.BrooklynRestApiLauncherTestFixture; -import org.apache.brooklyn.test.HttpTestUtils; -import org.apache.brooklyn.util.guava.Functionals; - -import com.google.common.base.Function; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; - -public class DeployBlueprintTest extends BrooklynRestApiLauncherTestFixture { - - private static final Logger log = LoggerFactory.getLogger(DeployBlueprintTest.class); - - Server server; - - @BeforeMethod(alwaysRun=true) - public void setUp() throws Exception { - server = newServer(); - useServerForTest(server); - } - - @Test - public void testStartsAppViaEffector() throws Exception { - URI webConsoleUri = URI.create(getBaseUri()); - - EntitySpec<BrooklynNode> spec = EntitySpec.create(BrooklynNode.class); - EntityManager mgr = getManagementContextFromJettyServerAttributes(server).getEntityManager(); - BrooklynNode node = mgr.createEntity(spec); - ((EntityLocal)node).setAttribute(BrooklynNode.WEB_CONSOLE_URI, webConsoleUri); - mgr.manage(node); - Map<String, String> params = ImmutableMap.of(DeployBlueprintEffector.BLUEPRINT_CAMP_PLAN.getName(), "{ services: [ serviceType: \"java:"+BasicApplication.class.getName()+"\" ] }"); - String id = node.invoke(BrooklynNode.DEPLOY_BLUEPRINT, params).getUnchecked(); - - log.info("got: "+id); - - String apps = HttpTestUtils.getContent(webConsoleUri.toString()+"/v1/applications"); - List<String> appType = parseJsonList(apps, ImmutableList.of("spec", "type"), String.class); - assertEquals(appType, ImmutableList.of(BasicApplication.class.getName())); - - String status = HttpTestUtils.getContent(webConsoleUri.toString()+"/v1/applications/"+id+"/entities/"+id+"/sensors/service.status"); - log.info("STATUS: "+status); - } - - private <T> List<T> parseJsonList(String json, List<String> elements, Class<T> clazz) { - Function<String, List<T>> func = Functionals.chain( - JsonFunctions.asJson(), - JsonFunctions.forEach(Functionals.chain( - JsonFunctions.walk(elements), - JsonFunctions.cast(clazz)))); - return func.apply(json); - } - -} http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/30c9eaa0/usage/rest-server/src/test/java/org/apache/brooklyn/rest/BrooklynRestApiLauncher.java ---------------------------------------------------------------------- diff --git a/usage/rest-server/src/test/java/org/apache/brooklyn/rest/BrooklynRestApiLauncher.java b/usage/rest-server/src/test/java/org/apache/brooklyn/rest/BrooklynRestApiLauncher.java index e4bf5d6..ccc8bdf 100644 --- a/usage/rest-server/src/test/java/org/apache/brooklyn/rest/BrooklynRestApiLauncher.java +++ b/usage/rest-server/src/test/java/org/apache/brooklyn/rest/BrooklynRestApiLauncher.java @@ -35,20 +35,6 @@ import org.apache.brooklyn.camp.brooklyn.BrooklynCampPlatformLauncherAbstract; import org.apache.brooklyn.camp.brooklyn.BrooklynCampPlatformLauncherNoServer; import org.apache.brooklyn.core.management.internal.LocalManagementContext; import org.apache.brooklyn.core.management.internal.ManagementContextInternal; -import org.eclipse.jetty.server.Server; -import org.eclipse.jetty.server.handler.ContextHandler; -import org.eclipse.jetty.servlet.FilterHolder; -import org.eclipse.jetty.servlet.ServletContextHandler; -import org.eclipse.jetty.servlet.ServletHolder; -import org.eclipse.jetty.webapp.WebAppContext; -import org.reflections.util.ClasspathHelper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import brooklyn.config.BrooklynProperties; -import brooklyn.config.BrooklynServerConfig; -import brooklyn.config.BrooklynServiceAttributes; - import org.apache.brooklyn.rest.filter.BrooklynPropertiesSecurityFilter; import org.apache.brooklyn.rest.filter.HaMasterCheckFilter; import org.apache.brooklyn.rest.filter.LoggingFilter; @@ -62,6 +48,15 @@ import org.apache.brooklyn.rest.util.TestShutdownHandler; import org.apache.brooklyn.util.exceptions.Exceptions; import org.apache.brooklyn.util.net.Networking; import org.apache.brooklyn.util.text.WildcardGlobs; +import org.eclipse.jetty.server.Server; +import org.eclipse.jetty.server.handler.ContextHandler; +import org.eclipse.jetty.servlet.FilterHolder; +import org.eclipse.jetty.servlet.ServletContextHandler; +import org.eclipse.jetty.servlet.ServletHolder; +import org.eclipse.jetty.webapp.WebAppContext; +import org.reflections.util.ClasspathHelper; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.google.common.annotations.Beta; import com.google.common.base.Charsets; @@ -73,6 +68,10 @@ import com.sun.jersey.api.core.DefaultResourceConfig; import com.sun.jersey.api.core.ResourceConfig; import com.sun.jersey.spi.container.servlet.ServletContainer; +import brooklyn.config.BrooklynProperties; +import brooklyn.config.BrooklynServerConfig; +import brooklyn.config.BrooklynServiceAttributes; + /** Convenience and demo for launching programmatically. Also used for automated tests. * <p> * BrooklynLauncher has a more full-featured CLI way to start, http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/30c9eaa0/usage/rest-server/src/test/java/org/apache/brooklyn/rest/resources/EntityResourceTest.java ---------------------------------------------------------------------- diff --git a/usage/rest-server/src/test/java/org/apache/brooklyn/rest/resources/EntityResourceTest.java b/usage/rest-server/src/test/java/org/apache/brooklyn/rest/resources/EntityResourceTest.java index 16988cd..a9cbf1f 100644 --- a/usage/rest-server/src/test/java/org/apache/brooklyn/rest/resources/EntityResourceTest.java +++ b/usage/rest-server/src/test/java/org/apache/brooklyn/rest/resources/EntityResourceTest.java @@ -25,20 +25,6 @@ import java.util.Map; import javax.annotation.Nullable; import javax.ws.rs.core.MediaType; -import org.apache.brooklyn.test.HttpTestUtils; -import org.apache.brooklyn.test.entity.TestEntity; -import org.codehaus.jackson.map.ObjectMapper; -import org.codehaus.jackson.type.TypeReference; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.testng.Assert; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.Test; - -import brooklyn.entity.basic.BasicApplication; -import brooklyn.entity.basic.Entities; -import brooklyn.entity.basic.EntityInternal; - import org.apache.brooklyn.api.entity.Entity; import org.apache.brooklyn.rest.domain.ApplicationSpec; import org.apache.brooklyn.rest.domain.EntitySpec; @@ -46,14 +32,26 @@ import org.apache.brooklyn.rest.domain.TaskSummary; import org.apache.brooklyn.rest.testing.BrooklynRestResourceTest; import org.apache.brooklyn.rest.testing.mocks.RestMockSimpleEntity; import org.apache.brooklyn.test.HttpTestUtils; +import org.apache.brooklyn.test.entity.TestEntity; import org.apache.brooklyn.util.collections.MutableList; import org.apache.brooklyn.util.exceptions.Exceptions; +import org.codehaus.jackson.map.ObjectMapper; +import org.codehaus.jackson.type.TypeReference; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.testng.Assert; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; import com.google.common.base.Predicate; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; import com.sun.jersey.api.client.ClientResponse; +import brooklyn.entity.basic.BasicApplication; +import brooklyn.entity.basic.Entities; +import brooklyn.entity.basic.EntityInternal; + @Test(singleThreaded = true) public class EntityResourceTest extends BrooklynRestResourceTest { http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/30c9eaa0/usage/rest-server/src/test/java/org/apache/brooklyn/rest/resources/SensorResourceIntegrationTest.java ---------------------------------------------------------------------- diff --git a/usage/rest-server/src/test/java/org/apache/brooklyn/rest/resources/SensorResourceIntegrationTest.java b/usage/rest-server/src/test/java/org/apache/brooklyn/rest/resources/SensorResourceIntegrationTest.java index 9c35055..01b8d3e 100644 --- a/usage/rest-server/src/test/java/org/apache/brooklyn/rest/resources/SensorResourceIntegrationTest.java +++ b/usage/rest-server/src/test/java/org/apache/brooklyn/rest/resources/SensorResourceIntegrationTest.java @@ -20,18 +20,6 @@ package org.apache.brooklyn.rest.resources; import java.net.URI; -import org.apache.brooklyn.test.HttpTestUtils; -import org.apache.brooklyn.test.entity.LocalManagementContextForTests; -import org.apache.http.client.HttpClient; -import org.eclipse.jetty.server.Server; -import org.testng.Assert; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.Test; - -import brooklyn.entity.basic.BasicApplication; -import brooklyn.entity.basic.EntityInternal; -import brooklyn.entity.basic.EntityPredicates; - import org.apache.brooklyn.api.entity.Entity; import org.apache.brooklyn.api.entity.proxying.EntitySpec; import org.apache.brooklyn.api.management.ManagementContext; @@ -41,12 +29,22 @@ import org.apache.brooklyn.rest.BrooklynRestApiLauncher; import org.apache.brooklyn.rest.BrooklynRestApiLauncherTestFixture; import org.apache.brooklyn.rest.testing.mocks.RestMockSimpleEntity; import org.apache.brooklyn.test.HttpTestUtils; +import org.apache.brooklyn.test.entity.LocalManagementContextForTests; import org.apache.brooklyn.util.collections.MutableList; import org.apache.brooklyn.util.net.Urls; +import org.apache.http.client.HttpClient; +import org.eclipse.jetty.server.Server; +import org.testng.Assert; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Iterables; +import brooklyn.entity.basic.BasicApplication; +import brooklyn.entity.basic.EntityInternal; +import brooklyn.entity.basic.EntityPredicates; + public class SensorResourceIntegrationTest extends BrooklynRestApiLauncherTestFixture { private Server server; http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/30c9eaa0/usage/rest-server/src/test/java/org/apache/brooklyn/rest/resources/SensorResourceTest.java ---------------------------------------------------------------------- diff --git a/usage/rest-server/src/test/java/org/apache/brooklyn/rest/resources/SensorResourceTest.java b/usage/rest-server/src/test/java/org/apache/brooklyn/rest/resources/SensorResourceTest.java index 462e8d6..2b04262 100644 --- a/usage/rest-server/src/test/java/org/apache/brooklyn/rest/resources/SensorResourceTest.java +++ b/usage/rest-server/src/test/java/org/apache/brooklyn/rest/resources/SensorResourceTest.java @@ -25,27 +25,20 @@ import java.util.Map; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; -import org.apache.brooklyn.test.HttpTestUtils; -import org.testng.annotations.AfterClass; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.Test; - -import brooklyn.config.render.RendererHints; -import brooklyn.config.render.TestRendererHints; -import brooklyn.entity.basic.EntityInternal; -import brooklyn.entity.basic.EntityPredicates; -import brooklyn.event.basic.Sensors; - import org.apache.brooklyn.api.event.AttributeSensor; import org.apache.brooklyn.rest.api.SensorApi; import org.apache.brooklyn.rest.domain.ApplicationSpec; import org.apache.brooklyn.rest.domain.EntitySpec; +import org.apache.brooklyn.rest.test.config.render.TestRendererHints; import org.apache.brooklyn.rest.testing.BrooklynRestResourceTest; import org.apache.brooklyn.rest.testing.mocks.RestMockSimpleEntity; import org.apache.brooklyn.test.HttpTestUtils; import org.apache.brooklyn.util.collections.MutableMap; import org.apache.brooklyn.util.stream.Streams; import org.apache.brooklyn.util.text.StringFunctions; +import org.testng.annotations.AfterClass; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; import com.google.common.base.Functions; import com.google.common.collect.ImmutableSet; @@ -55,6 +48,11 @@ import com.sun.jersey.api.client.GenericType; import com.sun.jersey.api.client.WebResource; import com.sun.jersey.api.client.WebResource.Builder; +import brooklyn.config.render.RendererHints; +import brooklyn.entity.basic.EntityInternal; +import brooklyn.entity.basic.EntityPredicates; +import brooklyn.event.basic.Sensors; + /** * Test the {@link SensorApi} implementation. * <p> http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/30c9eaa0/usage/rest-server/src/test/java/org/apache/brooklyn/rest/resources/ServerResourceIntegrationTest.java ---------------------------------------------------------------------- diff --git a/usage/rest-server/src/test/java/org/apache/brooklyn/rest/resources/ServerResourceIntegrationTest.java b/usage/rest-server/src/test/java/org/apache/brooklyn/rest/resources/ServerResourceIntegrationTest.java index 0dcfd44..6c49764 100644 --- a/usage/rest-server/src/test/java/org/apache/brooklyn/rest/resources/ServerResourceIntegrationTest.java +++ b/usage/rest-server/src/test/java/org/apache/brooklyn/rest/resources/ServerResourceIntegrationTest.java @@ -25,15 +25,6 @@ import java.net.URI; import java.util.Collections; import java.util.Map; -import org.apache.brooklyn.test.HttpTestUtils; -import org.apache.http.HttpStatus; -import org.apache.http.auth.UsernamePasswordCredentials; -import org.apache.http.client.HttpClient; -import org.eclipse.jetty.server.Server; -import org.testng.annotations.Test; - -import brooklyn.config.BrooklynProperties; - import org.apache.brooklyn.api.management.ManagementContext; import org.apache.brooklyn.core.management.internal.LocalManagementContext; import org.apache.brooklyn.core.management.internal.ManagementContextInternal; @@ -43,9 +34,16 @@ import org.apache.brooklyn.rest.BrooklynRestApiLauncher; import org.apache.brooklyn.rest.BrooklynRestApiLauncherTestFixture; import org.apache.brooklyn.rest.security.provider.TestSecurityProvider; import org.apache.brooklyn.test.HttpTestUtils; +import org.apache.http.HttpStatus; +import org.apache.http.auth.UsernamePasswordCredentials; +import org.apache.http.client.HttpClient; +import org.eclipse.jetty.server.Server; +import org.testng.annotations.Test; import com.google.common.collect.ImmutableMap; +import brooklyn.config.BrooklynProperties; + public class ServerResourceIntegrationTest extends BrooklynRestApiLauncherTestFixture { /** http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/30c9eaa0/usage/rest-server/src/test/java/org/apache/brooklyn/rest/resources/ServerResourceTest.java ---------------------------------------------------------------------- diff --git a/usage/rest-server/src/test/java/org/apache/brooklyn/rest/resources/ServerResourceTest.java b/usage/rest-server/src/test/java/org/apache/brooklyn/rest/resources/ServerResourceTest.java index 975fd22..fcf2ff6 100644 --- a/usage/rest-server/src/test/java/org/apache/brooklyn/rest/resources/ServerResourceTest.java +++ b/usage/rest-server/src/test/java/org/apache/brooklyn/rest/resources/ServerResourceTest.java @@ -19,24 +19,25 @@ package org.apache.brooklyn.rest.resources; import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.assertTrue; import java.util.concurrent.CountDownLatch; -import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; -import javax.ws.rs.core.MultivaluedMap; - +import org.apache.brooklyn.api.entity.proxying.ImplementedBy; +import org.apache.brooklyn.api.management.ManagementContext; +import org.apache.brooklyn.core.management.internal.ManagementContextInternal; +import org.apache.brooklyn.rest.domain.HighAvailabilitySummary; +import org.apache.brooklyn.rest.domain.VersionSummary; +import org.apache.brooklyn.rest.testing.BrooklynRestResourceTest; +import org.apache.brooklyn.test.Asserts; +import org.apache.brooklyn.util.exceptions.Exceptions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import com.google.common.collect.ImmutableSet; import com.sun.jersey.api.client.UniformInterfaceException; -import com.sun.jersey.core.util.MultivaluedMapImpl; import brooklyn.BrooklynVersion; import brooklyn.config.BrooklynProperties; @@ -44,15 +45,6 @@ import brooklyn.entity.basic.EmptySoftwareProcess; import brooklyn.entity.basic.EmptySoftwareProcessDriver; import brooklyn.entity.basic.EmptySoftwareProcessImpl; -import org.apache.brooklyn.api.entity.proxying.ImplementedBy; -import org.apache.brooklyn.api.management.ManagementContext; -import org.apache.brooklyn.core.management.internal.ManagementContextInternal; -import org.apache.brooklyn.rest.domain.HighAvailabilitySummary; -import org.apache.brooklyn.rest.domain.VersionSummary; -import org.apache.brooklyn.rest.testing.BrooklynRestResourceTest; -import org.apache.brooklyn.test.Asserts; -import org.apache.brooklyn.util.exceptions.Exceptions; - @Test(singleThreaded = true) public class ServerResourceTest extends BrooklynRestResourceTest { http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/30c9eaa0/usage/rest-server/src/test/java/org/apache/brooklyn/rest/resources/ServerShutdownTest.java ---------------------------------------------------------------------- diff --git a/usage/rest-server/src/test/java/org/apache/brooklyn/rest/resources/ServerShutdownTest.java b/usage/rest-server/src/test/java/org/apache/brooklyn/rest/resources/ServerShutdownTest.java index 9616040..0164c17 100644 --- a/usage/rest-server/src/test/java/org/apache/brooklyn/rest/resources/ServerShutdownTest.java +++ b/usage/rest-server/src/test/java/org/apache/brooklyn/rest/resources/ServerShutdownTest.java @@ -27,6 +27,11 @@ import java.util.concurrent.atomic.AtomicReference; import javax.ws.rs.core.MultivaluedMap; +import org.apache.brooklyn.api.entity.proxying.EntitySpec; +import org.apache.brooklyn.api.management.EntityManager; +import org.apache.brooklyn.api.management.Task; +import org.apache.brooklyn.rest.resources.ServerResourceTest.StopLatchEntity; +import org.apache.brooklyn.rest.testing.BrooklynRestResourceTest; import org.apache.brooklyn.test.Asserts; import org.apache.brooklyn.test.EntityTestUtils; import org.apache.brooklyn.test.entity.TestApplication; @@ -44,18 +49,11 @@ import com.google.common.collect.ImmutableSet; import com.sun.jersey.core.util.MultivaluedMapImpl; import brooklyn.entity.basic.Attributes; -import brooklyn.entity.basic.Entities; import brooklyn.entity.basic.Lifecycle; import brooklyn.entity.drivers.BasicEntityDriverManager; import brooklyn.entity.drivers.ReflectiveEntityDriverFactory; import brooklyn.entity.trait.Startable; -import org.apache.brooklyn.api.entity.proxying.EntitySpec; -import org.apache.brooklyn.api.management.EntityManager; -import org.apache.brooklyn.api.management.Task; -import org.apache.brooklyn.rest.resources.ServerResourceTest.StopLatchEntity; -import org.apache.brooklyn.rest.testing.BrooklynRestResourceTest; - public class ServerShutdownTest extends BrooklynRestResourceTest { private static final Logger log = LoggerFactory.getLogger(ServerResourceTest.class); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/30c9eaa0/usage/rest-server/src/test/java/org/apache/brooklyn/rest/test/config/render/TestRendererHints.java ---------------------------------------------------------------------- diff --git a/usage/rest-server/src/test/java/org/apache/brooklyn/rest/test/config/render/TestRendererHints.java b/usage/rest-server/src/test/java/org/apache/brooklyn/rest/test/config/render/TestRendererHints.java new file mode 100644 index 0000000..dc4750a --- /dev/null +++ b/usage/rest-server/src/test/java/org/apache/brooklyn/rest/test/config/render/TestRendererHints.java @@ -0,0 +1,36 @@ +/* + * 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.test.config.render; + +import brooklyn.config.render.RendererHints; + +/** Methods used when testing the {@link RendererHints} regiostry. */ +public class TestRendererHints { + + /** Clear the registry. + * + * MUST be used by a single test only. + * TestNG interleaves the tests (sequentially) which results in tearDown + * executing in the middle of another class' tests. Only one tearDown may + * call this method. + **/ + public static void clearRegistry() { + RendererHints.getRegistry().clear(); + } +} http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/30c9eaa0/usage/rest-server/src/test/java/org/apache/brooklyn/rest/test/entity/brooklynnode/DeployBlueprintTest.java ---------------------------------------------------------------------- diff --git a/usage/rest-server/src/test/java/org/apache/brooklyn/rest/test/entity/brooklynnode/DeployBlueprintTest.java b/usage/rest-server/src/test/java/org/apache/brooklyn/rest/test/entity/brooklynnode/DeployBlueprintTest.java new file mode 100644 index 0000000..7225939 --- /dev/null +++ b/usage/rest-server/src/test/java/org/apache/brooklyn/rest/test/entity/brooklynnode/DeployBlueprintTest.java @@ -0,0 +1,91 @@ +/* + * 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.test.entity.brooklynnode; + +import static org.testng.Assert.assertEquals; + +import java.net.URI; +import java.util.List; +import java.util.Map; + +import org.apache.brooklyn.api.entity.basic.EntityLocal; +import org.apache.brooklyn.api.entity.proxying.EntitySpec; +import org.apache.brooklyn.api.management.EntityManager; +import org.apache.brooklyn.rest.BrooklynRestApiLauncherTestFixture; +import org.apache.brooklyn.test.HttpTestUtils; +import org.apache.brooklyn.util.guava.Functionals; +import org.eclipse.jetty.server.Server; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + +import com.google.common.base.Function; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; + +import brooklyn.entity.basic.BasicApplication; +import brooklyn.entity.brooklynnode.BrooklynNode; +import brooklyn.entity.brooklynnode.BrooklynNode.DeployBlueprintEffector; +import brooklyn.event.feed.http.JsonFunctions; + +public class DeployBlueprintTest extends BrooklynRestApiLauncherTestFixture { + + private static final Logger log = LoggerFactory.getLogger(DeployBlueprintTest.class); + + Server server; + + @BeforeMethod(alwaysRun=true) + public void setUp() throws Exception { + server = newServer(); + useServerForTest(server); + } + + @Test + public void testStartsAppViaEffector() throws Exception { + URI webConsoleUri = URI.create(getBaseUri()); + + EntitySpec<BrooklynNode> spec = EntitySpec.create(BrooklynNode.class); + EntityManager mgr = getManagementContextFromJettyServerAttributes(server).getEntityManager(); + BrooklynNode node = mgr.createEntity(spec); + ((EntityLocal)node).setAttribute(BrooklynNode.WEB_CONSOLE_URI, webConsoleUri); + mgr.manage(node); + Map<String, String> params = ImmutableMap.of(DeployBlueprintEffector.BLUEPRINT_CAMP_PLAN.getName(), "{ services: [ serviceType: \"java:"+BasicApplication.class.getName()+"\" ] }"); + String id = node.invoke(BrooklynNode.DEPLOY_BLUEPRINT, params).getUnchecked(); + + log.info("got: "+id); + + String apps = HttpTestUtils.getContent(webConsoleUri.toString()+"/v1/applications"); + List<String> appType = parseJsonList(apps, ImmutableList.of("spec", "type"), String.class); + assertEquals(appType, ImmutableList.of(BasicApplication.class.getName())); + + String status = HttpTestUtils.getContent(webConsoleUri.toString()+"/v1/applications/"+id+"/entities/"+id+"/sensors/service.status"); + log.info("STATUS: "+status); + } + + private <T> List<T> parseJsonList(String json, List<String> elements, Class<T> clazz) { + Function<String, List<T>> func = Functionals.chain( + JsonFunctions.asJson(), + JsonFunctions.forEach(Functionals.chain( + JsonFunctions.walk(elements), + JsonFunctions.cast(clazz)))); + return func.apply(json); + } + +}
