JAMES-1688 Upgrade HttpClient version

Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/4aba8e18
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/4aba8e18
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/4aba8e18

Branch: refs/heads/master
Commit: 4aba8e186d1f2dc7ca8d3b7f7f4fcbca169b6370
Parents: e5f6c5f
Author: Antoine Duprat <antdup...@gmail.com>
Authored: Mon Feb 15 10:01:03 2016 +0100
Committer: Matthieu Baechler <matthieu.baech...@gmail.com>
Committed: Fri Feb 19 11:55:15 2016 +0100

----------------------------------------------------------------------
 mailet/pom.xml                                  |  2 +-
 .../james/transport/mailets/HeadersToHTTP.java  | 58 +++++++++-----------
 .../transport/mailets/SerialiseToHTTP.java      | 55 +++++++++----------
 3 files changed, 53 insertions(+), 62 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/4aba8e18/mailet/pom.xml
----------------------------------------------------------------------
diff --git a/mailet/pom.xml b/mailet/pom.xml
index da12bd9..f2bb2fd 100644
--- a/mailet/pom.xml
+++ b/mailet/pom.xml
@@ -47,7 +47,7 @@
         <bcmail-jdk16.version>1.46</bcmail-jdk16.version>
         <commons-collections.version>3.2.1</commons-collections.version>
         <commons-io.version>2.4</commons-io.version>
-        <httpclient-osgi.version>4.2.2</httpclient-osgi.version>
+        <httpclient-osgi.version>4.5.1</httpclient-osgi.version>
         <!-- maven-mailetdocs-plugin artifacts -->
         <maven-artifact.version>3.0-alpha-1</maven-artifact.version>
         <maven-plugin-api.version>3.0.4</maven-plugin-api.version>

http://git-wip-us.apache.org/repos/asf/james-project/blob/4aba8e18/mailet/standard/src/main/java/org/apache/james/transport/mailets/HeadersToHTTP.java
----------------------------------------------------------------------
diff --git 
a/mailet/standard/src/main/java/org/apache/james/transport/mailets/HeadersToHTTP.java
 
b/mailet/standard/src/main/java/org/apache/james/transport/mailets/HeadersToHTTP.java
index 4c46eb2..433763a 100644
--- 
a/mailet/standard/src/main/java/org/apache/james/transport/mailets/HeadersToHTTP.java
+++ 
b/mailet/standard/src/main/java/org/apache/james/transport/mailets/HeadersToHTTP.java
@@ -18,19 +18,6 @@
  ****************************************************************/
 package org.apache.james.transport.mailets;
 
-import org.apache.http.HttpResponse;
-import org.apache.http.NameValuePair;
-import org.apache.http.client.HttpClient;
-import org.apache.http.client.methods.HttpPost;
-import org.apache.http.impl.client.DefaultHttpClient;
-import org.apache.http.message.BasicNameValuePair;
-import org.apache.http.params.BasicHttpParams;
-import org.apache.http.params.HttpParams;
-import org.apache.mailet.Mail;
-import org.apache.mailet.base.GenericMailet;
-
-import javax.mail.MessagingException;
-import javax.mail.internet.MimeMessage;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.net.MalformedURLException;
@@ -38,6 +25,20 @@ import java.net.URL;
 import java.util.Arrays;
 import java.util.HashSet;
 
