summaryrefslogtreecommitdiffstats
path: root/base/common
diff options
context:
space:
mode:
authorFraser Tweedale <ftweedal@redhat.com>2015-08-21 00:49:06 -0400
committerFraser Tweedale <ftweedal@redhat.com>2015-09-14 13:37:46 +1000
commite78f3d3c1e1145112c7dbf9ea8884917ddaacb17 (patch)
treec87824b0b79bef9f5115229e1b8124c685bb6882 /base/common
parent2ab352e1756d02695b73a9dbe782d353708ef553 (diff)
downloadpki-e78f3d3c1e1145112c7dbf9ea8884917ddaacb17.tar.gz
pki-e78f3d3c1e1145112c7dbf9ea8884917ddaacb17.tar.xz
pki-e78f3d3c1e1145112c7dbf9ea8884917ddaacb17.zip
API: add support for generic entities
Diffstat (limited to 'base/common')
-rw-r--r--base/common/src/com/netscape/certsrv/client/PKIClient.java5
-rw-r--r--base/common/src/com/netscape/certsrv/client/PKIConnection.java19
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)