This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push: new 709ea65 Slack: Use newer http client that is maintained. The previous was dead and not supported on OSGi either. 709ea65 is described below commit 709ea65ccae7b7a5ac3984b6b26101ce078d2cd2 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Tue Feb 2 18:25:59 2021 +0100 Slack: Use newer http client that is maintained. The previous was dead and not supported on OSGi either. --- components/camel-slack/pom.xml | 5 +-- .../camel/component/slack/SlackProducer.java | 52 +++++++++------------- 2 files changed, 23 insertions(+), 34 deletions(-) diff --git a/components/camel-slack/pom.xml b/components/camel-slack/pom.xml index f40ed28..9d2f2ed 100644 --- a/components/camel-slack/pom.xml +++ b/components/camel-slack/pom.xml @@ -61,10 +61,7 @@ <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> - </dependency> - <dependency> - <groupId>org.apache.httpcomponents</groupId> - <artifactId>httpasyncclient</artifactId> + <version>${httpclient4-version}</version> </dependency> <!-- test dependencies --> diff --git a/components/camel-slack/src/main/java/org/apache/camel/component/slack/SlackProducer.java b/components/camel-slack/src/main/java/org/apache/camel/component/slack/SlackProducer.java index 494379e..d1321a8 100644 --- a/components/camel-slack/src/main/java/org/apache/camel/component/slack/SlackProducer.java +++ b/components/camel-slack/src/main/java/org/apache/camel/component/slack/SlackProducer.java @@ -28,18 +28,16 @@ import org.apache.camel.component.slack.helper.SlackMessage; import org.apache.camel.support.DefaultAsyncProducer; import org.apache.camel.support.ExchangeHelper; import org.apache.camel.util.json.JsonObject; -import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpPost; -import org.apache.http.concurrent.FutureCallback; import org.apache.http.entity.StringEntity; -import org.apache.http.impl.nio.client.CloseableHttpAsyncClient; -import org.apache.http.impl.nio.client.HttpAsyncClientBuilder; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.util.EntityUtils; public class SlackProducer extends DefaultAsyncProducer { private final SlackEndpoint slackEndpoint; - private CloseableHttpAsyncClient client; + private CloseableHttpClient client; public SlackProducer(SlackEndpoint endpoint) { super(endpoint); @@ -48,9 +46,7 @@ public class SlackProducer extends DefaultAsyncProducer { @Override protected void doStart() throws Exception { - this.client = HttpAsyncClientBuilder.create().useSystemProperties().build(); - this.client.start(); - + this.client = HttpClientBuilder.create().useSystemProperties().build(); super.doStart(); } @@ -94,29 +90,25 @@ public class SlackProducer extends DefaultAsyncProducer { // Do the post httpPost.setEntity(body); - client.execute(httpPost, new FutureCallback<HttpResponse>() { - @Override - public void completed(HttpResponse response) { - // 2xx is OK, anything else we regard as failure - if (response.getStatusLine().getStatusCode() < 200 || response.getStatusLine().getStatusCode() > 299) { - exchange.setException( - new CamelExchangeException("Error POSTing to Slack API: " + response.toString(), exchange)); + try { + client.execute(httpPost, response -> { + try { + // 2xx is OK, anything else we regard as failure + if (response.getStatusLine().getStatusCode() < 200 || response.getStatusLine().getStatusCode() > 299) { + exchange.setException( + new CamelExchangeException("Error POSTing to Slack API: " + response.toString(), exchange)); + } + EntityUtils.consumeQuietly(response.getEntity()); + } finally { + callback.done(false); } - EntityUtils.consumeQuietly(response.getEntity()); - callback.done(false); - } - - @Override - public void failed(Exception ex) { - exchange.setException(ex); - callback.done(false); - } - - @Override - public void cancelled() { - callback.done(false); - } - }); + return null; + }); + } catch (Exception e) { + exchange.setException(e); + callback.done(true); + return true; + } return false; }