brooklyn-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From hadr...@apache.org
Subject [05/28] incubator-brooklyn git commit: brooklyn-rest-server: add org.apache package prefix
Date Sun, 09 Aug 2015 02:55:12 GMT
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a9e5ca55/usage/rest-server/src/test/java/brooklyn/rest/security/provider/TestSecurityProvider.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/test/java/brooklyn/rest/security/provider/TestSecurityProvider.java b/usage/rest-server/src/test/java/brooklyn/rest/security/provider/TestSecurityProvider.java
deleted file mode 100644
index 6377c76..0000000
--- a/usage/rest-server/src/test/java/brooklyn/rest/security/provider/TestSecurityProvider.java
+++ /dev/null
@@ -1,46 +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.rest.security.provider;
-
-import javax.servlet.http.HttpSession;
-
-import org.apache.http.auth.UsernamePasswordCredentials;
-
-public class TestSecurityProvider implements SecurityProvider {
-
-    public static final String USER = "test";
-    public static final String PASSWORD = "opensesame";
-    public static final UsernamePasswordCredentials CREDENTIAL =
-            new UsernamePasswordCredentials(TestSecurityProvider.USER, TestSecurityProvider.PASSWORD);
-
-    @Override
-    public boolean isAuthenticated(HttpSession session) {
-        return false;
-    }
-
-    @Override
-    public boolean authenticate(HttpSession session, String user, String password) {
-        return USER.equals(user) && PASSWORD.equals(password);
-    }
-
-    @Override
-    public boolean logout(HttpSession session) {
-        return false;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a9e5ca55/usage/rest-server/src/test/java/brooklyn/rest/testing/BrooklynRestApiTest.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/test/java/brooklyn/rest/testing/BrooklynRestApiTest.java b/usage/rest-server/src/test/java/brooklyn/rest/testing/BrooklynRestApiTest.java
deleted file mode 100644
index 36a7cd4..0000000
--- a/usage/rest-server/src/test/java/brooklyn/rest/testing/BrooklynRestApiTest.java
+++ /dev/null
@@ -1,185 +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.rest.testing;
-
-import org.apache.brooklyn.camp.brooklyn.BrooklynCampPlatformLauncherNoServer;
-import org.codehaus.jackson.map.ObjectMapper;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeMethod;
-
-import com.google.common.base.Preconditions;
-import com.sun.jersey.api.client.Client;
-import com.sun.jersey.api.core.DefaultResourceConfig;
-import com.sun.jersey.test.framework.AppDescriptor;
-import com.sun.jersey.test.framework.JerseyTest;
-import com.sun.jersey.test.framework.LowLevelAppDescriptor;
-
-import brooklyn.entity.basic.Entities;
-import brooklyn.location.LocationRegistry;
-import brooklyn.location.basic.BasicLocationRegistry;
-import brooklyn.management.ManagementContext;
-import brooklyn.management.ManagementContextInjectable;
-import brooklyn.management.internal.LocalManagementContext;
-import brooklyn.rest.BrooklynRestApi;
-import brooklyn.rest.BrooklynRestApiLauncherTest;
-import brooklyn.rest.util.BrooklynRestResourceUtils;
-import brooklyn.rest.util.NullHttpServletRequestProvider;
-import brooklyn.rest.util.NullServletConfigProvider;
-import brooklyn.rest.util.ShutdownHandlerProvider;
-import brooklyn.rest.util.TestShutdownHandler;
-import brooklyn.rest.util.json.BrooklynJacksonJsonProvider;
-import brooklyn.test.entity.LocalManagementContextForTests;
-import brooklyn.util.exceptions.Exceptions;
-
-public abstract class BrooklynRestApiTest {
-
-    protected ManagementContext manager;
-    
-    protected boolean useLocalScannedCatalog = false;
-    protected TestShutdownHandler shutdownListener = createShutdownHandler();
-
-    @BeforeMethod(alwaysRun = true)
-    public void setUpMethod() {
-        shutdownListener.reset();
-    }
-    
-    protected synchronized void useLocalScannedCatalog() {
-        if (manager!=null && !useLocalScannedCatalog)
-            throw new IllegalStateException("useLocalScannedCatalog must be specified before manager is accessed/created");
-        useLocalScannedCatalog = true;
-    }
-    
-    private TestShutdownHandler createShutdownHandler() {
-        return new TestShutdownHandler();
-    }
-
-    protected synchronized ManagementContext getManagementContext() {
-        if (manager==null) {
-            if (useLocalScannedCatalog) {
-                manager = new LocalManagementContext();
-                BrooklynRestApiLauncherTest.forceUseOfDefaultCatalogWithJavaClassPath(manager);
-            } else {
-                manager = new LocalManagementContextForTests();
-            }
-            manager.getHighAvailabilityManager().disabled();
-            BasicLocationRegistry.setupLocationRegistryForTesting(manager);
-            
-            new BrooklynCampPlatformLauncherNoServer()
-                .useManagementContext(manager)
-                .launch();
-        }
-        return manager;
-    }
-    
-    protected ObjectMapper mapper() {
-        return BrooklynJacksonJsonProvider.findSharedObjectMapper(null, getManagementContext());
-    }
-    
-    @AfterClass
-    public void tearDown() throws Exception {
-        destroyManagementContext();
-    }
-
-    protected void destroyManagementContext() {
-        if (manager!=null) {
-            Entities.destroyAll(manager);
-            manager = null;
-        }
-    }
-    
-    public LocationRegistry getLocationRegistry() {
-        return new BrooklynRestResourceUtils(getManagementContext()).getLocationRegistry();
-    }
-
-    private JerseyTest jerseyTest;
-    protected DefaultResourceConfig config = new DefaultResourceConfig();
-    
-    protected final void addResource(Object resource) {
-        Preconditions.checkNotNull(config, "Must run before setUpJersey");
-        
-        if (resource instanceof Class)
-            config.getClasses().add((Class<?>)resource);
-        else
-            config.getSingletons().add(resource);
-        
-        if (resource instanceof ManagementContextInjectable) {
-            ((ManagementContextInjectable)resource).injectManagementContext(getManagementContext());
-        }
-    }
-    
-    protected final void addProvider(Class<?> provider) {
-        Preconditions.checkNotNull(config, "Must run before setUpJersey");
-        
-        config.getClasses().add(provider);
-    }
-    
-    protected void addDefaultResources() {
-        // seems we have to provide our own injector because the jersey test framework 
-        // doesn't inject ServletConfig and it all blows up
-        // and the servlet config provider must be an instance; addClasses doesn't work for some reason
-        addResource(new NullServletConfigProvider());
-        addProvider(NullHttpServletRequestProvider.class);
-        addResource(new ShutdownHandlerProvider(shutdownListener));
-    }
-
-    protected final void setUpResources() {
-        addDefaultResources();
-        addBrooklynResources();
-        for (Object r: BrooklynRestApi.getMiscResources())
-            addResource(r);
-    }
-
-    /** intended for overriding if you only want certain resources added, or additional ones added */
-    protected void addBrooklynResources() {
-        for (Object r: BrooklynRestApi.getBrooklynRestResources())
-            addResource(r);
-    }
-
-    protected void setUpJersey() {
-        setUpResources();
-        
-        jerseyTest = new JerseyTest() {
-            @Override
-            protected AppDescriptor configure() {
-                return new LowLevelAppDescriptor.Builder(config).build();
-            }
-        };
-        config = null;
-        try {
-            jerseyTest.setUp();
-        } catch (Exception e) {
-            throw Exceptions.propagate(e);
-        }
-    }
-    protected void tearDownJersey() {
-        if (jerseyTest != null) {
-            try {
-                jerseyTest.tearDown();
-            } catch (Exception e) {
-                throw Exceptions.propagate(e);
-            }
-        }
-        config = new DefaultResourceConfig();
-    }
-
-    public Client client() {
-        Preconditions.checkNotNull(jerseyTest, "Must run setUpJersey first");
-        return jerseyTest.client();
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a9e5ca55/usage/rest-server/src/test/java/brooklyn/rest/testing/BrooklynRestResourceTest.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/test/java/brooklyn/rest/testing/BrooklynRestResourceTest.java b/usage/rest-server/src/test/java/brooklyn/rest/testing/BrooklynRestResourceTest.java
deleted file mode 100644
index 81c392e..0000000
--- a/usage/rest-server/src/test/java/brooklyn/rest/testing/BrooklynRestResourceTest.java
+++ /dev/null
@@ -1,155 +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.rest.testing;
-
-import static org.testng.Assert.assertTrue;
-
-import java.net.URI;
-import java.util.Collection;
-import java.util.concurrent.Callable;
-import java.util.concurrent.TimeUnit;
-import java.util.logging.Level;
-
-import javax.ws.rs.core.MediaType;
-
-import org.codehaus.jackson.map.ObjectMapper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.testng.Assert;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-
-import brooklyn.entity.Application;
-import brooklyn.entity.basic.Entities;
-import brooklyn.rest.domain.ApplicationSpec;
-import brooklyn.rest.domain.ApplicationSummary;
-import brooklyn.rest.domain.Status;
-import brooklyn.util.exceptions.Exceptions;
-import brooklyn.util.repeat.Repeater;
-import brooklyn.util.time.Duration;
-
-import com.sun.jersey.api.client.ClientResponse;
-import com.sun.jersey.api.client.UniformInterfaceException;
-import com.sun.jersey.spi.inject.Errors;
-
-public abstract class BrooklynRestResourceTest extends BrooklynRestApiTest {
-
-    private static final Logger log = LoggerFactory.getLogger(BrooklynRestResourceTest.class);
-    
-    @BeforeClass(alwaysRun = true)
-    public void setUp() throws Exception {
-        // need this to debug jersey inject errors
-        java.util.logging.Logger.getLogger(Errors.class.getName()).setLevel(Level.INFO);
-
-        setUpJersey();
-    }
-
-    @Override
-    @AfterClass(alwaysRun = true)
-    public void tearDown() throws Exception {
-        tearDownJersey();
-        super.tearDown();
-    }
-
-
-    protected ClientResponse clientDeploy(ApplicationSpec spec) {
-        try {
-            // dropwizard TestClient won't skip deserialization of trivial things like string and byte[] and inputstream
-            // if we pass in an object it serializes, so we have to serialize things ourselves
-            return client().resource("/v1/applications")
-                .entity(new ObjectMapper().writer().writeValueAsBytes(spec), MediaType.APPLICATION_OCTET_STREAM)
-                .post(ClientResponse.class);
-        } catch (Exception e) {
-            throw Exceptions.propagate(e);
-        }
-    }
-    
-    protected void waitForApplicationToBeRunning(final URI applicationRef) {
-        waitForApplicationToBeRunning(applicationRef, Duration.minutes(3));
-    }
-    protected void waitForApplicationToBeRunning(final URI applicationRef, Duration timeout) {
-        if (applicationRef==null)
-            throw new NullPointerException("No application URI available (consider using BrooklynRestResourceTest.clientDeploy)");
-        
-        boolean started = Repeater.create("Wait for application startup")
-                .until(new Callable<Boolean>() {
-                    @Override
-                    public Boolean call() throws Exception {
-                        Status status = getApplicationStatus(applicationRef);
-                        if (status == Status.ERROR) {
-                            Assert.fail("Application failed with ERROR");
-                        }
-                        return status == Status.RUNNING;
-                    }
-                })
-                .backoffTo(Duration.ONE_SECOND)
-                .limitTimeTo(timeout)
-                .run();
-        
-        if (!started) {
-            log.warn("Did not start application "+applicationRef+":");
-            Collection<Application> apps = getManagementContext().getApplications();
-            for (Application app: apps)
-                Entities.dumpInfo(app);
-        }
-        assertTrue(started);
-    }
-
-    protected Status getApplicationStatus(URI uri) {
-        return client().resource(uri).get(ApplicationSummary.class).getStatus();
-    }
-
-    protected void waitForPageFoundResponse(final String resource, final Class<?> clazz) {
-        boolean found = Repeater.create("Wait for page found")
-                .until(new Callable<Boolean>() {
-                    @Override
-                    public Boolean call() throws Exception {
-                        try {
-                            client().resource(resource).get(clazz);
-                            return true;
-                        } catch (UniformInterfaceException e) {
-                            return false;
-                        }
-                    }
-                })
-                .every(1, TimeUnit.SECONDS)
-                .limitTimeTo(30, TimeUnit.SECONDS)
-                .run();
-        assertTrue(found);
-    }
-    
-    protected void waitForPageNotFoundResponse(final String resource, final Class<?> clazz) {
-        boolean success = Repeater.create("Wait for page not found")
-                .until(new Callable<Boolean>() {
-                    @Override
-                    public Boolean call() throws Exception {
-                        try {
-                            client().resource(resource).get(clazz);
-                            return false;
-                        } catch (UniformInterfaceException e) {
-                            return e.getResponse().getStatus() == 404;
-                        }
-                    }
-                })
-                .every(1, TimeUnit.SECONDS)
-                .limitTimeTo(30, TimeUnit.SECONDS)
-                .run();
-        assertTrue(success);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a9e5ca55/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/CapitalizePolicy.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/CapitalizePolicy.java b/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/CapitalizePolicy.java
deleted file mode 100644
index ceefc6a..0000000
--- a/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/CapitalizePolicy.java
+++ /dev/null
@@ -1,32 +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.rest.testing.mocks;
-
-import brooklyn.entity.basic.EntityLocal;
-import brooklyn.policy.basic.AbstractPolicy;
-
-public class CapitalizePolicy extends AbstractPolicy {
-
-    @Override
-    public void setEntity(EntityLocal entity) {
-        super.setEntity(entity);
-        // TODO subscribe to foo and emit an enriched sensor on different channel which is capitalized
-    }
-    
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a9e5ca55/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/EverythingGroup.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/EverythingGroup.java b/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/EverythingGroup.java
deleted file mode 100644
index 70ba657..0000000
--- a/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/EverythingGroup.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package brooklyn.rest.testing.mocks;
-
-import brooklyn.entity.Group;
-import brooklyn.entity.proxying.ImplementedBy;
-
-@ImplementedBy(EverythingGroupImpl.class)
-public interface EverythingGroup extends Group {
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a9e5ca55/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/EverythingGroupImpl.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/EverythingGroupImpl.java b/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/EverythingGroupImpl.java
deleted file mode 100644
index b9e1667..0000000
--- a/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/EverythingGroupImpl.java
+++ /dev/null
@@ -1,32 +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.rest.testing.mocks;
-
-import brooklyn.entity.basic.DynamicGroupImpl;
-
-import com.google.common.base.Predicates;
-
-public class EverythingGroupImpl extends DynamicGroupImpl implements EverythingGroup {
-
-    public EverythingGroupImpl() {
-        super();
-        config().set(ENTITY_FILTER, Predicates.alwaysTrue());
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a9e5ca55/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/NameMatcherGroup.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/NameMatcherGroup.java b/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/NameMatcherGroup.java
deleted file mode 100644
index 87d445c..0000000
--- a/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/NameMatcherGroup.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package brooklyn.rest.testing.mocks;
-
-import brooklyn.config.ConfigKey;
-import brooklyn.entity.Group;
-import brooklyn.entity.basic.ConfigKeys;
-import brooklyn.entity.proxying.ImplementedBy;
-
-@ImplementedBy(NameMatcherGroupImpl.class)
-public interface NameMatcherGroup extends Group {
-
-    public static final ConfigKey<String> NAME_REGEX = ConfigKeys.newStringConfigKey("namematchergroup.regex");
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a9e5ca55/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/NameMatcherGroupImpl.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/NameMatcherGroupImpl.java b/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/NameMatcherGroupImpl.java
deleted file mode 100644
index f0b482d..0000000
--- a/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/NameMatcherGroupImpl.java
+++ /dev/null
@@ -1,33 +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.rest.testing.mocks;
-
-import brooklyn.entity.basic.DynamicGroupImpl;
-import brooklyn.entity.basic.EntityPredicates;
-import brooklyn.util.text.StringPredicates;
-
-public class NameMatcherGroupImpl extends DynamicGroupImpl implements NameMatcherGroup {
-
-    @Override
-    public void init() {
-        super.init();
-        config().set(ENTITY_FILTER, EntityPredicates.displayNameSatisfies(StringPredicates.matchesRegex(getConfig(NAME_REGEX))));
-        rescanEntities();
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a9e5ca55/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/RestMockApp.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/RestMockApp.java b/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/RestMockApp.java
deleted file mode 100644
index 186ca76..0000000
--- a/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/RestMockApp.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package brooklyn.rest.testing.mocks;
-
-import brooklyn.entity.basic.AbstractApplication;
-
-public class RestMockApp extends AbstractApplication {
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a9e5ca55/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/RestMockAppBuilder.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/RestMockAppBuilder.java b/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/RestMockAppBuilder.java
deleted file mode 100644
index cb68cf3..0000000
--- a/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/RestMockAppBuilder.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package brooklyn.rest.testing.mocks;
-
-import brooklyn.entity.Entity;
-import brooklyn.entity.basic.ApplicationBuilder;
-import brooklyn.entity.basic.StartableApplication;
-import brooklyn.entity.proxying.EntitySpec;
-import brooklyn.util.javalang.Reflections;
-
-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/incubator-brooklyn/blob/a9e5ca55/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/RestMockSimpleEntity.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/RestMockSimpleEntity.java b/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/RestMockSimpleEntity.java
deleted file mode 100644
index 1f66a0b..0000000
--- a/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/RestMockSimpleEntity.java
+++ /dev/null
@@ -1,104 +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.rest.testing.mocks;
-
-import java.util.Map;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import brooklyn.config.ConfigKey;
-import brooklyn.entity.Entity;
-import brooklyn.entity.annotation.Effector;
-import brooklyn.entity.annotation.EffectorParam;
-import brooklyn.entity.basic.AbstractSoftwareProcessSshDriver;
-import brooklyn.entity.basic.EntityLocal;
-import brooklyn.entity.basic.MethodEffector;
-import brooklyn.entity.basic.SoftwareProcessImpl;
-import brooklyn.event.AttributeSensor;
-import brooklyn.event.basic.BasicAttributeSensor;
-import brooklyn.event.basic.BasicConfigKey;
-import brooklyn.location.basic.SshMachineLocation;
-import brooklyn.util.flags.SetFromFlag;
-
-public class RestMockSimpleEntity extends SoftwareProcessImpl {
-
-    private static final Logger log = LoggerFactory.getLogger(RestMockSimpleEntity.class);
-    
-    public RestMockSimpleEntity() {
-        super();
-    }
-
-    public RestMockSimpleEntity(Entity parent) {
-        super(parent);
-    }
-
-    public RestMockSimpleEntity(@SuppressWarnings("rawtypes") Map flags, Entity parent) {
-        super(flags, parent);
-    }
-
-    public RestMockSimpleEntity(@SuppressWarnings("rawtypes") Map flags) {
-        super(flags);
-    }
-    
-    @Override
-    protected void connectSensors() {
-        super.connectSensors();
-        connectServiceUpIsRunning();
-    }
-
-    @SetFromFlag("sampleConfig")
-    public static final ConfigKey<String> SAMPLE_CONFIG = new BasicConfigKey<String>(
-            String.class, "brooklyn.rest.mock.sample.config", "Mock sample config", "DEFAULT_VALUE");
-
-    public static final AttributeSensor<String> SAMPLE_SENSOR = new BasicAttributeSensor<String>(
-            String.class, "brooklyn.rest.mock.sample.sensor", "Mock sample sensor");
-
-    public static final MethodEffector<String> SAMPLE_EFFECTOR = new MethodEffector<String>(RestMockSimpleEntity.class, "sampleEffector");
-    
-    @Effector
-    public String sampleEffector(@EffectorParam(name="param1", description="param one") String param1, 
-            @EffectorParam(name="param2") Integer param2) {
-        log.info("Invoked sampleEffector("+param1+","+param2+")");
-        String result = ""+param1+param2;
-        setAttribute(SAMPLE_SENSOR, result);
-        return result;
-    }
-
-    @SuppressWarnings("rawtypes")
-    @Override
-    public Class getDriverInterface() {
-        return MockSshDriver.class;
-    }
-    
-    public static class MockSshDriver extends AbstractSoftwareProcessSshDriver {
-        public MockSshDriver(EntityLocal entity, SshMachineLocation machine) {
-            super(entity, machine);
-        }
-        public boolean isRunning() { return true; }
-        public void stop() {}
-        public void kill() {}
-        public void install() {}
-        public void customize() {}
-        public void launch() {}
-        public void setup() { }
-        public void copyInstallResources() { }
-        public void copyRuntimeResources() { }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a9e5ca55/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/RestMockSimplePolicy.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/RestMockSimplePolicy.java b/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/RestMockSimplePolicy.java
deleted file mode 100644
index 785e1db..0000000
--- a/usage/rest-server/src/test/java/brooklyn/rest/testing/mocks/RestMockSimplePolicy.java
+++ /dev/null
@@ -1,65 +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.rest.testing.mocks;
-
-import java.util.Map;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import brooklyn.config.ConfigKey;
-import brooklyn.event.basic.BasicConfigKey;
-import brooklyn.policy.basic.AbstractPolicy;
-import brooklyn.util.flags.SetFromFlag;
-
-public class RestMockSimplePolicy extends AbstractPolicy {
-
-    @SuppressWarnings("unused")
-    private static final Logger log = LoggerFactory.getLogger(RestMockSimplePolicy.class);
-
-    public RestMockSimplePolicy() {
-        super();
-    }
-
-    @SuppressWarnings("rawtypes")
-    public RestMockSimplePolicy(Map flags) {
-        super(flags);
-    }
-
-    @SetFromFlag("sampleConfig")
-    public static final ConfigKey<String> SAMPLE_CONFIG = BasicConfigKey.builder(String.class)
-            .name("brooklyn.rest.mock.sample.config")
-            .description("Mock sample config")
-            .defaultValue("DEFAULT_VALUE")
-            .reconfigurable(true)
-            .build();
-
-    @SetFromFlag
-    public static final ConfigKey<Integer> INTEGER_CONFIG = BasicConfigKey.builder(Integer.class)
-            .name("brooklyn.rest.mock.sample.integer")
-            .description("Mock integer config")
-            .defaultValue(1)
-            .reconfigurable(true)
-            .build();
-
-    @Override
-    protected <T> void doReconfigureConfig(ConfigKey<T> key, T val) {
-        // no-op
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a9e5ca55/usage/rest-server/src/test/java/brooklyn/rest/util/BrooklynRestResourceUtilsTest.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/test/java/brooklyn/rest/util/BrooklynRestResourceUtilsTest.java b/usage/rest-server/src/test/java/brooklyn/rest/util/BrooklynRestResourceUtilsTest.java
deleted file mode 100644
index 3c6f9a9..0000000
--- a/usage/rest-server/src/test/java/brooklyn/rest/util/BrooklynRestResourceUtilsTest.java
+++ /dev/null
@@ -1,215 +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.rest.util;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertTrue;
-
-import java.util.Map;
-
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import org.apache.brooklyn.catalog.Catalog;
-import brooklyn.catalog.internal.CatalogItemBuilder;
-import brooklyn.catalog.internal.CatalogTemplateItemDto;
-import brooklyn.catalog.internal.CatalogUtils;
-import brooklyn.entity.Application;
-import brooklyn.entity.Entity;
-import brooklyn.entity.basic.AbstractApplication;
-import brooklyn.entity.basic.BasicEntity;
-import brooklyn.entity.basic.Entities;
-import brooklyn.entity.basic.EntityLocal;
-import brooklyn.entity.proxying.EntityProxy;
-import brooklyn.management.internal.LocalManagementContext;
-import brooklyn.policy.Policy;
-import brooklyn.policy.basic.AbstractPolicy;
-import brooklyn.rest.domain.ApplicationSpec;
-import brooklyn.rest.domain.EntitySpec;
-import brooklyn.test.entity.LocalManagementContextForTests;
-import brooklyn.test.entity.TestEntityImpl;
-import brooklyn.util.collections.MutableMap;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Iterables;
-
-public class BrooklynRestResourceUtilsTest {
-
-    private LocalManagementContext managementContext;
-    private BrooklynRestResourceUtils util;
-
-    @BeforeMethod(alwaysRun=true)
-    public void setUp() throws Exception {
-        managementContext = LocalManagementContextForTests.newInstance();
-        util = new BrooklynRestResourceUtils(managementContext);
-    }
-    
-    @AfterMethod(alwaysRun=true)
-    public void tearDown() throws Exception {
-        if (managementContext != null) managementContext.terminate();
-    }
-
-    @Test
-    public void testCreateAppFromImplClass() {
-        ApplicationSpec spec = ApplicationSpec.builder()
-                .name("myname")
-                .type(SampleNoOpApplication.class.getName())
-                .locations(ImmutableSet.of("localhost"))
-                .build();
-        Application app = util.create(spec);
-        
-        assertEquals(ImmutableList.copyOf(managementContext.getApplications()), ImmutableList.of(app));
-        assertEquals(app.getDisplayName(), "myname");
-        assertTrue(app instanceof EntityProxy);
-        assertTrue(app instanceof MyInterface);
-        assertFalse(app instanceof SampleNoOpApplication);
-    }
-
-    @Test
-    public void testCreateAppFromCatalogByType() {
-        createAppFromCatalog(SampleNoOpApplication.class.getName());
-    }
-
-    @Test
-    public void testCreateAppFromCatalogByName() {
-        createAppFromCatalog("app.noop");
-    }
-
-    @Test
-    public void testCreateAppFromCatalogById() {
-        createAppFromCatalog("app.noop:0.0.1");
-    }
-
-    @Test
-    @SuppressWarnings("deprecation")
-    public void testCreateAppFromCatalogByTypeMultipleItems() {
-        CatalogTemplateItemDto item = CatalogItemBuilder.newTemplate("app.noop", "0.0.2-SNAPSHOT")
-                .javaType(SampleNoOpApplication.class.getName())
-                .build();
-        managementContext.getCatalog().addItem(item);
-        createAppFromCatalog(SampleNoOpApplication.class.getName());
-    }
-
-    @SuppressWarnings("deprecation")
-    private void createAppFromCatalog(String type) {
-        CatalogTemplateItemDto item = CatalogItemBuilder.newTemplate("app.noop", "0.0.1")
-            .javaType(SampleNoOpApplication.class.getName())
-            .build();
-        managementContext.getCatalog().addItem(item);
-        
-        ApplicationSpec spec = ApplicationSpec.builder()
-                .name("myname")
-                .type(type)
-                .locations(ImmutableSet.of("localhost"))
-                .build();
-        Application app = util.create(spec);
-
-        assertEquals(app.getCatalogItemId(), "app.noop:0.0.1");
-    }
-
-    @Test
-    public void testEntityAppFromCatalogByType() {
-        createEntityFromCatalog(BasicEntity.class.getName());
-    }
-
-    @Test
-    public void testEntityAppFromCatalogByName() {
-        createEntityFromCatalog("app.basic");
-    }
-
-    @Test
-    public void testEntityAppFromCatalogById() {
-        createEntityFromCatalog("app.basic:0.0.1");
-    }
-
-    @Test
-    @SuppressWarnings("deprecation")
-    public void testEntityAppFromCatalogByTypeMultipleItems() {
-        CatalogTemplateItemDto item = CatalogItemBuilder.newTemplate("app.basic", "0.0.2-SNAPSHOT")
-                .javaType(SampleNoOpApplication.class.getName())
-                .build();
-        managementContext.getCatalog().addItem(item);
-        createEntityFromCatalog(BasicEntity.class.getName());
-    }
-
-    @SuppressWarnings("deprecation")
-    private void createEntityFromCatalog(String type) {
-        String symbolicName = "app.basic";
-        String version = "0.0.1";
-        CatalogTemplateItemDto item = CatalogItemBuilder.newTemplate(symbolicName, version)
-            .javaType(BasicEntity.class.getName())
-            .build();
-        managementContext.getCatalog().addItem(item);
-
-        ApplicationSpec spec = ApplicationSpec.builder()
-                .name("myname")
-                .entities(ImmutableSet.of(new EntitySpec(type)))
-                .locations(ImmutableSet.of("localhost"))
-                .build();
-        Application app = util.create(spec);
-
-        Entity entity = Iterables.getOnlyElement(app.getChildren());
-        assertEquals(entity.getCatalogItemId(), CatalogUtils.getVersionedId(symbolicName, version));
-    }
-
-    @Test
-    public void testNestedApplications() {
-        // hierarchy is: app -> subapp -> subentity (where subentity has a policy)
-        
-        SampleNoOpApplication app = new SampleNoOpApplication();
-        app.setDisplayName("app");
-        
-        SampleNoOpApplication subapp = new SampleNoOpApplication();
-        subapp.setDisplayName("subapp");
-        
-        TestEntityImpl subentity = new TestEntityImpl(MutableMap.of("displayName", "subentity"), subapp);
-        subentity.addPolicy(new MyPolicy(MutableMap.of("name", "mypolicy")));
-        subentity.getApplication(); // force this to be cached
-        
-        app.addChild(subapp);
-        Entities.startManagement(app, managementContext);
-        
-        EntityLocal subappRetrieved = util.getEntity(app.getId(), subapp.getId());
-        assertEquals(subappRetrieved.getDisplayName(), "subapp");
-        
-        EntityLocal subentityRetrieved = util.getEntity(app.getId(), subentity.getId());
-        assertEquals(subentityRetrieved.getDisplayName(), "subentity");
-        
-        Policy subappPolicy = util.getPolicy(app.getId(), subentity.getId(), "mypolicy");
-        assertEquals(subappPolicy.getDisplayName(), "mypolicy");
-    }
-
-    public interface MyInterface {
-    }
-
-    @Catalog(name="Sample No-Op Application",
-            description="Application which does nothing, included only as part of the test cases.",
-            iconUrl="")
-    public static class SampleNoOpApplication extends AbstractApplication implements MyInterface {
-    }
-    
-    public static class MyPolicy extends AbstractPolicy {
-        public MyPolicy(Map<String, ?> flags) {
-            super(flags);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a9e5ca55/usage/rest-server/src/test/java/brooklyn/rest/util/EntityLocationUtilsTest.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/test/java/brooklyn/rest/util/EntityLocationUtilsTest.java b/usage/rest-server/src/test/java/brooklyn/rest/util/EntityLocationUtilsTest.java
deleted file mode 100644
index 8a6d212..0000000
--- a/usage/rest-server/src/test/java/brooklyn/rest/util/EntityLocationUtilsTest.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package brooklyn.rest.util;
-
-import static org.testng.Assert.assertEquals;
-
-import java.util.Arrays;
-import java.util.Map;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import brooklyn.entity.BrooklynAppUnitTestSupport;
-import brooklyn.entity.basic.Entities;
-import brooklyn.entity.basic.SoftwareProcess;
-import brooklyn.entity.proxying.EntitySpec;
-import brooklyn.location.Location;
-import brooklyn.location.basic.AbstractLocation;
-import brooklyn.location.basic.LocationInternal;
-import brooklyn.location.geo.HostGeoInfo;
-import brooklyn.rest.testing.mocks.RestMockSimpleEntity;
-
-import com.google.common.collect.ImmutableList;
-
-public class EntityLocationUtilsTest extends BrooklynAppUnitTestSupport {
-
-    private static final Logger log = LoggerFactory.getLogger(EntityLocationUtilsTest.class);
-    
-    private Location loc;
-    
-    @BeforeMethod(alwaysRun=true)
-    @Override
-    public void setUp() throws Exception {
-        super.setUp();
-        loc = mgmt.getLocationRegistry().resolve("localhost");
-        ((AbstractLocation)loc).setHostGeoInfo(new HostGeoInfo("localhost", "localhost", 50, 0));
-    }
-    
-    @Test
-    public void testCount() {
-        @SuppressWarnings("unused")
-        SoftwareProcess r1 = app.createAndManageChild(EntitySpec.create(SoftwareProcess.class, RestMockSimpleEntity.class));
-        SoftwareProcess r2 = app.createAndManageChild(EntitySpec.create(SoftwareProcess.class, RestMockSimpleEntity.class));
-        Entities.start(app, Arrays.<Location>asList(loc));
-
-        Entities.dumpInfo(app);
-
-        log.info("r2loc: "+r2.getLocations());
-        log.info("props: "+((LocationInternal)r2.getLocations().iterator().next()).config().getBag().getAllConfig());
-
-        Map<Location, Integer> counts = new EntityLocationUtils(mgmt).countLeafEntitiesByLocatedLocations();
-        log.info("count: "+counts);
-        assertEquals(ImmutableList.copyOf(counts.values()), ImmutableList.of(2), "counts="+counts);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a9e5ca55/usage/rest-server/src/test/java/brooklyn/rest/util/HaHotStateCheckClassResource.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/test/java/brooklyn/rest/util/HaHotStateCheckClassResource.java b/usage/rest-server/src/test/java/brooklyn/rest/util/HaHotStateCheckClassResource.java
deleted file mode 100644
index 0a288a5..0000000
--- a/usage/rest-server/src/test/java/brooklyn/rest/util/HaHotStateCheckClassResource.java
+++ /dev/null
@@ -1,38 +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.rest.util;
-
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-
-import brooklyn.rest.filter.HaHotStateRequired;
-
-@Path("/ha/class")
-@Produces(MediaType.APPLICATION_JSON)
-@HaHotStateRequired
-public class HaHotStateCheckClassResource {
-
-    @GET
-    @Path("fail")
-    public String fail() {
-        return "FAIL";
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a9e5ca55/usage/rest-server/src/test/java/brooklyn/rest/util/HaHotStateCheckResource.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/test/java/brooklyn/rest/util/HaHotStateCheckResource.java b/usage/rest-server/src/test/java/brooklyn/rest/util/HaHotStateCheckResource.java
deleted file mode 100644
index 86a8ee3..0000000
--- a/usage/rest-server/src/test/java/brooklyn/rest/util/HaHotStateCheckResource.java
+++ /dev/null
@@ -1,44 +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.rest.util;
-
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-
-import brooklyn.rest.filter.HaHotStateRequired;
-
-@Path("/ha/method")
-@Produces(MediaType.APPLICATION_JSON)
-public class HaHotStateCheckResource {
-
-    @GET
-    @Path("ok")
-    public String ok() {
-        return "OK";
-    }
-
-    @GET
-    @Path("fail")
-    @HaHotStateRequired
-    public String fail() {
-        return "FAIL";
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a9e5ca55/usage/rest-server/src/test/java/brooklyn/rest/util/NullHttpServletRequestProvider.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/test/java/brooklyn/rest/util/NullHttpServletRequestProvider.java b/usage/rest-server/src/test/java/brooklyn/rest/util/NullHttpServletRequestProvider.java
deleted file mode 100644
index 2d6c77b..0000000
--- a/usage/rest-server/src/test/java/brooklyn/rest/util/NullHttpServletRequestProvider.java
+++ /dev/null
@@ -1,46 +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.rest.util;
-
-import java.lang.reflect.Type;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.ext.Provider;
-
-import com.sun.jersey.core.spi.component.ComponentContext;
-import com.sun.jersey.core.spi.component.ComponentScope;
-import com.sun.jersey.spi.inject.Injectable;
-import com.sun.jersey.spi.inject.InjectableProvider;
-
-@Provider
-public class NullHttpServletRequestProvider implements InjectableProvider<Context, Type> { 
-    public Injectable<HttpServletRequest> getInjectable(ComponentContext ic, 
-            Context a, Type c) { 
-        if (HttpServletRequest.class == c) { 
-            return new Injectable<HttpServletRequest>() {
-                public HttpServletRequest getValue() { return null; }
-            }; 
-        } else 
-            return null; 
-    } 
-    public ComponentScope getScope() { 
-        return ComponentScope.Singleton; 
-    } 
-} 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a9e5ca55/usage/rest-server/src/test/java/brooklyn/rest/util/NullServletConfigProvider.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/test/java/brooklyn/rest/util/NullServletConfigProvider.java b/usage/rest-server/src/test/java/brooklyn/rest/util/NullServletConfigProvider.java
deleted file mode 100644
index cf5759d..0000000
--- a/usage/rest-server/src/test/java/brooklyn/rest/util/NullServletConfigProvider.java
+++ /dev/null
@@ -1,46 +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.rest.util;
-
-import java.lang.reflect.Type;
-
-import javax.servlet.ServletContext;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.ext.Provider;
-
-import com.sun.jersey.core.spi.component.ComponentContext;
-import com.sun.jersey.core.spi.component.ComponentScope;
-import com.sun.jersey.spi.inject.Injectable;
-import com.sun.jersey.spi.inject.InjectableProvider;
-
-@Provider
-public class NullServletConfigProvider implements InjectableProvider<Context, Type> { 
-    public Injectable<ServletContext> getInjectable(ComponentContext ic, 
-            Context a, Type c) { 
-        if (ServletContext.class == c) { 
-            return new Injectable<ServletContext>() {
-                public ServletContext getValue() { return null; }
-            }; 
-        } else 
-            return null; 
-    } 
-    public ComponentScope getScope() { 
-        return ComponentScope.Singleton; 
-    } 
-} 

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a9e5ca55/usage/rest-server/src/test/java/brooklyn/rest/util/TestShutdownHandler.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/test/java/brooklyn/rest/util/TestShutdownHandler.java b/usage/rest-server/src/test/java/brooklyn/rest/util/TestShutdownHandler.java
deleted file mode 100644
index 19c6d19..0000000
--- a/usage/rest-server/src/test/java/brooklyn/rest/util/TestShutdownHandler.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package brooklyn.rest.util;
-
-import brooklyn.rest.util.ShutdownHandler;
-
-public class TestShutdownHandler implements ShutdownHandler {
-    private volatile boolean isRequested;
-
-    @Override
-    public void onShutdownRequest() {
-        isRequested = true;
-    }
-
-    public boolean isRequested() {
-        return isRequested;
-    }
-
-    public void reset() {
-        isRequested = false;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a9e5ca55/usage/rest-server/src/test/java/brooklyn/rest/util/json/BrooklynJacksonSerializerTest.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/test/java/brooklyn/rest/util/json/BrooklynJacksonSerializerTest.java b/usage/rest-server/src/test/java/brooklyn/rest/util/json/BrooklynJacksonSerializerTest.java
deleted file mode 100644
index 8437ae3..0000000
--- a/usage/rest-server/src/test/java/brooklyn/rest/util/json/BrooklynJacksonSerializerTest.java
+++ /dev/null
@@ -1,399 +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.rest.util.json;
-
-import java.io.NotSerializableException;
-import java.net.URI;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-
-import javax.ws.rs.core.MediaType;
-
-import org.apache.http.client.HttpClient;
-import org.apache.http.client.utils.URIBuilder;
-import org.codehaus.jackson.annotate.JsonProperty;
-import org.codehaus.jackson.map.ObjectMapper;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
-import org.eclipse.jetty.server.Server;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import brooklyn.entity.Entity;
-import brooklyn.entity.basic.Attributes;
-import brooklyn.entity.basic.BrooklynTaskTags;
-import brooklyn.entity.basic.Entities;
-import brooklyn.management.ManagementContext;
-import brooklyn.rest.BrooklynRestApiLauncher;
-import brooklyn.test.entity.LocalManagementContextForTests;
-import brooklyn.test.entity.TestApplication;
-import brooklyn.test.entity.TestEntity;
-import brooklyn.util.collections.MutableList;
-import brooklyn.util.collections.MutableMap;
-import brooklyn.util.exceptions.Exceptions;
-import brooklyn.util.http.HttpTool;
-import brooklyn.util.stream.Streams;
-import brooklyn.util.text.Strings;
-
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Multimap;
-import com.google.common.collect.MultimapBuilder;
-import com.google.gson.Gson;
-
-public class BrooklynJacksonSerializerTest {
-
-    private static final Logger log = LoggerFactory.getLogger(BrooklynJacksonSerializerTest.class);
-    
-    public static class SillyClassWithManagementContext {
-        @JsonProperty
-        ManagementContext mgmt;
-        @JsonProperty
-        String id;
-        
-        public SillyClassWithManagementContext() { }
-        
-        public SillyClassWithManagementContext(String id, ManagementContext mgmt) {
-            this.id = id;
-            this.mgmt = mgmt;
-        }
-
-        @Override
-        public String toString() {
-            return super.toString()+"[id="+id+";mgmt="+mgmt+"]";
-        }
-    }
-
-    @Test
-    public void testCustomSerializerWithSerializableSillyManagementExample() throws Exception {
-        ManagementContext mgmt = LocalManagementContextForTests.newInstance();
-        try {
-
-            ObjectMapper mapper = BrooklynJacksonJsonProvider.newPrivateObjectMapper(mgmt);
-
-            SillyClassWithManagementContext silly = new SillyClassWithManagementContext("123", mgmt);
-            log.info("silly is: "+silly);
-
-            String sillyS = mapper.writeValueAsString(silly);
-
-            log.info("silly json is: "+sillyS);
-
-            SillyClassWithManagementContext silly2 = mapper.readValue(sillyS, SillyClassWithManagementContext.class);
-            log.info("silly2 is: "+silly2);
-
-            Assert.assertEquals(silly.id, silly2.id);
-            
-        } finally {
-            Entities.destroyAll(mgmt);
-        }
-    }
-    
-    public static class SelfRefNonSerializableClass {
-        @JsonProperty
-        Object bogus = this;
-    }
-
-    @Test
-    public void testSelfReferenceFailsWhenStrict() {
-        checkNonSerializableWhenStrict(new SelfRefNonSerializableClass());
-    }
-    @Test
-    public void testSelfReferenceGeneratesErrorMapObject() throws Exception {
-        checkSerializesAsMapWithErrorAndToString(new SelfRefNonSerializableClass());
-    }
-    @Test
-    public void testNonSerializableInListIsShownInList() throws Exception {
-        List<?> result = checkSerializesAs(MutableList.of(1, new SelfRefNonSerializableClass()), List.class);
-        Assert.assertEquals( result.get(0), 1 );
-        Assert.assertEquals( ((Map<?,?>)result.get(1)).get("errorType"), NotSerializableException.class.getName() );
-    }
-    @Test
-    public void testNonSerializableInMapIsShownInMap() throws Exception {
-        Map<?,?> result = checkSerializesAs(MutableMap.of("x", new SelfRefNonSerializableClass()), Map.class);
-        Assert.assertEquals( ((Map<?,?>)result.get("x")).get("errorType"), NotSerializableException.class.getName() );
-    }
-    static class TupleWithNonSerializable {
-        String good = "bon";
-        SelfRefNonSerializableClass bad = new SelfRefNonSerializableClass();
-    }
-    @Test
-    public void testNonSerializableInObjectIsShownInMap() throws Exception {
-        String resultS = checkSerializesAs(new TupleWithNonSerializable(), null);
-        log.info("nested non-serializable json is "+resultS);
-        Assert.assertTrue(resultS.startsWith("{\"good\":\"bon\",\"bad\":{"), "expected a nested map for the error field, not "+resultS);
-        
-        Map<?,?> result = checkSerializesAs(new TupleWithNonSerializable(), Map.class);
-        Assert.assertEquals( result.get("good"), "bon" );
-        Assert.assertTrue( result.containsKey("bad"), "Should have had a key for field 'bad'" );
-        Assert.assertEquals( ((Map<?,?>)result.get("bad")).get("errorType"), NotSerializableException.class.getName() );
-    }
-    
-    public static class EmptyClass {
-    }
-
-    @Test
-    public void testEmptySerializesAsEmpty() throws Exception {
-        // deliberately, a class with no fields and no annotations serializes as an error,
-        // because the alternative, {}, is useless.  however if it *is* annotated, as below, then it will serialize fine.
-        checkSerializesAsMapWithErrorAndToString(new SelfRefNonSerializableClass());
-    }
-    @Test
-    public void testEmptyNonSerializableFailsWhenStrict() {
-        checkNonSerializableWhenStrict(new EmptyClass());
-    }
-
-    @JsonSerialize
-    public static class EmptyClassWithSerialize {
-    }
-
-    @Test
-    public void testEmptyAnnotatedSerializesAsEmptyEvenWhenStrict() throws Exception {
-        try {
-            BidiSerialization.setStrictSerialization(true);
-            testEmptyAnnotatedSerializesAsEmpty();
-        } finally {
-            BidiSerialization.clearStrictSerialization();
-        }
-    }
-    
-    @Test
-    public void testEmptyAnnotatedSerializesAsEmpty() throws Exception {
-        Map<?, ?> map = checkSerializesAs( new EmptyClassWithSerialize(), Map.class );
-        Assert.assertTrue(map.isEmpty(), "Expected an empty map; instead got: "+map);
-
-        String result = checkSerializesAs( MutableList.of(new EmptyClassWithSerialize()), null );
-        result = result.replaceAll(" ", "").trim();
-        Assert.assertEquals(result, "[{}]");
-    }
-
-    @Test
-    public void testSensorFailsWhenStrict() {
-        checkNonSerializableWhenStrict(MutableList.of(Attributes.HTTP_PORT));
-    }
-    @Test
-    public void testSensorSensible() throws Exception {
-        Map<?,?> result = checkSerializesAs(Attributes.HTTP_PORT, Map.class);
-        log.info("SENSOR json is: "+result);
-        Assert.assertFalse(result.toString().contains("error"), "Shouldn't have had an error, instead got: "+result);
-    }
-
-    @Test
-    public void testLinkedListSerialization() throws Exception {
-        LinkedList<Object> ll = new LinkedList<Object>();
-        ll.add(1); ll.add("two");
-        String result = checkSerializesAs(ll, null);
-        log.info("LLIST json is: "+result);
-        Assert.assertFalse(result.contains("error"), "Shouldn't have had an error, instead got: "+result);
-        Assert.assertEquals(Strings.collapseWhitespace(result, ""), "[1,\"two\"]");
-    }
-
-    @Test
-    public void testMultiMapSerialization() throws Exception {
-        Multimap<String, Integer> m = MultimapBuilder.hashKeys().arrayListValues().build();
-        m.put("bob", 24);
-        m.put("bob", 25);
-        String result = checkSerializesAs(m, null);
-        log.info("multimap serialized as: " + result);
-        Assert.assertFalse(result.contains("error"), "Shouldn't have had an error, instead got: "+result);
-        Assert.assertEquals(Strings.collapseWhitespace(result, ""), "{\"bob\":[24,25]}");
-    }
-
-    @Test
-    public void testSupplierSerialization() throws Exception {
-        String result = checkSerializesAs(Strings.toStringSupplier(Streams.byteArrayOfString("x")), null);
-        log.info("SUPPLIER json is: "+result);
-        Assert.assertFalse(result.contains("error"), "Shouldn't have had an error, instead got: "+result);
-    }
-
-    @Test
-    public void testWrappedStreamSerialization() throws Exception {
-        String result = checkSerializesAs(BrooklynTaskTags.tagForStream("TEST", Streams.byteArrayOfString("x")), null);
-        log.info("WRAPPED STREAM json is: "+result);
-        Assert.assertFalse(result.contains("error"), "Shouldn't have had an error, instead got: "+result);
-    }
-
-    @SuppressWarnings("unchecked")
-    protected <T> T checkSerializesAs(Object x, Class<T> type) {
-        ManagementContext mgmt = LocalManagementContextForTests.newInstance();
-        try {
-            ObjectMapper mapper = BrooklynJacksonJsonProvider.newPrivateObjectMapper(mgmt);
-            String tS = mapper.writeValueAsString(x);
-            log.debug("serialized "+x+" as "+tS);
-            Assert.assertTrue(tS.length() < 1000, "Data too long, size "+tS.length()+" for "+x);
-            if (type==null) return (T) tS;
-            return mapper.readValue(tS, type);
-        } catch (Exception e) {
-            throw Exceptions.propagate(e);
-        } finally {
-            Entities.destroyAll(mgmt);
-        }
-    }
-    protected Map<?,?> checkSerializesAsMapWithErrorAndToString(Object x) {
-        Map<?,?> rt = checkSerializesAs(x, Map.class);
-        Assert.assertEquals(rt.get("toString"), x.toString());
-        Assert.assertEquals(rt.get("error"), Boolean.TRUE);
-        return rt;
-    }
-    protected void checkNonSerializableWhenStrict(Object x) {
-        checkNonSerializable(x, true);
-    }
-    protected void checkNonSerializable(Object x, boolean strict) {
-        ManagementContext mgmt = LocalManagementContextForTests.newInstance();
-        try {
-            ObjectMapper mapper = BrooklynJacksonJsonProvider.newPrivateObjectMapper(mgmt);
-            if (strict)
-                BidiSerialization.setStrictSerialization(true);
-            
-            String tS = mapper.writeValueAsString(x);
-            Assert.fail("Should not have serialized "+x+"; instead gave: "+tS);
-            
-        } catch (Exception e) {
-            Exceptions.propagateIfFatal(e);
-            log.info("Got expected error, when serializing "+x+": "+e);
-            
-        } finally {
-            if (strict)
-                BidiSerialization.clearStrictSerialization();
-            Entities.destroyAll(mgmt);
-        }
-    }
-    
-    // Ensure TEXT_PLAIN just returns toString for ManagementContext instance.
-    // Strangely, testWithLauncherSerializingListsContainingEntitiesAndOtherComplexStuff ended up in the 
-    // EntityConfigResource.getPlain code, throwing a ClassCastException.
-    // 
-    // TODO This tests the fix for that ClassCastException, but does not explain why 
-    // testWithLauncherSerializingListsContainingEntitiesAndOtherComplexStuff was calling it.
-    @Test(groups="Integration") //because of time
-    public void testWithAcceptsPlainText() throws Exception {
-        ManagementContext mgmt = LocalManagementContextForTests.newInstance();
-        Server server = null;
-        try {
-            server = BrooklynRestApiLauncher.launcher().managementContext(mgmt).start();
-            HttpClient client = HttpTool.httpClientBuilder().build();
-
-            TestApplication app = TestApplication.Factory.newManagedInstanceForTests(mgmt);
-
-            String serverAddress = "http://localhost:"+server.getConnectors()[0].getLocalPort();
-            String appUrl = serverAddress + "/v1/applications/" + app.getId();
-            String entityUrl = appUrl + "/entities/" + app.getId();
-            URI configUri = new URIBuilder(entityUrl + "/config/" + TestEntity.CONF_OBJECT.getName())
-                    .addParameter("raw", "true")
-                    .build();
-
-            // assert config here is just mgmt.toString()
-            app.config().set(TestEntity.CONF_OBJECT, mgmt);
-            String content = get(client, configUri, ImmutableMap.of("Accept", MediaType.TEXT_PLAIN));
-            log.info("CONFIG MGMT is:\n"+content);
-            Assert.assertEquals(content, mgmt.toString(), "content="+content);
-            
-        } finally {
-            try {
-                if (server != null) server.stop();
-            } catch (Exception e) {
-                log.warn("failed to stop server: "+e);
-            }
-            Entities.destroyAll(mgmt);
-        }
-    }
-        
-    @Test(groups="Integration") //because of time
-    public void testWithLauncherSerializingListsContainingEntitiesAndOtherComplexStuff() throws Exception {
-        ManagementContext mgmt = LocalManagementContextForTests.newInstance();
-        Server server = null;
-        try {
-            server = BrooklynRestApiLauncher.launcher().managementContext(mgmt).start();
-            HttpClient client = HttpTool.httpClientBuilder().build();
-
-            TestApplication app = TestApplication.Factory.newManagedInstanceForTests(mgmt);
-
-            String serverAddress = "http://localhost:"+server.getConnectors()[0].getLocalPort();
-            String appUrl = serverAddress + "/v1/applications/" + app.getId();
-            String entityUrl = appUrl + "/entities/" + app.getId();
-            URI configUri = new URIBuilder(entityUrl + "/config/" + TestEntity.CONF_OBJECT.getName())
-                    .addParameter("raw", "true")
-                    .build();
-
-            // assert config here is just mgmt
-            app.config().set(TestEntity.CONF_OBJECT, mgmt);
-            String content = get(client, configUri, ImmutableMap.of("Accept", MediaType.APPLICATION_JSON));
-            log.info("CONFIG MGMT is:\n"+content);
-            @SuppressWarnings("rawtypes")
-            Map values = new Gson().fromJson(content, Map.class);
-            Assert.assertEquals(values, ImmutableMap.of("type", LocalManagementContextForTests.class.getCanonicalName()), "values="+values);
-
-            // assert normal API returns the same, containing links
-            content = get(client, entityUrl, ImmutableMap.of("Accept", MediaType.APPLICATION_JSON));
-            log.info("ENTITY is: \n"+content);
-            values = new Gson().fromJson(content, Map.class);
-            Assert.assertTrue(values.size()>=3, "Map is too small: "+values);
-            Assert.assertTrue(values.size()<=6, "Map is too big: "+values);
-            Assert.assertEquals(values.get("type"), TestApplication.class.getCanonicalName(), "values="+values);
-            Assert.assertNotNull(values.get("links"), "Map should have contained links: values="+values);
-
-            // but config etc returns our nicely json serialized
-            app.config().set(TestEntity.CONF_OBJECT, app);
-            content = get(client, configUri, ImmutableMap.of("Accept", MediaType.APPLICATION_JSON));
-            log.info("CONFIG ENTITY is:\n"+content);
-            values = new Gson().fromJson(content, Map.class);
-            Assert.assertEquals(values, ImmutableMap.of("type", Entity.class.getCanonicalName(), "id", app.getId()), "values="+values);
-
-            // and self-ref gives error + toString
-            SelfRefNonSerializableClass angry = new SelfRefNonSerializableClass();
-            app.config().set(TestEntity.CONF_OBJECT, angry);
-            content = get(client, configUri, ImmutableMap.of("Accept", MediaType.APPLICATION_JSON));
-            log.info("CONFIG ANGRY is:\n"+content);
-            assertErrorObjectMatchingToString(content, angry);
-            
-            // as does Server
-            app.config().set(TestEntity.CONF_OBJECT, server);
-            content = get(client, configUri, ImmutableMap.of("Accept", MediaType.APPLICATION_JSON));
-            // NOTE, if using the default visibility / object mapper, the getters of the object are invoked
-            // resulting in an object which is huge, 7+MB -- and it wreaks havoc w eclipse console regex parsing!
-            // (but with our custom VisibilityChecker server just gives us the nicer error!)
-            log.info("CONFIG SERVER is:\n"+content);
-            assertErrorObjectMatchingToString(content, server);
-            Assert.assertTrue(content.contains(NotSerializableException.class.getCanonicalName()), "server should have contained things which are not serializable");
-            Assert.assertTrue(content.length() < 1024, "content should not have been very long; instead was: "+content.length());
-            
-        } finally {
-            try {
-                if (server != null) server.stop();
-            } catch (Exception e) {
-                log.warn("failed to stop server: "+e);
-            }
-            Entities.destroyAll(mgmt);
-        }
-    }
-
-    private void assertErrorObjectMatchingToString(String content, Object expected) {
-        Object value = new Gson().fromJson(content, Object.class);
-        Assert.assertTrue(value instanceof Map, "Expected map, got: "+value);
-        Assert.assertEquals(((Map<?,?>)value).get("toString"), expected.toString());
-    }
-
-    private String get(HttpClient client, String uri, Map<String, String> headers) {
-        return get(client, URI.create(uri), headers);
-    }
-
-    private String get(HttpClient client, URI uri, Map<String, String> headers) {
-        return HttpTool.httpGet(client, uri, headers).getContentAsString();
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a9e5ca55/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
new file mode 100644
index 0000000..6195ab0
--- /dev/null
+++ b/usage/rest-server/src/test/java/org/apache/brooklyn/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.entity.brooklynnode;
+
+import static org.testng.Assert.assertEquals;
+
+import java.net.URI;
+import java.util.List;
+import java.util.Map;
+
+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.basic.EntityLocal;
+import brooklyn.entity.brooklynnode.BrooklynNode;
+import brooklyn.entity.brooklynnode.BrooklynNode.DeployBlueprintEffector;
+import brooklyn.entity.proxying.EntitySpec;
+import brooklyn.event.feed.http.JsonFunctions;
+import brooklyn.management.EntityManager;
+import org.apache.brooklyn.rest.BrooklynRestApiLauncherTestFixture;
+import brooklyn.test.HttpTestUtils;
+import 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/a9e5ca55/usage/rest-server/src/test/java/org/apache/brooklyn/rest/BrooklynPropertiesSecurityFilterTest.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/test/java/org/apache/brooklyn/rest/BrooklynPropertiesSecurityFilterTest.java b/usage/rest-server/src/test/java/org/apache/brooklyn/rest/BrooklynPropertiesSecurityFilterTest.java
new file mode 100644
index 0000000..fb8436f
--- /dev/null
+++ b/usage/rest-server/src/test/java/org/apache/brooklyn/rest/BrooklynPropertiesSecurityFilterTest.java
@@ -0,0 +1,111 @@
+/*
+ * 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;
+
+import static org.testng.Assert.assertTrue;
+
+import java.net.URI;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.http.HttpHeaders;
+import org.apache.http.NameValuePair;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.utils.URLEncodedUtils;
+import org.apache.http.entity.ContentType;
+import org.apache.http.message.BasicNameValuePair;
+import org.eclipse.jetty.server.Server;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.testng.annotations.Test;
+
+import org.apache.brooklyn.rest.security.provider.AnyoneSecurityProvider;
+import brooklyn.util.collections.MutableMap;
+import brooklyn.util.http.HttpTool;
+import brooklyn.util.http.HttpToolResponse;
+import brooklyn.util.time.Time;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.common.base.Charsets;
+import com.google.common.base.Stopwatch;
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.Lists;
+
+public class BrooklynPropertiesSecurityFilterTest extends BrooklynRestApiLauncherTestFixture {
+
+    private static final Logger LOG = LoggerFactory.getLogger(BrooklynPropertiesSecurityFilterTest.class);
+
+    // Would be great for this to be a unit test but it takes almost ten seconds.
+    @Test(groups = "Integration")
+    public void testInteractionOfSecurityFilterAndFormMapProvider() throws Exception {
+        Stopwatch stopwatch = Stopwatch.createStarted();
+        try {
+            Server server = useServerForTest(BrooklynRestApiLauncher.launcher()
+                    .securityProvider(AnyoneSecurityProvider.class)
+                    .forceUseOfDefaultCatalogWithJavaClassPath(true)
+                    .withoutJsgui()
+                    .start());
+            String appId = startAppAtNode(server);
+            String entityId = getTestEntityInApp(server, appId);
+            HttpClient client = HttpTool.httpClientBuilder()
+                    .uri(getBaseUri(server))
+                    .build();
+            List<? extends NameValuePair> nvps = Lists.newArrayList(
+                    new BasicNameValuePair("arg", "bar"));
+            String effector = String.format("/v1/applications/%s/entities/%s/effectors/identityEffector", appId, entityId);
+            HttpToolResponse response = HttpTool.httpPost(client, URI.create(getBaseUri() + effector),
+                    ImmutableMap.of(HttpHeaders.CONTENT_TYPE, ContentType.APPLICATION_FORM_URLENCODED.getMimeType()),
+                    URLEncodedUtils.format(nvps, Charsets.UTF_8).getBytes());
+
+            LOG.info("Effector response: {}", response.getContentAsString());
+            assertTrue(HttpTool.isStatusCodeHealthy(response.getResponseCode()), "response code=" + response.getResponseCode());
+        } finally {
+            LOG.info("testInteractionOfSecurityFilterAndFormMapProvider complete in " + Time.makeTimeStringRounded(stopwatch));
+        }
+    }
+
+    private String startAppAtNode(Server server) throws Exception {
+        String blueprint = "name: TestApp\n" +
+                "location: localhost\n" +
+                "services:\n" +
+                "- type: brooklyn.test.entity.TestEntity";
+        HttpClient client = HttpTool.httpClientBuilder()
+                .uri(getBaseUri(server))
+                .build();
+        HttpToolResponse response = HttpTool.httpPost(client, URI.create(getBaseUri() + "/v1/applications"),
+                ImmutableMap.of(HttpHeaders.CONTENT_TYPE, "application/x-yaml"),
+                blueprint.getBytes());
+        assertTrue(HttpTool.isStatusCodeHealthy(response.getResponseCode()), "error creating app. response code=" + response.getResponseCode());
+        @SuppressWarnings("unchecked")
+        Map<String, Object> body = new ObjectMapper().readValue(response.getContent(), HashMap.class);
+        return (String) body.get("entityId");
+    }
+
+    @SuppressWarnings("rawtypes")
+    private String getTestEntityInApp(Server server, String appId) throws Exception {
+        HttpClient client = HttpTool.httpClientBuilder()
+                .uri(getBaseUri(server))
+                .build();
+        List entities = new ObjectMapper().readValue(
+                HttpTool.httpGet(client, URI.create(getBaseUri() + "/v1/applications/" + appId + "/entities"), MutableMap.<String, String>of()).getContent(), List.class);
+        LOG.info((String) ((Map) entities.get(0)).get("id"));
+        return (String) ((Map) entities.get(0)).get("id");
+    }
+}



Mime
View raw message