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&amp;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&amp;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/

Reply via email to