-package mir.producer;
-
+package mir.producer;\r
+\r
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());
- }
- };
+import mir.util.ParameterExpander;\r
+import mir.util.ExceptionFunctions;\r
+\r
+public class RSSProducerNode implements ProducerNode {\r
+ private String key;\r
+ private String url;\r
+\r
+ public RSSProducerNode(String aKey, String anURL) {\r
+ key = aKey;\r
+ url = anURL;\r
+ }\r
+\r
+ public void produce(Map aValueMap, String aVerb, LoggerWrapper aLogger) throws ProducerFailure {\r
+ try {\r
+ String expandedKey = ParameterExpander.expandExpression( aValueMap, key );\r
+ String expandedUrl = ParameterExpander.expandExpression( aValueMap, url );\r
+\r
+ ParameterExpander.setValueForKey(aValueMap, expandedKey, null);\r
+ RSSReader reader = new RSSReader();\r
+ RSSData rssData = reader.parseUrl(expandedUrl);\r
+ ParameterExpander.setValueForKey(aValueMap, expandedKey, RSSToMapConverter.convertRSSData(rssData));\r
+ }\r
+ catch (Throwable t) {\r
+ Throwable s = ExceptionFunctions.traceCauseException(t);\r
+ aLogger.error("Error while processing RSS data: " + s.getClass().getName()+","+ s.getMessage());\r
+ }\r
+ };\r
}
\ No newline at end of file