You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by mc...@apache.org on 2003/12/05 04:17:01 UTC

cvs commit: avalon-sandbox/kernel/impl/src/java/org/apache/avalon/merlin/impl DefaultFactory.java

mcconnell    2003/12/04 19:17:01

  Modified:    kernel/impl/src/java/org/apache/avalon/merlin/impl
                        DefaultFactory.java
  Log:
  Add a shutdown hook in the factory.
  
  Revision  Changes    Path
  1.7       +31 -0     avalon-sandbox/kernel/impl/src/java/org/apache/avalon/merlin/impl/DefaultFactory.java
  
  Index: DefaultFactory.java
  ===================================================================
  RCS file: /home/cvs/avalon-sandbox/kernel/impl/src/java/org/apache/avalon/merlin/impl/DefaultFactory.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- DefaultFactory.java	5 Dec 2003 01:29:05 -0000	1.6
  +++ DefaultFactory.java	5 Dec 2003 03:17:01 -0000	1.7
  @@ -393,6 +393,7 @@
   
           Kernel kernel = 
             createKernel( getLogger(), criteria, m_system, m_application );
  +        setShutdownHook( kernel );
           if( criteria.isAutostartEnabled() )
           {
               try
  @@ -791,6 +792,36 @@
       {
           String file = config.getAttribute( "location" );
           return new FileTargetProvider( file );
  +    }
  +
  +
  +   /**
  +    * Create a shutdown hook that will trigger shutdown of the supplied kernel.
  +    * @param kernel the kernel to be shutdown
  +    */
  +    private void setShutdownHook( final Kernel kernel )
  +    {
  +        //
  +        // Create a shutdown hook to trigger clean disposal of the
  +        // Merlin kernel
  +        //
  +
  +        Runtime.getRuntime().addShutdownHook(
  +          new Thread()
  +          {
  +              public void run()
  +              {
  +                  try
  +                  {
  +                      kernel.shutdown();
  +                  }
  +                  catch( Throwable e )
  +                  {
  +                      // ignore it
  +                  }
  +              }
  +          }
  +        );
       }
   
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@avalon.apache.org
For additional commands, e-mail: cvs-help@avalon.apache.org