diff options
Diffstat (limited to 'java')
2 files changed, 13 insertions, 6 deletions
diff --git a/java/sca/demos/alert-aggregator-webapp/src/main/java/org/apache/tuscany/sca/demos/aggregator/RSSCheckerServiceImpl.java b/java/sca/demos/alert-aggregator-webapp/src/main/java/org/apache/tuscany/sca/demos/aggregator/RSSCheckerServiceImpl.java index 9b73a27625..549abbf602 100644 --- a/java/sca/demos/alert-aggregator-webapp/src/main/java/org/apache/tuscany/sca/demos/aggregator/RSSCheckerServiceImpl.java +++ b/java/sca/demos/alert-aggregator-webapp/src/main/java/org/apache/tuscany/sca/demos/aggregator/RSSCheckerServiceImpl.java @@ -20,6 +20,7 @@ package org.apache.tuscany.sca.demos.aggregator; import java.net.URL; import java.text.DateFormat; +import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; @@ -44,9 +45,12 @@ public class RSSCheckerServiceImpl implements RSSCheckerService { List returnAlertList = returnAlerts.getAlert(); try { - // Turn the date into something we can process. - DateFormat dateFormatter = DateFormat.getDateTimeInstance(); - Date timestamp = dateFormatter.parse(lastchecktimestamp); + // lastchecktimestamp comes from sources.xml configuration. + // That origin requires ISO 8601 date input (yyyy-MM-dd hh:mm:ss). + DateFormat configDateFormatter = new SimpleDateFormat( "yyyy-MM-dd hh:mm:ss"); + Date timestamp = configDateFormatter.parse(lastchecktimestamp); + // Turn feed dates into something we can process. + DateFormat feedDateFormatter = DateFormat.getDateTimeInstance(); // get the feed data from the supplied address SyndFeedInput input = new SyndFeedInput(); @@ -58,6 +62,7 @@ public class RSSCheckerServiceImpl implements RSSCheckerService { for(Object entry: entries){ SyndEntry syndEntry = (SyndEntry)entry; + // System.err.println( "Entry pubdate=" + syndEntry.getPublishedDate() ); if (syndEntry.getPublishedDate().after(timestamp)){ AlertType newAlert = factory.createAlertType(); @@ -67,7 +72,7 @@ public class RSSCheckerServiceImpl implements RSSCheckerService { // "]]>"); newAlert.setSummary(""); newAlert.setAddress(syndEntry.getLink()); - newAlert.setDate(dateFormatter.format(syndEntry.getPublishedDate())); + newAlert.setDate(feedDateFormatter.format(syndEntry.getPublishedDate())); newAlert.setId(rssaddress); newAlert.setUnread(true); @@ -76,6 +81,7 @@ public class RSSCheckerServiceImpl implements RSSCheckerService { } } catch(Exception ex) { + ex.printStackTrace( System.err ); System.err.println("Exception " + ex.toString()); } diff --git a/java/sca/demos/alert-aggregator-webapp/src/main/resources/sources.xml b/java/sca/demos/alert-aggregator-webapp/src/main/resources/sources.xml index 2168c10c9c..e45250eddb 100644 --- a/java/sca/demos/alert-aggregator-webapp/src/main/resources/sources.xml +++ b/java/sca/demos/alert-aggregator-webapp/src/main/resources/sources.xml @@ -17,17 +17,18 @@ specific language governing permissions and limitations under the License. --> +<!-- Note: the demo expects LastChecked date in ISO 8601 format (yyyy-MM-dd hh:mm:ss). --> <ns0:Config xmlns:ns0="http://tuscany.apache.org/sca/demos/aggregator/types"> <ns0:Source Id="0" FeedType="rss"> <ns0:Name>BBC News</ns0:Name> <ns0:Address>http://news.bbc.co.uk/</ns0:Address> - <ns0:LastChecked>10-Jun-2007 16:34:03</ns0:LastChecked> + <ns0:LastChecked>2008-06-20 12:00:00</ns0:LastChecked> <ns0:FeedAddress>http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/world/rss.xml</ns0:FeedAddress> </ns0:Source> <ns0:Source Id="1" FeedType="rss"> <ns0:Name>Engadget</ns0:Name> <ns0:Address>http://www.engadget.com</ns0:Address> - <ns0:LastChecked>10-Jun-2007 16:34:03</ns0:LastChecked> + <ns0:LastChecked>2008-06-20 12:00:00</ns0:LastChecked> <ns0:FeedAddress>http://www.engadget.com/rss.xml</ns0:FeedAddress> </ns0:Source> </ns0:Config> |