(no commit message)
[utils] / crawler / kissweb / src / org / wamblee / crawler / kiss / servlet / CrawlerServlet.java
index 479c60b7fb3dbc7c2a1913276802eb24742aa557..1f9d08e59979b0fbe42985245d61efedf02fbb7f 100644 (file)
 package org.wamblee.crawler.kiss.servlet;
 
 import java.io.IOException;
-import java.util.Date;
+import java.io.OutputStream;
 
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.wamblee.crawler.kiss.scheduling.CrawlerSchedule;
+import org.wamblee.crawler.kiss.main.Report;
+import org.wamblee.crawler.kiss.notification.Notifier;
 import org.wamblee.crawler.kiss.scheduling.CrawlerScheduler;
+import org.wamblee.crawler.kiss.scheduling.CrawlerStatus;
 import org.wamblee.general.BeanKernel;
 
 /**
@@ -45,12 +47,21 @@ public class CrawlerServlet extends HttpServlet {
 
         CrawlerScheduler scheduler = BeanKernel.getBeanFactory().find(
                 CrawlerScheduler.class);
-        CrawlerSchedule status = BeanKernel.getBeanFactory().find(
-                CrawlerSchedule.class);
+        CrawlerStatus status = BeanKernel.getBeanFactory().find(
+                CrawlerStatus.class);
 
         try {
-            if ( aRequest.getParameter("runnow") != null ) {
-                status.setLastExecuted(new Date(System.currentTimeMillis() - 24*3600*1000));
+            if (aRequest.getParameter("details") != null) {
+                Report report = status.getLastReport();
+                if (report != null) {
+                    Notifier notifier = BeanKernel.getBeanFactory().find(Notifier.class);
+                    OutputStream os = aResponse.getOutputStream();
+                    os.write(notifier.asHtml(report.asXml()).getBytes());
+                    return;
+                }
+            }
+            if (aRequest.getParameter("runnow") != null) {
+                status.setMustExecute(true);
                 scheduler.scheduleNow();
                 aResponse.sendRedirect("");
                 return;
@@ -59,10 +70,12 @@ public class CrawlerServlet extends HttpServlet {
             aRequest.setAttribute("lastExecuted", status.getLastExecuted());
             aRequest.setAttribute("lastResult", status.getLastResult());
             aRequest.setAttribute("lastException", status.getLastException());
-            String msg = ""; 
-            Throwable e = status.getLastException(); 
-            while ( e != null ) { 
-                msg = msg + e.getMessage() + "<br/>"; 
+            aRequest.setAttribute("lastReport", status.getLastReport());
+            String msg = "";
+            Throwable e = status.getLastException();
+            while (e != null) {
+                msg = msg + e.getClass().getName() + ": " + e.getMessage()
+                        + "<br/>";
                 e = e.getCause();
             }
             aRequest.setAttribute("lastMessage", msg);