+import javax.mail.MessagingException;
+import javax.mail.internet.MimeMessage;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.http.NameValuePair;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpUriRequest;
+import org.apache.http.client.methods.RequestBuilder;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.apache.http.message.BasicNameValuePair;
+import org.apache.mailet.Mail;
+import org.apache.mailet.base.GenericMailet;
+
 /**
  * Serialise the email and pass it to an HTTP call
  * 
@@ -137,26 +138,19 @@ public class HeadersToHTTP extends GenericMailet {
 
     private String httpPost(HashSet<NameValuePair> pairs) throws IOException {
 
-        HttpClient client = new DefaultHttpClient();
-        HttpPost post = new HttpPost(url);
-
-        post.setParams(extractParams(pairs));
-
-        HttpResponse clientResponse = client.execute(post);
-        String result = clientResponse.getStatusLine().getStatusCode() + ": " 
+ clientResponse.getStatusLine();
-        log("HeadersToHTTP: " + result);
-
-        client.getConnectionManager().shutdown();
-        return result;
-
-    }
-
-    private HttpParams extractParams(HashSet<NameValuePair> pairs) {
-        HttpParams params =  new BasicHttpParams();
-        for(NameValuePair p : pairs) {
-            params.setParameter(p.getName(),p.getValue());
+        CloseableHttpClient client = null;
+        CloseableHttpResponse clientResponse = null;
+        try {
+            client = HttpClientBuilder.create().build();
+            HttpUriRequest request = 
RequestBuilder.post(url).addParameters(pairs.toArray(new 
NameValuePair[0])).build();
+            clientResponse = client.execute(request);
+            String result = clientResponse.getStatusLine().getStatusCode() + 
": " + clientResponse.getStatusLine();
+            log("HeadersToHTTP: " + result);
+            return result;
+        } finally {
+            IOUtils.closeQuietly(clientResponse);
+            IOUtils.closeQuietly(client);
         }
-        return params;
     }
 
     private HashSet<NameValuePair> getNameValuePairs(MimeMessage message) 
throws UnsupportedEncodingException, MessagingException {

http://git-wip-us.apache.org/repos/asf/james-project/blob/4aba8e18/mailet/standard/src/main/java/org/apache/james/transport/mailets/SerialiseToHTTP.java
----------------------------------------------------------------------
diff --git 
a/mailet/standard/src/main/java/org/apache/james/transport/mailets/SerialiseToHTTP.java
 
b/mailet/standard/src/main/java/org/apache/james/transport/mailets/SerialiseToHTTP.java
index 7231686..b52c3c5 100644
--- 
a/mailet/standard/src/main/java/org/apache/james/transport/mailets/SerialiseToHTTP.java
+++ 
b/mailet/standard/src/main/java/org/apache/james/transport/mailets/SerialiseToHTTP.java
@@ -18,27 +18,27 @@
  ****************************************************************/
 package org.apache.james.transport.mailets;
 
-import org.apache.http.HttpResponse;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import javax.mail.MessagingException;
+import javax.mail.internet.MimeMessage;
+
+import org.apache.commons.io.IOUtils;
 import org.apache.http.HttpStatus;
 import org.apache.http.NameValuePair;
 import org.apache.http.client.ClientProtocolException;
-import org.apache.http.client.HttpClient;
-import org.apache.http.client.methods.HttpPost;
-import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.RequestBuilder;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClientBuilder;
 import org.apache.http.message.BasicNameValuePair;
-import org.apache.http.params.BasicHttpParams;
-import org.apache.http.params.HttpParams;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.GenericMailet;
 
-import javax.mail.MessagingException;
-import javax.mail.internet.MimeMessage;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.MalformedURLException;
-import java.net.URL;
-
 /**
  * Serialise the email and pass it to an HTTP call
  * 
@@ -153,36 +153,33 @@ public class SerialiseToHTTP extends GenericMailet {
 
     private String httpPost(NameValuePair[] data) {
 
-        String response = null;
-        HttpClient client = new DefaultHttpClient();
-        HttpPost post = new HttpPost(url);
-        HttpParams params = new BasicHttpParams();
+        RequestBuilder requestBuilder = RequestBuilder.post(url);
+
         if( data.length>1 && data[1]!=null ) {
-            params.setParameter(data[1].getName(),data[1].getValue());
+            requestBuilder.addParameter(data[1].getName(),data[1].getValue());
             log( data[1].getName() + "::" + data[1].getValue() );
         }
-        post.setParams(params);
 
+        CloseableHttpClient client = HttpClientBuilder.create().build();
+        CloseableHttpResponse clientResponse = null;
         try {
-            HttpResponse clientResponse = client.execute(post);
+            clientResponse = client.execute(requestBuilder.build());
 
             if (clientResponse.getStatusLine().getStatusCode() != 
HttpStatus.SC_OK) {
                 log("POST failed: " + clientResponse.getStatusLine());
-                response = clientResponse.getStatusLine().toString();
+                return clientResponse.getStatusLine().toString();
             }
-
+            return null;
         } catch (ClientProtocolException e) {
             log("Fatal protocol violation: " + e.getMessage());
-            response = "Fatal protocol violation: " + e.getMessage();
+            return "Fatal protocol violation: " + e.getMessage();
         } catch (IOException e) {
             log("Fatal transport error: " + e.getMessage());
-            response = "Fatal transport error: " + e.getMessage();
+            return "Fatal transport error: " + e.getMessage();
         } finally {
-            post.releaseConnection();
+            IOUtils.closeQuietly(clientResponse);
+            IOUtils.closeQuietly(client);
         }
-
-        client.getConnectionManager().shutdown();
-        return response;
     }
 
     private NameValuePair[] getNameValuePairs(String message) throws 
UnsupportedEncodingException {


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to