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;
/**
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);
+ aResponse.setContentType("text/html");
+ 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;
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);