You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by al...@apache.org on 2015/07/02 18:49:13 UTC

[1/2] incubator-brooklyn git commit: BrooklynApi.getEntity handles instances of BuiltResponsePreservingError

Repository: incubator-brooklyn
Updated Branches:
  refs/heads/master b3bdacb64 -> c6901da92


BrooklynApi.getEntity handles instances of BuiltResponsePreservingError


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/6ca5d505
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/6ca5d505
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/6ca5d505

Branch: refs/heads/master
Commit: 6ca5d505cf8303363608d9cbc20631dee0e763e8
Parents: ea1d6cb
Author: Sam Corbett <sa...@cloudsoftcorp.com>
Authored: Tue Jun 30 11:20:33 2015 +0100
Committer: Sam Corbett <sa...@cloudsoftcorp.com>
Committed: Tue Jun 30 11:31:33 2015 +0100

----------------------------------------------------------------------
 usage/rest-client/pom.xml                       |  4 ++
 .../java/brooklyn/rest/client/BrooklynApi.java  | 43 ++++++++++++++------
 .../brooklyn/rest/filter/LoggingFilter.java     |  6 +--
 3 files changed, 37 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6ca5d505/usage/rest-client/pom.xml
----------------------------------------------------------------------
diff --git a/usage/rest-client/pom.xml b/usage/rest-client/pom.xml
index e409e67..9d76bf4 100644
--- a/usage/rest-client/pom.xml
+++ b/usage/rest-client/pom.xml
@@ -104,6 +104,10 @@
             <groupId>javax.ws.rs</groupId>
             <artifactId>jsr311-api</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.google.code.gson</groupId>
+            <artifactId>gson</artifactId>
+        </dependency>
 
         <dependency>
             <groupId>org.testng</groupId>

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6ca5d505/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 408addd..f57b4bd 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
@@ -44,6 +44,8 @@ import org.jboss.resteasy.util.GenericType;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.google.gson.Gson;
+
 import brooklyn.rest.api.AccessApi;
 import brooklyn.rest.api.ActivityApi;
 import brooklyn.rest.api.ApplicationApi;
@@ -222,24 +224,39 @@ public class BrooklynApi {
     }
 
     public static <T> T getEntity(Response response, Class<T> type) {
-        if (response instanceof BuiltResponse) {
-            Object entity = response.getEntity();
-            return type.cast(entity);
+        if (response instanceof ClientResponse) {
+            ClientResponse<?> clientResponse = (ClientResponse<?>) response;
+            return clientResponse.getEntity(type);
+        } else if (response instanceof BuiltResponse) {
+            // Handle BuiltResponsePreservingError turning objects into Strings
+            if (response.getEntity() instanceof String && !type.equals(String.class)) {
+                return new Gson().fromJson(response.getEntity().toString(), type);
+            }
         }
-        
-        if (!(response instanceof ClientResponse)) {
-            throw new IllegalArgumentException("Response should be instance of ClientResponse, is: " + response.getClass());
+        // Last-gasp attempt.
+        return type.cast(response.getEntity());
+    }
+
+    public static <T> T getEntity(Response response, GenericType<T> type) {
+        if (response instanceof ClientResponse) {
+            ClientResponse<?> clientResponse = (ClientResponse<?>) response;
+            return clientResponse.getEntity(type);
+        } else if (response instanceof BuiltResponse) {
+            // Handle BuiltResponsePreservingError turning objects into Strings
+            if (response.getEntity() instanceof String) {
+                return new Gson().fromJson(response.getEntity().toString(), type.getGenericType());
+            }
         }
-        ClientResponse<?> clientResponse = (ClientResponse<?>) response;
-        return (T) clientResponse.getEntity(type);
+        // Last-gasp attempt.
+        return type.getType().cast(response.getEntity());
     }
 
+    /**
+     * @deprecated Use {@link #getEntity(Response, GenericType)} instead.
+     */
+    @Deprecated
     public static <T> T getEntityGeneric(Response response, GenericType<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);
+        return getEntity(response, type);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/6ca5d505/usage/rest-server/src/main/java/brooklyn/rest/filter/LoggingFilter.java
----------------------------------------------------------------------
diff --git a/usage/rest-server/src/main/java/brooklyn/rest/filter/LoggingFilter.java b/usage/rest-server/src/main/java/brooklyn/rest/filter/LoggingFilter.java
index bbe5d37..d841fdb 100644
--- a/usage/rest-server/src/main/java/brooklyn/rest/filter/LoggingFilter.java
+++ b/usage/rest-server/src/main/java/brooklyn/rest/filter/LoggingFilter.java
@@ -146,9 +146,9 @@ public class LoggingFilter implements Filter {
                         message.append("******");
                     } else {
                         message.append(httpRequest.getHeader(headerName));
-                        if (headerNames.hasMoreElements()) {
-                            message.append(", ");
-                        }
+                    }
+                    if (headerNames.hasMoreElements()) {
+                        message.append(", ");
                     }
                 }
             }


[2/2] incubator-brooklyn git commit: This closes #728

Posted by al...@apache.org.
This closes #728


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/c6901da9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/c6901da9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/c6901da9

Branch: refs/heads/master
Commit: c6901da922be1c5c20848f98e92a3017046366c6
Parents: b3bdacb 6ca5d50
Author: Aled Sage <al...@gmail.com>
Authored: Thu Jul 2 17:48:51 2015 +0100
Committer: Aled Sage <al...@gmail.com>
Committed: Thu Jul 2 17:48:51 2015 +0100

----------------------------------------------------------------------
 usage/rest-client/pom.xml                       |  4 ++
 .../java/brooklyn/rest/client/BrooklynApi.java  | 43 ++++++++++++++------
 .../brooklyn/rest/filter/LoggingFilter.java     |  6 +--
 3 files changed, 37 insertions(+), 16 deletions(-)
----------------------------------------------------------------------