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 2016/05/02 08:25:44 UTC

[1/2] camel git commit: Fix checkstyle warnings.

Repository: camel
Updated Branches:
  refs/heads/master f3f2f34e0 -> 6fb84cfb7


Fix checkstyle warnings.

Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/6fb84cfb
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/6fb84cfb
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/6fb84cfb

Branch: refs/heads/master
Commit: 6fb84cfb700f04f41bcd6a075ae5c6571db8d50d
Parents: abfae23
Author: Wladislaw Mitzel <mi...@tawadi.de>
Authored: Sun May 1 14:30:24 2016 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Mon May 2 08:24:59 2016 +0200

----------------------------------------------------------------------
 .../camel/component/irc/IrcConfiguration.java   | 27 +++---
 .../apache/camel/component/irc/IrcEndpoint.java |  4 +-
 .../irc/IrcsListUsersIntegrationTest.java       | 90 ++++++++++----------
 3 files changed, 62 insertions(+), 59 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/6fb84cfb/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcConfiguration.java b/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcConfiguration.java
index 8b107ad..0731ce7 100644
--- a/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcConfiguration.java
+++ b/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcConfiguration.java
@@ -83,13 +83,13 @@ public class IrcConfiguration implements Cloneable {
     private boolean onPrivmsg = true;
     @UriParam(defaultValue = "true")
     private boolean autoRejoin = true;
-	/**
-	 * Sends <code>NAMES</code> command to channel after joining it.<br>
-	 * {@link #onReply} has to be <code>true</code> in order to process the
-	 * result which will have the header value <code>irc.num = '353'</code>.
-	 */
+    /**
+     * Sends <code>NAMES</code> command to channel after joining it.<br>
+     * {@link #onReply} has to be <code>true</code> in order to process the
+     * result which will have the header value <code>irc.num = '353'</code>.
+     */
     @UriParam(defaultValue = "false")
-    private boolean namesOnJoin = false;
+    private boolean namesOnJoin;
     private SSLContextParameters sslContextParameters;
     @UriParam
     private String nickPassword;
@@ -462,15 +462,16 @@ public class IrcConfiguration implements Cloneable {
     }
     
     public boolean isNamesOnJoin() {
-		return namesOnJoin;
-	}
+        return namesOnJoin;
+    }
 
-	public void setNamesOnJoin(boolean namesOnJoin) {
-		this.namesOnJoin = namesOnJoin;
-	}
+    public void setNamesOnJoin(boolean namesOnJoin) {
+        this.namesOnJoin = namesOnJoin;
+    }
 
-	public String toString() {
-        return "IrcConfiguration[hostname: " + hostname + ", ports=" + Arrays.toString(ports) + ", username=" + username + "]";
+    public String toString() {
+        return "IrcConfiguration[hostname: " + hostname + ", ports=" + Arrays.toString(ports) + ", username=" + username
+                + "]";
     }
     
     private static IrcChannel createChannel(String channelInfo) {

http://git-wip-us.apache.org/repos/asf/camel/blob/6fb84cfb/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcEndpoint.java b/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcEndpoint.java
index 5ddef4a..1f88cc0 100644
--- a/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcEndpoint.java
+++ b/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcEndpoint.java
@@ -205,8 +205,8 @@ public class IrcEndpoint extends DefaultEndpoint {
             connection.doJoin(chn);
         }
         if (configuration.isNamesOnJoin()) {
-			connection.doNames(chn);
-		}
+            connection.doNames(chn);
+        }
     }
 }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/6fb84cfb/components/camel-irc/src/test/java/org/apache/camel/component/irc/IrcsListUsersIntegrationTest.java
