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);
+    }
+
 }

Reply via email to