Adds two convenience methods to BrooklynApi for extracting domain objects from Responses
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/fd0178e4 Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/fd0178e4 Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/fd0178e4 Branch: refs/heads/master Commit: fd0178e4c31f9540666c2e65de5b22ee5a1db76a Parents: 7ad4f91 Author: Sam Corbett <[email protected]> Authored: Mon Sep 1 12:42:31 2014 +0100 Committer: Sam Corbett <[email protected]> Committed: Mon Sep 1 12:42:31 2014 +0100 ---------------------------------------------------------------------- pom.xml | 2 +- .../java/brooklyn/rest/client/BrooklynApi.java | 44 +++++++++++++++----- 2 files changed, 34 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/fd0178e4/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index b8caa25..51eb785 100644 --- a/pom.xml +++ b/pom.xml @@ -164,7 +164,7 @@ <solr.version>4.7.0</solr.version> <jtidy.version>r8-20060801</jtidy.version> <opendmk_jmxremote_optional_jar.version>1.0-b01-ea</opendmk_jmxremote_optional_jar.version> - <resteasy.version>3.0.1.Final</resteasy.version> + <resteasy.version>3.0.8.Final</resteasy.version> <maven-dependency-plugin.version>2.8</maven-dependency-plugin.version> <jopt.version>4.3</jopt.version> <concurrentlinkedhashmap.version>1.0_jdk5</concurrentlinkedhashmap.version> http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/fd0178e4/usage/rest-client/src/main/java/brooklyn/rest/client/BrooklynApi.java ---------------------------------------------------------------------- diff --git a/usage/rest-client/src/main/java/brooklyn/rest/client/BrooklynApi.java b/usage/rest-client/src/main/java/brooklyn/rest/client/BrooklynApi.java index 0951ed5..6d58928 100644 --- a/usage/rest-client/src/main/java/brooklyn/rest/client/BrooklynApi.java +++ b/usage/rest-client/src/main/java/brooklyn/rest/client/BrooklynApi.java @@ -18,7 +18,11 @@ */ package brooklyn.rest.client; +import javax.ws.rs.core.Response; + +import org.jboss.resteasy.client.ClientResponse; import org.jboss.resteasy.client.ProxyFactory; +import org.jboss.resteasy.util.GenericType; import brooklyn.rest.api.AccessApi; import brooklyn.rest.api.ActivityApi; @@ -36,18 +40,18 @@ import brooklyn.rest.api.ServerApi; import brooklyn.rest.api.UsageApi; import brooklyn.rest.api.VersionApi; - /** * @author Adam Lowe */ @SuppressWarnings("deprecation") public class BrooklynApi { + private final String target; - + public BrooklynApi(String endpoint) { target = endpoint; } - + public ActivityApi getActivityApi() { return ProxyFactory.create(ActivityApi.class, target); } @@ -63,27 +67,27 @@ public class BrooklynApi { public EffectorApi getEffectorApi() { return ProxyFactory.create(EffectorApi.class, target); } - + public EntityConfigApi getEntityConfigApi() { return ProxyFactory.create(EntityConfigApi.class, target); } - + public EntityApi getEntityApi() { return ProxyFactory.create(EntityApi.class, target); } - + public LocationApi getLocationApi() { return ProxyFactory.create(LocationApi.class, target); } - + public PolicyConfigApi getPolicyConfigApi() { return ProxyFactory.create(PolicyConfigApi.class, target); } - + public PolicyApi getPolicyApi() { return ProxyFactory.create(PolicyApi.class, target); } - + public ScriptApi getScriptApi() { return ProxyFactory.create(ScriptApi.class, target); } @@ -99,13 +103,31 @@ public class BrooklynApi { public UsageApi getUsageApi() { return ProxyFactory.create(UsageApi.class, target); } - + public VersionApi getVersionApi() { return ProxyFactory.create(VersionApi.class, target); } - + public AccessApi getAccessApi() { return ProxyFactory.create(AccessApi.class, target); } + @SuppressWarnings("unchecked") + public static <T> T getEntity(Response response, Class<T> type) { + if (!(response instanceof ClientResponse)) { + throw new IllegalArgumentException("Response should be instance of ClientResponse, is: " + response.getClass()); + } + ClientResponse clientResponse = (ClientResponse) response; + return (T) clientResponse.getEntity(type); + } + + @SuppressWarnings("unchecked") + public static <T> T getEntityGeneric(Response response, GenericType type) { + if (!(response instanceof ClientResponse)) { + throw new IllegalArgumentException("Response should be instance of ClientResponse, is: " + response.getClass()); + } + ClientResponse clientResponse = (ClientResponse) response; + return (T) clientResponse.getEntity(type); + } + }
