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:46:01 GMT

Strange just using the http endpoint works fine.


jpcook wrote:
> 
> 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-tp25609495p25679452.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Mime
View raw message