5 import mir.log.LoggerWrapper;
6 import mir.rss.RSSData;
7 import mir.rss.RSSReader;
8 import mir.rss.RSSToMapConverter;
9 import mir.util.ParameterExpander;
10 import mir.util.ExceptionFunctions;
12 public class RSSProducerNode implements ProducerNode {
16 public RSSProducerNode(String aKey, String anURL) {
21 public void produce(Map aValueMap, String aVerb, LoggerWrapper aLogger) throws ProducerFailure {
23 String expandedKey = ParameterExpander.expandExpression( aValueMap, key );
24 String expandedUrl = ParameterExpander.expandExpression( aValueMap, url );
26 ParameterExpander.setValueForKey(aValueMap, expandedKey, null);
27 RSSReader reader = new RSSReader();
28 RSSData rssData = reader.parseUrl(expandedUrl);
29 ParameterExpander.setValueForKey(aValueMap, expandedKey, RSSToMapConverter.convertRSSData(rssData));
32 Throwable s = ExceptionFunctions.traceCauseException(t);
33 aLogger.error("Error while processing RSS data: " + s.getClass().getName()+","+ s.getMessage());