X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=crawler%2Fkiss%2Fsrc%2Forg%2Fwamblee%2Fcrawler%2Fkiss%2Fmain%2FKissCrawler.java;h=b0be9ef6cede2918bbf842ae98617f6a0d87afc5;hb=35f10e8a91e1660e23de1077bcbc9a5fbcaf8967;hp=969c5b23749e8e500f052308af0ed48a44f09308;hpb=945d06753950da5bb62974c13cd5d24a3f390115;p=utils diff --git a/crawler/kiss/src/org/wamblee/crawler/kiss/main/KissCrawler.java b/crawler/kiss/src/org/wamblee/crawler/kiss/main/KissCrawler.java index 969c5b23..b0be9ef6 100644 --- a/crawler/kiss/src/org/wamblee/crawler/kiss/main/KissCrawler.java +++ b/crawler/kiss/src/org/wamblee/crawler/kiss/main/KissCrawler.java @@ -46,6 +46,7 @@ import org.wamblee.crawler.kiss.guide.Time; import org.wamblee.crawler.kiss.guide.TimeInterval; import org.wamblee.crawler.kiss.notification.NotificationException; import org.wamblee.crawler.kiss.notification.Notifier; +import org.wamblee.general.BeanFactory; import org.wamblee.xml.ClasspathUriResolver; import org.wamblee.xml.XslTransformer; @@ -89,7 +90,10 @@ public class KissCrawler { public static void main(String[] aArgs) throws Exception { String crawlerConfig = new File(aArgs[0]).getCanonicalPath(); String programConfig = new File(aArgs[1]).getCanonicalPath(); - new KissCrawler(START_URL, SOCKET_TIMEOUT, crawlerConfig, programConfig); + + BeanFactory factory = new StandaloneCrawlerBeanFactory(); + Notifier notifier = factory.find(Notifier.class); + new KissCrawler(START_URL, SOCKET_TIMEOUT, crawlerConfig, programConfig, notifier, new Report()); } /** @@ -101,14 +105,16 @@ public class KissCrawler { * Configuration file for the crawler. * @param aProgramConfig * Configuration file describing interesting shows. + * @param aNotifier Object used to send notifications of the results. + * @param aReport Report to use. * @throws IOException * In case of problems reading files. - * @throws MessagingException - * In case of problems sending a mail notification. + * @throws NotificationException In case notification fails. + * @throws PageException In case of problems retrieving the TV guide. */ public KissCrawler(String aCrawlerConfig, - String aProgramConfig) throws IOException, NotificationException, PageException { - this(START_URL, SOCKET_TIMEOUT, aCrawlerConfig, aProgramConfig); + String aProgramConfig, Notifier aNotifier, Report aReport) throws IOException, NotificationException, PageException { + this(START_URL, SOCKET_TIMEOUT, aCrawlerConfig, aProgramConfig, aNotifier, aReport); } @@ -124,13 +130,15 @@ public class KissCrawler { * Configuration file for the crawler. * @param aProgramConfig * Configuration file describing interesting shows. + * @param aNotifier Object used to send notifications of the results. + * @param aReport Report to use. * @throws IOException * In case of problems reading files. - * @throws MessagingException - * In case of problems sending a mail notification. + * @throws NotificationException In case notification fails. + * @throws PageException In case of problems retrieving the TV guide. */ public KissCrawler(String aStartUrl, int aSocketTimeout, String aCrawlerConfig, - String aProgramConfig) throws IOException, NotificationException, PageException { + String aProgramConfig, Notifier aNotifier, Report aReport) throws IOException, NotificationException, PageException { _pattern = Pattern.compile(TIME_REGEX); @@ -150,21 +158,19 @@ public class KissCrawler { parser.parse(programConfigFile); List programFilters = parser.getFilters(); - Report report = new Report(); - try { - Page page = getStartPage(aStartUrl, crawler, report); - TVGuide guide = createGuide(page, report); + Page page = getStartPage(aStartUrl, crawler, aReport); + TVGuide guide = createGuide(page, aReport); PrintVisitor printer = new PrintVisitor(System.out); guide.accept(printer); - processResults(programFilters, guide, parser.getNotifier(), - report); + processResults(programFilters, guide, aNotifier, + aReport); } catch (PageException e) { - report.addMessage("Problem getting TV guide", e); + aReport.addMessage("Problem getting TV guide", e); LOG.info("Problem getting TV guide", e); throw e; } - parser.getNotifier().send(report.asXml()); + aNotifier.send(aReport.asXml()); } finally { System.out.println("Crawler finished"); }