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