Ah okay so you use the prototype scope of spring XML. Well the <process ref="xxx"/> lookup the processor once when the route is initialized.
You may want to use the Camel bean component and disable its cache http://camel.apache.org/bean Try something like this <to uri="bean:testProcessor?cache=false"/> On Thu, Jul 7, 2011 at 11:43 AM, Alistair Young <alistair.yo...@uhi.ac.uk> wrote: > sorry if I'm fuddling about too much. Perhaps if I rephrase: > > How would I change the config of a Processor at run time in a test? > > <route> > <from uri="activemq:topic:test"/> > <transacted /> > <process ref="testProcessor" /> > <to uri="activemq:topic:test2"/> > </route> > > <bean id="testProcessor" class="... TestProcessor" scope="prototype"> > <property name="path" value="/tmp/test/"/> > </bean> > > protected AbstractXmlApplicationContext createApplicationContext() { > ... > TestProcessor testProcessor = (TestBean)ctx.getBean("testProcessor"); > testProcessor.setPath("/another/path"); > ... > } > > public void test() { > testProcessor.getPath() -> returns "/another/path" > } > > but when the Processor is invoked by: > > public void test() { > sendBody("activemq:topic:test", testuserCreatePayload); > } > > the Processor has the default path "/tmp/test/" > > Alistair > > > > -- > mov eax,1 > mov ebx,0 > int 80h > > > > > On 6 Jul 2011, at 19:00, Claus Ibsen wrote: > >> On Mon, Jul 4, 2011 at 3:55 PM, Alistair Young <alistair.yo...@uhi.ac.uk> >> wrote: >>> Camel seems to load its own instances of beans in camel-config.xml >>> >>> testProcessor = (TestProcessor)ctx.getBean("testProcessor"); >>> testProcessor.setPath("/home/test"); >>> >>> but when i do this: >>> >>> sendBody("activemq:topic:edirectoryprocessed", testuserCreatePayload); >>> >>> testProcessor has its old path. i.e. testProcessor.setPath("/home/test") >>> has no effect in camel >>> >>> is there a way to load bean definition that camel will use during the test? >>> >> >> Camel does not load its own instances. If you use spring with Camel, >> it will lookup the beans from spring application context, and use >> whatever spring returns to it. >> >> Whatever object you send from the producer template is send *as is*. >> >> >> >> >>> thanks, >>> >>> Alistair >>> >>> >>> -- >>> mov eax,1 >>> mov ebx,0 >>> int 80h >>> >>> >>> >>> >>> >> >> >> >> -- >> 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/ > > -- 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/