KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jbpm > scheduler > impl > SchedulerServlet


1 package org.jbpm.scheduler.impl;
2
3 import java.io.IOException JavaDoc;
4 import java.io.PrintWriter JavaDoc;
5
6 import javax.servlet.ServletException JavaDoc;
7 import javax.servlet.http.HttpServlet JavaDoc;
8 import javax.servlet.http.HttpServletRequest JavaDoc;
9 import javax.servlet.http.HttpServletResponse JavaDoc;
10
11 /**
12  * the jBPM timer execution servlet.
13  * <p>Config parameters :
14  * <ul>
15  * <li><b>interval</b>: maximum time in milliseconds between 2 calls to {@link org.jbpm.scheduler.spi.TimerExecutor#executeTimers()}. defaults to 5000.</li>
16  * <li><b>historyMaxSize</b>: maximum number of logs to be kept for display on the page. defaults to 50.</li>
17  * </ul>
18  * </p>
19  *
20  * <p>Configuration example with:
21  * <pre>
22  * &lt;web-app&gt;
23  * ...
24  * &lt;servlet &gt;
25  * &lt;servlet-name>SchedulerServlet&lt;/servlet-name>
26  * &lt;servlet-class>org.jbpm.scheduler.impl.SchedulerServlet&lt;/servlet-class>
27  * &lt;init-param&gt;
28  * &lt;param-name&gt;interval&lt;/param-name&gt;
29  * &lt;param-value&gt;5000&lt;/param-value&gt;
30  * &lt;/init-param&gt;
31  * &lt;init-param&gt;
32  * &lt;param-name&gt;historyMaxSize&lt;/param-name&gt;
33  * &lt;param-value&gt;50&lt;/param-value&gt;
34  * &lt;/init-param&gt;
35  * &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
36  * &lt;/servlet&gt;
37  * &lt;servlet-mapping &gt;
38  * &lt;servlet-name&gt;SchedulerServlet&lt;/servlet-name&gt;
39  * &lt;url-pattern&gt;/jbpmscheduler&lt;/url-pattern&gt;
40  * &lt;/servlet-mapping&gt;
41  * ...
42  * &lt;/web-app&gt;
43  * </pre>
44  * </p>
45  */

46 public class SchedulerServlet extends HttpServlet JavaDoc {
47
48   private static final long serialVersionUID = 1L;
49   
50   Scheduler scheduler = null;
51
52   public void init() throws ServletException JavaDoc {
53     // create a new scheduler
54
scheduler = new Scheduler();
55     
56     // initialize it with the servlet init parameters
57
int interval = Integer.parseInt(getInitParameter("interval", "5000"));
58     scheduler.setInterval(interval);
59     int historyMaxSize = Integer.parseInt(getInitParameter("historyMaxSize", "50"));
60     scheduler.setHistoryMaxSize(historyMaxSize);
61     
62     // put the scheduler in the web app context
63
getServletContext().setAttribute("scheduler", scheduler);
64     
65     // start the scheduler
66
scheduler.start();
67   }
68   
69   public void destroy() {
70     scheduler.stop();
71   }
72
73   protected void doGet(HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response) throws ServletException JavaDoc, IOException JavaDoc {
74     PrintWriter JavaDoc out = response.getWriter();
75     out.println("<html>");
76     out.println("<body>");
77     out.println("<h2>JBoss jBPM Scheduler Servlet</h2><hr />");
78     out.println("</body>");
79     out.println("</html>");
80   }
81
82   private String JavaDoc getInitParameter(String JavaDoc name, String JavaDoc defaultValue) {
83     String JavaDoc value = getInitParameter(name);
84     if (value!=null) {
85       return value;
86     }
87     return defaultValue;
88   }
89 }
90
Popular Tags