mcconnell    2002/07/24 14:24:25

  Modified:    sevak/src/java/org/apache/avalon/apps/sevak/blocks/catalina
                        CatalinaSevakImpl.java
  Log:
  moved startup from Initializable to Startable
  
  Revision  Changes    Path
  1.4       +71 -3     
jakarta-avalon-apps/sevak/src/java/org/apache/avalon/apps/sevak/blocks/catalina/CatalinaSevakImpl.java
  
  Index: CatalinaSevakImpl.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-apps/sevak/src/java/org/apache/avalon/apps/sevak/blocks/catalina/CatalinaSevakImpl.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- CatalinaSevakImpl.java    24 Jul 2002 17:25:17 -0000      1.3
  +++ CatalinaSevakImpl.java    24 Jul 2002 21:24:25 -0000      1.4
  @@ -15,6 +15,7 @@
   import org.apache.avalon.apps.sevak.SevakException;
   import org.apache.avalon.apps.sevak.util.CatalinaLogger;
   import org.apache.avalon.apps.sevak.util.CustomWebappLoader;
  +import org.apache.avalon.framework.activity.Startable;
   import org.apache.avalon.framework.activity.Initializable;
   import org.apache.avalon.framework.configuration.Configurable;
   import org.apache.avalon.framework.configuration.Configuration;
  @@ -49,7 +50,7 @@
    */
   public class CatalinaSevakImpl
       extends AbstractLogEnabled
  -    implements Contextualizable, Serviceable, Configurable, Initializable, Sevak
  +    implements Contextualizable, Serviceable, Configurable, Initializable, 
Startable, Sevak
   {
       //private BlockContext m_context;
       private Context m_context;
  @@ -61,6 +62,22 @@
       private int m_port;
       private String m_host = null;
   
  +   /**
  +    * The thread that monitors stop requests from the container.
  +    */
  +    private Thread m_thread;
  +
  +   /**
  +    * A flag used to trigger stop.
  +    */
  +    private boolean CONTINUE = false;
  +
  +   /**
  +    * The period to sleep before checking for a stop request.
  +    */
  +    private int SLEEP_INTERVAL = 1000;
  +
  +
       /**
        * @see 
org.apache.avalon.framework.context.Contextualizable#contextualize(org.apache.avalon.framework.context.Context)
        */
  @@ -105,9 +122,9 @@
   
           //create the Logger
           CatalinaLogger catalinaLogger = new CatalinaLogger();
  -        catalinaLogger.enableLogging(getLogger());
  -        //create the Custom ClassLoader
  +        catalinaLogger.enableLogging( getLogger().getChildLogger("catalina") );
   
  +        //create the Custom ClassLoader
           m_catalinaCustomClassLoader =
               new CustomWebappLoader(this.getClass().getClassLoader());
   
  @@ -173,6 +190,35 @@
   
           m_embedded.addEngine(m_engine);
           m_embedded.addConnector(coyoteConnector);
  +        getLogger().debug( "initialization complete" );
  +    }
  +
  +    //=======================================================================
  +    // Startable
  +    //=======================================================================
  +
  +   /**
  +    */
  +    public void start() throws Exception
  +    {
  +        getLogger().debug( "starting" );
  +        m_thread = new Thread(
  +          new Runnable() {
  +            public void run()
  +            {
  +                while( CONTINUE )
  +                {
  +                    try
  +                    {
  +                        Thread.currentThread().sleep( SLEEP_INTERVAL );
  +                    }
  +                    catch( Throwable e )
  +                    {
  +                    }
  +                }
  +            }
  +          }
  +        );
   
           //START  Tomcat Instance
           try
  @@ -185,9 +231,31 @@
           {
               le.printStackTrace();
               throw new ConfigurationException("[FATAL] Could Not START Tomcat  ");
  +        }
  +
  +        CONTINUE = true;
  +        m_thread.start();
  +        getLogger().debug( "started" );
  +    }
   
  +   /**
  +    * Request to stop the service from the container.
  +    */
  +    public void stop()
  +    {
  +        getLogger().debug( "stopping" );
  +        CONTINUE = false;
  +        try
  +        {
  +            m_thread.join();
  +            m_embedded.stop();
  +        }
  +        catch( Throwable e )
  +        {
  +            getLogger().warn("Unexpected error while reqesting stop.", e );
           }
       }
  +
   
       /**
        * Deploy the given Web Application
  
  
  

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

Reply via email to