You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by ha...@apache.org on 2003/01/29 09:01:14 UTC

cvs commit: jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/common DefaultThreadContext.java DefaultThreadContextProvider.java ThreadContext.java ThreadContextProvider.java ThreadContextProviderAware.java

hammant     2003/01/29 00:01:13

  Modified:    altrmi/src/java/org/apache/excalibur/altrmi/client
                        ClientInvocationHandler.java
               altrmi/src/java/org/apache/excalibur/altrmi/client/impl
                        AbstractClientInvocationHandler.java
                        AbstractConnectionPinger.java
               altrmi/src/java/org/apache/excalibur/altrmi/client/impl/callback/socket
                        CallbackEnabledSocketCustomStreamInvocationHandler.java
               altrmi/src/java/org/apache/excalibur/altrmi/client/impl/callback/stream
                        CallbackEnabledClientCustomStreamReadWriter.java
               altrmi/src/java/org/apache/excalibur/altrmi/client/impl/multiple
                        RotatingMultipleInvocationHandler.java
               altrmi/src/java/org/apache/excalibur/altrmi/server/impl
                        AbstractServer.java ServerStreamReadWriter.java
               altrmi/src/java/org/apache/excalibur/altrmi/server/impl/callback/socket
                        CallbackEnabledSocketCustomStreamReadWriter.java
                        CallbackEnabledSocketCustomStreamServer.java
               altrmi/src/java/org/apache/excalibur/altrmi/server/impl/http
                        CustomHttpServer.java
               altrmi/src/java/org/apache/excalibur/altrmi/server/impl/piped
                        AbstractPipedServer.java
               altrmi/src/java/org/apache/excalibur/altrmi/server/impl/socket
                        AbstractCompleteSocketStreamServer.java
               altrmi/src/test/org/apache/excalibur/altrmi/test
                        DummyInvocationHandler.java
  Added:       altrmi/src/java/org/apache/excalibur/altrmi/common
                        DefaultThreadContext.java
                        DefaultThreadContextProvider.java
                        ThreadContext.java ThreadContextProvider.java
                        ThreadContextProviderAware.java
  Log:
  ThreadPool started. Dummy impl provided.
  
  Revision  Changes    Path
  1.6       +3 -2      jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/ClientInvocationHandler.java
  
  Index: ClientInvocationHandler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/ClientInvocationHandler.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ClientInvocationHandler.java	19 Jan 2003 22:10:52 -0000	1.5
  +++ ClientInvocationHandler.java	29 Jan 2003 08:01:12 -0000	1.6
  @@ -10,6 +10,7 @@
   import org.apache.excalibur.altrmi.common.InvocationHandler;
   import org.apache.excalibur.altrmi.common.ConnectionException;
   import org.apache.excalibur.altrmi.common.CallbackException;
  +import org.apache.excalibur.altrmi.common.ThreadContextProviderAware;
   
   /**
    * Interface ClientInvocationHandler
  @@ -18,7 +19,7 @@
    * @author Paul Hammant
    * @version * $Revision$
    */
  -public interface ClientInvocationHandler extends InvocationHandler
  +public interface ClientInvocationHandler extends InvocationHandler, ThreadContextProviderAware
   {
   
       /**
  
  
  
  1.14      +22 -10    jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/AbstractClientInvocationHandler.java
  
  Index: AbstractClientInvocationHandler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/AbstractClientInvocationHandler.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- AbstractClientInvocationHandler.java	19 Jan 2003 22:10:52 -0000	1.13
  +++ AbstractClientInvocationHandler.java	29 Jan 2003 08:01:12 -0000	1.14
  @@ -7,19 +7,16 @@
    */
   package org.apache.excalibur.altrmi.client.impl;
   
  -import java.io.IOException;
  -
   import org.apache.excalibur.altrmi.client.ClientInvocationHandler;
  +import org.apache.excalibur.altrmi.client.ConnectionClosedException;
   import org.apache.excalibur.altrmi.client.ConnectionListener;
   import org.apache.excalibur.altrmi.client.ConnectionPinger;
  -import org.apache.excalibur.altrmi.client.Proxy;
  -import org.apache.excalibur.altrmi.client.ConnectionClosedException;
  -import org.apache.excalibur.altrmi.common.InvocationHandler;
  -import org.apache.excalibur.altrmi.common.Reply;
  -import org.apache.excalibur.altrmi.common.FacadeRefHolder;
  -import org.apache.excalibur.altrmi.common.PingRequest;
  -import org.apache.excalibur.altrmi.common.ConnectionException;
   import org.apache.excalibur.altrmi.common.CallbackException;
  +import org.apache.excalibur.altrmi.common.ConnectionException;
  +import org.apache.excalibur.altrmi.common.PingRequest;
  +import org.apache.excalibur.altrmi.common.Reply;
  +import org.apache.excalibur.altrmi.common.ThreadContextProvider;
  +import org.apache.excalibur.altrmi.common.DefaultThreadContextProvider;
   
   /**
    * Class AbstractClientInvocationHandler
  @@ -36,6 +33,7 @@
       protected ConnectionListener m_connectionListener =
           new DefaultConnectionListener();
       protected boolean m_stopped = false;
  +    private ThreadContextProvider m_threadContextProvider;
   
       /**
        * Method setConnectionListener
  @@ -52,6 +50,20 @@
       public ConnectionListener getConnectionListener()
       {
           return m_connectionListener;
  +    }
  +
  +    public void setThreadContextProvider(ThreadContextProvider threadContextProvider)
  +    {
  +        m_threadContextProvider = threadContextProvider;
  +    }
  +
  +    public synchronized ThreadContextProvider getThreadContextProvider()
  +    {
  +        if (m_threadContextProvider == null)
  +        {
  +            m_threadContextProvider = new DefaultThreadContextProvider();
  +        }
  +        return m_threadContextProvider;
       }
   
       /**
  
  
  
  1.14      +7 -6      jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/AbstractConnectionPinger.java
  
  Index: AbstractConnectionPinger.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/AbstractConnectionPinger.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- AbstractConnectionPinger.java	19 Jan 2003 11:09:59 -0000	1.13
  +++ AbstractConnectionPinger.java	29 Jan 2003 08:01:12 -0000	1.14
  @@ -11,6 +11,7 @@
   import org.apache.excalibur.altrmi.client.ConnectionPinger;
   import org.apache.excalibur.altrmi.client.ConnectionClosedException;
   import org.apache.excalibur.altrmi.common.InvocationException;
  +import org.apache.excalibur.altrmi.common.ThreadContext;
   
   /**
    * Interface AbstractConnectionPinger
  @@ -25,7 +26,7 @@
       private ClientInvocationHandler m_clientInvocationHandler;
       private boolean m_continue = true;
       private Runnable m_runnable;
  -    private Thread m_thread;
  +    private ThreadContext m_threadContext;
       private final long m_pingInterval;
       private final long m_giveupInterval;
   
  @@ -129,8 +130,8 @@
               }
           };
   
  -        m_thread = new Thread( m_runnable ,"ConnectionPinger Thread");
  -        m_thread.start();
  +        m_threadContext = m_clientInvocationHandler.getThreadContextProvider().getThreadContext(m_runnable);
  +        m_threadContext.start();
       }
   
       /**
  @@ -141,8 +142,8 @@
       public void stop()
       {
           m_continue = false;
  -        m_thread.interrupt();
  -        m_thread = null;
  +        m_threadContext.interrupt();
  +        m_threadContext = null;
       }
   
       protected abstract void ping();
  
  
  
  1.15      +4 -2      jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/callback/socket/CallbackEnabledSocketCustomStreamInvocationHandler.java
  
  Index: CallbackEnabledSocketCustomStreamInvocationHandler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/callback/socket/CallbackEnabledSocketCustomStreamInvocationHandler.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- CallbackEnabledSocketCustomStreamInvocationHandler.java	19 Jan 2003 22:10:52 -0000	1.14
  +++ CallbackEnabledSocketCustomStreamInvocationHandler.java	29 Jan 2003 08:01:13 -0000	1.15
  @@ -39,6 +39,8 @@
           super( host, port, classLoader );
       }
   
  +
  +
       /*
        * @see AbstractSocketStreamInvocationHandler#createClientStreamReadWriter(InputStream, OutputStream)
        */
  @@ -47,7 +49,7 @@
       {
           if( m_callbackEnabledClientCustomStreamReadWriter == null )
           {
  -            m_callbackEnabledClientCustomStreamReadWriter = new CallbackEnabledClientCustomStreamReadWriter( in, out, m_interfacesClassLoader );
  +            m_callbackEnabledClientCustomStreamReadWriter = new CallbackEnabledClientCustomStreamReadWriter( getThreadContextProvider(), in, out, m_interfacesClassLoader );
           }
           return m_callbackEnabledClientCustomStreamReadWriter;
       }
  
  
  
  1.12      +9 -5      jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/callback/stream/CallbackEnabledClientCustomStreamReadWriter.java
  
  Index: CallbackEnabledClientCustomStreamReadWriter.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/callback/stream/CallbackEnabledClientCustomStreamReadWriter.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- CallbackEnabledClientCustomStreamReadWriter.java	19 Jan 2003 11:10:00 -0000	1.11
  +++ CallbackEnabledClientCustomStreamReadWriter.java	29 Jan 2003 08:01:13 -0000	1.12
  @@ -21,6 +21,8 @@
   import org.apache.excalibur.altrmi.common.Request;
   import org.apache.excalibur.altrmi.common.SerializationHelper;
   import org.apache.excalibur.altrmi.common.ConnectionException;
  +import org.apache.excalibur.altrmi.common.ThreadContextProvider;
  +import org.apache.excalibur.altrmi.common.ThreadContext;
   import org.apache.excalibur.altrmi.server.Server;
   import org.apache.excalibur.altrmi.server.PublicationException;
   import org.apache.excalibur.altrmi.server.ServerException;
  @@ -42,7 +44,7 @@
       //Mutex to block the client till a reply reaches back from server
       private Object m_replyLock = new Object();
       private Reply m_reply = null;
  -    private Thread m_messageLoopThread = null;
  +    private ThreadContext m_messageLoopThreadContext = null;
       private boolean m_isStopped = false;
       private DataInputStream m_dataInputStream;
       private DataOutputStream m_dataOutputStream;
  @@ -50,6 +52,7 @@
       private HashMap m_exposedObjPublishNameHash_ = new HashMap();
       private Server m_clientServerHostingExposedObjects = new DirectServer();
       private static int m_random = 0;
  +    private ThreadContextProvider m_threadContextProvider;
   
       /**
        * Constructor ClientCustomStreamReadWriter
  @@ -61,16 +64,17 @@
        * @throws ConnectionException The IO Exception
        *
        */
  -    public CallbackEnabledClientCustomStreamReadWriter( InputStream inputStream, OutputStream outputStream, ClassLoader interfacesClassLoader )
  +    public CallbackEnabledClientCustomStreamReadWriter( ThreadContextProvider threadContextProvider, InputStream inputStream, OutputStream outputStream, ClassLoader interfacesClassLoader )
           throws ConnectionException
       {
  +        this.m_threadContextProvider = threadContextProvider;
           m_dataOutputStream = new DataOutputStream( new BufferedOutputStream( outputStream ) );
           m_dataInputStream = new DataInputStream( inputStream );
   
           m_interfacesClassLoader = interfacesClassLoader;
           //This thread recv's all the messages sent from the server
  -        m_messageLoopThread = new Thread( this,"CallbackEnabledClientStream Thread" );
  -        m_messageLoopThread.start();
  +        m_messageLoopThreadContext = m_threadContextProvider.getThreadContext(this);
  +        m_messageLoopThreadContext.start();
           //start the internal Server which holds the exposed Objects
           // for the server to make callbacks upon.
           try
  
  
  
  1.9       +14 -1     jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/multiple/RotatingMultipleInvocationHandler.java
  
  Index: RotatingMultipleInvocationHandler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/multiple/RotatingMultipleInvocationHandler.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- RotatingMultipleInvocationHandler.java	5 Jan 2003 23:24:10 -0000	1.8
  +++ RotatingMultipleInvocationHandler.java	29 Jan 2003 08:01:13 -0000	1.9
  @@ -12,6 +12,7 @@
   import org.apache.excalibur.altrmi.common.PingReply;
   import org.apache.excalibur.altrmi.common.PingRequest;
   import org.apache.excalibur.altrmi.common.Sessionable;
  +import org.apache.excalibur.altrmi.common.ThreadContextProvider;
   
   /**
    * Class RotatingMultipleInvocationHandler
  @@ -112,4 +113,16 @@
                   .handleInvocation( request );
           }
       }
  +
  +    public void setThreadContextProvider(ThreadContextProvider threadContextProvider)
  +    {
  +        //TODO
  +    }
  +
  +    public ThreadContextProvider getThreadContextProvider()
  +    {
  +        //TODO
  +        return null;
  +    }
  +
   }
  
  
  
  1.14      +22 -2     jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/AbstractServer.java
  
  Index: AbstractServer.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/AbstractServer.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- AbstractServer.java	19 Jan 2003 11:10:00 -0000	1.13
  +++ AbstractServer.java	29 Jan 2003 08:01:13 -0000	1.14
  @@ -11,6 +11,10 @@
   import org.apache.excalibur.altrmi.common.Reply;
   import org.apache.excalibur.altrmi.common.Request;
   import org.apache.excalibur.altrmi.common.MethodRequest;
  +import org.apache.excalibur.altrmi.common.ThreadContextProvider;
  +import org.apache.excalibur.altrmi.common.ThreadContext;
  +import org.apache.excalibur.altrmi.common.DefaultThreadContextProvider;
  +import org.apache.excalibur.altrmi.common.ThreadContextProviderAware;
   import org.apache.excalibur.altrmi.server.Authenticator;
   import org.apache.excalibur.altrmi.server.Server;
   import org.apache.excalibur.altrmi.server.ServerConnection;
  @@ -30,7 +34,7 @@
    * @version $Revision$
    */
   public abstract class AbstractServer
  -    implements Server
  +    implements Server, ThreadContextProviderAware
   {
   
       /**
  @@ -49,6 +53,7 @@
       private int m_state = UNSTARTED;
   
       private ServerMonitor m_serverMonitor;
  +    private ThreadContextProvider m_threadContextProvider;
   
       /**
        * Construct a AbstractServer
  @@ -76,6 +81,21 @@
   
           return m_serverMonitor;
       }
  +
  +    public void setThreadContextProvider(ThreadContextProvider threadContextProvider)
  +    {
  +        m_threadContextProvider = threadContextProvider;
  +    }
  +
  +    public synchronized ThreadContextProvider getThreadContextProvider()
  +    {
  +        if (m_threadContextProvider == null)
  +        {
  +            m_threadContextProvider = new DefaultThreadContextProvider();
  +        }
  +        return m_threadContextProvider;
  +    }
  +
   
       /**
        * Set a ClassRetriever to use.
  
  
  
  1.11      +15 -2     jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/ServerStreamReadWriter.java
  
  Index: ServerStreamReadWriter.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/ServerStreamReadWriter.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- ServerStreamReadWriter.java	19 Jan 2003 11:10:00 -0000	1.10
  +++ ServerStreamReadWriter.java	29 Jan 2003 08:01:13 -0000	1.11
  @@ -13,7 +13,9 @@
   import org.apache.excalibur.altrmi.common.Reply;
   import org.apache.excalibur.altrmi.common.Request;
   import org.apache.excalibur.altrmi.common.ConnectionException;
  +import org.apache.excalibur.altrmi.common.ThreadContextProvider;
   import org.apache.excalibur.altrmi.server.ServerMonitor;
  +import org.apache.excalibur.altrmi.common.ThreadContextProviderAware;
   
   
   /**
  @@ -23,9 +25,10 @@
    * @author Paul Hammant
    * @version $Revision$
    */
  -public abstract class ServerStreamReadWriter
  +public abstract class ServerStreamReadWriter implements ThreadContextProviderAware
   {
   
  +
       /**
        * The input stream
        */
  @@ -37,11 +40,21 @@
       private OutputStream m_outputStream;
   
       private ServerMonitor m_serverMonitor;
  +    private ThreadContextProvider m_threadContextProvider;
   
       private void setServerMonitor(ServerMonitor serverMonitor) {
           m_serverMonitor = serverMonitor;
       }
   
  +    public void setThreadContextProvider(ThreadContextProvider threadContextProvider)
  +    {
  +        m_threadContextProvider = threadContextProvider;
  +    }
  +
  +    public ThreadContextProvider getThreadContextProvider()
  +    {
  +        return m_threadContextProvider;
  +    }
   
       /**
        * Method setStreams
  
  
  
  1.10      +5 -4      jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/callback/socket/CallbackEnabledSocketCustomStreamReadWriter.java
  
  Index: CallbackEnabledSocketCustomStreamReadWriter.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/callback/socket/CallbackEnabledSocketCustomStreamReadWriter.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- CallbackEnabledSocketCustomStreamReadWriter.java	9 Jan 2003 22:55:12 -0000	1.9
  +++ CallbackEnabledSocketCustomStreamReadWriter.java	29 Jan 2003 08:01:13 -0000	1.10
  @@ -17,6 +17,8 @@
   import org.apache.excalibur.altrmi.common.ExposedObjectProxy;
   import org.apache.excalibur.altrmi.common.MethodRequest;
   import org.apache.excalibur.altrmi.common.SerializationHelper;
  +import org.apache.excalibur.altrmi.common.ThreadContext;
  +import org.apache.excalibur.altrmi.common.ThreadContextProvider;
   import org.apache.excalibur.altrmi.server.impl.ServerStreamReadWriter;
   import org.apache.excalibur.altrmi.server.impl.callback.CallbackHostContext;
   import org.apache.excalibur.altrmi.server.impl.callback.CallbackServerClassFactory;
  @@ -40,7 +42,7 @@
   
       private DataInputStream m_dataInputStream;
       private DataOutputStream m_dataOutputStream;
  -    private Thread m_messageLoopThread = null;
  +    private ThreadContext m_messageLoopThread = null;
       private boolean m_isStopped = false;
       private Object m_requestLock = new Object();
       private Object m_replyLock = new Object();
  @@ -61,8 +63,7 @@
           m_dataOutputStream = new DataOutputStream( new BufferedOutputStream( getOutputStream() ) );
   
           //start the receiving message loop
  -        m_messageLoopThread = new Thread( this ,"CallbackEnabledServer Thread");
  -
  +        m_messageLoopThread = getThreadContextProvider().getThreadContext(this);
           m_messageLoopThread.start();
       }
   
  
  
  
  1.5       +4 -2      jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/callback/socket/CallbackEnabledSocketCustomStreamServer.java
  
  Index: CallbackEnabledSocketCustomStreamServer.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/callback/socket/CallbackEnabledSocketCustomStreamServer.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- CallbackEnabledSocketCustomStreamServer.java	5 Jan 2003 23:24:45 -0000	1.4
  +++ CallbackEnabledSocketCustomStreamServer.java	29 Jan 2003 08:01:13 -0000	1.5
  @@ -65,6 +65,8 @@
        */
       protected ServerStreamReadWriter createServerStreamReadWriter()
       {
  -        return new CallbackEnabledSocketCustomStreamReadWriter();
  +        CallbackEnabledSocketCustomStreamReadWriter callbackEnabledSocketCustomStreamReadWriter = new CallbackEnabledSocketCustomStreamReadWriter();
  +        callbackEnabledSocketCustomStreamReadWriter.setThreadContextProvider(getThreadContextProvider());
  +        return callbackEnabledSocketCustomStreamReadWriter;
       }
   }
  
  
  
  1.6       +4 -3      jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/http/CustomHttpServer.java
  
  Index: CustomHttpServer.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/http/CustomHttpServer.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- CustomHttpServer.java	19 Jan 2003 14:22:45 -0000	1.5
  +++ CustomHttpServer.java	29 Jan 2003 08:01:13 -0000	1.6
  @@ -12,6 +12,7 @@
   import org.apache.excalibur.altrmi.server.impl.ServerCustomStreamReadWriter;
   import org.apache.excalibur.altrmi.server.impl.ServerStreamReadWriter;
   import org.apache.excalibur.altrmi.server.impl.adapters.InvocationHandlerAdapter;
  +import org.apache.excalibur.altrmi.common.ThreadContext;
   
   import java.io.InputStream;
   import java.io.OutputStream;
  @@ -99,9 +100,9 @@
   
           hcsc.setServerMonitor(getServerMonitor());
   
  -        Thread thread = new Thread(hcsc, "SocketStreamServerConnection Thread");
  +        ThreadContext threadContext = getThreadContextProvider().getThreadContext(hcsc);
   
  -        thread.start();
  +        threadContext.start();
       }
   
   }
  
  
  
  1.9       +3 -2      jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/piped/AbstractPipedServer.java
  
  Index: AbstractPipedServer.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/piped/AbstractPipedServer.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- AbstractPipedServer.java	19 Jan 2003 11:10:01 -0000	1.8
  +++ AbstractPipedServer.java	29 Jan 2003 08:01:13 -0000	1.9
  @@ -11,6 +11,7 @@
   import java.io.PipedInputStream;
   import java.io.PipedOutputStream;
   import org.apache.excalibur.altrmi.common.ConnectionException;
  +import org.apache.excalibur.altrmi.common.ThreadContext;
   import org.apache.excalibur.altrmi.server.impl.AbstractServer;
   import org.apache.excalibur.altrmi.server.impl.ServerStreamReadWriter;
   import org.apache.excalibur.altrmi.server.impl.adapters.InvocationHandlerAdapter;
  @@ -82,7 +83,7 @@
                                                                                   ssrw );
               pssc.setServerMonitor(getServerMonitor());
   
  -            Thread thread = new Thread( pssc ,"PipedStreamServerConnection Thread");
  +            ThreadContext thread = getThreadContextProvider().getThreadContext(pssc);
   
               thread.start();
           }
  
  
  
  1.13      +13 -10    jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/socket/AbstractCompleteSocketStreamServer.java
  
  Index: AbstractCompleteSocketStreamServer.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/socket/AbstractCompleteSocketStreamServer.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- AbstractCompleteSocketStreamServer.java	19 Jan 2003 14:22:45 -0000	1.12
  +++ AbstractCompleteSocketStreamServer.java	29 Jan 2003 08:01:13 -0000	1.13
  @@ -15,6 +15,7 @@
   import org.apache.excalibur.altrmi.server.impl.ServerStreamReadWriter;
   import org.apache.excalibur.altrmi.server.impl.adapters.InvocationHandlerAdapter;
   import org.apache.excalibur.altrmi.common.AltrmiRuntimeException;
  +import org.apache.excalibur.altrmi.common.ThreadContext;
   
   
   /**
  @@ -36,7 +37,7 @@
       /**
        * The thread handling the listening
        */
  -    private Thread m_thread;
  +    private ThreadContext m_threadContext;
   
       /**
        * Construct a CompleteSocketObjectStreamServer
  @@ -109,9 +110,10 @@
   
                   sssc.setServerMonitor(getServerMonitor());
   
  -                Thread thread = new Thread( sssc, "SocketStreamServerConnection Thread" );
  +                //TODO ? Two of these getThreadContexts? PH
  +                ThreadContext threadContext = getThreadContextProvider().getThreadContext(sssc);
   
  -                thread.start();
  +                threadContext.start();
               }
           }
           catch( IOException ioe )
  @@ -137,7 +139,7 @@
       {
   
           setState(STARTING);
  -        getThread().start();
  +        getThreadContext().start();
           setState(STARTED);
   
       }
  @@ -160,7 +162,7 @@
               throw new AltrmiRuntimeException("Error stopping Complete Socket server", ioe);
           }
           killAllConnections();
  -        getThread().interrupt();
  +        getThreadContext().interrupt();
   
           setState(STOPPED);
       }
  @@ -169,15 +171,16 @@
        * Get the thread used for connection processing
        * @return
        */
  -    private Thread getThread()
  +    private ThreadContext getThreadContext()
       {
   
  -        if( m_thread == null )
  +        if( m_threadContext == null )
           {
  -            m_thread = new Thread( this, "SocketStreamServer" );
  +            m_threadContext = getThreadContextProvider().getThreadContext(this);
  +
           }
   
  -        return m_thread;
  +        return m_threadContext;
       }
   
       /**
  
  
  
  1.3       +12 -0     jakarta-avalon-excalibur/altrmi/src/test/org/apache/excalibur/altrmi/test/DummyInvocationHandler.java
  
  Index: DummyInvocationHandler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/test/org/apache/excalibur/altrmi/test/DummyInvocationHandler.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- DummyInvocationHandler.java	19 Jan 2003 22:10:53 -0000	1.2
  +++ DummyInvocationHandler.java	29 Jan 2003 08:01:13 -0000	1.3
  @@ -11,6 +11,7 @@
   import org.apache.excalibur.altrmi.common.Request;
   import org.apache.excalibur.altrmi.common.ConnectionException;
   import org.apache.excalibur.altrmi.common.CallbackException;
  +import org.apache.excalibur.altrmi.common.ThreadContextProvider;
   import org.apache.excalibur.altrmi.client.ClientInvocationHandler;
   import org.apache.excalibur.altrmi.client.ConnectionListener;
   import org.apache.excalibur.altrmi.client.ConnectionPinger;
  @@ -98,5 +99,16 @@
       {
           throw new java.lang.UnsupportedOperationException();
       }
  +
  +    public void setThreadContextProvider(ThreadContextProvider threadContextProvider)
  +    {
  +        throw new java.lang.UnsupportedOperationException();
  +    }
  +
  +    public ThreadContextProvider getThreadContextProvider()
  +    {
  +        throw new java.lang.UnsupportedOperationException();
  +    }
  +
   
   }
  
  
  
  1.1                  jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/common/DefaultThreadContext.java
  
  Index: DefaultThreadContext.java
  ===================================================================
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included with this distribution in
   * the LICENSE.txt file.
   */
  package org.apache.excalibur.altrmi.common;
  
  import org.apache.excalibur.altrmi.common.ThreadContext;
  
  /**
   * Class DefaultThreadContext
   *
   *
   * @author Paul Hammant
   * @version $Revision: 1.1 $
   */
  public class DefaultThreadContext implements ThreadContext
  {
  
      private Thread m_thread;
  
      public DefaultThreadContext(Runnable runnable)
      {
          m_thread = new Thread(runnable);
      }
  
      public void start()
      {
          m_thread.start();
      }
  
      public void interrupt()
      {
          m_thread.interrupt();
      }
  }
  
  
  
  1.1                  jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/common/DefaultThreadContextProvider.java
  
  Index: DefaultThreadContextProvider.java
  ===================================================================
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included with this distribution in
   * the LICENSE.txt file.
   */
  package org.apache.excalibur.altrmi.common;
  
  import org.apache.excalibur.altrmi.common.ThreadContextProvider;
  import org.apache.excalibur.altrmi.common.ThreadContext;
  import org.apache.excalibur.altrmi.common.DefaultThreadContext;
  
  /**
   * Class DefaultThreadContextProvider
   *
   *
   * @author Paul Hammant
   * @version $Revision: 1.1 $
   */
  public class DefaultThreadContextProvider implements ThreadContextProvider
  {
      public DefaultThreadContextProvider()
      {
      }
  
      public ThreadContext getThreadContext(Runnable runnable)
      {
          return new DefaultThreadContext(runnable);
      }
  }
  
  
  
  1.1                  jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/common/ThreadContext.java
  
  Index: ThreadContext.java
  ===================================================================
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included with this distribution in
   * the LICENSE.txt file.
   */
  package org.apache.excalibur.altrmi.common;
  /**
   * Class ThreadContext
   *
   *
   * @author Paul Hammant
   * @version $Revision: 1.1 $
   */
  public interface ThreadContext {
      void start();
      void interrupt();
  }
  
  
  
  1.1                  jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/common/ThreadContextProvider.java
  
  Index: ThreadContextProvider.java
  ===================================================================
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included with this distribution in
   * the LICENSE.txt file.
   */
  package org.apache.excalibur.altrmi.common;
  /**
   * Class ThreadContextProvider
   *
   *
   * @author Paul Hammant
   * @version $Revision: 1.1 $
   */
  public interface ThreadContextProvider {
  
      ThreadContext getThreadContext(Runnable runnable);
  
  }
  
  
  
  1.1                  jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/common/ThreadContextProviderAware.java
  
  Index: ThreadContextProviderAware.java
  ===================================================================
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included with this distribution in
   * the LICENSE.txt file.
   */
  package org.apache.excalibur.altrmi.common;
  
  import org.apache.excalibur.altrmi.common.ThreadContextProvider;
  
  /**
   * Class ThreadContextProviderAware
   *
   *
   * @author Paul Hammant
   * @version $Revision: 1.1 $
   */
  public interface ThreadContextProviderAware {
  
      void setThreadContextProvider(ThreadContextProvider threadContextProvider);
  
      ThreadContextProvider getThreadContextProvider();
  
  }
  
  
  

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