Author: hekonsek
Date: Wed Mar 20 18:52:42 2013
New Revision: 1458998
URL: http://svn.apache.org/r1458998
Log:
Added multiple consumers support for Guava EventBus component.
Modified:
camel/trunk/components/camel-guava-eventbus/src/main/java/org/apache/camel/component/guava/eventbus/GuavaEventBusEndpoint.java
camel/trunk/components/camel-guava-eventbus/src/test/java/org/apache/camel/component/guava/eventbus/GuavaEventBusConsumerTest.java
Modified:
camel/trunk/components/camel-guava-eventbus/src/main/java/org/apache/camel/component/guava/eventbus/GuavaEventBusEndpoint.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-guava-eventbus/src/main/java/org/apache/camel/component/guava/eventbus/GuavaEventBusEndpoint.java?rev=1458998&r1=1458997&r2=1458998&view=diff
==============================================================================
---
camel/trunk/components/camel-guava-eventbus/src/main/java/org/apache/camel/component/guava/eventbus/GuavaEventBusEndpoint.java
(original)
+++
camel/trunk/components/camel-guava-eventbus/src/main/java/org/apache/camel/component/guava/eventbus/GuavaEventBusEndpoint.java
Wed Mar 20 18:52:42 2013
@@ -20,11 +20,12 @@ import com.google.common.eventbus.EventB
import org.apache.camel.Component;
import org.apache.camel.Consumer;
import org.apache.camel.Exchange;
+import org.apache.camel.MultipleConsumersSupport;
import org.apache.camel.Processor;
import org.apache.camel.Producer;
import org.apache.camel.impl.DefaultEndpoint;
-public class GuavaEventBusEndpoint extends DefaultEndpoint {
+public class GuavaEventBusEndpoint extends DefaultEndpoint implements
MultipleConsumersSupport {
private EventBus eventBus;
private Class<?> eventClass;
@@ -70,4 +71,10 @@ public class GuavaEventBusEndpoint exten
public void setEventClass(Class<?> eventClass) {
this.eventClass = eventClass;
}
+
+ @Override
+ public boolean isMultipleConsumersSupported() {
+ return true;
+ }
+
}
Modified:
camel/trunk/components/camel-guava-eventbus/src/test/java/org/apache/camel/component/guava/eventbus/GuavaEventBusConsumerTest.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-guava-eventbus/src/test/java/org/apache/camel/component/guava/eventbus/GuavaEventBusConsumerTest.java?rev=1458998&r1=1458997&r2=1458998&view=diff
==============================================================================
---
camel/trunk/components/camel-guava-eventbus/src/test/java/org/apache/camel/component/guava/eventbus/GuavaEventBusConsumerTest.java
(original)
+++
camel/trunk/components/camel-guava-eventbus/src/test/java/org/apache/camel/component/guava/eventbus/GuavaEventBusConsumerTest.java
Wed Mar 20 18:52:42 2013
@@ -32,6 +32,7 @@ public class GuavaEventBusConsumerTest e
@Override
public void configure() throws Exception {
from("guava-eventbus:eventBus").to("mock:allEvents");
+ from("guava-eventbus:eventBus").to("mock:multipliedConsumer");
from("guava-eventbus:eventBus?eventClass=org.apache.camel.component.guava.eventbus.MessageWrapper").
to("mock:wrapperEvents");
@@ -61,6 +62,22 @@ public class GuavaEventBusConsumerTest e
}
@Test
+ public void shouldForwardMessageToMultipleConsumers() throws
InterruptedException {
+ // Given
+ String message = "message";
+
+ // When
+ eventBus.post(message);
+
+ // Then
+ getMockEndpoint("mock:allEvents").setExpectedMessageCount(1);
+ getMockEndpoint("mock:multipliedConsumer").setExpectedMessageCount(1);
+ assertMockEndpointsSatisfied();
+ assertEquals(message,
getMockEndpoint("mock:allEvents").getExchanges().get(0).getIn().getBody());
+ assertEquals(message,
getMockEndpoint("mock:multipliedConsumer").getExchanges().get(0).getIn().getBody());
+ }
+
+ @Test
public void shouldFilterForwardedMessages() throws InterruptedException {
// Given
MessageWrapper wrappedMessage = new MessageWrapper("message");