Hi

You may have to reorder the xml files, so the policies is read first

eg try to swap the order here, to see if that works.
 return new ClassPathXmlApplicationContext("main-context.xml",
"test-policies-context.xml");



On Fri, Aug 26, 2011 at 5:34 PM, RavshanKos <ravshan.kosi...@db.com> wrote:
> Hello.
>
> I'm trying to store redelivery policies in separate spring context.
>
> Here context files that I'm using to test my approach:
>
> main-context.xml:
> <?xml version="1.0" encoding="UTF-8"?>
> <beans xmlns="http://www.springframework.org/schema/beans";
>    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>    xmlns:camel="http://camel.apache.org/schema/spring";
>    xsi:schemaLocation="
>        http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans.xsd
>        http://camel.apache.org/schema/spring
> http://camel.apache.org/schema/spring/camel-spring.xsd";>
>    <camel:camelContext id="camelContext" trace="true">
>        <camel:route id="main" errorHandlerRef="defaultErrorHandler">
>            <camel:from ref="input" />
>            <camel:onException redeliveryPolicyRef="redeliveryPolicy"
> onRedeliveryRef="onRedeliveryBean">
>                <camel:exception>java.lang.Exception</camel:exception>
>
>
> <camel:handled><camel:constant>true</camel:constant></camel:handled>
>            </camel:onException>
>            <camel:bean ref="exceptionThrowingBean" />
>            <camel:to ref="output" />
>        </camel:route>
>    </camel:camelContext>
> </beans>
>
> test-policies-context.xml:
> <?xml version="1.0" encoding="UTF-8"?>
> <beans xmlns="http://www.springframework.org/schema/beans";
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>    xmlns:camel="http://camel.apache.org/schema/spring";
>    xsi:schemaLocation="
>            http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans.xsd
>            http://camel.apache.org/schema/spring
> http://camel.apache.org/schema/spring/camel-spring.xsd";>
>    <camel:endpoint id="input" uri="direct:input" />
>    <camel:endpoint id="output" uri="mock:output" />
>    <camel:redeliveryPolicyProfile id="redeliveryPolicy"
> maximumRedeliveries="5" disableRedelivery="false" />
>    <camel:errorHandler id="defaultErrorHandler" type="DeadLetterChannel"
> deadLetterUri="mock:deadLetterChannel" />
>    <bean id="onRedeliveryBean"
> class="RedeliveryPoliciesTest.OnRedeliveryBean" />
>    <bean id="exceptionThrowingBean"
> class="RedeliveryPoliciesTest.ExceptionThrowingBean" />
> </beans>
>
> Test class:
> public class RedeliveryPoliciesTest extends CamelSpringTestSupport {
>    public static class ExceptionThrowingBean implements Processor {
>        public void process(Exchange exchange) throws Exception {
>            throw new Exception("RedeliveryPoliciesTest");
>        }
>    }
>
>    public static class OnRedeliveryBean implements Processor {
>        private Counter counter;
>
>        public void setCounter(Counter counter) {
>            this.counter = counter;
>        }
>
>        public void process(Exchange exchange) throws Exception {
>            counter.inc();
>        }
>    }
>
>    public static interface Counter {
>        void inc();
>    }
>
>    protected AbstractApplicationContext createApplicationContext() {
>        return new ClassPathXmlApplicationContext("main-context.xml",
> "test-policies-context.xml");
>    }
>
>    @Test
>    public void testEnsureTharRedeliveryPolicyIsWorking() {
>        Counter counter = Mockito.mock(Counter.class);
>        getMandatoryBean(OnRedeliveryBean.class,
> "onRedeliveryBean").setCounter(counter);
>        template.sendBody("direct:input", new Object());
>        Mockito.verify(counter, Mockito.times(5)).inc();
>    }
> }
>
> If I run this test it fail with:
> java.lang.IllegalArgumentException: Defensive copy of Exchange is null must
> be specified on:
>
> If I uncomment  it starts to work.
> Is it correct behaviour?
>
> I'm using camel 2.8.0.
>
>
> --
> View this message in context: 
> http://camel.465427.n5.nabble.com/redeliveryPolicyProfile-and-onException-redeliveryPolicyRef-tp4738408p4738408.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>



-- 
Claus Ibsen
-----------------
FuseSource
Email: cib...@fusesource.com
Web: http://fusesource.com
Twitter: davsclaus, fusenews
Blog: http://davsclaus.blogspot.com/
Author of Camel in Action: http://www.manning.com/ibsen/

Reply via email to