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 2015/06/01 09:10:18 UTC
[04/14] camel git commit: Added dependencies on httpclient and
json-simple
Added dependencies on httpclient and json-simple
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/c7539a7e
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/c7539a7e
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/c7539a7e
Branch: refs/heads/master
Commit: c7539a7e7ccb6b5a24f133b94ec641a29383446f
Parents: 62e44a6
Author: Mike Kennedy <mi...@ucr.edu>
Authored: Sat May 30 23:28:50 2015 -0700
Committer: Claus Ibsen <da...@apache.org>
Committed: Mon Jun 1 08:55:12 2015 +0200
----------------------------------------------------------------------
components/camel-slack/pom.xml | 12 +++
.../camel/component/slack/SlackProducer.java | 57 +++++++++++++-
.../component/slack/helper/SlackMessage.java | 79 +++++++++++++++++++-
3 files changed, 144 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/c7539a7e/components/camel-slack/pom.xml
----------------------------------------------------------------------
diff --git a/components/camel-slack/pom.xml b/components/camel-slack/pom.xml
index 121826b..da75056 100644
--- a/components/camel-slack/pom.xml
+++ b/components/camel-slack/pom.xml
@@ -23,6 +23,18 @@
<artifactId>camel-core</artifactId>
</dependency>
+ <dependency>
+ <groupId>com.googlecode.json-simple</groupId>
+ <artifactId>json-simple</artifactId>
+ <version>1.1.1</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ <version>${httpclient4-version}</version>
+ </dependency>
+
<!-- test dependencies -->
<dependency>
<groupId>junit</groupId>
http://git-wip-us.apache.org/repos/asf/camel/blob/c7539a7e/components/camel-slack/src/main/java/org/apache/camel/component/slack/SlackProducer.java
----------------------------------------------------------------------
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 f3a5b1c..455d0ad 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
@@ -1,4 +1,59 @@
package org.apache.camel.component.slack;
-public class SlackProducer {
+import org.apache.camel.CamelException;
+import org.apache.camel.Exchange;
+import org.apache.camel.component.slack.helper.SlackMessage;
+import org.apache.camel.impl.DefaultProducer;
+import org.apache.http.HttpResponse;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class SlackProducer extends DefaultProducer {
+
+ private static final transient Logger LOG = LoggerFactory.getLogger(SlackProducer.class);
+
+ private SlackEndpoint slackEndpoint;
+
+ /**
+ * Constuctor
+ *
+ * @param endpoint a SlackEndpoint
+ */
+ public SlackProducer(SlackEndpoint endpoint) {
+ super(endpoint);
+ this.slackEndpoint = endpoint;
+ }
+
+ @Override
+ public void process(Exchange exchange) throws Exception {
+
+ // Create an HttpClient and Post object
+ HttpClient client = HttpClientBuilder.create().build();
+ HttpPost httpPost = new HttpPost(slackEndpoint.getWebhookUrl());
+
+ // Build Helper object
+ SlackMessage slackMessage = new SlackMessage();
+ slackMessage.setText(exchange.getIn().getBody(String.class));
+ slackMessage.setChannel(slackEndpoint.getChannel());
+ slackMessage.setUsername(slackEndpoint.getUsername());
+ slackMessage.setIconUrl(slackEndpoint.getIconUrl());
+ slackMessage.setIconEmoji(slackEndpoint.getIconEmoji());
+
+ // Set the post body
+ StringEntity body = new StringEntity(slackMessage.toString());
+
+ // Do the post
+ httpPost.setEntity(body);
+
+ HttpResponse response = client.execute(httpPost);
+
+ if (response.getStatusLine().getStatusCode() != 200) {
+ LOG.error("Error POSTing to Slack API: " + response.toString());
+ throw new CamelException("Error POSTing to Slack API: " + response.toString());
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/camel/blob/c7539a7e/components/camel-slack/src/main/java/org/apache/camel/component/slack/helper/SlackMessage.java
----------------------------------------------------------------------
diff --git a/components/camel-slack/src/main/java/org/apache/camel/component/slack/helper/SlackMessage.java b/components/camel-slack/src/main/java/org/apache/camel/component/slack/helper/SlackMessage.java
index d63f68e..4cb0462 100644
--- a/components/camel-slack/src/main/java/org/apache/camel/component/slack/helper/SlackMessage.java
+++ b/components/camel-slack/src/main/java/org/apache/camel/component/slack/helper/SlackMessage.java
@@ -1,7 +1,80 @@
package org.apache.camel.component.slack.helper;
-/**
- * Created by mikek on 5/30/15.
- */
+import org.json.simple.JSONObject;
+
+import java.util.HashMap;
+import java.util.Map;
+
public class SlackMessage {
+
+ private String text;
+ private String channel;
+ private String username;
+ private String iconUrl;
+ private String iconEmoji;
+
+ public String getText() {
+ return text;
+ }
+
+ public void setText(String text) {
+ this.text = text;
+ }
+
+ public String getChannel() {
+ return channel;
+ }
+
+ public void setChannel(String channel) {
+ this.channel = channel;
+ }
+
+ public String getUsername() {
+ return username;
+ }
+
+ public void setUsername(String username) {
+ this.username = username;
+ }
+
+ public String getIconUrl() {
+ return iconUrl;
+ }
+
+ public void setIconUrl(String iconUrl) {
+ this.iconUrl = iconUrl;
+ }
+
+ public String getIconEmoji() {
+ return iconEmoji;
+ }
+
+ public void setIconEmoji(String iconEmoji) {
+ this.iconEmoji = iconEmoji;
+ }
+
+ /**
+ * Returns a JSON string to be posted to the Slack API
+ *
+ * @return JSON string
+ */
+ public String toString() {
+
+ Map<String, String> jsonMap = new HashMap<String, String>();
+
+ // Put the values in a map
+ jsonMap.put("text", this.text);
+ jsonMap.put("channel", this.channel);
+ jsonMap.put("username", this.username);
+ jsonMap.put("icon_url", this.iconUrl);
+ jsonMap.put("icon_emoji", this.iconEmoji);
+
+ // Generate a JSONObject
+ JSONObject jsonObject = new JSONObject(jsonMap);
+
+ // Return the string based on the JSON Object
+ return JSONObject.toJSONString(jsonMap);
+
+ }
}
+