From 9e848f3c003d95503c9555a8d31b376ec7b2d773 Mon Sep 17 00:00:00 2001 From: Spencer Loveridge Date: Mon, 20 Mar 2017 14:25:43 +0000 Subject: [PATCH 1/4] Adding support for custom Client --- .../src/main/java/com/adobe/sign/utils/ApiClient.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/rest-api-sdk/src/main/java/com/adobe/sign/utils/ApiClient.java b/rest-api-sdk/src/main/java/com/adobe/sign/utils/ApiClient.java index 29f453a..36e8870 100644 --- a/rest-api-sdk/src/main/java/com/adobe/sign/utils/ApiClient.java +++ b/rest-api-sdk/src/main/java/com/adobe/sign/utils/ApiClient.java @@ -819,6 +819,13 @@ private boolean isOauth(String path) { return true; return false; } + + /** + * Allows you to override the default Client for a specific base URL. + */ + public void addClientForUrl(String baseUrl, Client client ) { + hostMap.put(baseUrl,client); + } } From fc682c33396391b9745f58092642619f03783efc Mon Sep 17 00:00:00 2001 From: Spencer Loveridge Date: Tue, 21 Mar 2017 11:53:47 +0000 Subject: [PATCH 2/4] Adding pom --- rest-api-sdk/pom.xml | 95 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 rest-api-sdk/pom.xml diff --git a/rest-api-sdk/pom.xml b/rest-api-sdk/pom.xml new file mode 100644 index 0000000..f165dab --- /dev/null +++ b/rest-api-sdk/pom.xml @@ -0,0 +1,95 @@ + + + 4.0.0 + + com.adobe.sign + adobe-sign-java-sdk + 1.1.1 + + + 1.7 + 1.5.9 + 2.7.4 + 1.19.1 + 2.9.4 + 1.5.1 + 1.2.17 + 4.12 + + + + + + io.swagger + swagger-annotations + ${swagger.annotations.version} + + + com.sun.jersey + jersey-client + ${jersey.version} + + + com.sun.jersey.contribs + jersey-multipart + ${jersey.version} + + + com.fasterxml.jackson.core + jackson-core + ${jackson.version} + + + com.fasterxml.jackson.core + jackson-annotations + ${jackson.version} + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + + + com.fasterxml.jackson.datatype + jackson-datatype-joda + ${jackson.version} + + + joda-time + joda-time + ${jodatime.version} + + + commons-validator + commons-validator + ${commons.validator.version} + + + log4j + log4j + ${log4j.version} + + + junit + junit + ${junit.version} + test + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + ${java.version} + ${java.version} + + + + + + From e377e4b16c5b448cae051c3f9f82ded24cc2603e Mon Sep 17 00:00:00 2001 From: Spencer Loveridge Date: Tue, 21 Mar 2017 12:27:44 +0000 Subject: [PATCH 3/4] Adding configurable proxy --- .../java/com/adobe/sign/utils/ApiClient.java | 42 +++++++++++++++---- 1 file changed, 33 insertions(+), 9 deletions(-) diff --git a/rest-api-sdk/src/main/java/com/adobe/sign/utils/ApiClient.java b/rest-api-sdk/src/main/java/com/adobe/sign/utils/ApiClient.java index 36e8870..589e5a0 100644 --- a/rest-api-sdk/src/main/java/com/adobe/sign/utils/ApiClient.java +++ b/rest-api-sdk/src/main/java/com/adobe/sign/utils/ApiClient.java @@ -4,6 +4,9 @@ import java.io.File; import java.io.IOException; import java.io.UnsupportedEncodingException; +import java.net.HttpURLConnection; +import java.net.Proxy; +import java.net.URL; import java.net.URLEncoder; import java.text.DateFormat; import java.text.SimpleDateFormat; @@ -21,9 +24,12 @@ import com.adobe.sign.model.baseUris.BaseUriInfo; import com.fasterxml.jackson.databind.ObjectMapper; import com.sun.jersey.api.client.Client; +import com.sun.jersey.api.client.ClientHandler; import com.sun.jersey.api.client.ClientResponse; import com.sun.jersey.api.client.WebResource.Builder; import com.sun.jersey.api.client.filter.LoggingFilter; +import com.sun.jersey.client.urlconnection.HttpURLConnectionFactory; +import com.sun.jersey.client.urlconnection.URLConnectionClientHandler; import com.sun.jersey.multipart.FormDataMultiPart; import com.sun.jersey.multipart.file.FileDataBodyPart; @@ -41,6 +47,7 @@ public class ApiClient { private String baseUri = null; private String subPath = "api/rest/v5"; private JSON json = new JSON(); + private Proxy proxy; private int statusCode; private Map> responseHeaders; @@ -68,6 +75,8 @@ public void setBaseUri(String baseUri) { this.baseUri = baseUri; } + public void setProxy(Proxy proxy){ this.proxy = proxy;} + /** * Gets the enviroment */ @@ -804,7 +813,14 @@ private String getXWWWFormUrlencodedParams(Map formParams) { */ private Client getClient(String baseUrl) { if (!hostMap.containsKey(baseUrl)) { - Client client = Client.create(); + Client client = null; + if( proxy == null ) { + client = Client.create(); + } + else { + client = createClientWithProxy(); + } + if (debugging) client.addFilter(new LoggingFilter()); hostMap.put(baseUrl, @@ -813,19 +829,27 @@ private Client getClient(String baseUrl) { return hostMap.get(baseUrl); } + /** + * Creates a jersey client with the configured proxy + * @return + */ + private Client createClientWithProxy() { + + HttpURLConnectionFactory connectionFactory = new HttpURLConnectionFactory() { + @Override + public HttpURLConnection getHttpURLConnection(URL url) throws IOException { + return (HttpURLConnection)url.openConnection(proxy); + } + }; + ClientHandler clientHandler = new URLConnectionClientHandler(connectionFactory); + return new Client(clientHandler); + } + private boolean isOauth(String path) { path = path.toLowerCase(); if(path.startsWith("oauth")) return true; return false; } - - /** - * Allows you to override the default Client for a specific base URL. - */ - public void addClientForUrl(String baseUrl, Client client ) { - hostMap.put(baseUrl,client); - } - } From 989a7c8c0542003c2945b733316dbe617ad56c4d Mon Sep 17 00:00:00 2001 From: Spencer Loveridge Date: Tue, 21 Mar 2017 15:07:05 +0000 Subject: [PATCH 4/4] #5 Removing pom --- rest-api-sdk/pom.xml | 95 -------------------------------------------- 1 file changed, 95 deletions(-) delete mode 100644 rest-api-sdk/pom.xml diff --git a/rest-api-sdk/pom.xml b/rest-api-sdk/pom.xml deleted file mode 100644 index f165dab..0000000 --- a/rest-api-sdk/pom.xml +++ /dev/null @@ -1,95 +0,0 @@ - - - 4.0.0 - - com.adobe.sign - adobe-sign-java-sdk - 1.1.1 - - - 1.7 - 1.5.9 - 2.7.4 - 1.19.1 - 2.9.4 - 1.5.1 - 1.2.17 - 4.12 - - - - - - io.swagger - swagger-annotations - ${swagger.annotations.version} - - - com.sun.jersey - jersey-client - ${jersey.version} - - - com.sun.jersey.contribs - jersey-multipart - ${jersey.version} - - - com.fasterxml.jackson.core - jackson-core - ${jackson.version} - - - com.fasterxml.jackson.core - jackson-annotations - ${jackson.version} - - - com.fasterxml.jackson.core - jackson-databind - ${jackson.version} - - - com.fasterxml.jackson.datatype - jackson-datatype-joda - ${jackson.version} - - - joda-time - joda-time - ${jodatime.version} - - - commons-validator - commons-validator - ${commons.validator.version} - - - log4j - log4j - ${log4j.version} - - - junit - junit - ${junit.version} - test - - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - - ${java.version} - ${java.version} - - - - - -