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]

Reply via email to