--- /dev/null
+package mir.producer;
+
+import java.util.Map;\r
+\r
+import mir.log.LoggerWrapper;\r
+import mir.rss.RSSData;\r
+import mir.rss.RSSReader;\r
+import mir.rss.RSSToMapConverter;\r
+import mir.util.ParameterExpander;
+
+public class RSSProducerNode implements ProducerNode {
+ private String key;
+ private String url;
+
+ public RSSProducerNode(String aKey, String anURL) {
+ key = aKey;
+ url = anURL;
+ }
+
+ public void produce(Map aValueMap, String aVerb, LoggerWrapper aLogger) throws ProducerFailure {
+ try {
+ String expandedKey = ParameterExpander.expandExpression( aValueMap, key );
+ String expandedUrl = ParameterExpander.expandExpression( aValueMap, url );
+
+ RSSReader reader = new RSSReader();
+ RSSData rssData = reader.parseUrl(url);
+ ParameterExpander.setValueForKey(aValueMap, expandedKey, RSSToMapConverter.convertRSSData(rssData));
+ }
+ catch (Throwable t) {
+ aLogger.error("Error while processing RSS data: " + t.toString());
+ }
+ };
+}
\ No newline at end of file