jmsnell     2002/10/29 14:29:27

  Modified:    java/src/org/apache/axis/ime/internal/util WorkerPool.java
               java/src/org/apache/axis/ime/internal
                        MessageExchangeImpl.java
                        MessageExchangeProvider.java
               java/src/org/apache/axis/ime MessageExchangeLifecycle.java
  Log:
  Added a cleanup operation to the MessageExchangeLifecycle
  
  Revision  Changes    Path
  1.2       +12 -1     
xml-axis/java/src/org/apache/axis/ime/internal/util/WorkerPool.java
  
  Index: WorkerPool.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis/java/src/org/apache/axis/ime/internal/util/WorkerPool.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- WorkerPool.java   29 Oct 2002 05:15:30 -0000      1.1
  +++ WorkerPool.java   29 Oct 2002 22:29:26 -0000      1.2
  @@ -69,9 +69,20 @@
       public static final long MAX_THREADS = 100;
       
       protected Map threads = new Hashtable();
  -    protected boolean interrupt;
       protected long threadcount;
       public boolean _shutdown;
  +
  +    public void cleanup()
  +        throws InterruptedException {
  +        if (!isShutdown()) {
  +          safeShutdown();
  +          awaitShutdown();
  +        }
  +        synchronized(this) {
  +          threads.clear();
  +          _shutdown = false;
  +        }
  +    }
   
       /**
        * Returns true if all workers have been shutdown
  
  
  
  1.6       +8 -0      
xml-axis/java/src/org/apache/axis/ime/internal/MessageExchangeImpl.java
  
  Index: MessageExchangeImpl.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis/java/src/org/apache/axis/ime/internal/MessageExchangeImpl.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- MessageExchangeImpl.java  29 Oct 2002 06:39:57 -0000      1.5
  +++ MessageExchangeImpl.java  29 Oct 2002 22:29:26 -0000      1.6
  @@ -440,6 +440,14 @@
       }
   
       /**
  +     * @see org.apache.axis.ime.MessageExchangeLifecycle#cleanup()
  +     */
  +    public void cleanup()
  +            throws InterruptedException {
  +        provider.cleanup();
  +    }
  +
  +    /**
        * @see org.apache.axis.ime.MessageExchangeLifecycle#awaitShutdown(long)
        */
       public void awaitShutdown(long timeout)
  
  
  
  1.5       +5 -1      
xml-axis/java/src/org/apache/axis/ime/internal/MessageExchangeProvider.java
  
  Index: MessageExchangeProvider.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis/java/src/org/apache/axis/ime/internal/MessageExchangeProvider.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- MessageExchangeProvider.java      29 Oct 2002 06:39:57 -0000      1.4
  +++ MessageExchangeProvider.java      29 Oct 2002 22:29:26 -0000      1.5
  @@ -105,7 +105,11 @@
               new UnsupportedOperationException(
                   Messages.getMessage("unsupportedOperationException00")));
       }
  -              
  +            
  +    public void cleanup()
  +            throws InterruptedException {
  +        WORKERS.cleanup();
  +    }  
   
       public void init() {
           init(DEFAULT_THREAD_COUNT);
  
  
  
  1.4       +26 -0     
xml-axis/java/src/org/apache/axis/ime/MessageExchangeLifecycle.java
  
  Index: MessageExchangeLifecycle.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis/java/src/org/apache/axis/ime/MessageExchangeLifecycle.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- MessageExchangeLifecycle.java     28 Oct 2002 21:45:59 -0000      1.3
  +++ MessageExchangeLifecycle.java     29 Oct 2002 22:29:27 -0000      1.4
  @@ -63,15 +63,41 @@
    */
   public interface MessageExchangeLifecycle {
   
  +    /**
  +     * Initialize the lifecycle.  (Create threads, etc)
  +     */
       public void init();
   
  +    /**
  +     * Cleanup
  +     */
  +    public void cleanup()
  +           throws InterruptedException ;
  +
  +    /**
  +     * Performs a "safe shutdown", allowing all
  +     * current activities to complete.
  +     */
       public void shutdown();
   
  +    /**
  +     * Performs an "unsafe shutdown", interrupting
  +     * all current activities without letting
  +     * them complete
  +     */
       public void shutdown(boolean force);
   
  +    /**
  +     * Block indefinitely until shutdown is 
  +     * complete
  +     */
       public void awaitShutdown()
               throws InterruptedException;
   
  +    /**
  +     * Block for the specified amount of time 
  +     * or until shutdown is complete
  +     */
       public void awaitShutdown(long timeout)
               throws InterruptedException;
   
  
  
  


Reply via email to