remm 2003/03/12 12:40:39 Modified: catalina/src/share/org/apache/catalina/startup Catalina.java Log: - Improve embedding. - Don't use System.exit(). - Allow loading server.xml through the classloader. Revision Changes Path 1.15 +45 -13 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/Catalina.java Index: Catalina.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/Catalina.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- Catalina.java 7 Feb 2003 01:07:13 -0000 1.14 +++ Catalina.java 12 Mar 2003 20:40:39 -0000 1.15 @@ -67,6 +67,7 @@ import java.io.File; import java.io.FileInputStream; +import java.io.InputStream; import java.io.IOException; import java.io.OutputStream; import java.net.Socket; @@ -150,10 +151,17 @@ configFile = file; } + + public void setConfigFile(String file) { + configFile = file; + } + + public String getConfigFile() { return configFile; } + /** * Set the shared extensions class loader. * @@ -468,23 +476,47 @@ // Create and execute our Digester Digester digester = createStartDigester(); long t1 = System.currentTimeMillis(); - File file = configFile(); + + Exception ex = null; + InputSource inputSource = null; + InputStream inputStream = null; try { - InputSource is = - new InputSource("file://" + file.getAbsolutePath()); - FileInputStream fis = new FileInputStream(file); - is.setByteStream(fis); + File file = configFile(); + inputStream = new FileInputStream(file); + inputSource = new InputSource("file://" + file.getAbsolutePath()); + } catch (Exception e) { + ; + } + if (inputStream == null) { + try { + inputStream = getClass().getClassLoader() + .getResourceAsStream(getConfigFile()); + inputSource = new InputSource + (getClass().getClassLoader() + .getResource(getConfigFile()).toString()); + } catch (Exception e) { + ; + } + } + + if (inputStream == null) { + System.out.println("Can't load server.xml"); + return; + } + + try { + inputSource.setByteStream(inputStream); digester.push(this); - digester.parse(is); - fis.close(); + digester.parse(inputSource); + inputStream.close(); } catch (Exception e) { System.out.println("Catalina.start: " + e); e.printStackTrace(System.out); - System.exit(1); + return; } + long t2 = System.currentTimeMillis(); log.debug( "Server.xml processed " + (t2 - t1)); - // Replace System.out and System.err with a custom PrintStream // TODO: move to Embedded, make it configurable
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]