----------------------------------------------------------------------
diff --git a/components/camel-irc/src/test/java/org/apache/camel/component/irc/IrcsListUsersIntegrationTest.java b/components/camel-irc/src/test/java/org/apache/camel/component/irc/IrcsListUsersIntegrationTest.java
index 7bb34db..fc3241d 100644
--- a/components/camel-irc/src/test/java/org/apache/camel/component/irc/IrcsListUsersIntegrationTest.java
+++ b/components/camel-irc/src/test/java/org/apache/camel/component/irc/IrcsListUsersIntegrationTest.java
@@ -35,56 +35,58 @@ import org.slf4j.LoggerFactory;
  * listed for the channel.
  */
 public class IrcsListUsersIntegrationTest extends CamelTestSupport {
-	
-	private static final Logger LOGGER = LoggerFactory.getLogger(IrcsListUsersIntegrationTest.class);
 
-	/** message code for a reply to a <code>NAMES</code> command. */
-	public static final String IRC_RPL_NAMREPLY = "353";
+    private static final Logger LOGGER = LoggerFactory.getLogger(IrcsListUsersIntegrationTest.class);
 
-	/** irc component uri. configured by properties */
-	private static final String PRODUCER_URI = "ircs:{{test.user}}@{{test.server}}/{{test.room}}";
+    /** message code for a reply to a <code>NAMES</code> command. */
+    private static final String IRC_RPL_NAMREPLY = "353";
 
-	@EndpointInject(uri = "mock:result")
-	protected MockEndpoint resultEndpoint;
+    /** irc component uri. configured by properties */
+    private static final String PRODUCER_URI = "ircs:{{test.user}}@{{test.server}}/{{test.room}}";
 
-	protected Properties properties;
-	
-	public IrcsListUsersIntegrationTest() throws IOException {
-		super();
-		properties = new Properties();
-		InputStream resourceAsStream = this.getClass().getResourceAsStream("/it-list-users.properties");
-		properties.load(resourceAsStream);
-	}
-	
-	@Override
-	protected RoutesBuilder createRouteBuilder() throws Exception {
+    @EndpointInject(uri = "mock:result")
+    protected MockEndpoint resultEndpoint;
 
-		return new RouteBuilder() {
+    protected Properties properties;
 
-			@Override
-			public void configure() throws Exception {
-				LOGGER.debug("Creating new test route");
-				from(PRODUCER_URI + "?listOnJoin=true&onReply=true")
-					.choice()
-						.when(header("irc.messageType").isEqualToIgnoreCase("REPLY"))
-							.filter(header("irc.num").isEqualTo(IRC_RPL_NAMREPLY)).to("mock:result").stop();
-			}
-		};
-	}
+    public IrcsListUsersIntegrationTest() throws IOException {
+        super();
+        properties = new Properties();
+        InputStream resourceAsStream = this.getClass().getResourceAsStream("/it-list-users.properties");
+        properties.load(resourceAsStream);
+    }
 
-	@Test
-	public void test() throws Exception {
-		resultEndpoint.setMinimumExpectedMessageCount(1);
-		resultEndpoint.assertIsSatisfied();
-		String body = resultEndpoint.getExchanges().get(0).getIn().getBody(String.class);
-		LOGGER.debug("Received usernames: [{}]", body);
-		String username = properties.getProperty("test.user");
-		assertTrue("userlist does not contain test user", body.contains(username));
-	}
-	
-	@Override
-	protected Properties useOverridePropertiesWithPropertiesComponent() {
-		return properties;
-	}
+    @Override
+    protected RoutesBuilder createRouteBuilder() throws Exception {
+
+        return new RouteBuilder() {
+
+            @Override
+            public void configure() throws Exception {
+                LOGGER.debug("Creating new test route");
+                
+                from(PRODUCER_URI + "?listOnJoin=true&onReply=true")
+                    .choice()
+                        .when(header("irc.messageType").isEqualToIgnoreCase("REPLY"))
+                            .filter(header("irc.num").isEqualTo(IRC_RPL_NAMREPLY))
+                            .to("mock:result").stop();
+            }
+        };
+    }
+
+    @Test
+    public void test() throws Exception {
+        resultEndpoint.setMinimumExpectedMessageCount(1);
+        resultEndpoint.assertIsSatisfied();
+        String body = resultEndpoint.getExchanges().get(0).getIn().getBody(String.class);
+        LOGGER.debug("Received usernames: [{}]", body);
+        String username = properties.getProperty("test.user");
+        assertTrue("userlist does not contain test user", body.contains(username));
+    }
+
+    @Override
+    protected Properties useOverridePropertiesWithPropertiesComponent() {
+        return properties;
+    }
 
 }


[2/2] camel git commit: Add support for listing users of a channel after it has been joined.

Posted by da...@apache.org.
Add support for listing users of a channel after
it has been joined.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/abfae23c
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/abfae23c
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/abfae23c

