1 package org.oddjob.webapp.servlets; 2 3 import java.io.IOException ; 4 import java.io.PrintWriter ; 5 6 import javax.servlet.ServletConfig ; 7 import javax.servlet.ServletContext ; 8 import javax.servlet.ServletException ; 9 import javax.servlet.http.HttpServlet ; 10 import javax.servlet.http.HttpServletRequest ; 11 import javax.servlet.http.HttpServletResponse ; 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 27 28 public class LookupServlet extends HttpServlet { 29 private static final long serialVersionUID = 20051103; 30 private static final Logger logger = Logger.getLogger(LookupServlet.class); 31 32 33 private JobInfoLookup lookup; 34 35 private ThreadManager threadManager; 36 37 41 public void init(ServletConfig config) throws ServletException { 42 ServletContext context = config.getServletContext(); 43 44 Oddjob oddjob = (Oddjob) context.getAttribute( 45 WebappConstants.ODDJOB_INSTANCE); 46 if (oddjob == null) { 47 throw new ServletException ("No Oddjob Instance - ensure Oddjob Servlet starts first!"); 48 } 49 50 String 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 root = context.getInitParameter( 58 WebappConstants.ROOT_PARAM); 59 if (root == null) { 60 root = config.getInitParameter(WebappConstants.ROOT_PARAM); 61 } 62 Object 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 86 public void doGet(HttpServletRequest req, HttpServletResponse res) 87 throws ServletException , IOException { 88 res.setContentType("text/plain"); 89 PrintWriter out = res.getWriter(); 90 out.println("Lookup"); 91 } 92 93 97 public void destroy() { 98 threadManager.stopAll(); 99 lookup.destroy(); 100 } 101 } 102 | Popular Tags |