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;
}