Author: davsclaus
Date: Mon Jun 23 21:45:15 2008
New Revision: 671020

URL: http://svn.apache.org/viewvc?rev=671020&view=rev
Log:
CAMEL-620: Applied patch with thanks to William Tam

Modified:
    
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ResequencerType.java
    
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ResequencerTest.java
    
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/StreamResequencerTest.java

Modified: 
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ResequencerType.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ResequencerType.java?rev=671020&r1=671019&r2=671020&view=diff
==============================================================================
--- 
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ResequencerType.java
 (original)
+++ 
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ResequencerType.java
 Mon Jun 23 21:45:15 2008
@@ -160,13 +160,10 @@
 
     @Override
     public Processor createProcessor(RouteContext routeContext) throws 
Exception {
-        // TODO:
-        // streamConfig is null and is causing NPE downstream
-        // return createStreamResequencer(routeContext, streamConfig);
-        
         if (batchConfig != null) {
             return createBatchResequencer(routeContext, batchConfig);
         } else {
+            // streamConfig should be non-null if batchConfig is null
             return createStreamResequencer(routeContext, streamConfig);
         }
     }

Modified: 
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ResequencerTest.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ResequencerTest.java?rev=671020&r1=671019&r2=671020&view=diff
==============================================================================
--- 
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ResequencerTest.java
 (original)
+++ 
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ResequencerTest.java
 Mon Jun 23 21:45:15 2008
@@ -21,8 +21,13 @@
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.Endpoint;
 import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.camel.Route;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.impl.EventDrivenConsumerRoute;
