On Mon, Sep 28, 2009 at 10:05 AM, jpcook <[email protected]> wrote:
>
> Thanks!
>
> One last probably silly question. What you initialise consumerTemplate as or
> do you extend from a particular class for this to work?
>
> We're not using Spring so can't do any injection as per another thread I
> saw.
>
You can create a consumer template from the CamelContext
And then you can reuse it on subsequent invocations.
If you use a bean/pojo you can just have a CamelContext parameter in
the method signature and Camel will inject the context for you.
If you use a processor then you can get hold of the CamelContext from
the Exchange using getContext()
public void doSomething(CamelContext context) {
if (consumerTemplate == null) {
consumerTemplate = context.createConsumerTemplate();
}
> And then does the url actually contain the atom part? Looking at the wiki
> page it would indicate it should do eg) Exchange exchange =
> consumerTemplate.receive("activemq:my.queue");
>
Yeah you need to use the complete URL
consumerTemplate.receive("atom://and some more here");
>
>
> Claus Ibsen-2 wrote:
>>
>> On Fri, Sep 25, 2009 at 1:02 PM, jpcook <[email protected]>
>> wrote:
>>>
>>> thanks
>>>
>>> The atom endpoint already has consumer.delay which I think I would use.
>>
>> Yeah but the atom endpoint will then be configured with a static endpoint
>> URI
>> from("atom:staticUriHere?consumer.delay=5000")...
>>
>> Where as if you use a processor/bean/ with a consumer template you can do
>>
>> from("timer://foo?delay=5000").beanRef("myBean", "doSomething)
>>
>> And then in your POJO you can poll the atom endpoint using a dynamic URI
>>
>> private List<String> uris;
>>
>> public void doSomething() {
>> // loop the list of dynamic uris and get the content from it
>> // and then consume from the endpoint using consumer template
>> Exchange out = consumerTemplate.receive(uri, 1000);
>> }
>>
>> And see that link Charles mentioned.
>>
>>
>>>
>>> Is there an example of the consumerTemplate?
>>>
>>> Could I use the web-console to configure the dynamic uris or just a
>>> normal
>>> xml configuration file?
>>>
>>> About the last point, that is how I have done it in the past but just
>>> thought I'd check if there was something built into camel now. :)
>>>
>>>
>>>
>>> Claus Ibsen-2 wrote:
>>>>
>>>> Hi
>>>>
>>>> You can use a scheduler / timer to trigger a route at a certain
>>>> interval (quartz or timer)
>>>>
>>>> And then use a processor / bean with a consumerTemplate to consume
>>>> from the atom feeds.
>>>> Then you can use dynamic URIs.
>>>>
>>>> And if you want that to route in parallel you can use the JDK
>>>> concurrency API for that as well.
>>>>
>>>> Sometimes the easiest stuff is to do that using regular java in a POJO.
>>>> Submit tasks to the JDK executor services and then afterwards route
>>>> the result to a file endpoint to store the file.
>>>> Or a "direct" endpoint so you can do additional routing.
>>>>
>>>>
>>>>
>>>>
>>>> On Fri, Sep 25, 2009 at 12:02 PM, jpcook <[email protected]>
>>>> wrote:
>>>>>
>>>>> Hello,
>>>>>
>>>>> I have a requirement to pull 24 atom feeds, process them in the same
>>>>> way
>>>>> via
>>>>> xslt and then write the results to a file location which is slightly
>>>>> different for each feed. This is fairly straight forward.
>>>>>
>>>>> I was looking at the atom component as it looks almost perfect. But I
>>>>> wondered if there was a clever way I could maybe specify a list of urls
>>>>> to
>>>>> the component and then it could process them concurrently as I don't
>>>>> want
>>>>> to
>>>>> have to do this synchronously? A bit like when you use the splitter you
>>>>> can
>>>>> specify parallelProcessing()
>>>>>
>>>>> I guess another alternative would be to have a route for each feed I
>>>>> need
>>>>> to
>>>>> pull but this seemed a bit overkill as they would essentially be all
>>>>> the
>>>>> same. Also I wanted to make the atom urls and the location that the
>>>>> result
>>>>> gets written to configurable but we are not using the spring dsl xml
>>>>> configuration. As an alternative I could make these parameters
>>>>> configurable
>>>>> via my own configuration but I also wondered if I could perhaps control
>>>>> these parameters via JMX or even better via the web console?
>>>>>
>>>>> Any thoughts much appreciated. Thanks.
>>>>> --
>>>>> View this message in context:
>>>>> http://www.nabble.com/Atom-Component-tp25609495p25609495.html
>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Claus Ibsen
>>>> Apache Camel Committer
>>>>
>>>> Open Source Integration: http://fusesource.com
>>>> Blog: http://davsclaus.blogspot.com/
>>>> Twitter: http://twitter.com/davsclaus
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/Atom-Component-tp25609495p25610124.html
>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>>
>> --
>> Claus Ibsen
>> Apache Camel Committer
>>
>> Open Source Integration: http://fusesource.com
>> Blog: http://davsclaus.blogspot.com/
>> Twitter: http://twitter.com/davsclaus
>>
>>
>
> --
> View this message in context:
> http://www.nabble.com/Atom-Component-tp25609495p25641681.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>
--
Claus Ibsen
Apache Camel Committer
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus