KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > openedit > servlet > OpenEditFilter


1 /*
2  Copyright (c) 2003 eInnovation Inc. All rights reserved
3
4  This library is free software; you can redistribute it and/or modify it under the terms
5  of the GNU Lesser General Public License as published by the Free Software Foundation;
6  either version 2.1 of the License, or (at your option) any later version.
7
8  This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
9  without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10  See the GNU Lesser General Public License for more details.
11  */

12
13 package com.openedit.servlet;
14
15 import java.io.File JavaDoc;
16 import java.io.IOException JavaDoc;
17
18 import javax.servlet.Filter JavaDoc;
19 import javax.servlet.FilterChain JavaDoc;
20 import javax.servlet.FilterConfig JavaDoc;
21 import javax.servlet.ServletContext JavaDoc;
22 import javax.servlet.ServletException JavaDoc;
23 import javax.servlet.ServletRequest JavaDoc;
24 import javax.servlet.ServletResponse JavaDoc;
25 import javax.servlet.http.HttpServletRequest JavaDoc;
26 import javax.servlet.http.HttpServletResponse JavaDoc;
27
28 import com.openedit.BaseWebServer;
29 import com.openedit.OpenEditException;
30
31 public class OpenEditFilter implements Filter JavaDoc
32 {
33     private OpenEditEngine fieldEngine;
34
35     public void destroy()
36     {
37         getEngine().shutdown();
38     }
39
40     /**
41      * DOCUMENT ME!
42      *
43      * @param inRequest
44      * @param inResponse
45      * @param chain
46      *
47      * @throws IOException
48      * @throws ServletException
49      */

50     public void doFilter(ServletRequest JavaDoc inRequest, ServletResponse JavaDoc inResponse, FilterChain JavaDoc chain)
51         throws IOException JavaDoc, ServletException JavaDoc
52     {
53         HttpServletRequest JavaDoc request = (HttpServletRequest JavaDoc) inRequest;
54
55         HttpServletResponse JavaDoc response = (HttpServletResponse JavaDoc) inResponse;
56
57         if (getEngine() == null)
58         {
59             response
60                 .getWriter()
61                 .print(
62                     "<html>Open Edit Server is not initialized, please check the logs for errors</html>");
63
64             return;
65         }
66         try
67         {
68             request.setAttribute("servletchain", chain); //This is used by the ServletChainGenerator to call doFilter at the right time
69
getEngine().render(request, response);
70         }
71         catch (OpenEditException ex)
72         {
73             throw new ServletException JavaDoc(ex);
74         }
75     }
76
77     /**
78      * @see Filter#init(FilterConfig)
79      */

80     public void init(FilterConfig JavaDoc inConfig) throws ServletException JavaDoc
81     {
82         ServletContext JavaDoc servletContext = inConfig.getServletContext();
83
84         String JavaDoc rootPath = inConfig.getInitParameter("oe.root.path");
85
86         if( rootPath == null)
87         {
88             rootPath = System.getProperty("oe.root.path");
89         }
90         if( rootPath == null)
91         {
92             rootPath = servletContext.getRealPath("/");
93         }
94
95         BaseWebServer server = new BaseWebServer();
96         server.setRootDirectory(new File JavaDoc(rootPath));
97         server.initialize();
98         servletContext.setAttribute(server.getClass().getName(), server); //TODO: Why is this here?
99
fieldEngine = server.getOpenEditEngine();
100         
101     }
102
103     protected OpenEditEngine getEngine()
104     {
105         return fieldEngine;
106     }
107 }
108
Popular Tags