You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2021/02/02 17:31:31 UTC

[camel] branch master updated: Slack: Use newer http client that is maintained. The previous was dead and not supported on OSGi either.

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 <cl...@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;
     }