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