billbarker    2004/02/12 00:24:03

  Modified:    src/share/org/apache/tomcat/startup EmbededTomcat.java
                        Main.java
  Log:
  Adding a 'startb' option to start and block.  Primarily for use with procrun.
  
  Revision  Changes    Path
  1.67      +32 -0     
jakarta-tomcat/src/share/org/apache/tomcat/startup/EmbededTomcat.java
  
  Index: EmbededTomcat.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/startup/EmbededTomcat.java,v
  retrieving revision 1.66
  retrieving revision 1.67
  diff -u -r1.66 -r1.67
  --- EmbededTomcat.java        22 Sep 2003 09:18:58 -0000      1.66
  +++ EmbededTomcat.java        12 Feb 2004 08:24:03 -0000      1.67
  @@ -154,6 +154,7 @@
       
       boolean serverXml=true;
       boolean help;
  +    boolean blocking=false;
   
       // prevent tomcat from starting.
       boolean nostart=false;
  @@ -182,6 +183,12 @@
        debug( "Debugging enabled ");
       }
   
  +    /**
  +     * set if we need to block.
  +     */
  +    public void setStartb(boolean b) {
  +     blocking = b;
  +    }
   
       boolean noClassLoaders=false;
       
  @@ -611,6 +618,25 @@
        contextM.start();
        long time4=System.currentTimeMillis();
        debug("Startup time " + ( time4-time3 ));
  +     if(blocking) {
  +         await();
  +     }
  +    }
  +
  +    /**
  +     * Wait for a shutdown.
  +     */
  +    void await() {
  +     while(blocking) {
  +         synchronized(this) {
  +             try{
  +                 wait();
  +                 blocking = false;
  +             }catch(Exception ex) {
  +                 contextM.log("Error in await",ex);
  +             }
  +         }
  +     }
       }
   
       /** Shutdown contextM - <em>may</em> exit the VM.
  @@ -621,12 +647,18 @@
        */
       public void shutdown() throws TomcatException {
        contextM.shutdown();
  +     if(blocking) {
  +         notify();
  +     }
       }
   
       /** Stop contextM - will not exit the VM.
        */
       public void stop() throws TomcatException {
        contextM.stop();
  +     if(blocking) {
  +         notify();
  +     }
       }
   
       // -------------------- Helpers and shortcuts --------------------
  
  
  
  1.44      +2 -1      jakarta-tomcat/src/share/org/apache/tomcat/startup/Main.java
  
  Index: Main.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/startup/Main.java,v
  retrieving revision 1.43
  retrieving revision 1.44
  diff -u -r1.43 -r1.44
  --- Main.java 22 Sep 2003 09:18:58 -0000      1.43
  +++ Main.java 12 Feb 2004 08:24:03 -0000      1.44
  @@ -231,6 +231,7 @@
        tasks.put("stop", "org.apache.tomcat.startup.StopTomcat");
        tasks.put("enableAdmin", "org.apache.tomcat.startup.EnableAdmin");
        tasks.put("start", "org.apache.tomcat.startup.EmbededTomcat");
  +        tasks.put("startb", "org.apache.tomcat.startup.EmbededTomcat"); 
        tasks.put("run", "org.apache.tomcat.startup.EmbededTomcat");
        tasks.put("jspc", "org.apache.tomcat.startup.Jspc");
        tasks.put("estart", "org.apache.tomcat.startup.EmbededTomcat");
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to