diff options
author | Fraser Tweedale <ftweedal@redhat.com> | 2015-08-21 00:49:06 -0400 |
---|---|---|
committer | Fraser Tweedale <ftweedal@redhat.com> | 2015-09-14 13:37:46 +1000 |
commit | e78f3d3c1e1145112c7dbf9ea8884917ddaacb17 (patch) | |
tree | c87824b0b79bef9f5115229e1b8124c685bb6882 | |
parent | 2ab352e1756d02695b73a9dbe782d353708ef553 (diff) | |
download | pki-e78f3d3c1e1145112c7dbf9ea8884917ddaacb17.tar.gz pki-e78f3d3c1e1145112c7dbf9ea8884917ddaacb17.tar.xz pki-e78f3d3c1e1145112c7dbf9ea8884917ddaacb17.zip |
API: add support for generic entities
-rw-r--r-- | base/common/src/com/netscape/certsrv/client/PKIClient.java | 5 | ||||
-rw-r--r-- | base/common/src/com/netscape/certsrv/client/PKIConnection.java | 19 |
2 files changed, 21 insertions, 3 deletions
diff --git a/base/common/src/com/netscape/certsrv/client/PKIClient.java b/base/common/src/com/netscape/certsrv/client/PKIClient.java index 9015cfa38..5c13554fe 100644 --- a/base/common/src/com/netscape/certsrv/client/PKIClient.java +++ b/base/common/src/com/netscape/certsrv/client/PKIClient.java @@ -26,6 +26,7 @@ import java.security.cert.CertificateEncodingException; import java.util.Collection; import java.util.HashSet; +import javax.ws.rs.core.GenericType; import javax.ws.rs.core.Response; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; @@ -112,6 +113,10 @@ public class PKIClient { return connection.getEntity(response, clazz); } + public <T> T getEntity(Response response, GenericType<T> clazz) { + return connection.getEntity(response, clazz); + } + public ClientConfig getConfig() { return config; } diff --git a/base/common/src/com/netscape/certsrv/client/PKIConnection.java b/base/common/src/com/netscape/certsrv/client/PKIConnection.java index 85b6c2082..fb7694615 100644 --- a/base/common/src/com/netscape/certsrv/client/PKIConnection.java +++ b/base/common/src/com/netscape/certsrv/client/PKIConnection.java @@ -35,6 +35,7 @@ import java.util.Arrays; import java.util.List; import javax.ws.rs.client.Entity; +import javax.ws.rs.core.GenericType; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MultivaluedMap; import javax.ws.rs.core.Response; @@ -408,15 +409,27 @@ public class PKIConnection { } public <T> T getEntity(Response response, Class<T> clazz) { + Family family = response.getStatusInfo().getFamily(); + if (!family.equals(Family.CLIENT_ERROR) && !family.equals(Family.SERVER_ERROR)) { + if (response.hasEntity()) return response.readEntity(clazz); + return null; + } + handleErrorResponse(response); + return null; + } - // handle HTTP status code 4xx and 5xx only - StatusType status = response.getStatusInfo(); - Family family = status.getFamily(); + public <T> T getEntity(Response response, GenericType<T> clazz) { + Family family = response.getStatusInfo().getFamily(); if (!family.equals(Family.CLIENT_ERROR) && !family.equals(Family.SERVER_ERROR)) { if (response.hasEntity()) return response.readEntity(clazz); return null; } + handleErrorResponse(response); + return null; + } + private void handleErrorResponse(Response response) { + StatusType status = response.getStatusInfo(); MediaType contentType = response.getMediaType(); if (!MediaType.APPLICATION_XML_TYPE.equals(contentType) |