[Pki-devel] [PATCH] 0046 API: add support for generic entities
Fraser Tweedale
ftweedal at redhat.com
Fri Aug 21 06:05:52 UTC 2015
This patch adds support to retrieving generic entities (e.g.
List<Thing>) from Response objects.
Thanks,
Fraser
-------------- next part --------------
From ee37cbd4a371fa803c71d0b012c874cd734e54a9 Mon Sep 17 00:00:00 2001
From: Fraser Tweedale <ftweedal at redhat.com>
Date: Fri, 21 Aug 2015 00:49:06 -0400
Subject: [PATCH] API: add support for generic entities
---
.../src/com/netscape/certsrv/client/PKIClient.java | 5 ++++
.../com/netscape/certsrv/client/PKIConnection.java | 27 ++++++++++++++++------
2 files changed, 25 insertions(+), 7 deletions(-)
diff --git a/base/common/src/com/netscape/certsrv/client/PKIClient.java b/base/common/src/com/netscape/certsrv/client/PKIClient.java
index 9015cfa38f76ac9b23e4baf7e79af06af6566888..5c13554fe87257bd4606c2a1e6e8828962a19d32 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 85b6c208227c0f079e69abfab3a24d953bb26716..fb7694615ed94aa21f3631ea39fbb243d63248a2 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
+ 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();
- Family family = status.getFamily();
- if (!family.equals(Family.CLIENT_ERROR) && !family.equals(Family.SERVER_ERROR)) {
- if (response.hasEntity()) return response.readEntity(clazz);
- return null;
- }
-
MediaType contentType = response.getMediaType();
if (!MediaType.APPLICATION_XML_TYPE.equals(contentType)
--
2.4.3
More information about the Pki-devel
mailing list