Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

RSS Component

Available as of Camel 2.0

The rss: component is used for polling RSS feeds. Camel will default poll the feed every 60th seconds.

Maven users will need to add the following dependency to their pom.xml for this component:

Code Block
xml
xml
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-rss</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>

...

Note
titleUsing camel-rss in OSGi environment

Camel-rss uses ROME 1.0 and below. This library has class loading issues in OSGi environment. We submitted issue 142 to ROME.
You can also find patched version in this repository. One thing you have to change is version - patched version is marked as 1.0-osgi.

...

.

...

URI format

Code Block
rss:rssUri

...

Property

Default

Description

splitEntries

true

If true, Camel splits a feed into its individual entries and returns each entry, poll by poll. For example, if a feed contains seven entries, Camel returns the first entry on the first poll, the second entry on the second poll, and so on. When no more entries are left in the feed, Camel contacts the remote RSS URI to obtain a new feed. If false, Camel obtains a fresh feed on every poll and returns all of the feed's entries.

filter

true

Use in combination with the splitEntries option in order to filter returned entries. By default, Camel applies the UpdateDateFilter filter, which returns only new entries from the feed, ensuring that the consumer endpoint never receives an entry more than once. The filter orders the entries chronologically, with the newest returned last.

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.

lastUpdate

null

Use in combination with the filter option to block entries earlier than a specific date/time (uses the entry.updated timestamp). The format is: yyyy-MM-ddTHH:MM:ss. Example: 2007-12-24T17:45:59.

feedHeader

true

Specifies whether to add the ROME SyndFeed object as a header.

sortEntries

false

If splitEntries is true, this specifies whether to sort the entries by updated date.

consumer.delay

60000

Delay in milliseconds between each poll.

consumer.initialDelay

1000

Milliseconds before polling starts.

consumer.userFixedDelay

false

Set to true to use fixed delay between pools, otherwise fixed rate is used. See ScheduledExecutorService in JDK for details.

...

Wiki Markup
{snippet:id=ex|lang=java|url=camel/trunk/components/camel-rss/src/test/java/org/apache/camel/dataformat/rss/RssFilterWithXPathTest.java}

Merging multiple incoming feeds

To merge multiple incoming feeds into a single feed, you can apply the custom aggregator, AggregationCollection, provided with camel-rss. For example:

Wiki Markup
{snippet:id=ex|lang=java|url=camel/trunk/components/camel-rss/src/test/java/org/apache/camel/component/rss/RssCustomAggregatorTest.java}

...

Filtering entries

You can filter out entries quite easily using XPath, as shown in the data format section above. You can also exploit Camel's Bean Integration to implement your own conditions. For instance, a filter equivalent to the XPath example above would be:

...