Access Keys:
Skip to content (Access Key - 0)
community header community tab mule tab ibeans tab muleforge tab

RSS Support

This RSS module provides transformers, routers, and filters to simplify RSS feed manipulation and integration. ROME is the underlying RSS library used to implement Mule concepts. The ROME feed object structure is fairly straight forward and nicely supports the concept of a canonical data model when writing service components. The main goal of this project is to allow users wiring together RSS integration solutions through Mule's configuration, trying to avoid additional implementations as much as possible. An example use case could be to poll RSS feeds using the http transport, sending event messages across different transports using the FeedSplitter in combination with FeedFilter.

What is included?

The following implementations are available:

Transformers

org.mule.transformers.rss.XMLByteArrayToFeedObject

Transforms an XML byte array into a ROME feed object (com.sun.syndication.feed.synd.SyndFeed).

org.mule.transformers.rss.FeedObjectToXMLString

Transforms a ROME feed object (com.sun.syndication.feed.synd.SyndFeed) into an XML string.

Routers

org.mule.routing.outbound.rss.FeedSplitter

Splits an incoming RSS feed, typically containing multiple message items, into separate RSS feed message items. Router input must be a ROME feed object.

Filters

org.mule.routing.filters.rss.FeedFilter

This filter can be used in combination with the FeedSplitter. The following filter properties are available:

Name Description Value
title This filter name is the equivalent to the RSS XML tag <title>. Regular expression.
name This filter name is the equivalent to the RSS XML tag <name>. Regular expression.
description This filter name is the equivalent to the RSS XML tag <description>. Regular expression.
author This filter name is the equivalent to the RSS XML tag <author>. Regular expression.
caseSensitive Controls case sensitivity for all name/value pairs on the particular filter. true (default) | false

Examples

For a sample configuration go here.

TODO

The following is a list of features the current implementation would extremely benefit from:

  1. When feeds are polled through a transport, only process feeds that haven't been polled before.
    This could probably be similar to the implementation of an IdempotentRouter, allowing to persist the last read publish date via property.
  2. Support merging of multiple incoming feeds into a single feed.
    Maybe there's even a way to configure this with the current implemenation?
Adaptavist Theme Builder (3.3.3-conf210) Powered by Atlassian Confluence 2.10, the Enterprise Wiki.
Free theme builder license