Hi If you are using spring xml then the beans need to go in the spring xml file as <bean>.
You may be able to add those beans later using some spring java api. On Tue, May 26, 2015 at 2:21 PM, Tim Dudgeon <tdudgeon...@gmail.com> wrote: > Sorry, not clear on this. Where does the <bean> element go? > The XML generated from the route looks like this: > > <?xml version="1.0" encoding="UTF-8" standalone="yes"?> > <routes xmlns="http://camel.apache.org/schema/spring"> > <route> > <from uri="timer://foo?fixedRate=true&period=200"/> > <log message="Hello World!"/> > <process ref="mybean"/> > </route> > </routes> > > > The <bean> element would normally be part of the spring XML, but outside the > routes definition looking something like this: > > <?xml version="1.0" encoding="UTF-8"?> > <beans ...> > <bean id="mybean" class="org.foo.MyBean"/> > > <camelContext xmlns="http://camel.apache.org/schema/spring"> > <route> > .... > </route> > </camelContext> > </beans> > > Can the beans be defined in this way at runtime or is some other mechanism > needed to instantiate the beans and add them to the registry independently > of adding the route (as XML)? > > Tim > > > > > On 26/05/2015 08:19, Claus Ibsen wrote: >> >> Hi >> >> Yeah <bean> >> >> On Tue, May 26, 2015 at 9:02 AM, Tim Dudgeon <tdudgeon...@gmail.com> >> wrote: >>> >>> Yes, but how to specify the bean that is referenced? Can that be >>> specified >>> in the XML using a bean element as if it was being using on startup, or >>> does >>> it need to be added to the registry "manually"? >>> >>> Tim >>> >>> >>> On 26/05/2015 07:49, Claus Ibsen wrote: >>>> >>>> On Mon, May 25, 2015 at 3:01 PM, Tim Dudgeon <tdudgeon...@gmail.com> >>>> wrote: >>>>> >>>>> Hi, >>>>> >>>>> I'm wanting some guidance on how to generate a route definition using >>>>> the >>>>> API in a way that allows it to be converted to XML and then executed. >>>>> I've >>>>> got the basics sorted, but struggling on how to handle processors and >>>>> beans. >>>>> For instance, if I generate a route like this: >>>>> >>>>> // generate the route >>>>> RoutesDefinition routes1 = new RoutesDefinition() >>>>> RouteDefinition route = routes1.route() >>>>> route.from("timer://foo?fixedRate=true&period=200") >>>>> route.log("Hello World!") >>>>> route.process(new SimpleProcessor()) >>>>> >>>>> // set route to context >>>>> CamelContext camelContext = new DefaultCamelContext() >>>>> camelContext.start() >>>>> camelContext.addRouteDefinitions(routes1.getRoutes()) >>>>> >>>>> Then the route works fine (e.g. my SimpleProcessor gets called as >>>>> expected). >>>>> But if I generate the XML definition of the route it looks like this: >>>>> >>>>> <?xml version="1.0" encoding="UTF-8" standalone="yes"?> >>>>> <routes xmlns="http://camel.apache.org/schema/spring"> >>>>> <route> >>>>> <from uri="timer://foo?fixedRate=true&period=200"/> >>>>> <log message="Hello World!"/> >>>>> <process/> >>>>> </route> >>>>> </routes> >>>>> >>>>> e.g. the processor definition has been lost. >>>>> I suspect I need to register the processor bean with the registry and >>>>> use >>>>> the processRef() method on the route, or something along those lines. >>>>> Does anyone have any examples of how to handle this? >>>>> >>>> Yes for representing this as xml, you would need to use a ref for the >>>> processor >>>> >>>> >>>> >>>>> Thanks >>>>> Tim >>>> >>>> >>>> >> >> > -- Claus Ibsen ----------------- Red Hat, Inc. Email: cib...@redhat.com Twitter: davsclaus Blog: http://davsclaus.com Author of Camel in Action: http://www.manning.com/ibsen hawtio: http://hawt.io/ fabric8: http://fabric8.io/