Branch: refs/heads/master
Commit: abfae23c8e69f118890a1baadcb8beb637200175
Parents: f3f2f34
Author: Wladislaw Mitzel <mi...@tawadi.de>
Authored: Sun May 1 13:05:12 2016 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Mon May 2 08:24:59 2016 +0200

----------------------------------------------------------------------
 components/camel-irc/src/main/docs/irc.adoc     | 19 +++++
 .../camel/component/irc/IrcConfiguration.java   | 17 +++-
 .../apache/camel/component/irc/IrcEndpoint.java |  3 +
 .../irc/IrcsListUsersIntegrationTest.java       | 90 ++++++++++++++++++++
 .../src/test/resources/it-list-users.properties |  3 +
 5 files changed, 131 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/abfae23c/components/camel-irc/src/main/docs/irc.adoc
----------------------------------------------------------------------
diff --git a/components/camel-irc/src/main/docs/irc.adoc b/components/camel-irc/src/main/docs/irc.adoc
index 07b96e9..5660992 100644
--- a/components/camel-irc/src/main/docs/irc.adoc
+++ b/components/camel-irc/src/main/docs/irc.adoc
@@ -53,6 +53,7 @@ The IRC component supports 23 endpoint options which are listed below:
 | port | common | 6667,6668,6669 | int | Port number for the IRC chat server
 | autoRejoin | common | true | boolean | Whether to auto re-join when being kicked
 | colors | common | true | boolean | Whether or not the server supports color codes.
+| namesOnJoin | common | false | boolean | Whether or not to send the NAMES command after a channel has been joined.
 | nickname | common |  | String | The nickname used in chat.
 | nickPassword | common |  | String | Your IRC server nickname password.
 | onJoin | common | true | boolean | Handle user join events.
@@ -170,6 +171,24 @@ For example we join 3 channels where as only channel 1 and 3 uses a key.
 irc:nick@irc.server.org?channels=#chan1,#chan2,#chan3&keys=chan1Key,,chan3key
 -----------------------------------------------------------------------------
 
+Getting a list of users of the channel
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Using the `namesOnJoin` option one can invoke the IRC-`NAMES` command after the component has joined a channel. 
+The server will reply with `irc.num = 353`. So in order to process the result the property `onReply` has to be `true`.
+Furthermore one has to filter the `onReply` exchanges in order to get the names.
+
+For example we want to get all exchanges that contain the usernames of the channel:
+
+[source,java]
+-----------------------------------------------------------------------------
+from("ircs:nick@myserver:1234/#mychannelname?listOnJoin=true&onReply=true")
+	.choice()
+		.when(header("irc.messageType").isEqualToIgnoreCase("REPLY"))
+			.filter(header("irc.num").isEqualTo("353"))
+			.to("mock:result").stop();
+-----------------------------------------------------------------------------
+
 [[IRC-SeeAlso]]
 See Also
 ^^^^^^^^

http://git-wip-us.apache.org/repos/asf/camel/blob/abfae23c/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcConfiguration.java b/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcConfiguration.java
index 4536ba2..8b107ad 100644
--- a/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcConfiguration.java
+++ b/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcConfiguration.java
@@ -83,6 +83,13 @@ public class IrcConfiguration implements Cloneable {
     private boolean onPrivmsg = true;
     @UriParam(defaultValue = "true")
     private boolean autoRejoin = true;
+	/**
+	 * Sends <code>NAMES</code> command to channel after joining it.<br>
+	 * {@link #onReply} has to be <code>true</code> in order to process the
+	 * result which will have the header value <code>irc.num = '353'</code>.
+	 */
+    @UriParam(defaultValue = "false")
+    private boolean namesOnJoin = false;
     private SSLContextParameters sslContextParameters;
     @UriParam
     private String nickPassword;
@@ -453,8 +460,16 @@ public class IrcConfiguration implements Cloneable {
     public void setNickPassword(String nickPassword) {
         this.nickPassword = nickPassword;
     }
+    
+    public boolean isNamesOnJoin() {
+		return namesOnJoin;
+	}
+
+	public void setNamesOnJoin(boolean namesOnJoin) {
+		this.namesOnJoin = namesOnJoin;
+	}
 
-    public String toString() {
+	public String toString() {
         return "IrcConfiguration[hostname: " + hostname + ", ports=" + Arrays.toString(ports) + ", username=" + username + "]";
     }
     

http://git-wip-us.apache.org/repos/asf/camel/blob/abfae23c/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcEndpoint.java b/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcEndpoint.java
index 97012ae..5ddef4a 100644
--- a/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcEndpoint.java
+++ b/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcEndpoint.java
@@ -204,6 +204,9 @@ public class IrcEndpoint extends DefaultEndpoint {
             }
             connection.doJoin(chn);
         }
+        if (configuration.isNamesOnJoin()) {
+			connection.doNames(chn);
+		}
     }
 }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/abfae23c/components/camel-irc/src/test/java/org/apache/camel/component/irc/IrcsListUsersIntegrationTest.java
