Hello,

I have a simple route, which works fine

            from("file://data/inbox?noop=true")
                .beanRef("someProcessor")
                .process(new SomeOtherProcessor()).id("otherProcessor")
                .to("log:foo").id("loggingFoo");

But testing doesn't work. As one can see, I don't have duplicate id's.

org.apache.camel.FailedToStartRouteException: Failed to start route route1
because of duplicate id detected: otherProcessor. Please correct ids to be
unique among all your routes.
        at
org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:759)
        at
org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:1914)
        at
org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:1670)
        at
org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:1544)
        at
org.apache.camel.spring.SpringCamelContext.doStart(SpringCamelContext.java:179)
        at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
        at
org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:1512)
        at
org.apache.camel.test.junit4.CamelTestSupport.startCamelContext(CamelTestSupport.java:476)
        at
org.apache.camel.test.junit4.CamelTestSupport.doSetUp(CamelTestSupport.java:310)
        at
org.apache.camel.test.junit4.CamelTestSupport.setUp(CamelTestSupport.java:216)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
        at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
        at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
        at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
        at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55)
        at org.junit.rules.RunRules.evaluate(RunRules.java:20)
        at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
        at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
        at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
        at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
        at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
        at
org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53)
        at
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:123)
        at
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:104)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at
org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164)
        at
org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110)
        at
org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:175)
        at
org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:107)
        at 
org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:68)
###############################################################

public class AppTest extends CamelSpringTestSupport {

    
    @Override
    public String isMockEndpoints() {return "*";}

    @Test()
    public void testAppRoute() throws Exception {
        MockEndpoint to = getMockEndpoint("mock:log:foo");
        to.setExpectedMessageCount(1);
        template.sendBodyAndHeader("file://data/inbox", "test",
Exchange.FILE_NAME, "test.txt");
        Thread.sleep(2000);        
        to.assertIsSatisfied();
    }

    @Override
    protected RouteBuilder createRouteBuilder() throws Exception {
        return new App.AppRoute();
    }

    @Override
    protected AbstractApplicationContext createApplicationContext() {
        return new
ClassPathXmlApplicationContext("META-INF/spring/camel-context.xml");
    }

}

###########################

<beans xmlns="http://www.springframework.org/schema/beans";
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
       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";>

    <camelContext xmlns="http://camel.apache.org/schema/spring";>
        <routeBuilder ref="appRoute" />
    </camelContext>
    <bean id="appRoute" class="com.cameltest.mavenproject1.App$AppRoute" />
    <bean id="someProcessor"
class="com.cameltest.mavenproject1.SomeProcessor" />
 
</beans>




--
View this message in context: 
http://camel.465427.n5.nabble.com/error-while-testing-duplicate-id-detected-tp5742041.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to