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 2008/11/09 09:12:08 UTC

svn commit: r712472 - in /activemq/camel/trunk/camel-core/src: main/java/org/apache/camel/component/direct/ test/java/org/apache/camel/component/direct/

Author: davsclaus
Date: Sun Nov  9 00:12:08 2008
New Revision: 712472

URL: http://svn.apache.org/viewvc?rev=712472&view=rev
Log:
CAMEL-656: Polished direct component

Added:
    activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/component/direct/DirectNoMultipleConsumersTest.java   (contents, props changed)
      - copied, changed from r712398, activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/component/direct/DirectNoToTypeTest.java
Modified:
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/direct/DirectEndpoint.java
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/direct/DirectProducer.java

Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/direct/DirectEndpoint.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/direct/DirectEndpoint.java?rev=712472&r1=712471&r2=712472&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/direct/DirectEndpoint.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/direct/DirectEndpoint.java Sun Nov  9 00:12:08 2008
@@ -25,8 +25,6 @@
 import org.apache.camel.Producer;
 import org.apache.camel.impl.DefaultConsumer;
 import org.apache.camel.impl.DefaultEndpoint;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 
 /**
  * Represents a direct endpoint that synchronously invokes the consumers of the
@@ -35,7 +33,6 @@
  * @version $Revision$
  */
 public class DirectEndpoint<E extends Exchange> extends DefaultEndpoint<E> {
-    private static final transient Log LOG = LogFactory.getLog(DirectEndpoint.class);
     private boolean allowMultipleConsumers = true;
     private final CopyOnWriteArrayList<DefaultConsumer<E>> consumers = new CopyOnWriteArrayList<DefaultConsumer<E>>();
 

Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/direct/DirectProducer.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/direct/DirectProducer.java?rev=712472&r1=712471&r2=712472&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/direct/DirectProducer.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/component/direct/DirectProducer.java Sun Nov  9 00:12:08 2008
@@ -41,7 +41,7 @@
 
     public void process(Exchange exchange) throws Exception {
         if (endpoint.getConsumers().isEmpty()) {
-            LOG.warn("No getConsumers() available on " + this + " for " + exchange);
+            LOG.warn("No consumers available on " + this + " to process " + exchange);
         } else {
             for (DefaultConsumer<E> consumer : endpoint.getConsumers()) {
                 consumer.getProcessor().process(exchange);
@@ -52,7 +52,7 @@
     public boolean process(Exchange exchange, AsyncCallback callback) {
         int size = endpoint.getConsumers().size();
         if (size == 0) {
-            LOG.warn("No getConsumers() available on " + this + " for " + exchange);
+            LOG.warn("No consumers available on " + this + " to process " + exchange);
         } else if (size == 1) {
             DefaultConsumer<E> consumer = endpoint.getConsumers().get(0);
             AsyncProcessor processor = AsyncProcessorTypeConverter.convert(consumer.getProcessor());

Copied: activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/component/direct/DirectNoMultipleConsumersTest.java (from r712398, activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/component/direct/DirectNoToTypeTest.java)
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/component/direct/DirectNoMultipleConsumersTest.java?p2=activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/component/direct/DirectNoMultipleConsumersTest.java&p1=activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/component/direct/DirectNoToTypeTest.java&r1=712398&r2=712472&rev=712472&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/component/direct/DirectNoToTypeTest.java (original)
+++ activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/component/direct/DirectNoMultipleConsumersTest.java Sun Nov  9 00:12:08 2008
@@ -16,32 +16,33 @@
  */
 package org.apache.camel.component.direct;
 
-import org.apache.camel.ContextTestSupport;
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
+import junit.framework.TestCase;
+import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.impl.DefaultCamelContext;
 
 /**
- * Simple unit test based on user forum question.
+ * MultipleConsumers option test.
  */
-public class DirectNoToTypeTest extends ContextTestSupport {
+public class DirectNoMultipleConsumersTest extends TestCase {
 
-    public void testNoToType() throws Exception {
-        Object response = template.requestBody("direct:in", "Hello");
-        assertEquals("Hello World", response);
-    }
+    public void testNoMultipleConsumersTest() throws Exception {
+        CamelContext container = new DefaultCamelContext();
 
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
+        container.addRoutes(new RouteBuilder() {
             public void configure() throws Exception {
-                from("direct:in").process(new Processor() {
-                    public void process(Exchange exchange) throws Exception {
-                        String body = exchange.getIn().getBody(String.class);
-                        exchange.getOut(true).setBody(body + " World");
-                    }
-                });
+                from("direct:in?allowMultipleConsumers=false").to("mock:result");
+
+                from("direct:in?allowMultipleConsumers=false").to("mock:result");
             }
-        };
+        });
+
+        try {
+            container.start();
+            fail("Should have thrown an IllegalStateException");
+        } catch (IllegalStateException e) {
+            // expected
+        }
     }
 
-}
+}
\ No newline at end of file

Propchange: activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/component/direct/DirectNoMultipleConsumersTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/component/direct/DirectNoMultipleConsumersTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/component/direct/DirectNoMultipleConsumersTest.java
------------------------------------------------------------------------------
    svn:mergeinfo =