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");


Reply via email to