Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

...

Atom

...

Component

...

The

...

atom:

...

component

...

is

...

used

...

for

...

polling

...

Atom

...

feeds.

...

Camel

...

will

...

poll

...

the

...

feed

...

every

...

60

...

seconds

...

by

...

default.

...


Note:

...

The

...

component

...

currently

...

only

...

supports

...

polling

...

(consuming)

...

feeds.

...

Maven

...

users

...

will

...

need

...

to

...

add

...

the

...

following

...

dependency

...

to

...

their

...

pom.xml

...

for

...

this

...

component:

Code Block
xml
xml

{code:xml}
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-atom</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>
{code}

h3. URI format

URI format

Code Block
{code}
atom://atomUri[?options]

Where atomUri is the URI to the Atom feed to poll.

Options

Wiki Markup
{code}

Where *atomUri* is the URI to the Atom feed to poll. 

h3. Options
{div:class=confluenceTableSmall}
|| Property || Default || Description ||
| {{splitEntries}} | {{true}} | If {{true}} Camel will poll the feed and for the subsequent polls return each entry poll by poll. If the feed contains 7 entries then Camel will return the first entry on the first poll, the 2nd entry on the next poll, until no more entries where as Camel will do a new update on the feed. If {{false}} then Camel will poll a fresh feed on every invocation. |
| {{filter}} | {{true}} |  Is only used by the split entries to filter the entries to return. Camel will default use the {{UpdateDateFilter}} that only return new entries from the feed. So the client consuming from the feed never receives the same entry more than once. The filter will return the entries ordered by the newest last. |
| {{lastUpdate}} | {{null}} | Is only used by the filter, as the starting timestamp for selection never entries (uses the {{entry.updated}} timestamp). Syntax format is: {{yyyy-MM-ddTHH:MM:ss}}. Example: {{2007-12-24T17:45:59}}. | 
| {{throttleEntries}} | {{true}} | *Camel 2.5:* Sets whether all entries identified in a single feed poll should be delivered immediately. If {{true}}, only one entry is processed per {{consumer.delay}}. Only applicable when {{splitEntries}} is set to {{true}}. |
| {{feedHeader}} | {{true}} | Sets whether to add the Abdera Feed object as a header. |
| {{sortEntries}} | {{false}} | If {{splitEntries}} is {{true}}, this sets whether to sort those entries by updated date. |
| {{consumer.delay}} | {{60000}} | Delay in millis between each poll. |
| {{consumer.initialDelay}} | {{1000}} | Millis before polling starts. |
| {{consumer.userFixedDelay}} | {{false}} | If {{true}}, use fixed delay between pools, otherwise fixed rate is used. See [ScheduledExecutorService|http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/ScheduledExecutorService.html] in JDK for details. |
{div}

You

...

can

...

append

...

query

...

options

...

to

...

the

...

URI

...

in

...

the

...

following

...

format,

...

?option=value&option=value&...

Exchange data format

Camel will set the In body on the returned Exchange with the entries. Depending on the splitEntries flag Camel will either return one Entry or a List<Entry>.

Wiki Markup
}}

h3. Exchange data format

Camel will set the In body on the returned {{Exchange}} with the entries. Depending on the {{splitEntries}} flag Camel will either return one {{Entry}} or a {{List<Entry>}}.
{div:class=confluenceTableSmall}
|| Option || Value || Behavior ||
| {{splitEntries}} | {{true}} |  Only a single entry from the currently being processed feed is set: {{exchange.in.body(Entry)}} |
| {{splitEntries}} | {{false}} | The entire list of entries from the feed is set: {{exchange.in.body(List<Entry>)}} |
{div}

Camel

...

can

...

set

...

the

...

Feed

...

object

...

on

...

the

...

In

...

header

...

(see

...

feedHeader

...

option

...

to

...

disable

...

this):

...

Message

...

Headers

...

Camel

...

atom

...

uses

...

these

...

headers.

Wiki Markup

{div:class=confluenceTableSmall}
|| Header || Description ||
| {{CamelAtomFeed}} | When consuming the {{org.apache.abdera.model.Feed}} object is set to this header. |
{div}

h3. Samples
In this sample we poll James 

Samples

In this sample we poll James Strachan's

...

blog.

{
Code Block
}
from("atom://http://macstrac.blogspot.com/feeds/posts/default").to("seda:feeds");
{code}

In

...

this

...

sample

...

we

...

want

...

to

...

filter

...

only

...

good

...

blogs

...

we

...

like

...

to

...

a

...

SEDA

...

queue.

...

The

...

sample

...

also

...

shows

...

how

...

to

...

setup

...

Camel

...

standalone,

...

not

...

running

...

in

...

any

...

Container

...

or

...

using

...

Spring.

Wiki Markup

{snippet:id=e1|lang=java|url=camel/trunk/components/camel-atom/src/test/java/org/apache/camel/component/atom/AtomGoodBlogsTest.java}

{include:Endpoint See Also}
- [RSS]
Include Page
Endpoint See Also
Endpoint See Also