KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > oddjob > webapp > servlets > LookupServlet


1 package org.oddjob.webapp.servlets;
2
3 import java.io.IOException JavaDoc;
4 import java.io.PrintWriter JavaDoc;
5
6 import javax.servlet.ServletConfig JavaDoc;
7 import javax.servlet.ServletContext JavaDoc;
8 import javax.servlet.ServletException JavaDoc;
9 import javax.servlet.http.HttpServlet JavaDoc;
10 import javax.servlet.http.HttpServletRequest JavaDoc;
11 import javax.servlet.http.HttpServletResponse JavaDoc;
12
13 import org.apache.log4j.Logger;
14 import org.oddjob.Oddjob;
15 import org.oddjob.util.ThreadManager;
16 import org.oddjob.webapp.WebappConstants;
17 import org.oddjob.webapp.model.IconRegistry;
18 import org.oddjob.webapp.model.JobInfoLookup;
19
20
21 /**
22  * This servlet creates a JobInfoLookup on an Oddjob instance which tracks
23  * changes in the Oddjob so that the detail is available for presentation.
24  *
25  * @author Rob Gordon.
26  */

27
28 public class LookupServlet extends HttpServlet JavaDoc {
29     private static final long serialVersionUID = 20051103;
30     private static final Logger logger = Logger.getLogger(LookupServlet.class);
31     
32     /** The lookup this instance creates. */
33     private JobInfoLookup lookup;
34
35     private ThreadManager threadManager;
36     
37     /*
38      * (non-Javadoc)
39      * @see javax.servlet.Servlet#init(javax.servlet.ServletConfig)
40      */

41     public void init(ServletConfig JavaDoc config) throws ServletException JavaDoc {
42         ServletContext JavaDoc context = config.getServletContext();
43                         
44         Oddjob oddjob = (Oddjob) context.getAttribute(
45                 WebappConstants.ODDJOB_INSTANCE);
46         if (oddjob == null) {
47             throw new ServletException JavaDoc("No Oddjob Instance - ensure Oddjob Servlet starts first!");
48         }
49         
50         String JavaDoc logFormat = context.getInitParameter(
51                 WebappConstants.LOG_FORMAT_PARAM);
52         if (logFormat== null) {
53             logFormat= config.getInitParameter(
54                     WebappConstants.LOG_FORMAT_PARAM);
55         }
56                 
57         String JavaDoc root = context.getInitParameter(
58                 WebappConstants.ROOT_PARAM);
59         if (root == null) {
60             root = config.getInitParameter(WebappConstants.ROOT_PARAM);
61         }
62         Object JavaDoc rootNode = oddjob;
63         if (root != null) {
64             do {
65                 rootNode = oddjob.lookup(root);
66                 logger.debug("Waiting for oddjob to create [" + root + "]");
67                 Thread.yield();
68             } while (rootNode == null);
69         }
70                 
71         threadManager = new ThreadManager();
72         
73         lookup = new JobInfoLookup((IconRegistry)
74                 context.getAttribute(WebappConstants.ICON_REGISTRY));
75         lookup.setLogFormat(logFormat);
76         lookup.setThreadManager(threadManager);
77         lookup.setRoot(rootNode);
78         
79         context.setAttribute(WebappConstants.DETAIL_LOOKUP, lookup);
80     }
81
82     /*
83      * (non-Javadoc)
84      * @see javax.servlet.http.HttpServlet#doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
85      */

86     public void doGet(HttpServletRequest JavaDoc req, HttpServletResponse JavaDoc res)
87     throws ServletException JavaDoc, IOException JavaDoc {
88         res.setContentType("text/plain");
89         PrintWriter JavaDoc out = res.getWriter();
90         out.println("Lookup");
91     }
92
93     /*
94      * (non-Javadoc)
95      * @see javax.servlet.Servlet#destroy()
96      */

97     public void destroy() {
98         threadManager.stopAll();
99         lookup.destroy();
100     }
101 }
102
Popular Tags