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 2009/09/07 07:10:34 UTC
svn commit: r811997 - in /camel/trunk/components/camel-spring/src/test:
java/org/apache/camel/spring/issues/SpringChristianDLCLoseMessageIssueTest.java
resources/org/apache/camel/spring/issues/SpringChristianDLCLoseMessageIssueTest.xml
Author: davsclaus
Date: Mon Sep 7 05:10:34 2009
New Revision: 811997
URL: http://svn.apache.org/viewvc?rev=811997&view=rev
Log:
Added unit test based on user forum issue
Added:
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/issues/SpringChristianDLCLoseMessageIssueTest.java
- copied, changed from r811825, camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/issues/SpringCharlesSplitAndTryCatchRollbackIssueTest.java
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/issues/SpringChristianDLCLoseMessageIssueTest.xml (contents, props changed)
- copied, changed from r811825, camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/issues/SpringCharlesSplitAndTryCatchRollbackIssueTest.xml
Copied: camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/issues/SpringChristianDLCLoseMessageIssueTest.java (from r811825, camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/issues/SpringCharlesSplitAndTryCatchRollbackIssueTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/issues/SpringChristianDLCLoseMessageIssueTest.java?p2=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/issues/SpringChristianDLCLoseMessageIssueTest.java&p1=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/issues/SpringCharlesSplitAndTryCatchRollbackIssueTest.java&r1=811825&r2=811997&rev=811997&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/issues/SpringCharlesSplitAndTryCatchRollbackIssueTest.java (original)
+++ camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/issues/SpringChristianDLCLoseMessageIssueTest.java Mon Sep 7 05:10:34 2009
@@ -16,17 +16,55 @@
*/
package org.apache.camel.spring.issues;
-import org.apache.camel.CamelContext;
-import org.apache.camel.issues.CharlesSplitAndTryCatchRollbackIssueTest;
-import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.spring.SpringTestSupport;
+import org.springframework.context.support.AbstractXmlApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* @version $Revision$
*/
-public class SpringCharlesSplitAndTryCatchRollbackIssueTest extends CharlesSplitAndTryCatchRollbackIssueTest {
+public class SpringChristianDLCLoseMessageIssueTest extends SpringTestSupport {
- protected CamelContext createCamelContext() throws Exception {
- return createSpringCamelContext(this, "org/apache/camel/spring/issues/SpringCharlesSplitAndTryCatchRollbackIssueTest.xml");
+ protected AbstractXmlApplicationContext createApplicationContext() {
+ return new ClassPathXmlApplicationContext("org/apache/camel/spring/issues/SpringChristianDLCLoseMessageIssueTest.xml");
}
-}
+ public void testDLCThrowException() throws Exception {
+ MockEndpoint result = getMockEndpoint("mock:result");
+ result.expectedMessageCount(2);
+
+ MockEndpoint error = getMockEndpoint("mock:error");
+ error.expectedMessageCount(2);
+
+ // should newer get a message as DLC handles it
+ MockEndpoint kaboom = getMockEndpoint("mock:kaboom");
+ kaboom.expectedMessageCount(0);
+
+ template.sendBody("direct:start", "Hello World");
+ template.sendBody("direct:start", "Kaboom");
+
+ template.sendBody("direct:start", "Hello World");
+ template.sendBody("direct:start", "Kaboom");
+
+ assertMockEndpointsSatisfied();
+ }
+
+ public void testDLCQueueFull() throws Exception {
+ MockEndpoint result = getMockEndpoint("mock:result");
+ result.expectedMessageCount(2);
+
+ // should get 1 message when seda:bye is full
+ MockEndpoint error = getMockEndpoint("mock:error");
+ error.expectedMessageCount(1);
+
+ template.sendBody("direct:start", "Hello World");
+ template.sendBody("direct:start", "Bye World");
+
+ template.sendBody("direct:start", "Hello World");
+ template.sendBody("direct:start", "Bye World");
+
+ assertMockEndpointsSatisfied();
+ }
+
+}
\ No newline at end of file
Copied: camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/issues/SpringChristianDLCLoseMessageIssueTest.xml (from r811825, camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/issues/SpringCharlesSplitAndTryCatchRollbackIssueTest.xml)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/issues/SpringChristianDLCLoseMessageIssueTest.xml?p2=camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/issues/SpringChristianDLCLoseMessageIssueTest.xml&p1=camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/issues/SpringCharlesSplitAndTryCatchRollbackIssueTest.xml&r1=811825&r2=811997&rev=811997&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/issues/SpringCharlesSplitAndTryCatchRollbackIssueTest.xml (original)
+++ camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/issues/SpringChristianDLCLoseMessageIssueTest.xml Mon Sep 7 05:10:34 2009
@@ -22,28 +22,55 @@
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
">
- <bean id="myProcessor" class="org.apache.camel.issues.CharlesSplitAndTryCatchRollbackIssueTest$MyProcessor"/>
+ <camelContext id="camel" errorHandlerRef="dlc" xmlns="http://camel.apache.org/schema/spring">
+
+ <endpoint id="kaboom" uri="seda:kaboom?size=1"/>
+ <endpoint id="hello" uri="seda:hello?size=1"/>
+ <endpoint id="bye" uri="seda:bye?size=1"/>
- <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="direct:start"/>
- <split stopOnException="true">
- <tokenize token=","/>
- <doTry>
- <process ref="myProcessor"/>
- <to uri="mock:split"/>
- <doCatch>
- <exception>java.lang.IllegalArgumentException</exception>
- <to uri="mock:ile"/>
- </doCatch>
- <doCatch>
- <exception>java.lang.Exception</exception>
- <to uri="mock:exception"/>
- <rollback/>
- </doCatch>
- </doTry>
- </split>
+ <choice>
+ <when>
+ <simple>${in.body} == 'Hello World'</simple>
+ <to ref="hello"/>
+ </when>
+ <when>
+ <simple>${in.body} == 'Bye World'</simple>
+ <to ref="bye"/>
+ </when>
+ <when>
+ <simple>${in.body} == 'Kaboom'</simple>
+ <to ref="kaboom"/>
+ </when>
+ <otherwise>
+ <to uri="mock:result"/>
+ </otherwise>
+ </choice>
+ </route>
+
+ <route>
+ <from ref="kaboom"/>
+ <throwException ref="myException"/>
+ <to uri="mock:kaboom"/>
+ </route>
+
+ <route>
+ <from ref="hello"/>
+ <to uri="mock:result"/>
</route>
+
+ <!-- seda:bye has no consumers -->
+
</camelContext>
+ <bean id="myException" class="java.lang.IllegalArgumentException">
+ <constructor-arg index="0" value="Forced"/>
+ </bean>
+
+ <bean id="dlc" class="org.apache.camel.builder.DeadLetterChannelBuilder">
+ <property name="deadLetterUri" value="mock:error"/>
+ </bean>
+
+
</beans>
Propchange: camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/issues/SpringChristianDLCLoseMessageIssueTest.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/issues/SpringChristianDLCLoseMessageIssueTest.xml
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange: camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/issues/SpringChristianDLCLoseMessageIssueTest.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml