...
Code Block |
---|
rss:rssUri |
Where rssUri
is the URI to the RSS feed to poll.
You can append query options to the URI in the following format, ?option=value&option=value&...
Options
Property | Default | Description |
---|---|---|
| | If |
| | Is only used by the split entries to filter the entries to return. Camel will default use the UpdateDateFilter that only return Use in combination with the |
| | Is only used by the filter, as the starting timestamp for selection never entries Use in combination with the |
| | Sets Specifies whether to add the ROME |
| | If |
| | Delay in millis milliseconds between each poll. |
| | Millis Milliseconds before polling starts. |
| | Set to |
Exchange data types
Camel will set initializes the in In body on the returned Exchange with a ROME SyndFeed
. Depending on the value of the splitEntries
flag, Camel will returns either return a SyndFeed
with one SyndEntry
or a java.util.List
of SyndEntrys
.
Option | Value | Behavior |
---|---|---|
| | Only a A single entry from the currently being processed current feed is set in the new exchange feed. |
| | The entires entire list of entries from the current feed is set in the new exchange feed. |
Message Headers
Header | Description |
---|---|
| Camel 1.x: The entire |
| Camel 2.0: The entire |
RSS Dataformat
The RSS component ships with an RSS dataformat that can be used to convert between String (as XML) and ROME RSS model objects.
- marshal = from ROME
SyndFeed
to XMLString
- unmarshal = from XML
String
to ROMESyndFeed
A route using this would look something like this:
Wiki Markup |
---|
{snippet:id=ex|lang=java|url=camel/trunk/components/camel-rss/src/test/java/org/apache/camel/dataformat/rss/RssDataFormatTest.java} |
The idea purpose of this feature is to be able make it possible to use Camel's lovely built-in expressions for manipulating RSS messages. As shown below, an XPath expression can be used to filter the RSS message:
...
To merge multiple incoming feeds into a single feed, you can utilize a apply the custom aggregator, AggregationCollection
, provided with camel-rss. An example usage would look something like thisFor example:
Wiki Markup |
---|
{snippet:id=ex|lang=java|url=camel/trunk/components/camel-rss/src/test/java/org/apache/camel/component/rss/RssCustomAggregatorTest.java} |
Here we use a Seda queue to gather up entries from two RSS feeds. The entries are then fed into a the custom aggregator which combines these entries into a single ROME SyndFeed
object.
Filtering entries
You can filter out entries quite easily by using XPath, as shown in the data format section above. You can also utilize exploit Camel's Bean Integration to implement your own conditions. For instance, a filter equivalent to the XPath example above would be:
...
The custom bean for this would be:
Wiki Markup |
---|
{snippet:id=ex2|lang=java|url=camel/trunk/components/camel-rss/src/test/java/org/apache/camel/component/rss/RssFilterTest.java} |
...