+import org.apache.camel.management.InstrumentationProcessor;
+import org.apache.camel.management.JmxSystemPropertyKeys;
 
 /**
  * @version $Revision$
@@ -33,23 +38,22 @@
 
     public void testSendMessagesInWrongOrderButReceiveThemInCorrectOrder() 
throws Exception {
         resultEndpoint.expectedBodiesReceived("Guillaume", "Hiram", "James", 
"Rob");
-
         sendBodies("direct:start", "Rob", "Hiram", "Guillaume", "James");
-
         resultEndpoint.assertIsSatisfied();
-        List<Exchange> list = resultEndpoint.getReceivedExchanges();
-        for (Exchange exchange : list) {
-            log.debug("Received: " + exchange);
-        }
     }
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
-
         resultEndpoint = getMockEndpoint("mock:result");
     }
 
+    @Override 
+    protected void tearDown() throws Exception {
+        super.tearDown();
+        System.clearProperty(JmxSystemPropertyKeys.DISABLED);
+    }
+    
     protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             public void configure() {
@@ -59,4 +63,37 @@
             }
         };
     }
-}
\ No newline at end of file
+
+    public void testBatchResequencerTypeWithJmx() throws Exception {
+        System.setProperty(JmxSystemPropertyKeys.DISABLED, "true");
+
+        List<Route> list = getRouteList(createRouteBuilder());
+        assertEquals("Number of routes created: " + list, 1, list.size());
+
+        Route route = list.get(0);
+        assertTrue(route.toString().startsWith("BatchResequencerRoute"));
+    }
+
+    public void testBatchResequencerTypeWithoutJmx() throws Exception {
+        List<Route> list = getRouteList(createRouteBuilder());
+        assertEquals("Number of routes created: " + list, 1, list.size());
+
+        Route route = list.get(0);
+        EventDrivenConsumerRoute consumerRoute =
+            assertIsInstanceOf(EventDrivenConsumerRoute.class, route);
+
+        Processor processor = unwrap(consumerRoute.getProcessor());
+
+        DeadLetterChannel deadLetterChannel =
+            assertIsInstanceOf(DeadLetterChannel.class, processor);
+
+        Processor outputProcessor = deadLetterChannel.getOutput();
+        InstrumentationProcessor interceptor =
+                assertIsInstanceOf(InstrumentationProcessor.class, 
outputProcessor);
+
+        outputProcessor = interceptor.getProcessor();
+
+        assertIsInstanceOf(Resequencer.class, outputProcessor);
+    }
+
+}

Modified: 
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/StreamResequencerTest.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/StreamResequencerTest.java?rev=671020&r1=671019&r2=671020&view=diff
==============================================================================
--- 
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/StreamResequencerTest.java
 (original)
+++ 
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/StreamResequencerTest.java
 Mon Jun 23 21:45:15 2008
@@ -22,15 +22,19 @@
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.Processor;
+import org.apache.camel.Route;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.impl.EventDrivenConsumerRoute;
+import org.apache.camel.management.InstrumentationProcessor;
+import org.apache.camel.management.JmxSystemPropertyKeys;
 
 public class StreamResequencerTest extends ContextTestSupport {
 
     protected MockEndpoint resultEndpoint;
 
-    public void sendBodyAndHeader(String endpointUri, final Object body, 
-            final String headerName, final Object headerValue) {
+    protected void sendBodyAndHeader(String endpointUri, final Object body,
+                                   final String headerName, final Object 
headerValue) {
         template.send(endpointUri, new Processor() {
             public void process(Exchange exchange) {
                 Message in = exchange.getIn();
@@ -38,9 +42,9 @@
                 in.setHeader(headerName, headerValue);
                 in.setHeader("testCase", getName());
             }
-        });        
+        });
     }
-    
+
     public void testSendMessagesInWrongOrderButReceiveThemInCorrectOrder() 
throws Exception {
         resultEndpoint.expectedBodiesReceived("msg1", "msg2", "msg3", "msg4");
         sendBodyAndHeader("direct:start", "msg4", "seqnum", 4L);
@@ -48,10 +52,6 @@
         sendBodyAndHeader("direct:start", "msg3", "seqnum", 3L);
         sendBodyAndHeader("direct:start", "msg2", "seqnum", 2L);
         resultEndpoint.assertIsSatisfied();
-        List<Exchange> list = resultEndpoint.getReceivedExchanges();
-        for (Exchange exchange : list) {
-            log.debug("Received: " + exchange);
-        }
     }
 
     @Override
@@ -60,6 +60,12 @@
         resultEndpoint = getMockEndpoint("mock:result");
     }
 
+    @Override
+    protected void tearDown() throws Exception {
+        super.tearDown();
+        System.clearProperty(JmxSystemPropertyKeys.DISABLED);
+    }
+
     protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             public void configure() {
@@ -69,4 +75,36 @@
             }
         };
     }
+
+    public void testStreamResequencerTypeWithJmx() throws Exception {
+        doTestStreamResequencerType();
+    }
+
+    public void testStreamResequencerTypeWithoutJmx() throws Exception {
+        System.setProperty(JmxSystemPropertyKeys.DISABLED, "true");
+        doTestStreamResequencerType();
+    }
+
+    protected void doTestStreamResequencerType() throws Exception {
+        List<Route> list = getRouteList(createRouteBuilder());
+        assertEquals("Number of routes created: " + list, 1, list.size());
+
+        Route route = list.get(0);
+        EventDrivenConsumerRoute consumerRoute =
+            assertIsInstanceOf(EventDrivenConsumerRoute.class, route);
+
+        Processor processor = unwrap(consumerRoute.getProcessor());
+
+        DeadLetterChannel deadLetterChannel = 
assertIsInstanceOf(DeadLetterChannel.class, processor);
+        Processor outputProcessor = deadLetterChannel.getOutput();
+        if (!Boolean.getBoolean(JmxSystemPropertyKeys.DISABLED)) {
+            InstrumentationProcessor interceptor =
+                assertIsInstanceOf(InstrumentationProcessor.class, 
outputProcessor);
+            outputProcessor = interceptor.getProcessor();
+        }
+
+        assertIsInstanceOf(StreamResequencer.class, outputProcessor);
+    }
+
 }
+


Reply via email to