----------------------------------------------------------------------
diff --git a/components/camel-irc/src/test/java/org/apache/camel/component/irc/IrcsListUsersIntegrationTest.java b/components/camel-irc/src/test/java/org/apache/camel/component/irc/IrcsListUsersIntegrationTest.java
new file mode 100644
index 0000000..7bb34db
--- /dev/null
+++ b/components/camel-irc/src/test/java/org/apache/camel/component/irc/IrcsListUsersIntegrationTest.java
@@ -0,0 +1,90 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.irc;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Properties;
+
+import org.apache.camel.EndpointInject;
+import org.apache.camel.RoutesBuilder;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.junit4.CamelTestSupport;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Integration test for the {@link IrcConfiguration#isNamesOnJoin()} option.
+ * Joins a channel and asserts that the username of the current test user is
+ * listed for the channel.
+ */
+public class IrcsListUsersIntegrationTest extends CamelTestSupport {
+	
+	private static final Logger LOGGER = LoggerFactory.getLogger(IrcsListUsersIntegrationTest.class);
+
+	/** message code for a reply to a <code>NAMES</code> command. */
+	public static final String IRC_RPL_NAMREPLY = "353";
+
+	/** irc component uri. configured by properties */
+	private static final String PRODUCER_URI = "ircs:{{test.user}}@{{test.server}}/{{test.room}}";
+
+	@EndpointInject(uri = "mock:result")
+	protected MockEndpoint resultEndpoint;
+
+	protected Properties properties;
+	
+	public IrcsListUsersIntegrationTest() throws IOException {
+		super();
+		properties = new Properties();
+		InputStream resourceAsStream = this.getClass().getResourceAsStream("/it-list-users.properties");
+		properties.load(resourceAsStream);
+	}
+	
+	@Override
+	protected RoutesBuilder createRouteBuilder() throws Exception {
+
+		return new RouteBuilder() {
+
+			@Override
+			public void configure() throws Exception {
+				LOGGER.debug("Creating new test route");
+				from(PRODUCER_URI + "?listOnJoin=true&onReply=true")
+					.choice()
+						.when(header("irc.messageType").isEqualToIgnoreCase("REPLY"))
+							.filter(header("irc.num").isEqualTo(IRC_RPL_NAMREPLY)).to("mock:result").stop();
+			}
+		};
+	}
+
+	@Test
+	public void test() throws Exception {
+		resultEndpoint.setMinimumExpectedMessageCount(1);
+		resultEndpoint.assertIsSatisfied();
+		String body = resultEndpoint.getExchanges().get(0).getIn().getBody(String.class);
+		LOGGER.debug("Received usernames: [{}]", body);
+		String username = properties.getProperty("test.user");
+		assertTrue("userlist does not contain test user", body.contains(username));
+	}
+	
+	@Override
+	protected Properties useOverridePropertiesWithPropertiesComponent() {
+		return properties;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/abfae23c/components/camel-irc/src/test/resources/it-list-users.properties
----------------------------------------------------------------------
diff --git a/components/camel-irc/src/test/resources/it-list-users.properties b/components/camel-irc/src/test/resources/it-list-users.properties
new file mode 100644
index 0000000..028c574
--- /dev/null
+++ b/components/camel-irc/src/test/resources/it-list-users.properties
@@ -0,0 +1,3 @@
+test.server=chat.freenode.net:6697
+test.room=#testroom123
+test.user=camel-irc-ituser
\ No newline at end of file