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]