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:16 UTC
[02/14] camel git commit: Initial commit
Initial commit
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/352a306b
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/352a306b
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/352a306b
Branch: refs/heads/master
Commit: 352a306b12b9f00585b4f4d20bf570f594f685b6
Parents: 0b4a167
Author: Mike Kennedy <mi...@ucr.edu>
Authored: Sat May 30 23:18:56 2015 -0700
Committer: Claus Ibsen <da...@apache.org>
Committed: Mon Jun 1 08:55:11 2015 +0200
----------------------------------------------------------------------
components/camel-slack/pom.xml | 46 ++++++++++
.../camel/component/slack/SlackComponent.java | 49 ++++++++++
.../camel/component/slack/SlackEndpoint.java | 94 ++++++++++++++++++++
.../camel/component/slack/SlackProducer.java | 4 +
4 files changed, 193 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/352a306b/components/camel-slack/pom.xml
----------------------------------------------------------------------
diff --git a/components/camel-slack/pom.xml b/components/camel-slack/pom.xml
new file mode 100644
index 0000000..121826b
--- /dev/null
+++ b/components/camel-slack/pom.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <artifactId>components</artifactId>
+ <groupId>org.apache.camel</groupId>
+ <version>2.16-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>camel-slack</artifactId>
+ <packaging>bundle</packaging>
+ <name>Camel :: Slack</name>
+ <description>Camel Slack Support</description>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-core</artifactId>
+ </dependency>
+
+ <!-- test dependencies -->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-test</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ </dependencies>
+
+
+</project>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/camel/blob/352a306b/components/camel-slack/src/main/java/org/apache/camel/component/slack/SlackComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-slack/src/main/java/org/apache/camel/component/slack/SlackComponent.java b/components/camel-slack/src/main/java/org/apache/camel/component/slack/SlackComponent.java
new file mode 100644
index 0000000..af5ca6c
--- /dev/null
+++ b/components/camel-slack/src/main/java/org/apache/camel/component/slack/SlackComponent.java
@@ -0,0 +1,49 @@
+package org.apache.camel.component.slack;
+
+import org.apache.camel.Endpoint;
+import org.apache.camel.impl.DefaultComponent;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Map;
+
+public class SlackComponent extends DefaultComponent {
+
+ private static final transient Logger LOG = LoggerFactory.getLogger(SlackComponent.class);
+
+ private String webhookUrl;
+
+ /**
+ * Create a slack endpoint
+ *
+ * @param uri the full URI of the endpoint
+ * @param channelName the channel or username that the message should be sent to
+ * @param parameters the optional parameters passed in
+ * @return the camel endpoint
+ * @throws Exception
+ */
+ @Override
+ protected Endpoint createEndpoint(String uri, String channelName, Map<String, Object> parameters) throws Exception {
+ Endpoint endpoint = new SlackEndpoint(uri, channelName, this);
+ setProperties(endpoint, parameters);
+ return endpoint;
+ }
+
+ /**
+ * Getter for the incoming webhook URL
+ *
+ * @return String containing the incoming webhook URL
+ */
+ public String getWebhookUrl() {
+ return webhookUrl;
+ }
+
+ /**
+ * Setter for the incoming webhook URL
+ *
+ * @param webhookUrl the incoming webhook URL
+ */
+ public void setWebhookUrl(String webhookUrl) {
+ this.webhookUrl = webhookUrl;
+ }
+}
http://git-wip-us.apache.org/repos/asf/camel/blob/352a306b/components/camel-slack/src/main/java/org/apache/camel/component/slack/SlackEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-slack/src/main/java/org/apache/camel/component/slack/SlackEndpoint.java b/components/camel-slack/src/main/java/org/apache/camel/component/slack/SlackEndpoint.java
new file mode 100644
index 0000000..6e51579
--- /dev/null
+++ b/components/camel-slack/src/main/java/org/apache/camel/component/slack/SlackEndpoint.java
@@ -0,0 +1,94 @@
+package org.apache.camel.component.slack;
+
+import org.apache.camel.Consumer;
+import org.apache.camel.Processor;
+import org.apache.camel.Producer;
+import org.apache.camel.impl.DefaultEndpoint;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class SlackEndpoint extends DefaultEndpoint {
+
+ private static final transient Logger LOG = LoggerFactory.getLogger(SlackEndpoint.class);
+
+ private String webhookUrl;
+ private String username;
+ private String channel;
+ private String iconUrl;
+ private String iconEmoji;
+
+ /**
+ * Constructor for SlackEndpoint
+ *
+ * @param uri the full component url
+ * @param channelName the channel or username the message is directed at
+ * @param component the component that was created
+ */
+ public SlackEndpoint(String uri, String channelName, SlackComponent component) {
+ super(uri, component);
+ this.webhookUrl = component.getWebhookUrl();
+ this.channel = channelName;
+ }
+
+ /**
+ * Creates a SlackProducer
+ *
+ * @return SlackProducer
+ * @throws Exception
+ */
+ @Override
+ public Producer createProducer() throws Exception {
+ SlackProducer producer = new SlackProducer(this);
+ return producer;
+ }
+
+ /**
+ * Unsupported operation
+ *
+ * @param processor
+ * @return
+ * @throws java.lang.UnsupportedOperationException
+ */
+ @Override
+ public Consumer createConsumer(Processor processor) throws Exception {
+ throw new UnsupportedOperationException("You cannot consume slack messages from this endpoint: " + getEndpointUri());
+ }
+
+ @Override
+ public boolean isSingleton() {
+ return true;
+ }
+
+ public String getWebhookUrl() {
+ return webhookUrl;
+ }
+
+ public String getUsername() {
+ return username;
+ }
+
+ public void setUsername(String username) {
+ this.username = username;
+ }
+
+ public String getChannel() {
+ return channel;
+ }
+
+ 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;
+ }
+}
+
http://git-wip-us.apache.org/repos/asf/camel/blob/352a306b/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
new file mode 100644
index 0000000..f3a5b1c
--- /dev/null
+++ b/components/camel-slack/src/main/java/org/apache/camel/component/slack/SlackProducer.java
@@ -0,0 +1,4 @@
+package org.apache.camel.component.slack;
+
+public class SlackProducer {
+}