01: /*
02: * This file is part of PFIXCORE.
03: *
04: * PFIXCORE is free software; you can redistribute it and/or modify
05: * it under the terms of the GNU Lesser General Public License as published by
06: * the Free Software Foundation; either version 2 of the License, or
07: * (at your option) any later version.
08: *
09: * PFIXCORE is distributed in the hope that it will be useful,
10: * but WITHOUT ANY WARRANTY; without even the implied warranty of
11: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12: * GNU Lesser General Public License for more details.
13: *
14: * You should have received a copy of the GNU Lesser General Public License
15: * along with PFIXCORE; if not, write to the Free Software
16: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17: */
18:
19: package de.schlund.pfixxml;
20:
21: import java.io.IOException;
22: import java.util.Properties;
23:
24: import javax.servlet.ServletException;
25:
26: import org.xml.sax.SAXException;
27:
28: import de.schlund.pfixxml.config.ServletManagerConfig;
29: import de.schlund.pfixxml.config.XMLPropertiesUtil;
30: import de.schlund.pfixxml.config.impl.ServletManagerConfigImpl;
31: import de.schlund.pfixxml.resources.FileResource;
32:
33: /**
34: * This servlet is a compatibility layer for legacy servlets based on the old
35: * ServletManager. It uses a configuration file in the standardprops XML
36: * format and provides the properties defined in this file to the child
37: * implementation.
38: *
39: * @author Sebastian Marsching <sebastian.marsching@1und1.de>
40: */
41: public abstract class ServletManagerCompat extends ServletManager {
42: private ServletManagerConfigImpl config;
43:
44: protected ServletManagerConfig getServletManagerConfig() {
45: return config;
46: }
47:
48: protected void reloadServletConfig(FileResource configFile,
49: Properties globalProperties) throws ServletException {
50: Properties props = new Properties(globalProperties);
51: if (configFile != null) {
52: try {
53: XMLPropertiesUtil.loadPropertiesFromXMLFile(configFile,
54: props);
55: } catch (SAXException e) {
56: throw new ServletException(
57: "Parsing error while reading configuration file "
58: + configFile.toString());
59: } catch (IOException e) {
60: throw new ServletException(
61: "Could not read configuration file "
62: + configFile.toString());
63: }
64: }
65: this .config = new ServletManagerConfigImpl();
66: this .config.setProperties(props);
67: String needs_ssl = props.getProperty("servlet.needsSSL");
68: if (needs_ssl != null
69: && (needs_ssl.equals("true") || needs_ssl.equals("yes") || needs_ssl
70: .equals("1"))) {
71: this .config.setSSL(true);
72: } else {
73: this .config.setSSL(false);
74: }
75: }
76:
77: /**
78: * Compatibility method as old ServletManager used to be confingured using
79: * properties and child implementations might depend on this.
80: *
81: * @return Properties defined in the configuration file
82: */
83: protected Properties getProperties() {
84: return this.config.getProperties();
85: }
86: }
|