camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jpcook <jonathan.c...@erars.plus.com>
Subject Re: Atom Component
Date Wed, 30 Sep 2009 11:07:56 GMT

Hi,

So just trying a very simple example like:
from("atom://http://macstrac.blogspot.com/feeds/posts/default").to("log:afterAtom");

But it returns:
2009-09-30 12:05:04,650 INFO [main] afterAtom - Exchange[BodyType:null,
Body:null]

No errors in the console so not sure what I'm doing wrong?


Claus Ibsen-2 wrote:
> 
> On Mon, Sep 28, 2009 at 10:05 AM, jpcook <jonathan.cook@erars.plus.com>
> 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 <jonathan.cook@erars.plus.com>
>>> 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
>>>>> <jonathan.cook@erars.plus.com>
>>>>> 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
> 
> 

-- 
View this message in context: http://www.nabble.com/Atom-Component-tp25609495p25679021.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Mime
View raw message