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 2002/04/21 14:19:34 UTC

cvs commit: jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/callback/socket CallbackEnabledSocketCustomStreamReadWriter.java CallbackEnabledSocketCustomStreamServer.java PartialCallbackEnabledSocketCustomStreamServer.java

hammant     02/04/21 05:19:33

  Modified:    altrmi/src/java/org/apache/excalibur/altrmi/client
                        ProxyHelper.java
               altrmi/src/java/org/apache/excalibur/altrmi/client/impl
                        AbstractAltrmiFactory.java
                        AbstractClientInvocationHandler.java
                        AbstractConnectionPinger.java
                        AbstractFactoryHelper.java AbstractHostContext.java
                        AbstractInterfaceLookupFactory.java
                        ClientClassAltrmiFactory.java
                        DefaultConnectionListener.java
                        DefaultConnectionPinger.java
                        DefaultInterfaceLookupFactory.java
                        DefaultProxyHelper.java
                        PerpetualConnectionPinger.java
                        ServerClassAltrmiFactory.java
                        TransportedClassLoader.java
               altrmi/src/java/org/apache/excalibur/altrmi/client/impl/callback/socket
                        CallbackEnabledSocketCustomStreamInvocationHandler.java
               altrmi/src/java/org/apache/excalibur/altrmi/client/impl/direct
                        AbstractDirectInvocationHandler.java
                        DirectHostContext.java DirectInvocationHandler.java
                        DirectMarshalledInvocationHandler.java
               altrmi/src/java/org/apache/excalibur/altrmi/client/impl/multiple
                        RotatingMultipleInvocationHandler.java
               altrmi/src/java/org/apache/excalibur/altrmi/client/impl/piped
                        AbstractPipedStreamInvocationHandler.java
               altrmi/src/java/org/apache/excalibur/altrmi/client/impl/rmi
                        RmiInvocationHandler.java
               altrmi/src/java/org/apache/excalibur/altrmi/client/impl/stream
                        StreamInvocationHandler.java
               altrmi/src/java/org/apache/excalibur/altrmi/common
                        AltrmiCallbackException.java
                        ClassRetrievalFailedReply.java
                        ExposedObjectProxy.java
               altrmi/src/java/org/apache/excalibur/altrmi/generator
                        ProxyGeneratorImpl.java
               altrmi/src/java/org/apache/excalibur/altrmi/javacompiler
                        JavaCompiler.java SunJavaCompiler.java
               altrmi/src/java/org/apache/excalibur/altrmi/server/impl
                        AbstractServer.java AltrmiSession.java
                        DefaultAuthenticator.java
                        ServerCustomStreamReadWriter.java
                        ServerObjectStreamReadWriter.java
                        ServerStreamReadWriter.java
                        StreamServerConnection.java
               altrmi/src/java/org/apache/excalibur/altrmi/server/impl/adapters
                        InvocationHandlerAdapter.java
               altrmi/src/java/org/apache/excalibur/altrmi/server/impl/callback/socket
                        CallbackEnabledSocketCustomStreamReadWriter.java
                        CallbackEnabledSocketCustomStreamServer.java
                        PartialCallbackEnabledSocketCustomStreamServer.java
  Log:
  Fix bracing and speed up argument fixing in
  
  Revision  Changes    Path
  1.3       +2 -2      jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/ProxyHelper.java
  
  Index: ProxyHelper.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/ProxyHelper.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ProxyHelper.java	21 Apr 2002 09:42:01 -0000	1.2
  +++ ProxyHelper.java	21 Apr 2002 12:19:32 -0000	1.3
  @@ -16,7 +16,7 @@
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
    * @author Vinay Chandrasekharan <a href="mailto:vinay_chandran@users.sourceforge.net">vinay_chandran@users.sourceforge.net</a>
  - * @version $Revision: 1.2 $
  + * @version $Revision: 1.3 $
    */
   public interface ProxyHelper
   {
  @@ -50,7 +50,7 @@
        * @throws Throwable
        *
        */
  -    Object processObjectRequest(String methodSignature, Object[] args) throws Throwable;
  +    Object processObjectRequest(String methodSignature, Object[] args, Class[] argClasses) throws Throwable;
   
       /**
        * Method processVoidRequest
  
  
  
  1.4       +95 -43    jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/AbstractAltrmiFactory.java
  
  Index: AbstractAltrmiFactory.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/AbstractAltrmiFactory.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- AbstractAltrmiFactory.java	18 Apr 2002 06:35:41 -0000	1.3
  +++ AbstractAltrmiFactory.java	21 Apr 2002 12:19:32 -0000	1.4
  @@ -30,6 +30,7 @@
   import java.util.Vector;
   
   import java.io.IOException;
  +
   import java.lang.ref.WeakReference;
   
   
  @@ -39,9 +40,10 @@
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
    * @author Peter Royal <a href="mailto:proyal@managingpartners.com">proyal@managingpartners.com</a>
  - * @version $Revision: 1.3 $
  + * @version $Revision: 1.4 $
    */
  -public abstract class AbstractAltrmiFactory implements AltrmiFactory {
  +public abstract class AbstractAltrmiFactory implements AltrmiFactory
  +{
   
       protected AbstractHostContext mHostContext;
       protected final HashMap mRefObjs = new HashMap();
  @@ -49,16 +51,15 @@
       private transient String mTextToSign;
       protected Long mSession;
   
  -
       /**
        * Constructor AbstractAltrmiFactory
        *
        *
        * @param beanOnly
  -     * @param classLoader
        *
        */
  -    public AbstractAltrmiFactory(boolean beanOnly) {
  +    public AbstractAltrmiFactory(boolean beanOnly)
  +    {
           mBeanOnly = beanOnly;
       }
   
  @@ -69,7 +70,8 @@
        * @return
        *
        */
  -    public final boolean isBeanOnly() {
  +    public final boolean isBeanOnly()
  +    {
           return mBeanOnly;
       }
   
  @@ -82,9 +84,11 @@
        *
        *
        */
  -    public final void setHostContext(AltrmiHostContext hostContext) throws IOException {
  +    public final void setHostContext(AltrmiHostContext hostContext) throws IOException
  +    {
   
  -        if (mHostContext == null) {
  +        if (mHostContext == null)
  +        {
               mHostContext = (AbstractHostContext) hostContext;
           }
   
  @@ -93,10 +97,13 @@
           AltrmiReply ar =
               mHostContext.getInvocationHandler().handleInvocation(new OpenConnectionRequest());
   
  -        if (ar instanceof OpenConnectionReply) {
  +        if (ar instanceof OpenConnectionReply)
  +        {
               mTextToSign = ((OpenConnectionReply) ar).getTextToSign();
               mSession = ((OpenConnectionReply) ar).getSession();
  -        } else {
  +        }
  +        else
  +        {
   
               //TODO
           }
  @@ -115,55 +122,76 @@
        *
        */
       public Object lookup(String publishedServiceName, AltrmiAuthentication altrmiAuthentication)
  -            throws AltrmiConnectionException {
  +            throws AltrmiConnectionException
  +    {
   
           AltrmiReply ar =
               mHostContext.getInvocationHandler()
  -                .handleInvocation(new LookupRequest(publishedServiceName, altrmiAuthentication, mSession));
  +                .handleInvocation(new LookupRequest(publishedServiceName, altrmiAuthentication,
  +                                                    mSession));
   
  -        if (ar.getReplyCode() >= AltrmiReply.PROBLEMREPLY) {
  -            if (ar instanceof NotPublishedReply) {
  +        if (ar.getReplyCode() >= AltrmiReply.PROBLEMREPLY)
  +        {
  +            if (ar instanceof NotPublishedReply)
  +            {
                   throw new AltrmiConnectionException("Service " + publishedServiceName
                                                       + " not published");
  -            } else if (ar instanceof ExceptionReply) {
  +            }
  +            else if (ar instanceof ExceptionReply)
  +            {
                   ExceptionReply er = (ExceptionReply) ar;
   
                   throw (AltrmiConnectionException) er.getReplyException();
  -            } else {
  +            }
  +            else
  +            {
                   throw new AltrmiConnectionException("Problem doing lookup on service");
               }
  -        } else if (ar instanceof ExceptionReply) {
  +        }
  +        else if (ar instanceof ExceptionReply)
  +        {
               ExceptionReply er = (ExceptionReply) ar;
               Throwable t = er.getReplyException();
   
  -            if (t instanceof AltrmiConnectionException) {
  +            if (t instanceof AltrmiConnectionException)
  +            {
                   throw (AltrmiConnectionException) t;
  -            } else if (t instanceof Error) {
  +            }
  +            else if (t instanceof Error)
  +            {
                   throw (Error) t;
  -            } else if (t instanceof RuntimeException) {
  +            }
  +            else if (t instanceof RuntimeException)
  +            {
                   throw (RuntimeException) t;
  -            } else {
  +            }
  +            else
  +            {
                   throw new AltrmiConnectionException("Problem doing lookup on service [exception: "
                                                       + t.getMessage() + "]");
               }
  -        } else if (!(ar instanceof LookupReply)) {
  -            throw new UnsupportedOperationException("Unexpected reply to lookup [reply: " + ar + "]");
  +        }
  +        else if (!(ar instanceof LookupReply))
  +        {
  +            throw new UnsupportedOperationException("Unexpected reply to lookup [reply: " + ar
  +                                                    + "]");
           }
   
           LookupReply lr = (LookupReply) ar;
           DefaultProxyHelper baseObj = new DefaultProxyHelper(this,
  -                                                        mHostContext.getInvocationHandler(),
  -                                                        publishedServiceName, "Main",
  -                                                        lr.getReferenceID(), mSession);
  +                                                            mHostContext.getInvocationHandler(),
  +                                                            publishedServiceName, "Main",
  +                                                            lr.getReferenceID(), mSession);
           Object retVal = getInstance(publishedServiceName, "Main", baseObj, isBeanOnly());
   
           baseObj.registerImplObject(retVal);
   
           return retVal;
  -     }
  -
  +    }
   
  -    protected abstract Class getFacadeClass(String publishedServiceName, String objectName, boolean beanOnly) throws AltrmiConnectionException, ClassNotFoundException;
  +    protected abstract Class getFacadeClass(
  +        String publishedServiceName, String objectName, boolean beanOnly)
  +            throws AltrmiConnectionException, ClassNotFoundException;
   
       protected abstract Object getInstance(
           String publishedServiceName, String objectName, DefaultProxyHelper proxyHelper,
  @@ -180,10 +208,14 @@
        *
        *
        */
  -    public final void registerReferenceObject(Object obj, Long referenceID) {
  -        synchronized(this) {
  +    public final void registerReferenceObject(Object obj, Long referenceID)
  +    {
  +
  +        synchronized (this)
  +        {
               mRefObjs.put(referenceID, new WeakReference(obj));
           }
  +
           //Object o = mRefObjs.get(referenceID);
       }
   
  @@ -196,7 +228,8 @@
        * @return
        *
        */
  -    public final Long getReferenceID(AltrmiProxy obj) {
  +    public final Long getReferenceID(AltrmiProxy obj)
  +    {
           return obj.altrmiGetReferenceID(this);
       }
   
  @@ -209,20 +242,31 @@
        * @return
        *
        */
  -    public final Object getImplObj(Long referenceID) {
  +    public final Object getImplObj(Long referenceID)
  +    {
  +
           WeakReference wr = null;
  -        synchronized(this) {
  -             wr = (WeakReference) mRefObjs.get(referenceID);
  +
  +        synchronized (this)
  +        {
  +            wr = (WeakReference) mRefObjs.get(referenceID);
           }
  -        if (wr == null) {
  +
  +        if (wr == null)
  +        {
               return null;
           }
  +
           //System.out.println("size = " + mRefObjs.size());
           Object obj = wr.get();
  -        if (obj == null) {
  +
  +        if (obj == null)
  +        {
  +
               //System.out.println(" none for " + referenceID);
               mRefObjs.remove(referenceID);
           }
  +
           return obj;
       }
   
  @@ -237,7 +281,8 @@
        * @throws AltrmiConnectionException
        *
        */
  -    public final Object lookup(String publishedServiceName) throws AltrmiConnectionException {
  +    public final Object lookup(String publishedServiceName) throws AltrmiConnectionException
  +    {
           return lookup(publishedServiceName, null);
       }
   
  @@ -248,21 +293,28 @@
        * @return
        *
        */
  -    public String getTextToSignForAuthentication() {
  +    public String getTextToSignForAuthentication()
  +    {
           return mTextToSign;
       }
   
       /**
        *  Method list
        */
  -    public String[] list() {
  +    public String[] list()
  +    {
   
           AltrmiReply ar = mHostContext.getInvocationHandler().handleInvocation(new ListRequest());
   
  -        if (ar instanceof ListReply) {
  +        if (ar instanceof ListReply)
  +        {
               return ((ListReply) ar).getListOfPublishedObjects();
  -        } else {
  -            return new String[]{};
  +        }
  +        else
  +        {
  +            return new String[]
  +            {
  +            };
           }
       }
   }
  
  
  
  1.2       +50 -12    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.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AbstractClientInvocationHandler.java	3 Apr 2002 11:29:50 -0000	1.1
  +++ AbstractClientInvocationHandler.java	21 Apr 2002 12:19:32 -0000	1.2
  @@ -26,14 +26,16 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.1 $
  + * @version $Revision: 1.2 $
    */
  -public abstract class AbstractClientInvocationHandler implements AltrmiInvocationHandler, AltrmiClientInvocationHandler {
  +public abstract class AbstractClientInvocationHandler
  +        implements AltrmiInvocationHandler, AltrmiClientInvocationHandler
  +{
   
       protected AltrmiConnectionPinger mConnectionPinger;
       protected AltrmiConnectionListener mAltrmiConnectionListener =
           new DefaultConnectionListener();
  -    protected boolean mStopped =false;
  +    protected boolean mStopped = false;
   
       /**
        * Method setAltrmiConnectionListener
  @@ -42,32 +44,59 @@
        * @param altrmiConnectionListener
        *
        */
  -    public void setAltrmiConnectionListener(AltrmiConnectionListener altrmiConnectionListener) {
  +    public void setAltrmiConnectionListener(AltrmiConnectionListener altrmiConnectionListener)
  +    {
           mAltrmiConnectionListener = altrmiConnectionListener;
       }
   
  -    public void initialize() throws IOException {
  +    /**
  +     * Method initialize
  +     *
  +     *
  +     * @throws IOException
  +     *
  +     */
  +    public void initialize() throws IOException
  +    {
   
  -        if (mConnectionPinger == null) {
  +        if (mConnectionPinger == null)
  +        {
               mConnectionPinger = new DefaultConnectionPinger();
           }
  +
           mConnectionPinger.setAltrmiInvocationHandler(this);
           mConnectionPinger.start();
       }
   
  -    public void close() {
  +    /**
  +     * Method close
  +     *
  +     *
  +     */
  +    public void close()
  +    {
  +
           mConnectionPinger.stop();
  +
           mStopped = true;
       }
   
  -    public void ping() {
  -        if (mStopped) {
  +    /**
  +     * Method ping
  +     *
  +     *
  +     */
  +    public void ping()
  +    {
  +
  +        if (mStopped)
  +        {
               throw new AltrmiConnectionClosedException("Connection closed");
           }
  +
           AltrmiReply ar = handleInvocation(new PingRequest());
       }
   
  -
       protected abstract boolean tryReconnect();
   
       /**
  @@ -77,11 +106,20 @@
        * @param connectionPinger
        *
        */
  -    public void setConnectionPinger(AltrmiConnectionPinger connectionPinger) {
  +    public void setConnectionPinger(AltrmiConnectionPinger connectionPinger)
  +    {
           mConnectionPinger = connectionPinger;
       }
   
  -    public ClassLoader getInterfacesClassLoader() {
  +    /**
  +     * Method getInterfacesClassLoader
  +     *
  +     *
  +     * @return
  +     *
  +     */
  +    public ClassLoader getInterfacesClassLoader()
  +    {
           return AbstractClientInvocationHandler.class.getClassLoader();
       }
   }
  
  
  
  1.2       +24 -13    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.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AbstractConnectionPinger.java	3 Apr 2002 11:29:50 -0000	1.1
  +++ AbstractConnectionPinger.java	21 Apr 2002 12:19:32 -0000	1.2
  @@ -22,9 +22,10 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version * $Revision: 1.1 $
  + * @version * $Revision: 1.2 $
    */
  -public abstract class AbstractConnectionPinger implements AltrmiConnectionPinger, Runnable {
  +public abstract class AbstractConnectionPinger implements AltrmiConnectionPinger, Runnable
  +{
   
       protected AltrmiClientInvocationHandler mAltrmiInvocationHandler;
       protected boolean mContinue = true;
  @@ -40,7 +41,8 @@
        * @param giveupIntervalSeconds
        *
        */
  -    public AbstractConnectionPinger(int pingIntervalSeconds, int giveupIntervalSeconds) {
  +    public AbstractConnectionPinger(int pingIntervalSeconds, int giveupIntervalSeconds)
  +    {
           mPingInterval = pingIntervalSeconds * 1000;
           mGiveupInterval = giveupIntervalSeconds * 1000;
       }
  @@ -50,7 +52,8 @@
        *
        *
        */
  -    public AbstractConnectionPinger() {
  +    public AbstractConnectionPinger()
  +    {
           mPingInterval = 10 * 1000;       // ten seconds
           mGiveupInterval = 100 * 1000;    // one hundred seconds.
       }
  @@ -61,8 +64,8 @@
        *
        *
        */
  -    public void setAltrmiInvocationHandler(
  -            AltrmiClientInvocationHandler altrmiInvocationHandler) {
  +    public void setAltrmiInvocationHandler(AltrmiClientInvocationHandler altrmiInvocationHandler)
  +    {
           mAltrmiInvocationHandler = altrmiInvocationHandler;
       }
   
  @@ -71,7 +74,8 @@
        *
        *
        */
  -    public void start() {
  +    public void start()
  +    {
   
           mThread = new Thread(this);
   
  @@ -83,8 +87,8 @@
        *
        *
        */
  -    public void stop() {
  -
  +    public void stop()
  +    {
           mContinue = false;
       }
   
  @@ -93,18 +97,25 @@
        *
        *
        */
  -    public void run() {
  +    public void run()
  +    {
   
  -        try {
  -            while (mContinue) {
  +        try
  +        {
  +            while (mContinue)
  +            {
                   Thread.sleep(mPingInterval);
                   ping();
               }
  -        } catch (AltrmiConnectionClosedException cce) {
  +        }
  +        catch (AltrmiConnectionClosedException cce)
  +        {
               System.out.println("Pinger Connection closed");
   
               // no need to ping anymore.
  -        } catch (InterruptedException e) {
  +        }
  +        catch (InterruptedException e)
  +        {
               System.out.println("Pinger Interrupted!");
   
               // do nothing.
  
  
  
  1.2       +19 -9     jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/AbstractFactoryHelper.java
  
  Index: AbstractFactoryHelper.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/AbstractFactoryHelper.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AbstractFactoryHelper.java	3 Apr 2002 11:29:50 -0000	1.1
  +++ AbstractFactoryHelper.java	21 Apr 2002 12:19:32 -0000	1.2
  @@ -24,16 +24,19 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.1 $
  + * @version $Revision: 1.2 $
    */
  -public abstract class AbstractFactoryHelper implements AltrmiInterfaceLookupFactory {
  +public abstract class AbstractFactoryHelper implements AltrmiInterfaceLookupFactory
  +{
   
  -    protected String[] processFactoryString(String factoryString) {
  +    protected String[] processFactoryString(String factoryString)
  +    {
   
           Vector terms = new Vector();
           StringTokenizer st = new StringTokenizer(factoryString, ":");
   
  -        while (st.hasMoreTokens()) {
  +        while (st.hasMoreTokens())
  +        {
               terms.add(st.nextToken());
           }
   
  @@ -44,13 +47,19 @@
           return retval;
       }
   
  -    protected AltrmiFactory createAltrmiFactory(String type, boolean beanOnly) {
  +    protected AltrmiFactory createAltrmiFactory(String type, boolean beanOnly)
  +    {
   
  -        if (type.equalsIgnoreCase("s")) {
  +        if (type.equalsIgnoreCase("s"))
  +        {
               return new ServerClassAltrmiFactory(beanOnly);
  -        } else if (type.equalsIgnoreCase("c")) {
  +        }
  +        else if (type.equalsIgnoreCase("c"))
  +        {
               return new ClientClassAltrmiFactory(beanOnly);
  -        } else {
  +        }
  +        else
  +        {
               return null;
           }
       }
  @@ -67,7 +76,8 @@
        *
        */
       public final AltrmiInterfaceLookup getAltrmiInterfaceLookup(String factoryString)
  -            throws AltrmiConnectionException {
  +            throws AltrmiConnectionException
  +    {
           return getAltrmiInterfaceLookup(factoryString, this.getClass().getClassLoader());
       }
   }
  
  
  
  1.2       +9 -7      jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/AbstractHostContext.java
  
  Index: AbstractHostContext.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/AbstractHostContext.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AbstractHostContext.java	3 Apr 2002 11:29:50 -0000	1.1
  +++ AbstractHostContext.java	21 Apr 2002 12:19:32 -0000	1.2
  @@ -21,9 +21,10 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.1 $
  + * @version $Revision: 1.2 $
    */
  -public abstract class AbstractHostContext implements AltrmiHostContext {
  +public abstract class AbstractHostContext implements AltrmiHostContext
  +{
   
       protected final AltrmiClientInvocationHandler mAltrmiClientInvocationHandler;
   
  @@ -35,8 +36,8 @@
        * @param altrmiClientInvocationHandler
        *
        */
  -    public AbstractHostContext(
  -            AltrmiClientInvocationHandler altrmiClientInvocationHandler) {
  +    public AbstractHostContext(AltrmiClientInvocationHandler altrmiClientInvocationHandler)
  +    {
           mAltrmiClientInvocationHandler = altrmiClientInvocationHandler;
       }
   
  @@ -47,7 +48,8 @@
        * @return
        *
        */
  -    public AltrmiClientInvocationHandler getInvocationHandler() {
  +    public AltrmiClientInvocationHandler getInvocationHandler()
  +    {
           return mAltrmiClientInvocationHandler;
       }
   
  @@ -59,8 +61,8 @@
        * @param altrmiConnectionListener
        *
        */
  -    public void setAltrmiConnectionListener(AltrmiConnectionListener altrmiConnectionListener) {
  +    public void setAltrmiConnectionListener(AltrmiConnectionListener altrmiConnectionListener)
  +    {
           mAltrmiClientInvocationHandler.setAltrmiConnectionListener(altrmiConnectionListener);
       }
  -
   }
  
  
  
  1.2       +32 -10    jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/AbstractInterfaceLookupFactory.java
  
  Index: AbstractInterfaceLookupFactory.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/AbstractInterfaceLookupFactory.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AbstractInterfaceLookupFactory.java	3 Apr 2002 11:29:50 -0000	1.1
  +++ AbstractInterfaceLookupFactory.java	21 Apr 2002 12:19:32 -0000	1.2
  @@ -22,13 +22,15 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.1 $
  + * @version $Revision: 1.2 $
    */
  -public class AbstractInterfaceLookupFactory implements AltrmiInterfaceLookupFactory {
  +public class AbstractInterfaceLookupFactory implements AltrmiInterfaceLookupFactory
  +{
   
       private Vector factories = new Vector();
   
  -    protected void addFactory(String factoryStringPrefix, AltrmiInterfaceLookupFactory factory) {
  +    protected void addFactory(String factoryStringPrefix, AltrmiInterfaceLookupFactory factory)
  +    {
           factories.add(new Factory(factoryStringPrefix, factory));
       }
   
  @@ -44,16 +46,34 @@
        *
        */
       public final AltrmiInterfaceLookup getAltrmiInterfaceLookup(String factoryString)
  -            throws AltrmiConnectionException {
  +            throws AltrmiConnectionException
  +    {
           return getAltrmiInterfaceLookup(factoryString, this.getClass().getClassLoader());
       }
   
  +    /**
  +     * Method getAltrmiInterfaceLookup
  +     *
  +     *
  +     * @param factoryString
  +     * @param interfacesClassLoader
  +     *
  +     * @return
  +     *
  +     * @throws AltrmiConnectionException
  +     *
  +     */
       public AltrmiInterfaceLookup getAltrmiInterfaceLookup(
  -            String factoryString, ClassLoader interfacesClassLoader) throws AltrmiConnectionException {
  -        for (int i = 0; i < factories.size(); i++) {
  +            String factoryString, ClassLoader interfacesClassLoader)
  +                throws AltrmiConnectionException
  +    {
  +
  +        for (int i = 0; i < factories.size(); i++)
  +        {
               Factory factory = (Factory) factories.elementAt(i);
   
  -            if (factoryString.startsWith(factory.factoryStringPrefix)) {
  +            if (factoryString.startsWith(factory.factoryStringPrefix))
  +            {
                   return factory.altrmiInterfaceLookupFactory
                       .getAltrmiInterfaceLookup(factoryString, interfacesClassLoader);
               }
  @@ -67,9 +87,10 @@
        *
        *
        * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  -     * @version $Revision: 1.1 $
  +     * @version $Revision: 1.2 $
        */
  -    private class Factory {
  +    private class Factory
  +    {
   
           private String factoryStringPrefix;
           private AltrmiInterfaceLookupFactory altrmiInterfaceLookupFactory;
  @@ -83,7 +104,8 @@
            *
            */
           public Factory(String factoryStringPrefix,
  -                       AltrmiInterfaceLookupFactory altrmiInterfaceLookupFactory) {
  +                       AltrmiInterfaceLookupFactory altrmiInterfaceLookupFactory)
  +        {
               this.factoryStringPrefix = factoryStringPrefix;
               this.altrmiInterfaceLookupFactory = altrmiInterfaceLookupFactory;
           }
  
  
  
  1.4       +34 -21    jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/ClientClassAltrmiFactory.java
  
  Index: ClientClassAltrmiFactory.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/ClientClassAltrmiFactory.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ClientClassAltrmiFactory.java	18 Apr 2002 06:35:41 -0000	1.3
  +++ ClientClassAltrmiFactory.java	21 Apr 2002 12:19:32 -0000	1.4
  @@ -8,6 +8,8 @@
    */
   package org.apache.excalibur.altrmi.client.impl;
   
  +
  +
   import org.apache.excalibur.altrmi.common.AltrmiConnectionException;
   
   import java.lang.reflect.InvocationTargetException;
  @@ -19,9 +21,10 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.3 $
  + * @version $Revision: 1.4 $
    */
  -public class ClientClassAltrmiFactory extends AbstractAltrmiFactory {
  +public class ClientClassAltrmiFactory extends AbstractAltrmiFactory
  +{
   
       /**
        * Constructor ClientClassAltrmiFactory
  @@ -30,23 +33,25 @@
        * @param beanOnly
        *
        */
  -    public ClientClassAltrmiFactory(boolean beanOnly) {
  +    public ClientClassAltrmiFactory(boolean beanOnly)
  +    {
           super(beanOnly);
       }
   
  -//    public ClientClassAltrmiFactory(boolean beanOnly, ClassLoader classLoader) {
  -  //      super(beanOnly, classLoader);
  -    //}
   
  -    protected Class getFacadeClass(String publishedServiceName, String objectName, boolean beanOnly) throws AltrmiConnectionException, ClassNotFoundException {
  +    protected Class getFacadeClass(
  +            String publishedServiceName, String objectName, boolean beanOnly)
  +                throws AltrmiConnectionException, ClassNotFoundException
  +    {
  +
           String code = "2";
   
  -        if (beanOnly) {
  +        if (beanOnly)
  +        {
               code = "";
           }
   
  -        return Class.forName("AltrmiGenerated" + code + publishedServiceName + "_"
  -                                        + objectName);
  +        return Class.forName("AltrmiGenerated" + code + publishedServiceName + "_" + objectName);
       }
   
       /**
  @@ -62,28 +67,35 @@
        *
        */
       protected Object getInstance(
  -            String publishedServiceName, String objectName, DefaultProxyHelper proxyHelper,
  -            boolean beanOnly)
  -                throws AltrmiConnectionException {
  -
  -
  +            String publishedServiceName, String objectName, DefaultProxyHelper proxyHelper, boolean beanOnly)
  +                throws AltrmiConnectionException
  +    {
   
  -        try {
  +        try
  +        {
               Class clazz = getFacadeClass(publishedServiceName, objectName, beanOnly);
               Constructor[] constructors = clazz.getConstructors();
               Object retVal = constructors[0].newInstance(new Object[]{ proxyHelper });
   
               return retVal;
  -        } catch (InvocationTargetException ite) {
  +        }
  +        catch (InvocationTargetException ite)
  +        {
               throw new AltrmiConnectionException("Generated class not instantiated : "
                                                   + ite.getTargetException().getMessage());
  -        } catch (ClassNotFoundException cnfe) {
  +        }
  +        catch (ClassNotFoundException cnfe)
  +        {
               throw new AltrmiConnectionException("Generated class not found during lookup : "
                                                   + cnfe.getMessage());
  -        } catch (InstantiationException ie) {
  +        }
  +        catch (InstantiationException ie)
  +        {
               throw new AltrmiConnectionException(
                   "Generated class not instantiable during lookup : " + ie.getMessage());
  -        } catch (IllegalAccessException iae) {
  +        }
  +        catch (IllegalAccessException iae)
  +        {
               throw new AltrmiConnectionException(
                   "Illegal access to generated class during lookup : " + iae.getMessage());
           }
  @@ -94,7 +106,8 @@
        *
        *
        */
  -    public void close() {
  +    public void close()
  +    {
           mHostContext.getInvocationHandler().close();
       }
   }
  
  
  
  1.2       +27 -12    jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/DefaultConnectionListener.java
  
  Index: DefaultConnectionListener.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/DefaultConnectionListener.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DefaultConnectionListener.java	3 Apr 2002 11:29:50 -0000	1.1
  +++ DefaultConnectionListener.java	21 Apr 2002 12:19:32 -0000	1.2
  @@ -21,9 +21,10 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version * $Revision: 1.1 $
  + * @version * $Revision: 1.2 $
    */
  -public class DefaultConnectionListener implements AltrmiConnectionListener {
  +public class DefaultConnectionListener implements AltrmiConnectionListener
  +{
   
       /**
        * Method methodCalled
  @@ -34,7 +35,9 @@
        * @param duration
        *
        */
  -    public void methodCalled(final String methodSignature, final long duration) {
  +    public void methodCalled(final String methodSignature, final long duration)
  +    {
  +
           // do mothing in default impl, could do logging.
       }
   
  @@ -45,7 +48,8 @@
        * @return
        *
        */
  -    public boolean methodLogging() {
  +    public boolean methodLogging()
  +    {
           return true;
       }
   
  @@ -60,10 +64,12 @@
        *
        */
       public void serviceSuspended(final AltrmiRequest altrmiRequest, final int attempt,
  -                                 final int suggestedWaitMillis) {
  +                                 final int suggestedWaitMillis)
  +    {
   
           // Lets say that ten retries is too many.
  -        if (attempt == 10) {
  +        if (attempt == 10)
  +        {
               throw new AltrmiInvocationException("Too many retries on suspended service");
           }
   
  @@ -71,10 +77,14 @@
                              + ", waiting for " + suggestedWaitMillis / 1000 + " seconds)");
   
           // We are quite happy with the recommended wait time.
  -        try {
  +        try
  +        {
               Thread.sleep(suggestedWaitMillis);
  -        } catch (InterruptedException ie) {
  +        }
  +        catch (InterruptedException ie)
  +        {
               System.out.println("InterruptedException in Listener " + ie.getMessage());
  +
               // TODO ?
           }
       }
  @@ -87,10 +97,12 @@
        * @param attempt
        *
        */
  -    public void serviceAbend(int attempt) {
  +    public void serviceAbend(int attempt)
  +    {
   
           // Lets say that ten retries is too many.
  -        if (attempt == 3) {
  +        if (attempt == 3)
  +        {
               throw new AltrmiInvocationException("Too many retries on abended service");
           }
   
  @@ -98,9 +110,12 @@
                              + attempt + ")");
   
           // Increasing wait time.
  -        try {
  +        try
  +        {
               Thread.sleep((2 ^ attempt) * 500);
  -        } catch (InterruptedException ie) {
  +        }
  +        catch (InterruptedException ie)
  +        {
               System.out.println("InterruptedException in Listener " + ie.getMessage());
   
               // TODO ?
  
  
  
  1.2       +28 -8     jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/DefaultConnectionPinger.java
  
  Index: DefaultConnectionPinger.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/DefaultConnectionPinger.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DefaultConnectionPinger.java	3 Apr 2002 11:29:50 -0000	1.1
  +++ DefaultConnectionPinger.java	21 Apr 2002 12:19:32 -0000	1.2
  @@ -22,25 +22,45 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version * $Revision: 1.1 $
  + * @version * $Revision: 1.2 $
    */
  -public class DefaultConnectionPinger extends AbstractConnectionPinger {
  +public class DefaultConnectionPinger extends AbstractConnectionPinger
  +{
   
  -    public DefaultConnectionPinger(int pingIntervalSeconds, int giveupIntervalSeconds) {
  +    /**
  +     * Constructor DefaultConnectionPinger
  +     *
  +     *
  +     * @param pingIntervalSeconds
  +     * @param giveupIntervalSeconds
  +     *
  +     */
  +    public DefaultConnectionPinger(int pingIntervalSeconds, int giveupIntervalSeconds)
  +    {
           super(pingIntervalSeconds, giveupIntervalSeconds);
       }
   
  -    public DefaultConnectionPinger() {
  +    /**
  +     * Constructor DefaultConnectionPinger
  +     *
  +     *
  +     */
  +    public DefaultConnectionPinger()
  +    {
       }
   
  -    protected void ping() {
  +    protected void ping()
  +    {
  +
           if (mAltrmiInvocationHandler.getLastRealRequest()
  -                > (System.currentTimeMillis() - (mGiveupInterval))) {
  +                > (System.currentTimeMillis() - (mGiveupInterval)))
  +        {
               mAltrmiInvocationHandler.ping();
  -        } else {
  +        }
  +        else
  +        {
   
               //TODO should be restartable after reconnect of socket.
  -
               mContinue = false;
   
               // if more than 100 seconds since last request, stop pinging
  
  
  
  1.2       +39 -25    jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/DefaultInterfaceLookupFactory.java
  
  Index: DefaultInterfaceLookupFactory.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/DefaultInterfaceLookupFactory.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DefaultInterfaceLookupFactory.java	3 Apr 2002 11:29:50 -0000	1.1
  +++ DefaultInterfaceLookupFactory.java	21 Apr 2002 12:19:32 -0000	1.2
  @@ -8,6 +8,8 @@
    */
   package org.apache.excalibur.altrmi.client.impl;
   
  +
  +
   import org.apache.excalibur.altrmi.client.AltrmiInterfaceLookupFactory;
   
   
  @@ -16,43 +18,55 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.1 $
  + * @version $Revision: 1.2 $
    */
  -public class DefaultInterfaceLookupFactory extends AbstractInterfaceLookupFactory {
  -
  -    public static final String[] SUPPORTEDSTREAMS = new String[] {
  -        "SocketObjectStream",
  -        "SocketCustomStream",
  -        "RMI"
  -    };
  -
  +public class DefaultInterfaceLookupFactory extends AbstractInterfaceLookupFactory
  +{
   
  +    public static final String[] SUPPORTEDSTREAMS = new String[]{ "SocketObjectStream",
  +                                                                  "SocketCustomStream", "RMI" };
   
       /**
        * Constructor DefaultInterfaceLookupFactory
        *
        *
        */
  -    public DefaultInterfaceLookupFactory() {
  +    public DefaultInterfaceLookupFactory()
  +    {
   
  -        try {
  -            addFactory("SocketObjectStream:", (AltrmiInterfaceLookupFactory) Class.forName("org.apache.excalibur.altrmi.client.impl.socket.SocketObjectStreamFactoryHelper").newInstance());
  -        } catch (ClassNotFoundException cnfe) {
  -        } catch (InstantiationException ie) {
  -        } catch (IllegalAccessException iae) {
  +        try
  +        {
  +            addFactory(
  +                "SocketObjectStream:",
  +                (AltrmiInterfaceLookupFactory) Class.forName(
  +                    "org.apache.excalibur.altrmi.client.impl.socket.SocketObjectStreamFactoryHelper")
  +                        .newInstance());
           }
  -        try {
  -            addFactory("SocketCustomStream:", (AltrmiInterfaceLookupFactory) Class.forName("org.apache.excalibur.altrmi.client.impl.socket.SocketCustomStreamFactoryHelper").newInstance());
  -        } catch (ClassNotFoundException cnfe) {
  -        } catch (InstantiationException ie) {
  -        } catch (IllegalAccessException iae) {
  +        catch (ClassNotFoundException cnfe){}
  +        catch (InstantiationException ie){}
  +        catch (IllegalAccessException iae){}
  +
  +        try
  +        {
  +            addFactory(
  +                "SocketCustomStream:",
  +                (AltrmiInterfaceLookupFactory) Class.forName(
  +                    "org.apache.excalibur.altrmi.client.impl.socket.SocketCustomStreamFactoryHelper")
  +                        .newInstance());
           }
  -        try {
  -            addFactory("RMI:", (AltrmiInterfaceLookupFactory) Class.forName("org.apache.excalibur.altrmi.client.impl.rmi.RmiFactoryHelper").newInstance());
  -        } catch (ClassNotFoundException cnfe) {
  -        } catch (InstantiationException ie) {
  -        } catch (IllegalAccessException iae) {
  +        catch (ClassNotFoundException cnfe){}
  +        catch (InstantiationException ie){}
  +        catch (IllegalAccessException iae){}
  +
  +        try
  +        {
  +            addFactory("RMI:", (AltrmiInterfaceLookupFactory) Class
  +                .forName("org.apache.excalibur.altrmi.client.impl.rmi.RmiFactoryHelper")
  +                    .newInstance());
           }
  +        catch (ClassNotFoundException cnfe){}
  +        catch (InstantiationException ie){}
  +        catch (IllegalAccessException iae){}
   
           // TODO - add the rest.
       }
  
  
  
  1.6       +10 -26    jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/DefaultProxyHelper.java
  
  Index: DefaultProxyHelper.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/DefaultProxyHelper.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DefaultProxyHelper.java	21 Apr 2002 09:42:01 -0000	1.5
  +++ DefaultProxyHelper.java	21 Apr 2002 12:19:32 -0000	1.6
  @@ -44,7 +44,7 @@
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
    * @author Vinay Chandrasekharan <a href="mailto:vinay_chandran@users.sourceforge.net">vinay_chandran@users.sourceforge.net</a>
  - * @version $Revision: 1.5 $
  + * @version $Revision: 1.6 $
    */
   public final class DefaultProxyHelper implements ProxyHelper
   {
  @@ -261,10 +261,10 @@
        * @throws Throwable
        *
        */
  -    public Object processObjectRequest(String methodSignature, Object[] args) throws Throwable
  +    public Object processObjectRequest(String methodSignature, Object[] args, Class[] argClasses) throws Throwable
       {
   
  -        marshallCorrection(methodSignature, args);
  +        marshallCorrection(methodSignature, args, argClasses);
   
           MethodRequest request = new MethodRequest(mPublishedServiceName, mObjectName,
                                                     methodSignature, args, mReferenceID, mSession);
  @@ -389,32 +389,16 @@
           }
       }
   
  -    private void marshallCorrection(String methodSignature, Object[] args)
  +    private void marshallCorrection(String methodSignature, Object[] args, Class[] argClasses)
       {
   
  -        String _methodArgumentClasses =
  -            methodSignature.substring(methodSignature.indexOf("(") + 1,
  -                                      methodSignature.lastIndexOf(")"));
  -        StringTokenizer _methodArgumentClassTokens = new StringTokenizer(_methodArgumentClasses,
  -                                                         ",");
  -
           for (int i = 0; i < args.length; i++)
           {
  -            String _sArgClass = _methodArgumentClassTokens.nextToken().trim();
  -            Class _cArgClass = null;
  -
  -            try
  -            {
  -                _cArgClass = Class.forName(_sArgClass);
  -            }
  -            catch (ClassNotFoundException cnfe)
  -            {
  -                System.err.println("Class " + _sArgClass + " Not Found");
  -            }
  +            Class argClass = argClasses[i];
   
               //check whether its one of those remote ref that we got from the server
               //TODO : todo
  -            if (args[i] instanceof AltrmiProxy)
  +            if (argClass != null && args[i] instanceof AltrmiProxy)
               {
                   AltrmiProxy proxy = (AltrmiProxy) args[i];
   
  @@ -425,7 +409,7 @@
                       args[i] = makeFacadeRefHolder(proxy, objName);
                   }
               }
  -            else if (mbIsCallbackAware)
  +            else if (argClass != null && mbIsCallbackAware)
               {
                   String publishedName =
                       mCallbackEnabledSocketCustomStreamInvocationHandler.getPublishedName(args[i]);
  @@ -438,17 +422,17 @@
                   }
                   else                                  //check whether its Publish'able
                   {
  -                    if (!_cArgClass.isInterface())    //Hey do we handle only interfaces?
  +                    if (!argClass.isInterface())    //Hey do we handle only interfaces?
                       {
                           continue;
                       }
   
  -                    if (_cArgClass.isAssignableFrom(args[i].getClass()))
  +                    if (argClass.isAssignableFrom(args[i].getClass()))
                       {
                           try
                           {
                               mCallbackEnabledSocketCustomStreamInvocationHandler
  -                                .exposeObject(args[i], _cArgClass);
  +                                .exposeObject(args[i], argClass);
                           }
                           catch (AltrmiCallbackException ace)
                           {
  
  
  
  1.2       +22 -6     jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/PerpetualConnectionPinger.java
  
  Index: PerpetualConnectionPinger.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/PerpetualConnectionPinger.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- PerpetualConnectionPinger.java	3 Apr 2002 11:29:50 -0000	1.1
  +++ PerpetualConnectionPinger.java	21 Apr 2002 12:19:32 -0000	1.2
  @@ -23,19 +23,35 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version * $Revision: 1.1 $
  + * @version * $Revision: 1.2 $
    */
  -public class PerpetualConnectionPinger extends AbstractConnectionPinger {
  +public class PerpetualConnectionPinger extends AbstractConnectionPinger
  +{
   
  -    public PerpetualConnectionPinger(int pingIntervalSeconds, int giveupIntervalSeconds) {
  +    /**
  +     * Constructor PerpetualConnectionPinger
  +     *
  +     *
  +     * @param pingIntervalSeconds
  +     * @param giveupIntervalSeconds
  +     *
  +     */
  +    public PerpetualConnectionPinger(int pingIntervalSeconds, int giveupIntervalSeconds)
  +    {
           super(pingIntervalSeconds, giveupIntervalSeconds);
       }
   
  -    public PerpetualConnectionPinger() {
  +    /**
  +     * Constructor PerpetualConnectionPinger
  +     *
  +     *
  +     */
  +    public PerpetualConnectionPinger()
  +    {
       }
   
  -    protected void ping() {
  +    protected void ping()
  +    {
           AltrmiReply ar = mAltrmiInvocationHandler.handleInvocation(new PingRequest());
       }
  -
   }
  
  
  
  1.5       +92 -56    jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/ServerClassAltrmiFactory.java
  
  Index: ServerClassAltrmiFactory.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/ServerClassAltrmiFactory.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ServerClassAltrmiFactory.java	18 Apr 2002 06:35:41 -0000	1.4
  +++ ServerClassAltrmiFactory.java	21 Apr 2002 12:19:32 -0000	1.5
  @@ -8,6 +8,8 @@
    */
   package org.apache.excalibur.altrmi.client.impl;
   
  +
  +
   import org.apache.excalibur.altrmi.common.AltrmiConnectionException;
   import org.apache.excalibur.altrmi.common.ClassReply;
   import org.apache.excalibur.altrmi.common.AltrmiReply;
  @@ -17,6 +19,7 @@
   import org.apache.excalibur.altrmi.common.NotPublishedException;
   
   import java.util.HashMap;
  +
   import java.lang.reflect.Constructor;
   import java.lang.reflect.InvocationTargetException;
   
  @@ -26,13 +29,13 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.4 $
  + * @version $Revision: 1.5 $
    */
  -public class ServerClassAltrmiFactory extends AbstractAltrmiFactory {
  +public class ServerClassAltrmiFactory extends AbstractAltrmiFactory
  +{
   
       private HashMap mPublishedServiceClassLoaders = new HashMap();
   
  -
       /**
        * Constructor ServerClassAltrmiFactory
        *
  @@ -40,91 +43,119 @@
        * @param beanOnly
        *
        */
  -    public ServerClassAltrmiFactory(boolean beanOnly) {
  +    public ServerClassAltrmiFactory(boolean beanOnly)
  +    {
           super(beanOnly);
       }
   
  -    protected Class getFacadeClass(String publishedServiceName, String objectName, boolean beanOnly) throws AltrmiConnectionException, ClassNotFoundException{
  +    protected Class getFacadeClass(
  +            String publishedServiceName, String objectName, boolean beanOnly)
  +                throws AltrmiConnectionException, ClassNotFoundException
  +    {
   
           String code = "2";
   
  -        if (beanOnly) {
  +        if (beanOnly)
  +        {
               code = "";
           }
   
  -            TransportedClassLoader tcl = null;
  -            String beanClassName = "AltrmiGenerated" + publishedServiceName + "_" + objectName;
  -            String iiClassName = "AltrmiGenerated2" + publishedServiceName + "_" + objectName;
  -            String className = "AltrmiGenerated" + code + publishedServiceName + "_" + objectName;
  -
  -            if (mPublishedServiceClassLoaders.containsKey(beanClassName)) {
  -                tcl = (TransportedClassLoader) mPublishedServiceClassLoaders.get(beanClassName);
  -            } else {
  -                ClassReply cr = null;
  -
  -                try {
  -                    AltrmiReply ar =
  -                        mHostContext.getInvocationHandler()
  -                            .handleInvocation(new ClassRequest(publishedServiceName, objectName));
  -
  -                    if (ar.getReplyCode() >= AltrmiReply.PROBLEMREPLY) {
  -                        if (ar instanceof RequestFailedReply) {
  -                            throw new AltrmiConnectionException(((RequestFailedReply) ar)
  -                                .getFailureReason());
  -                        } else if (ar instanceof ClassRetrievalFailedReply) {
  -                            ClassRetrievalFailedReply crfr = (ClassRetrievalFailedReply) ar;
  -
  -                            throw new AltrmiConnectionException("Class Retrieval Failed - " + crfr.getReason());
  -                        }    //TODO others.
  +        TransportedClassLoader tcl = null;
  +        String beanClassName = "AltrmiGenerated" + publishedServiceName + "_" + objectName;
  +        String iiClassName = "AltrmiGenerated2" + publishedServiceName + "_" + objectName;
  +        String className = "AltrmiGenerated" + code + publishedServiceName + "_" + objectName;
  +
  +        if (mPublishedServiceClassLoaders.containsKey(beanClassName))
  +        {
  +            tcl = (TransportedClassLoader) mPublishedServiceClassLoaders.get(beanClassName);
  +        }
  +        else
  +        {
  +            ClassReply cr = null;
  +
  +            try
  +            {
  +                AltrmiReply ar =
  +                    mHostContext.getInvocationHandler()
  +                        .handleInvocation(new ClassRequest(publishedServiceName, objectName));
  +
  +                if (ar.getReplyCode() >= AltrmiReply.PROBLEMREPLY)
  +                {
  +                    if (ar instanceof RequestFailedReply)
  +                    {
  +                        throw new AltrmiConnectionException(((RequestFailedReply) ar)
  +                            .getFailureReason());
                       }
  -
  -                    cr = (ClassReply) ar;
  -                } catch (NotPublishedException npe) {
  -                    throw new AltrmiConnectionException("Service " + publishedServiceName
  -                                                        + " not published on Server");
  +                    else if (ar instanceof ClassRetrievalFailedReply)
  +                    {
  +                        ClassRetrievalFailedReply crfr = (ClassRetrievalFailedReply) ar;
  +
  +                        throw new AltrmiConnectionException("Class Retrieval Failed - "
  +                                                            + crfr.getReason());
  +                    }    //TODO others.
                   }
   
  -                tcl = new TransportedClassLoader(mHostContext.getInvocationHandler().getInterfacesClassLoader());
  +                cr = (ClassReply) ar;
  +            }
  +            catch (NotPublishedException npe)
  +            {
  +                throw new AltrmiConnectionException("Service " + publishedServiceName
  +                                                    + " not published on Server");
  +            }
   
  -                tcl.add(beanClassName, cr.getBeanClassBytes());
  +            tcl = new TransportedClassLoader(mHostContext.getInvocationHandler()
  +                .getInterfacesClassLoader());
   
  -                try {
  -                    byte[] bytes = cr.getInterfaceImplClassBytes();
  +            tcl.add(beanClassName, cr.getBeanClassBytes());
   
  -                    tcl.add(iiClassName, bytes);
  -                } catch (NoClassDefFoundError ncdfe) {
  +            try
  +            {
  +                byte[] bytes = cr.getInterfaceImplClassBytes();
   
  -                    // do nothing.  It's a fundamental error to have no interfaces
  -                    // on theclient side.  This is a development issue or the user
  -                    // is poking with a smart tool like beanshell which can use
  -                    // introspection to invoke methods.
  -                }
  +                tcl.add(iiClassName, bytes);
  +            }
  +            catch (NoClassDefFoundError ncdfe)
  +            {
   
  -                mPublishedServiceClassLoaders.put(beanClassName, tcl);
  +                // do nothing.  It's a fundamental error to have no interfaces
  +                // on theclient side.  This is a development issue or the user
  +                // is poking with a smart tool like beanshell which can use
  +                // introspection to invoke methods.
               }
  -            return tcl.loadClass(className);
  +
  +            mPublishedServiceClassLoaders.put(beanClassName, tcl);
  +        }
  +
  +        return tcl.loadClass(className);
       }
   
       protected Object getInstance(
               String publishedServiceName, String objectName, DefaultProxyHelper proxyHelper, boolean beanOnly)
  -                throws AltrmiConnectionException {
  +                throws AltrmiConnectionException
  +    {
   
           String code = "2";
   
  -        if (beanOnly) {
  +        if (beanOnly)
  +        {
               code = "";
           }
   
  -        try {
  +        try
  +        {
               Class clazz = getFacadeClass(publishedServiceName, objectName, beanOnly);
               Constructor[] constructors = clazz.getConstructors();
               Object retVal = constructors[0].newInstance(new Object[]{ proxyHelper });
   
               return retVal;
  -        } catch (InvocationTargetException ite) {
  +        }
  +        catch (InvocationTargetException ite)
  +        {
               throw new AltrmiConnectionException("Generated class not instantiated : "
                                                   + ite.getTargetException().getMessage());
  -        } catch (ClassNotFoundException cnfe) {
  +        }
  +        catch (ClassNotFoundException cnfe)
  +        {
               System.out.println("---**");
               cnfe.printStackTrace();
               System.out.println("---**");
  @@ -133,10 +164,14 @@
   
               throw new AltrmiConnectionException("Generated class not found during lookup : "
                                                   + cnfe.getMessage());
  -        } catch (InstantiationException ie) {
  +        }
  +        catch (InstantiationException ie)
  +        {
               throw new AltrmiConnectionException(
                   "Generated class not instantiable during lookup : " + ie.getMessage());
  -        } catch (IllegalAccessException iae) {
  +        }
  +        catch (IllegalAccessException iae)
  +        {
               throw new AltrmiConnectionException(
                   "Illegal access to generated class during lookup : " + iae.getMessage());
           }
  @@ -147,7 +182,8 @@
        *
        *
        */
  -    public void close() {
  +    public void close()
  +    {
           mHostContext.getInvocationHandler().close();
       }
   }
  
  
  
  1.2       +7 -4      jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/TransportedClassLoader.java
  
  Index: TransportedClassLoader.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/TransportedClassLoader.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TransportedClassLoader.java	3 Apr 2002 11:29:50 -0000	1.1
  +++ TransportedClassLoader.java	21 Apr 2002 12:19:32 -0000	1.2
  @@ -15,9 +15,10 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.1 $
  + * @version $Revision: 1.2 $
    */
  -public final class TransportedClassLoader extends ClassLoader {
  +public final class TransportedClassLoader extends ClassLoader
  +{
   
       /**
        * Constructor TransportedClassLoader
  @@ -26,7 +27,8 @@
        * @param parent
        *
        */
  -    public TransportedClassLoader(ClassLoader parent) {
  +    public TransportedClassLoader(ClassLoader parent)
  +    {
           super(parent);
       }
   
  @@ -38,7 +40,8 @@
        * @param classBytes
        *
        */
  -    public void add(String className, byte[] classBytes) {
  +    public void add(String className, byte[] classBytes)
  +    {
           this.defineClass(className, classBytes, 0, classBytes.length);
       }
   }
  
  
  
  1.3       +5 -4      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.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- CallbackEnabledSocketCustomStreamInvocationHandler.java	21 Apr 2002 09:42:01 -0000	1.2
  +++ CallbackEnabledSocketCustomStreamInvocationHandler.java	21 Apr 2002 12:19:32 -0000	1.3
  @@ -24,7 +24,7 @@
    * Class CallbackEnabledSocketCustomStreamInvocationHandler
    *
    * @author <a href="mailto:vinayc77@yahoo.com">Vinay Chandran</a>
  - * @version $Revision: 1.2 $
  + * @version $Revision: 1.3 $
    */
   public final class CallbackEnabledSocketCustomStreamInvocationHandler
           extends AbstractSocketStreamInvocationHandler {
  @@ -38,7 +38,7 @@
           super(host, port, classLoader);
       }
   
  -	/* 
  +	/*
   	 * @see AbstractSocketStreamInvocationHandler#createClientStreamReadWriter(InputStream, OutputStream)
   	 */
       protected ClientStreamReadWriter createClientStreamReadWriter(
  @@ -50,7 +50,7 @@
           return mCallbackEnabledClientCustomStreamReadWriter;
       }
   
  -	
  +
   	public boolean exposeObject(Object tobeExposedObject,Class tobeExposedInterface) throws AltrmiCallbackException
   	{
   		return mCallbackEnabledClientCustomStreamReadWriter.exposeObject(tobeExposedObject,tobeExposedInterface);
  @@ -60,7 +60,8 @@
   		return mCallbackEnabledClientCustomStreamReadWriter.getPublishedName(tobeExposedObject);
   	}
   
  -    public boolean isCallbackEnabled() {
  +    public boolean isCallbackEnabled()
  +    {
           return true;
       }
   
  
  
  
  1.2       +2 -2      jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/direct/AbstractDirectInvocationHandler.java
  
  Index: AbstractDirectInvocationHandler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/direct/AbstractDirectInvocationHandler.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AbstractDirectInvocationHandler.java	3 Apr 2002 11:29:50 -0000	1.1
  +++ AbstractDirectInvocationHandler.java	21 Apr 2002 12:19:32 -0000	1.2
  @@ -33,7 +33,7 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.1 $
  + * @version $Revision: 1.2 $
    */
   public abstract class AbstractDirectInvocationHandler extends AbstractClientInvocationHandler
   {
  @@ -98,7 +98,7 @@
                   ioe.printStackTrace();
               }
   
  -            //if ((reply instanceof ProblemReply)) { // slower by 11%
  +            //if ((reply instanceof ProblemReply))  // slower by 11%
               if (reply.getReplyCode() >= 100)
               {
                   if (reply instanceof TryLaterReply)
  
  
  
  1.2       +1 -4      jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/direct/DirectHostContext.java
  
  Index: DirectHostContext.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/direct/DirectHostContext.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DirectHostContext.java	3 Apr 2002 11:29:50 -0000	1.1
  +++ DirectHostContext.java	21 Apr 2002 12:19:32 -0000	1.2
  @@ -20,7 +20,7 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.1 $
  + * @version $Revision: 1.2 $
    */
   public class DirectHostContext extends AbstractHostContext
   {
  @@ -39,7 +39,4 @@
       {
           super(new DirectInvocationHandler(altrmiInvocationHandler));
       }
  -
  -    //public void setAltrmiConnectionListener(AltrmiConnectionListener altrmiConnectionListener) {
  -    //}
   }
  
  
  
  1.3       +3 -2      jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/direct/DirectInvocationHandler.java
  
  Index: DirectInvocationHandler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/direct/DirectInvocationHandler.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- DirectInvocationHandler.java	21 Apr 2002 09:42:01 -0000	1.2
  +++ DirectInvocationHandler.java	21 Apr 2002 12:19:32 -0000	1.3
  @@ -32,7 +32,7 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.2 $
  + * @version $Revision: 1.3 $
    */
   public final class DirectInvocationHandler extends AbstractDirectInvocationHandler
   {
  @@ -59,7 +59,8 @@
           return mAltrmiInvocationHandler.handleInvocation(request);
       }
   
  -    public boolean isCallbackEnabled() {
  +    public boolean isCallbackEnabled()
  +    {
           return false;
       }
   
  
  
  
  1.3       +10 -2     jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/direct/DirectMarshalledInvocationHandler.java
  
  Index: DirectMarshalledInvocationHandler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/direct/DirectMarshalledInvocationHandler.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- DirectMarshalledInvocationHandler.java	21 Apr 2002 09:42:01 -0000	1.2
  +++ DirectMarshalledInvocationHandler.java	21 Apr 2002 12:19:32 -0000	1.3
  @@ -35,7 +35,7 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.2 $
  + * @version $Revision: 1.3 $
    */
   public final class DirectMarshalledInvocationHandler extends AbstractDirectInvocationHandler
   {
  @@ -116,7 +116,15 @@
           return mInterfacesClassLoader;
       }
   
  -    public boolean isCallbackEnabled() {
  +    /**
  +     * Method isCallbackEnabled
  +     *
  +     *
  +     * @return
  +     *
  +     */
  +    public boolean isCallbackEnabled()
  +    {
           return false;
       }
   
  
  
  
  1.3       +10 -2     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.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- RotatingMultipleInvocationHandler.java	21 Apr 2002 09:42:01 -0000	1.2
  +++ RotatingMultipleInvocationHandler.java	21 Apr 2002 12:19:32 -0000	1.3
  @@ -23,7 +23,7 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.2 $
  + * @version $Revision: 1.3 $
    */
   public class RotatingMultipleInvocationHandler extends AbstractMultipleInvocationHandler
   {
  @@ -116,7 +116,15 @@
           }
       }
   
  -    public boolean isCallbackEnabled() {
  +    /**
  +     * Method isCallbackEnabled
  +     *
  +     *
  +     * @return
  +     *
  +     */
  +    public boolean isCallbackEnabled()
  +    {
           return false;
       }
   
  
  
  
  1.3       +10 -2     jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/piped/AbstractPipedStreamInvocationHandler.java
  
  Index: AbstractPipedStreamInvocationHandler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/piped/AbstractPipedStreamInvocationHandler.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- AbstractPipedStreamInvocationHandler.java	21 Apr 2002 09:42:01 -0000	1.2
  +++ AbstractPipedStreamInvocationHandler.java	21 Apr 2002 12:19:32 -0000	1.3
  @@ -31,7 +31,7 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.2 $
  + * @version $Revision: 1.3 $
    */
   public abstract class AbstractPipedStreamInvocationHandler extends StreamInvocationHandler
   {
  @@ -84,7 +84,15 @@
       protected abstract ClientStreamReadWriter createClientStreamReadWriter(
           InputStream in, OutputStream out) throws IOException;
   
  -    public boolean isCallbackEnabled() {
  +    /**
  +     * Method isCallbackEnabled
  +     *
  +     *
  +     * @return
  +     *
  +     */
  +    public boolean isCallbackEnabled()
  +    {
           return false;
       }
   
  
  
  
  1.3       +10 -2     jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/rmi/RmiInvocationHandler.java
  
  Index: RmiInvocationHandler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/rmi/RmiInvocationHandler.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- RmiInvocationHandler.java	21 Apr 2002 09:42:02 -0000	1.2
  +++ RmiInvocationHandler.java	21 Apr 2002 12:19:33 -0000	1.3
  @@ -41,7 +41,7 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.2 $
  + * @version $Revision: 1.3 $
    */
   public final class RmiInvocationHandler extends AbstractClientInvocationHandler
   {
  @@ -231,7 +231,15 @@
           return mLastRealRequest;
       }
   
  -    public boolean isCallbackEnabled() {
  +    /**
  +     * Method isCallbackEnabled
  +     *
  +     *
  +     * @return
  +     *
  +     */
  +    public boolean isCallbackEnabled()
  +    {
           return false;
       }
   
  
  
  
  1.3       +10 -2     jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/stream/StreamInvocationHandler.java
  
  Index: StreamInvocationHandler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/stream/StreamInvocationHandler.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- StreamInvocationHandler.java	21 Apr 2002 09:42:02 -0000	1.2
  +++ StreamInvocationHandler.java	21 Apr 2002 12:19:33 -0000	1.3
  @@ -38,7 +38,7 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.2 $
  + * @version $Revision: 1.3 $
    */
   public abstract class StreamInvocationHandler extends AbstractClientInvocationHandler
   {
  @@ -230,7 +230,15 @@
           return mLastRealRequest;
       }
   
  -    public boolean isCallbackEnabled() {
  +    /**
  +     * Method isCallbackEnabled
  +     *
  +     *
  +     * @return
  +     *
  +     */
  +    public boolean isCallbackEnabled()
  +    {
           return false;
       }
   }
  
  
  
  1.2       +3 -2      jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/common/AltrmiCallbackException.java
  
  Index: AltrmiCallbackException.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/common/AltrmiCallbackException.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AltrmiCallbackException.java	10 Apr 2002 22:46:18 -0000	1.1
  +++ AltrmiCallbackException.java	21 Apr 2002 12:19:33 -0000	1.2
  @@ -16,7 +16,7 @@
    *
    *
    * @author <a href="mailto:vinayc77@yahoo.com">Vinay Chandran</a>
  - * @version $Revision: 1.1 $
  + * @version $Revision: 1.2 $
    */
   public class AltrmiCallbackException extends Exception {
   
  @@ -27,7 +27,8 @@
        * @param s
        *
        */
  -    public AltrmiCallbackException (String s) {
  +    public AltrmiCallbackException (String s)
  +    {
           super(s);
       }
   }
  
  
  
  1.4       +3 -2      jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/common/ClassRetrievalFailedReply.java
  
  Index: ClassRetrievalFailedReply.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/common/ClassRetrievalFailedReply.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ClassRetrievalFailedReply.java	10 Apr 2002 22:33:10 -0000	1.3
  +++ ClassRetrievalFailedReply.java	21 Apr 2002 12:19:33 -0000	1.4
  @@ -18,7 +18,7 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.3 $
  + * @version $Revision: 1.4 $
    */
   public final class ClassRetrievalFailedReply extends AltrmiReply
   {
  @@ -41,7 +41,8 @@
           mReason = reason;
       }
   
  -    public String getReason() {
  +    public String getReason()
  +    {
           return mReason;
       }
   
  
  
  
  1.2       +11 -5     jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/common/ExposedObjectProxy.java
  
  Index: ExposedObjectProxy.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/common/ExposedObjectProxy.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ExposedObjectProxy.java	10 Apr 2002 22:46:18 -0000	1.1
  +++ ExposedObjectProxy.java	21 Apr 2002 12:19:33 -0000	1.2
  @@ -20,7 +20,7 @@
    * when sent across to the server as the argument.
    *
    * @author <a href="mailto:vinayc77@yahoo.com">Vinay Chandran</a>
  - * @version $Revision: 1.1 $
  + * @version $Revision: 1.2 $
    */
   public final class ExposedObjectProxy extends AltrmiReply {
   
  @@ -35,7 +35,8 @@
        * @param interfaceImplClassBytes
        *
        */
  -    public ExposedObjectProxy(String publishedName) {
  +    public ExposedObjectProxy(String publishedName)
  +    {
   		this.mPublishedName=publishedName;
       }
   
  @@ -44,7 +45,10 @@
        *
        *
        */
  -    public ExposedObjectProxy() {}    // for Externalization
  +    public ExposedObjectProxy()
  +    {
  +         // for Externalization
  +    }
   
   
       /**
  @@ -54,7 +58,8 @@
        * @return
        *
        */
  -    public String getPublishedName() {
  +    public String getPublishedName()
  +    {
           return mPublishedName;
       }
   
  @@ -65,7 +70,8 @@
        * @return
        *
        */
  -    public int getReplyCode() {
  +    public int getReplyCode()
  +    {
           return CLASSREPLY;
       }
   
  
  
  
  1.5       +6 -2      jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/generator/ProxyGeneratorImpl.java
  
  Index: ProxyGeneratorImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/generator/ProxyGeneratorImpl.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ProxyGeneratorImpl.java	21 Apr 2002 09:42:02 -0000	1.4
  +++ ProxyGeneratorImpl.java	21 Apr 2002 12:19:33 -0000	1.5
  @@ -32,7 +32,7 @@
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
    * @author Mike Miller of www.gac.com
  - * @version $Revision: 1.4 $
  + * @version $Revision: 1.5 $
    */
   public class ProxyGeneratorImpl extends AbstractMethodHandler implements ProxyGenerator
   {
  @@ -330,6 +330,9 @@
                       mClassSource.println("{");
                       mClassSource.println("    Object[] args = new Object[" + argTypes.length
                                            + "];");
  +                    mClassSource.println("    Class[] argClasses = new Class[" + argTypes.length
  +                                         + "];");
  +
   
                       for (int i = 0; i < argTypes.length; i++)
                       {
  @@ -369,7 +372,7 @@
                           {
                               mClassSource.println(
                                   "      Object retVal = mProxyHelper.processObjectRequest(\""
  -                                + methodSignature.toString() + "\",args);");
  +                                + methodSignature.toString() + "\",args,argClasses);");
                               generateReturnLine(rClass);
                           }
                       }
  @@ -555,6 +558,7 @@
           else
           {
               mClassSource.println("    args[" + i + "] = v" + i + ";");
  +            mClassSource.println("    argClasses[" + i + "] = " + clazz.getName() + ".class;");
           }
       }
   
  
  
  
  1.2       +0 -9      jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/javacompiler/JavaCompiler.java
  
  Index: JavaCompiler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/javacompiler/JavaCompiler.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- JavaCompiler.java	3 Apr 2002 11:29:54 -0000	1.1
  +++ JavaCompiler.java	21 Apr 2002 12:19:33 -0000	1.2
  @@ -141,15 +141,6 @@
           this.outdir = outdir;
       }
   
  -    // Removed - we manage ourself the buffer and return it as string.
  -    // It can be added later if someone really need that.
  -    //     /**
  -    //      * Set where you want the compiler output (messages) to go
  -    //      */
  -    //     public void setMsgOutput(OutputStream out) {
  -    //       this.out = out;
  -    //     }
  -
       /**
        * Method getCompilerMessage
        *
  
  
  
  1.2       +0 -4      jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/javacompiler/SunJavaCompiler.java
  
  Index: SunJavaCompiler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/javacompiler/SunJavaCompiler.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SunJavaCompiler.java	3 Apr 2002 11:29:54 -0000	1.1
  +++ SunJavaCompiler.java	21 Apr 2002 12:19:33 -0000	1.2
  @@ -103,10 +103,6 @@
               args = new String[]{ "-classpath", classpath, "-d", outdir, source };
           }
   
  -        //for (int i = 0; i < args.length; i++) {
  -        //    String arg = args[i];
  -        //    System.out.println("Arg " + i + "=" + arg);
  -        //}
           return compiler.compile(args);
       }
   }
  
  
  
  1.3       +52 -24    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.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- AbstractServer.java	10 Apr 2002 23:36:58 -0000	1.2
  +++ AbstractServer.java	21 Apr 2002 12:19:33 -0000	1.3
  @@ -36,10 +36,11 @@
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
    * @author Vinay Chandrasekharan <a href="mailto:vinay_chandran@users.sourceforge.net">vinay_chandran@users.sourceforge.net</a>
  - * @version $Revision: 1.2 $
  + * @version $Revision: 1.3 $
    */
   public abstract class AbstractServer extends AbstractMethodHandler
  -        implements AltrmiServer, LogEnabled {
  +        implements AltrmiServer, LogEnabled
  +{
   
       private Vector mConnections = new Vector();
       protected InvocationHandlerAdapter mInovcationHandlerAdapter;
  @@ -55,7 +56,8 @@
        *
        *
        */
  -    public AbstractServer() {
  +    public AbstractServer()
  +    {
           mInovcationHandlerAdapter = new InvocationHandlerAdapter();
       }
   
  @@ -66,7 +68,8 @@
        * @param inovcationHandlerAdapter
        *
        */
  -    public AbstractServer(InvocationHandlerAdapter inovcationHandlerAdapter) {
  +    public AbstractServer(InvocationHandlerAdapter inovcationHandlerAdapter)
  +    {
           mInovcationHandlerAdapter = inovcationHandlerAdapter;
       }
   
  @@ -77,14 +80,26 @@
        * @param logger
        *
        */
  -    public void enableLogging(Logger logger) {
  +    public void enableLogging(Logger logger)
  +    {
           mLogger = logger;
       }
   
  -    public synchronized Logger getLogger() {
  -        if (mLogger == null) {
  +    /**
  +     * Method getLogger
  +     *
  +     *
  +     * @return
  +     *
  +     */
  +    public synchronized Logger getLogger()
  +    {
  +
  +        if (mLogger == null)
  +        {
               mLogger = new ConsoleLogger();
           }
  +
           return mLogger;
       }
   
  @@ -96,7 +111,8 @@
        *
        *
        */
  -    public final void setClassRetriever(ClassRetriever classRetriever) {
  +    public final void setClassRetriever(ClassRetriever classRetriever)
  +    {
           mInovcationHandlerAdapter.setClassRetriever(classRetriever);
       }
   
  @@ -108,7 +124,8 @@
        *
        *
        */
  -    public final void setAuthenticator(AltrmiAuthenticator altrmiAuthenticator) {
  +    public final void setAuthenticator(AltrmiAuthenticator altrmiAuthenticator)
  +    {
           mInovcationHandlerAdapter.setAuthenticator(altrmiAuthenticator);
       }
   
  @@ -121,7 +138,8 @@
        * @return
        *
        */
  -    public AltrmiReply handleInvocation(AltrmiRequest request) {
  +    public AltrmiReply handleInvocation(AltrmiRequest request)
  +    {
           return mInovcationHandlerAdapter.handleInvocation(request);
       }
   
  @@ -129,7 +147,8 @@
        * Method suspend
        *
        */
  -    public void suspend() {
  +    public void suspend()
  +    {
           mInovcationHandlerAdapter.suspend();
       }
   
  @@ -137,7 +156,8 @@
        * Method resume
        *
        */
  -    public void resume() {
  +    public void resume()
  +    {
           mInovcationHandlerAdapter.resume();
       }
   
  @@ -145,7 +165,8 @@
        * Method connectionStart
        *
        */
  -    protected void connectionStart(AltrmiServerConnection altrmiConnection) {
  +    protected void connectionStart(AltrmiServerConnection altrmiConnection)
  +    {
           mConnections.add(altrmiConnection);
       }
   
  @@ -153,15 +174,18 @@
        * Method connectionCompleted
        *
        */
  -    protected void connectionCompleted(AltrmiServerConnection altrmiConnection) {
  +    protected void connectionCompleted(AltrmiServerConnection altrmiConnection)
  +    {
           mConnections.remove(altrmiConnection);
       }
   
  -    protected void killAllConnections() {
  +    protected void killAllConnections()
  +    {
   
           Iterator it = mConnections.iterator();
   
  -        while (it.hasNext()) {
  +        while (it.hasNext())
  +        {
               AltrmiServerConnection asc = (AltrmiServerConnection) it.next();
   
               asc.endConnection();
  @@ -178,7 +202,8 @@
        *
        */
       public void publish(Object impl, String asName, Class interfaceToExpose)
  -            throws PublicationException {
  +            throws PublicationException
  +    {
           mInovcationHandlerAdapter.publish(impl, asName, interfaceToExpose);
       }
   
  @@ -192,7 +217,8 @@
        *
        */
       public void publish(Object impl, String asName, PublicationDescription publicationDescription)
  -            throws PublicationException {
  +            throws PublicationException
  +    {
           mInovcationHandlerAdapter.publish(impl, asName, publicationDescription);
       }
   
  @@ -204,7 +230,8 @@
        * @param asName
        *
        */
  -    public void unPublish(Object impl, String asName) throws PublicationException {
  +    public void unPublish(Object impl, String asName) throws PublicationException
  +    {
           mInovcationHandlerAdapter.unPublish(impl, asName);
       }
   
  @@ -218,7 +245,8 @@
        *
        */
       public void replacePublished(Object oldImpl, String asName, Object withImpl)
  -            throws PublicationException {
  +            throws PublicationException
  +    {
           mInovcationHandlerAdapter.replacePublished(oldImpl, asName, withImpl);
       }
   
  @@ -232,8 +260,8 @@
        * @return
        *
        */
  -    public MethodInvocationHandler getMethodInvocationHandler(MethodRequest mr,
  -                                                              String objectName) {
  +    public MethodInvocationHandler getMethodInvocationHandler(MethodRequest mr, String objectName)
  +    {
           return mInovcationHandlerAdapter.getMethodInvocationHandler(mr, objectName);
       }
   
  @@ -246,8 +274,8 @@
        * @return
        *
        */
  -    public MethodInvocationHandler getMethodInvocationHandler(String publishedName) {
  +    public MethodInvocationHandler getMethodInvocationHandler(String publishedName)
  +    {
           return mInovcationHandlerAdapter.getMethodInvocationHandler(publishedName);
       }
  -
   }
  
  
  
  1.2       +10 -5     jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/AltrmiSession.java
  
  Index: AltrmiSession.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/AltrmiSession.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AltrmiSession.java	3 Apr 2002 11:29:55 -0000	1.1
  +++ AltrmiSession.java	21 Apr 2002 12:19:33 -0000	1.2
  @@ -18,9 +18,10 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.1 $
  + * @version $Revision: 1.2 $
    */
  -public class AltrmiSession {
  +public class AltrmiSession
  +{
   
       private Long mSession;
       private HashMap mBeansInUse = new HashMap();
  @@ -32,7 +33,8 @@
        * @param session
        *
        */
  -    public AltrmiSession(Long session) {
  +    public AltrmiSession(Long session)
  +    {
           mSession = session;
       }
   
  @@ -43,7 +45,8 @@
        * @return
        *
        */
  -    public Long getSession() {
  +    public Long getSession()
  +    {
           return mSession;
       }
   
  @@ -55,7 +58,8 @@
        * @param bean
        *
        */
  -    public void addBeanInUse(Long referenceID, Object bean) {
  +    public void addBeanInUse(Long referenceID, Object bean)
  +    {
           mBeansInUse.put(referenceID, bean);
       }
   
  @@ -66,7 +70,8 @@
        * @param referenceID
        *
        */
  -    public void removeBeanInUse(Long referenceID) {
  +    public void removeBeanInUse(Long referenceID)
  +    {
           mBeansInUse.remove(referenceID);
       }
   }
  
  
  
  1.2       +7 -5      jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/DefaultAuthenticator.java
  
  Index: DefaultAuthenticator.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/DefaultAuthenticator.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DefaultAuthenticator.java	3 Apr 2002 11:29:55 -0000	1.1
  +++ DefaultAuthenticator.java	21 Apr 2002 12:19:33 -0000	1.2
  @@ -20,9 +20,10 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.1 $
  + * @version $Revision: 1.2 $
    */
  -public class DefaultAuthenticator implements AltrmiAuthenticator {
  +public class DefaultAuthenticator implements AltrmiAuthenticator
  +{
   
       /**
        * Method checkAuthority
  @@ -31,13 +32,13 @@
        * @param auth
        * @param publishedService
        *
  -     * @return
        *
        * @throws AltrmiAuthenticationException
        *
        */
       public void checkAuthority(AltrmiAuthentication auth, String publishedService)
  -            throws AltrmiAuthenticationException {
  +            throws AltrmiAuthenticationException
  +    {
       }
   
       /**
  @@ -47,7 +48,8 @@
        * @return
        *
        */
  -    public String getTextToSign() {
  +    public String getTextToSign()
  +    {
           return "random" + Math.random() + "-" + Math.random() + "-" + Math.random() + "!";
       }
   }
  
  
  
  1.3       +19 -10    jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/ServerCustomStreamReadWriter.java
  
  Index: ServerCustomStreamReadWriter.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/ServerCustomStreamReadWriter.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ServerCustomStreamReadWriter.java	6 Apr 2002 11:44:23 -0000	1.2
  +++ ServerCustomStreamReadWriter.java	21 Apr 2002 12:19:33 -0000	1.3
  @@ -25,29 +25,34 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.2 $
  + * @version $Revision: 1.3 $
    */
  -public class ServerCustomStreamReadWriter extends ServerStreamReadWriter {
  +public class ServerCustomStreamReadWriter extends ServerStreamReadWriter
  +{
   
       private DataInputStream mDataInputStream;
       private DataOutputStream mDataOutputStream;
   
  -    protected void initialize() throws IOException {
  +    protected void initialize() throws IOException
  +    {
           mDataInputStream = new DataInputStream(mInputStream);
           mDataOutputStream = new DataOutputStream(new BufferedOutputStream(mOutputStream));
       }
   
       protected synchronized AltrmiRequest writeReplyAndGetRequest(AltrmiReply altrmiReply)
  -            throws IOException, ClassNotFoundException {
  +            throws IOException, ClassNotFoundException
  +    {
   
  -        if (altrmiReply != null) {
  +        if (altrmiReply != null)
  +        {
               writeReply(altrmiReply);
           }
   
           return readRequest();
       }
   
  -    private void writeReply(AltrmiReply altrmiReply) throws IOException {
  +    private void writeReply(AltrmiReply altrmiReply) throws IOException
  +    {
   
           byte[] aBytes = SerializationHelper.getBytesFromInstance(altrmiReply);
   
  @@ -56,19 +61,24 @@
           mDataOutputStream.flush();
       }
   
  -    private AltrmiRequest readRequest() throws IOException, ClassNotFoundException {
  +    private AltrmiRequest readRequest() throws IOException, ClassNotFoundException
  +    {
   
           int byteArraySize = mDataInputStream.readInt();
           byte[] byteArray = new byte[byteArraySize];
           int pos = 0;
           int cnt = 0;
  +
           // Loop here until the entire array has been read in.
  -        while( pos < byteArraySize )
  +        while (pos < byteArraySize)
           {
  -            int read = mDataInputStream.read( byteArray, pos, byteArraySize - pos );
  +            int read = mDataInputStream.read(byteArray, pos, byteArraySize - pos);
  +
               pos += read;
  +
               cnt++;
           }
  +
           /*
           if (cnt > 1)
           {
  @@ -76,7 +86,6 @@
                   " reads to read all, " + byteArraySize + ", required bytes." );
           }
           */
  -
           return (AltrmiRequest) SerializationHelper.getInstanceFromBytes(byteArray);
       }
   }
  
  
  
  1.2       +50 -17    jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/ServerObjectStreamReadWriter.java
  
  Index: ServerObjectStreamReadWriter.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/ServerObjectStreamReadWriter.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ServerObjectStreamReadWriter.java	3 Apr 2002 11:29:55 -0000	1.1
  +++ ServerObjectStreamReadWriter.java	21 Apr 2002 12:19:33 -0000	1.2
  @@ -18,6 +18,7 @@
   import java.io.InputStream;
   import java.io.OutputStream;
   import java.io.IOException;
  +
   import java.lang.reflect.Constructor;
   
   
  @@ -26,47 +27,78 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.1 $
  + * @version $Revision: 1.2 $
    */
  -public class ServerObjectStreamReadWriter extends ServerStreamReadWriter {
  +public class ServerObjectStreamReadWriter extends ServerStreamReadWriter
  +{
   
       private ObjectInputStream mObjectInputStream;
       private ObjectOutputStream mObjectOutputStream;
       private String mObjectOutputStreamClassName = "java.io.ObjectOutputStream";
       private String mObjectInputStreamClassName = "java.io.ObjectInputStream";
   
  -    public ServerObjectStreamReadWriter() {
  +    /**
  +     * Constructor ServerObjectStreamReadWriter
  +     *
  +     *
  +     */
  +    public ServerObjectStreamReadWriter()
  +    {
       }
   
  -    public ServerObjectStreamReadWriter(String objectOutputStreamClassName, String objectInputStreamClassName) {
  +    /**
  +     * Constructor ServerObjectStreamReadWriter
  +     *
  +     *
  +     * @param objectOutputStreamClassName
  +     * @param objectInputStreamClassName
  +     *
  +     */
  +    public ServerObjectStreamReadWriter(String objectOutputStreamClassName,
  +                                        String objectInputStreamClassName)
  +    {
           mObjectOutputStreamClassName = objectOutputStreamClassName;
           mObjectInputStreamClassName = objectInputStreamClassName;
       }
   
  -    protected void initialize() throws IOException {
  -        try {
  +    protected void initialize() throws IOException
  +    {
  +
  +        try
  +        {
               Class clazz = Class.forName(mObjectInputStreamClassName);
  -            Constructor con = clazz.getConstructor(new Class[] {InputStream.class});
  -            mObjectInputStream = (ObjectInputStream) con.newInstance(new Object[] {mInputStream});
  +            Constructor con = clazz.getConstructor(new Class[]{ InputStream.class });
   
  +            mObjectInputStream = (ObjectInputStream) con.newInstance(new Object[]{
  +                mInputStream });
               clazz = Class.forName(mObjectOutputStreamClassName);
  -            con = clazz.getConstructor(new Class[] {OutputStream.class});
  -            mObjectOutputStream = (ObjectOutputStream) con.newInstance(new Object[] {mOutputStream});
  -        } catch (Exception e) {
  -            e.printStackTrace();
  -            throw new IOException("Some problem instantiating ObjectStream classes: " + e.getMessage());
  +            con = clazz.getConstructor(new Class[]{ OutputStream.class });
  +            mObjectOutputStream = (ObjectOutputStream) con.newInstance(new Object[]{
  +                mOutputStream });
           }
  +        catch (Exception e)
  +        {
  +            e.printStackTrace();
   
  +            throw new IOException("Some problem instantiating ObjectStream classes: "
  +                                  + e.getMessage());
  +        }
       }
   
  -    protected synchronized AltrmiRequest writeReplyAndGetRequest(AltrmiReply altrmiReply) throws IOException, ClassNotFoundException {
  -        if (altrmiReply != null) {
  +    protected synchronized AltrmiRequest writeReplyAndGetRequest(AltrmiReply altrmiReply)
  +            throws IOException, ClassNotFoundException
  +    {
  +
  +        if (altrmiReply != null)
  +        {
               writeReply(altrmiReply);
           }
  +
           return readRequest();
       }
   
  -    private void writeReply(AltrmiReply altrmiReply) throws IOException {
  +    private void writeReply(AltrmiReply altrmiReply) throws IOException
  +    {
   
           mObjectOutputStream.writeObject(altrmiReply);
           mObjectOutputStream.flush();
  @@ -74,7 +106,8 @@
           //mObjectOutputStream.reset();
       }
   
  -    private AltrmiRequest readRequest() throws IOException, ClassNotFoundException {
  +    private AltrmiRequest readRequest() throws IOException, ClassNotFoundException
  +    {
           return (AltrmiRequest) mObjectInputStream.readObject();
       }
   }
  
  
  
  1.2       +5 -3      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.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ServerStreamReadWriter.java	3 Apr 2002 11:29:55 -0000	1.1
  +++ ServerStreamReadWriter.java	21 Apr 2002 12:19:33 -0000	1.2
  @@ -25,9 +25,10 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.1 $
  + * @version $Revision: 1.2 $
    */
  -public abstract class ServerStreamReadWriter {
  +public abstract class ServerStreamReadWriter
  +{
   
       protected InputStream mInputStream;
       protected OutputStream mOutputStream;
  @@ -45,7 +46,8 @@
        *
        */
       public final void setStreams(InputStream inputStream, OutputStream outputStream)
  -            throws IOException, ClassCastException {
  +            throws IOException, ClassCastException
  +    {
           mInputStream = inputStream;
           mOutputStream = outputStream;
       }
  
  
  
  1.3       +53 -24    jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/StreamServerConnection.java
  
  Index: StreamServerConnection.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/StreamServerConnection.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- StreamServerConnection.java	6 Apr 2002 11:46:08 -0000	1.2
  +++ StreamServerConnection.java	21 Apr 2002 12:19:33 -0000	1.3
  @@ -34,16 +34,17 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.2 $
  + * @version $Revision: 1.3 $
    */
  -public abstract class StreamServerConnection implements Runnable, AltrmiServerConnection, LogEnabled {
  +public abstract class StreamServerConnection
  +        implements Runnable, AltrmiServerConnection, LogEnabled
  +{
   
       private AbstractServer mAbstractServer;
       private boolean mEndConnection = false;
       private ServerStreamReadWriter mReadWriter;
       private Logger mLogger;
   
  -
       /**
        * Constructor StreamServerConnection
        *
  @@ -53,12 +54,21 @@
        *
        */
       public StreamServerConnection(AbstractServer abstractServer,
  -                                  ServerStreamReadWriter readWriter) {
  +                                  ServerStreamReadWriter readWriter)
  +    {
           mAbstractServer = abstractServer;
           mReadWriter = readWriter;
       }
   
  -    public void enableLogging(Logger logger) {
  +    /**
  +     * Method enableLogging
  +     *
  +     *
  +     * @param logger
  +     *
  +     */
  +    public void enableLogging(Logger logger)
  +    {
           mLogger = logger;
       }
   
  @@ -67,20 +77,25 @@
        *
        *
        */
  -    public void run() {
  +    public void run()
  +    {
   
           mAbstractServer.connectionStart(this);
   
  -        try {
  +        try
  +        {
               mReadWriter.initialize();
   
               boolean more = true;
               AltrmiRequest request = null;
               AltrmiReply reply = null;
   
  -            while (more) {
  -                try {
  -                    if (request != null) {
  +            while (more)
  +            {
  +                try
  +                {
  +                    if (request != null)
  +                    {
                           reply = mAbstractServer.handleInvocation(request);
                       }
   
  @@ -89,30 +104,44 @@
                       // http://developer.java.sun.com/developer/bugParade/bugs/4499841.html
                       // halves the performance though.
                       //oOS.reset();
  -                    if (mEndConnection) {
  +                    if (mEndConnection)
  +                    {
                           reply = new EndConnectionReply();
                           more = false;
                       }
  -                } catch (IOException ioe) {
  +                }
  +                catch (IOException ioe)
  +                {
                       more = false;
  -                    if (ioe instanceof EOFException) {
  +
  +                    if (ioe instanceof EOFException)
  +                    {
                           mLogger.info("One Connection closed. (EOF)");
  -                    } else if (ioe instanceof SocketException
  -                            || ioe.getClass().getName().equals("java.net.SocketTimeoutException")
  -                            || ioe instanceof InterruptedIOException
  -                            || (ioe.getMessage() != null
  -                            && (ioe.getMessage().equals("Write end dead")
  -                            || ioe.getMessage().equals("Pipe broken")))) {
  +                    }
  +                    else if ((ioe instanceof SocketException)
  +                             || ioe.getClass().getName().equals("java.net.SocketTimeoutException")
  +                             || (ioe instanceof InterruptedIOException)
  +                             || ((ioe.getMessage() != null)
  +                                 && (ioe.getMessage().equals("Write end dead")
  +                                     || ioe.getMessage().equals("Pipe broken"))))
  +                    {
  +
                           // TODO implement implementation indepandant logger
                           mLogger.info("One Connection closed.");
  -                    } else {
  +                    }
  +                    else
  +                    {
                           mLogger.error("Unexpected IOE in StreamServerConnection #1", ioe);
                       }
                   }
               }
  -        } catch (IOException e) {
  +        }
  +        catch (IOException e)
  +        {
               mLogger.error("Unexpected IOE in StreamServerConnection #2", e);
  -        } catch (ClassNotFoundException e) {
  +        }
  +        catch (ClassNotFoundException e)
  +        {
               mLogger.error("Unexpected ClassNotFoundException in StreamServerConnection", e);
           }
   
  @@ -124,7 +153,8 @@
        *
        *
        */
  -    public void endConnection() {
  +    public void endConnection()
  +    {
           mEndConnection = true;
       }
   
  @@ -134,5 +164,4 @@
        *
        */
       protected abstract void killConnection();
  -
   }
  
  
  
  1.5       +23 -12    jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/adapters/InvocationHandlerAdapter.java
  
  Index: InvocationHandlerAdapter.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/adapters/InvocationHandlerAdapter.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- InvocationHandlerAdapter.java	21 Apr 2002 09:42:02 -0000	1.4
  +++ InvocationHandlerAdapter.java	21 Apr 2002 12:19:33 -0000	1.5
  @@ -55,7 +55,7 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.4 $
  + * @version $Revision: 1.5 $
    */
   public class InvocationHandlerAdapter extends PublicationAdapter
           implements AltrmiInvocationHandler
  @@ -157,7 +157,8 @@
           }
       }
   
  -    private AltrmiReply doMethodFacadeRequest(AltrmiRequest request) {
  +    private AltrmiReply doMethodFacadeRequest(AltrmiRequest request)
  +    {
           MethodFacadeRequest mFacReq = (MethodFacadeRequest) request;
           String publishedThing = mFacReq.getPublishedServiceName() + "_"
                                   + mFacReq.getObjectName();
  @@ -210,7 +211,8 @@
           }
       }
   
  -    private AltrmiReply doMethodFacadeRequestArray(Object methodReply, MethodFacadeRequest mFacReq) {
  +    private AltrmiReply doMethodFacadeRequestArray(Object methodReply, MethodFacadeRequest mFacReq)
  +    {
           Object[] beanImpls = (Object[]) methodReply;
           Long[] refs = new Long[beanImpls.length];
           String[] objectNames = new String[beanImpls.length];
  @@ -259,7 +261,8 @@
           return new MethodFacadeArrayReply(refs, objectNames);
       }
   
  -    private AltrmiReply doMethodFacadeRequestNonArray(Object beanImpl, MethodFacadeRequest mFacReq) {
  +    private AltrmiReply doMethodFacadeRequestNonArray(Object beanImpl, MethodFacadeRequest mFacReq)
  +    {
   
           MethodInvocationHandler mainMethodInvocationHandler = (MethodInvocationHandler)
                   mPublishedObjects.get(mFacReq.getPublishedServiceName() + "_Main");
  @@ -293,7 +296,8 @@
           return new MethodFacadeReply(newRef, objectName);
       }
   
  -    private AltrmiReply doMethodRequest(AltrmiRequest request) {
  +    private AltrmiReply doMethodRequest(AltrmiRequest request)
  +    {
           MethodRequest mReq = (MethodRequest) request;
           String publishedThing = mReq.getPublishedServiceName() + "_" + mReq.getObjectName();
   
  @@ -308,7 +312,8 @@
           return methodInvocationHandler.handleMethodInvocation(mReq);
       }
   
  -    private AltrmiReply doLookupRequest(AltrmiRequest request) {
  +    private AltrmiReply doLookupRequest(AltrmiRequest request)
  +    {
           LookupRequest lr = (LookupRequest) request;
   
           try
  @@ -325,7 +330,8 @@
           return new LookupReply(new Long(0));
       }
   
  -    private AltrmiReply doClassRequest(AltrmiRequest request) {
  +    private AltrmiReply doClassRequest(AltrmiRequest request)
  +    {
           ClassRequest cr = (ClassRequest) request;
           String publishedThing = cr.getPublishedServiceName() + "_" + cr.getObjectName();
   
  @@ -342,7 +348,8 @@
           }
       }
   
  -    private AltrmiReply doOpenConnectionRequest() {
  +    private AltrmiReply doOpenConnectionRequest()
  +    {
           Long session = getNewSession();
   
           mSessions.put(session, new AltrmiSession(session));
  @@ -350,7 +357,8 @@
           return new OpenConnectionReply(mAltrmiAuthenticator.getTextToSign(), session);
       }
   
  -    private AltrmiReply doListRequest() {
  +    private AltrmiReply doListRequest()
  +    {
           //return the list of published objects to the server
           Iterator iterator = mPublishedObjects.keySet().iterator();
           Vector vecOfPublishedObjectNames = new Vector();
  @@ -373,7 +381,8 @@
           return new ListReply(_listOfPublishedObjectNames);
       }
   
  -    private AltrmiReply doGarbageCollectionRequest(AltrmiRequest request) {
  +    private AltrmiReply doGarbageCollectionRequest(AltrmiRequest request)
  +    {
           GarbageCollectionRequest gcr = (GarbageCollectionRequest) request;
           String publishedThing = gcr.getPublishedServiceName() + "_" + gcr.getObjectName();
   
  @@ -389,10 +398,12 @@
           }
   
           AltrmiSession sess = (AltrmiSession) mSessions.get(gcr.getSession());
  -        if (sess == null) {
  +        if (sess == null)
  +        {
               System.out.println("DEBUG- GC on missing session -" + gcr.getSession());
           }
  -        if (gcr.getReferenceID() == null) {
  +        if (gcr.getReferenceID() == null)
  +        {
               System.out.println("DEBUG- GC on missing referenceID -" + gcr.getReferenceID());
           }
           sess.removeBeanInUse(gcr.getReferenceID());
  
  
  
  1.2       +284 -243  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.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- CallbackEnabledSocketCustomStreamReadWriter.java	20 Apr 2002 17:39:44 -0000	1.1
  +++ CallbackEnabledSocketCustomStreamReadWriter.java	21 Apr 2002 12:19:33 -0000	1.2
  @@ -44,194 +44,219 @@
   /**
    * CallbackEnabledSocketCustomStreamReadWriter
    *  This StreamReadWriter is responsible for unmarshalling
  - * 	exposedClient objects too and devliering it to the Remote Object.
  + *      exposedClient objects too and devliering it to the Remote Object.
    *  The calls made for the exposed Client Object is also marshalled
  - * 	out here with the aid of the internal InvocationHandler.
  + *      out here with the aid of the internal InvocationHandler.
    *  The callbacks are multiplexed over the same connection and thus
  - * 	there are no extra network connections needed to enable callbacks.
  + *      there are no extra network connections needed to enable callbacks.
    *
    * @author <a href="mailto:vinayc77@yahoo.com">Vinay Chandran</a>
  - * @version $Revision: 1.1 $
  + * @version $Revision: 1.2 $
    */
  -public class CallbackEnabledSocketCustomStreamReadWriter extends ServerStreamReadWriter implements Runnable
  +public class CallbackEnabledSocketCustomStreamReadWriter extends ServerStreamReadWriter
  +        implements Runnable
   {
   
       private DataInputStream mDataInputStream;
       private DataOutputStream mDataOutputStream;
  -	private Thread mMessageLoopThread =null;
  -	private boolean mIsStopped=false;
  -	private Object mRequestLock= new Object();
  -	private Object mReplyLock= new Object();
  -    private AltrmiRequest mRequest=null;
  -    private AltrmiReply mReply=null;
  -	private CallbackServerClientReadWriter mCallbackServerClientReadWriter;
  -	private CallbackStreamInvocationHandler mCallbackStreamInvocationHandler;
  -	private CallbackHostContext mCallbackHostContext;
  -	private CallbackServerClassAltrmiFactory  mAltrmiFactory;
  -
  -
  -	/*
  -	 * @see ServerStreamReadWriter#initialize()
  -	 */
  -    protected void initialize() throws IOException {
  +    private Thread mMessageLoopThread = null;
  +    private boolean mIsStopped = false;
  +    private Object mRequestLock = new Object();
  +    private Object mReplyLock = new Object();
  +    private AltrmiRequest mRequest = null;
  +    private AltrmiReply mReply = null;
  +    private CallbackServerClientReadWriter mCallbackServerClientReadWriter;
  +    private CallbackStreamInvocationHandler mCallbackStreamInvocationHandler;
  +    private CallbackHostContext mCallbackHostContext;
  +    private CallbackServerClassAltrmiFactory mAltrmiFactory;
  +
  +    /*
  +     * @see ServerStreamReadWriter#initialize()
  +     */
  +    protected void initialize() throws IOException
  +    {
  +
           mDataInputStream = new DataInputStream(mInputStream);
           mDataOutputStream = new DataOutputStream(new BufferedOutputStream(mOutputStream));
  -		//start the receiving message loop
  -		mMessageLoopThread =  new Thread(this);
  -		mMessageLoopThread.start();
  -	
  -    }
  -
  -	/**
  -	 * Message Loop . 
  -	 * Notifies the Reply or Request monitor depending upon the type of message.
  -	 * @see Runnable#run()
  -	 */
  -	public void run()
  -	{
  -		mCallbackServerClientReadWriter  = new CallbackServerClientReadWriter(this);
  -		mCallbackStreamInvocationHandler =  new CallbackStreamInvocationHandler(this.getClass().getClassLoader());
  -		mCallbackStreamInvocationHandler.setObjectReadWriter(mCallbackServerClientReadWriter);
  -		mCallbackHostContext	=  new CallbackHostContext(mCallbackStreamInvocationHandler);
  -		mAltrmiFactory	= new CallbackServerClassAltrmiFactory(false);
  -		mAltrmiFactory.setInitializedHostContext(mCallbackHostContext);
  -
  -		while(!mIsStopped)
  -		{
  -	        try 
  -	        {
  -				//recv packets from the client
  -	        	int byteArraySize = (int) mDataInputStream.readInt();
  -			    byte[] byteArray = new byte[byteArraySize];
  -			    mDataInputStream.read(byteArray);
  -			    Object obj=SerializationHelper.getInstanceFromBytes(byteArray);
  -				
  -				//interpret it as a request or reply & notify the corresponding listeners
  -				// SHLD we need a queue here to hold the arriving packets
  -				// TODO:WORKAROUND: Dont receive until the data is handled some way
  -				if(obj instanceof AltrmiRequest)
  -				{
  -				    mRequest=(AltrmiRequest)obj;
  -					synchronized(mRequestLock)
  -					{
  -						mRequestLock.notify();
  -					}
  -				}
  -				else if(obj instanceof AltrmiReply)
  -				{
  -				    mReply=(AltrmiReply)obj;
  -					synchronized(mReplyLock)
  -					{
  -						mReplyLock.notify();
  -					}
  -				}
  -				else
  -				{
  -					//SHLD never occur
  -				}
  -
  -			}
  -			catch(java.net.SocketException se) 
  -			{
  -				mIsStopped=true;
  -				synchronized(mRequestLock)
  -				{
  -					mRequestLock.notify();
  -				}
  -				synchronized(mReplyLock)
  -				{
  -					mReplyLock.notify();
  -				}
  -				return;
  -			} 
  -			catch(IOException e) 
  -			{
  -				e.printStackTrace();
  -				mIsStopped=true;
  -				return;
  -			} 
  -			catch(ClassNotFoundException ce) 
  -			{
  -				ce.printStackTrace();
  -				mIsStopped=true;
  -				return;
  -			}
  -		}
  -		
  -	}
  -
  -	
  -
  -	/**
  -	 * Method getRequestFromMessageLoop.
  -	 * @return AltrmiRequest
  -	 */
  -	private AltrmiRequest getRequestFromMessageLoop()
  -	{
  -		//if(_replyQueue.size()==0)
  -		if(mRequest==null)
  -		{
  -			synchronized(mRequestLock)
  -			{
  -				try 
  -				{
  -					mRequestLock.wait();
  -				} 
  -				catch(InterruptedException e) 
  -				{
  -					e.printStackTrace();
  -				}
  -			}
  -		}
  -		return mRequest;
  -	}
  -
  -	/**
  -	 * Method getReplyFromMessageLoop.
  -	 * @return AltrmiReply
  -	 */
  -	private AltrmiReply getReplyFromMessageLoop()
  -	{
  -
  -		//if(_replyQueue.size()==0)
  -		if(mReply==null)
  -		{
  -
  -			synchronized(mReplyLock)
  -			{
  -				try 
  -				{
  -					mReplyLock.wait();
  -				} 
  -				catch(InterruptedException e) 
  -				{
  -					e.printStackTrace();
  -				}
  -			}
  -		}
  -		return mReply;
  -	}
  -
  -	/*
  -	 * @see ServerStreamReadWriter#writeReplyAndGetRequest(AltrmiReply)
  -	 */
  -    protected  AltrmiRequest writeReplyAndGetRequest(AltrmiReply altrmiReply)
  -            throws IOException, ClassNotFoundException {
   
  -        if (altrmiReply != null) {
  +        //start the receiving message loop
  +        mMessageLoopThread = new Thread(this);
  +
  +        mMessageLoopThread.start();
  +    }
  +
  +    /**
  +     * Message Loop .
  +     * Notifies the Reply or Request monitor depending upon the type of message.
  +     * @see Runnable#run()
  +     */
  +    public void run()
  +    {
  +
  +        mCallbackServerClientReadWriter = new CallbackServerClientReadWriter(this);
  +        mCallbackStreamInvocationHandler =
  +            new CallbackStreamInvocationHandler(this.getClass().getClassLoader());
  +
  +        mCallbackStreamInvocationHandler.setObjectReadWriter(mCallbackServerClientReadWriter);
  +
  +        mCallbackHostContext = new CallbackHostContext(mCallbackStreamInvocationHandler);
  +        mAltrmiFactory = new CallbackServerClassAltrmiFactory(false);
  +
  +        mAltrmiFactory.setInitializedHostContext(mCallbackHostContext);
  +
  +        while (!mIsStopped)
  +        {
  +            try
  +            {
  +
  +                //recv packets from the client
  +                int byteArraySize = (int) mDataInputStream.readInt();
  +                byte[] byteArray = new byte[byteArraySize];
  +
  +                mDataInputStream.read(byteArray);
  +
  +                Object obj = SerializationHelper.getInstanceFromBytes(byteArray);
  +
  +                //interpret it as a request or reply & notify the corresponding listeners
  +                // SHLD we need a queue here to hold the arriving packets
  +                // TODO:WORKAROUND: Dont receive until the data is handled some way
  +                if (obj instanceof AltrmiRequest)
  +                {
  +                    mRequest = (AltrmiRequest) obj;
  +
  +                    synchronized (mRequestLock)
  +                    {
  +                        mRequestLock.notify();
  +                    }
  +                }
  +                else if (obj instanceof AltrmiReply)
  +                {
  +                    mReply = (AltrmiReply) obj;
  +
  +                    synchronized (mReplyLock)
  +                    {
  +                        mReplyLock.notify();
  +                    }
  +                }
  +                else
  +                {
  +
  +                    //SHLD never occur
  +                }
  +            }
  +            catch (java.net.SocketException se)
  +            {
  +                mIsStopped = true;
  +
  +                synchronized (mRequestLock)
  +                {
  +                    mRequestLock.notify();
  +                }
  +
  +                synchronized (mReplyLock)
  +                {
  +                    mReplyLock.notify();
  +                }
  +
  +                return;
  +            }
  +            catch (IOException e)
  +            {
  +                e.printStackTrace();
  +
  +                mIsStopped = true;
  +
  +                return;
  +            }
  +            catch (ClassNotFoundException ce)
  +            {
  +                ce.printStackTrace();
  +
  +                mIsStopped = true;
  +
  +                return;
  +            }
  +        }
  +    }
  +
  +    /**
  +     * Method getRequestFromMessageLoop.
  +     * @return AltrmiRequest
  +     */
  +    private AltrmiRequest getRequestFromMessageLoop()
  +    {
  +
  +        //if(_replyQueue.size()==0)
  +        if (mRequest == null)
  +        {
  +            synchronized (mRequestLock)
  +            {
  +                try
  +                {
  +                    mRequestLock.wait();
  +                }
  +                catch (InterruptedException e)
  +                {
  +                    e.printStackTrace();
  +                }
  +            }
  +        }
  +
  +        return mRequest;
  +    }
  +
  +    /**
  +     * Method getReplyFromMessageLoop.
  +     * @return AltrmiReply
  +     */
  +    private AltrmiReply getReplyFromMessageLoop()
  +    {
  +
  +        //if(_replyQueue.size()==0)
  +        if (mReply == null)
  +        {
  +            synchronized (mReplyLock)
  +            {
  +                try
  +                {
  +                    mReplyLock.wait();
  +                }
  +                catch (InterruptedException e)
  +                {
  +                    e.printStackTrace();
  +                }
  +            }
  +        }
  +
  +        return mReply;
  +    }
  +
  +    /*
  +     * @see ServerStreamReadWriter#writeReplyAndGetRequest(AltrmiReply)
  +     */
  +    protected AltrmiRequest writeReplyAndGetRequest(AltrmiReply altrmiReply)
  +            throws IOException, ClassNotFoundException
  +    {
  +
  +        if (altrmiReply != null)
  +        {
               writeReply(altrmiReply);
           }
  -		AltrmiRequest req= readRequest();
  -		mRequest=null;
  +
  +        AltrmiRequest req = readRequest();
  +
  +        mRequest = null;
  +
           return req;
       }
   
  -	/**
  -	 * Method writeReply.
  -	 * @param altrmiReply
  -	 * @throws IOException
  -	 */
  -    private void writeReply(AltrmiReply altrmiReply) throws IOException {
  +    /**
  +     * Method writeReply.
  +     * @param altrmiReply
  +     * @throws IOException
  +     */
  +    private void writeReply(AltrmiReply altrmiReply) throws IOException
  +    {
   
           byte[] aBytes = SerializationHelper.getBytesFromInstance(altrmiReply);
   
  @@ -240,94 +265,110 @@
           mDataOutputStream.flush();
       }
   
  -	/**
  -	 * Method readRequest.
  -	 * @return AltrmiRequest
  -	 * @throws IOException
  -	 * @throws ClassNotFoundException
  -	 */
  -    private AltrmiRequest readRequest() throws IOException, ClassNotFoundException {
  -
  -		AltrmiRequest altrmiRequest=getRequestFromMessageLoop();
  -		if(altrmiRequest instanceof MethodRequest)
  -			correctArgs(((MethodRequest)altrmiRequest).getArgs());
  +    /**
  +     * Method readRequest.
  +     * @return AltrmiRequest
  +     * @throws IOException
  +     * @throws ClassNotFoundException
  +     */
  +    private AltrmiRequest readRequest() throws IOException, ClassNotFoundException
  +    {
  +
  +        AltrmiRequest altrmiRequest = getRequestFromMessageLoop();
  +
  +        if (altrmiRequest instanceof MethodRequest)
  +        {
  +            correctArgs(((MethodRequest) altrmiRequest).getArgs());
  +        }
  +
           return altrmiRequest;
       }
   
  -//client side    
  -	/**
  -	 * Method postRequest.
  -	 * @param altrmiRequest
  -	 * @return AltrmiReply
  -	 * @throws IOException
  -	 * @throws ClassNotFoundException
  -	 */
  -	protected  AltrmiReply postRequest(AltrmiRequest altrmiRequest)
  -            throws IOException, ClassNotFoundException {
  -
  -		if(mIsStopped)
  -			throw new AltrmiConnectionClosedException("Client Closed Connection");
  -		writeRequest(altrmiRequest);
  +    //client side    
  +
  +    /**
  +     * Method postRequest.
  +     * @param altrmiRequest
  +     * @return AltrmiReply
  +     * @throws IOException
  +     * @throws ClassNotFoundException
  +     */
  +    protected AltrmiReply postRequest(AltrmiRequest altrmiRequest)
  +            throws IOException, ClassNotFoundException
  +    {
  +
  +        if (mIsStopped)
  +        {
  +            throw new AltrmiConnectionClosedException("Client Closed Connection");
  +        }
  +
  +        writeRequest(altrmiRequest);
  +
           AltrmiReply r = readReply();
  -		if(r==null)
  -			throw new java.io.InterruptedIOException("Client Connection Closed");
   
  -        mReply=null;
  +        if (r == null)
  +        {
  +            throw new java.io.InterruptedIOException("Client Connection Closed");
  +        }
  +
  +        mReply = null;
  +
           return r;
       }
   
  -	/**
  -	 * Method writeRequest.
  -	 * @param altrmiRequest
  -	 * @throws IOException
  -	 */
  -    private void writeRequest(AltrmiRequest altrmiRequest) throws IOException {
  +    /**
  +     * Method writeRequest.
  +     * @param altrmiRequest
  +     * @throws IOException
  +     */
  +    private void writeRequest(AltrmiRequest altrmiRequest) throws IOException
  +    {
   
           byte[] aBytes = SerializationHelper.getBytesFromInstance(altrmiRequest);
   
           mDataOutputStream.writeInt(aBytes.length);
           mDataOutputStream.write(aBytes);
           mDataOutputStream.flush();
  +    }
   
  +    /**
  +     * Method readReply.
  +     * @return AltrmiReply
  +     * @throws IOException
  +     * @throws ClassNotFoundException
  +     */
  +    private AltrmiReply readReply() throws IOException, ClassNotFoundException
  +    {
  +        return getReplyFromMessageLoop();
       }
   
  -	/**
  -	 * Method readReply.
  -	 * @return AltrmiReply
  -	 * @throws IOException
  -	 * @throws ClassNotFoundException
  -	 */
  -    private AltrmiReply readReply() throws IOException, ClassNotFoundException {
  -		
  -		return getReplyFromMessageLoop();
  -    }
  -
  -	
  -	/**
  -	 * Method correctArgs.
  -	 * 	UnMarshall the arguments .
  -	 * @param args
  -	 */
  -	public void correctArgs(Object[] args)
  -	{
  -		for (int i = 0; i < args.length; i++) 
  -		{
  -			if(args[i] instanceof ExposedObjectProxy)
  -			{
  -				ExposedObjectProxy exposedObjectProxy =(ExposedObjectProxy)args[i];
  -
  -				try
  -				{
  -					//lookup the client-side exported object.
  -					Object obj = mAltrmiFactory.lookup(exposedObjectProxy.getPublishedName());
  -					args[i]=obj;
  -
  -				}
  -				catch(Exception altrmiConnectionException)
  -				{
  -					altrmiConnectionException.printStackTrace();
  -				}
  -			}
  -		}
  -	}
  +    /**
  +     * Method correctArgs.
  +     *      UnMarshall the arguments .
  +     * @param args
  +     */
  +    public void correctArgs(Object[] args)
  +    {
  +
  +        for (int i = 0; i < args.length; i++)
  +        {
  +            if (args[i] instanceof ExposedObjectProxy)
  +            {
  +                ExposedObjectProxy exposedObjectProxy = (ExposedObjectProxy) args[i];
  +
  +                try
  +                {
  +
  +                    //lookup the client-side exported object.
  +                    Object obj = mAltrmiFactory.lookup(exposedObjectProxy.getPublishedName());
  +
  +                    args[i] = obj;
  +                }
  +                catch (Exception altrmiConnectionException)
  +                {
  +                    altrmiConnectionException.printStackTrace();
  +                }
  +            }
  +        }
  +    }
   }
  
  
  
  1.2       +40 -17    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.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- CallbackEnabledSocketCustomStreamServer.java	20 Apr 2002 17:39:44 -0000	1.1
  +++ CallbackEnabledSocketCustomStreamServer.java	21 Apr 2002 12:19:33 -0000	1.2
  @@ -29,32 +29,55 @@
    * Class CallbackEnabledSocketCustomStreamServer
    *
    *@author <a href="mailto:vinayc77@yahoo.com">Vinay Chandran</a>
  - * @version $Revision: 1.1 $
  + * @version $Revision: 1.2 $
    */
  -public class CallbackEnabledSocketCustomStreamServer extends AbstractCompleteSocketStreamServer {
  +public class CallbackEnabledSocketCustomStreamServer extends AbstractCompleteSocketStreamServer
  +{
   
  -
  -	/*
  -	 * @see AbstractCompleteSocketStreamServer#AbstractCompleteSocketStreamServer(int)
  -	 */
  -    public CallbackEnabledSocketCustomStreamServer(int port) throws AltrmiServerException {
  +    /*
  +     * @see AbstractCompleteSocketStreamServer#AbstractCompleteSocketStreamServer(int)
  +     */
  +
  +    /**
  +     * Constructor CallbackEnabledSocketCustomStreamServer
  +     *
  +     *
  +     * @param port
  +     *
  +     * @throws AltrmiServerException
  +     *
  +     */
  +    public CallbackEnabledSocketCustomStreamServer(int port) throws AltrmiServerException
  +    {
           super(port);
       }
   
  -	/*
  -	 * @see AbstractCompleteSocketStreamServer#AbstractCompleteSocketStreamServer(InvocationHandlerAdapter, int)
  -	 */
  -    public CallbackEnabledSocketCustomStreamServer(InvocationHandlerAdapter invocationHandlerAdapter, int port) throws AltrmiServerException {
  +    /*
  +     * @see AbstractCompleteSocketStreamServer#AbstractCompleteSocketStreamServer(InvocationHandlerAdapter, int)
  +     */
  +
  +    /**
  +     * Constructor CallbackEnabledSocketCustomStreamServer
  +     *
  +     *
  +     * @param invocationHandlerAdapter
  +     * @param port
  +     *
  +     * @throws AltrmiServerException
  +     *
  +     */
  +    public CallbackEnabledSocketCustomStreamServer(
  +            InvocationHandlerAdapter invocationHandlerAdapter, int port)
  +                throws AltrmiServerException
  +    {
           super(invocationHandlerAdapter, port);
       }
   
  -
  -
  -	/*
  -	 * @see AbstractCompleteSocketStreamServer#createServerStreamReadWriter()
  -	 */
  -    protected ServerStreamReadWriter createServerStreamReadWriter() {
  +    /*
  +     * @see AbstractCompleteSocketStreamServer#createServerStreamReadWriter()
  +     */
  +    protected ServerStreamReadWriter createServerStreamReadWriter()
  +    {
           return new CallbackEnabledSocketCustomStreamReadWriter();
       }
  -
   }
  
  
  
  1.2       +23 -6     jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/callback/socket/PartialCallbackEnabledSocketCustomStreamServer.java
  
  Index: PartialCallbackEnabledSocketCustomStreamServer.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/callback/socket/PartialCallbackEnabledSocketCustomStreamServer.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- PartialCallbackEnabledSocketCustomStreamServer.java	20 Apr 2002 17:39:44 -0000	1.1
  +++ PartialCallbackEnabledSocketCustomStreamServer.java	21 Apr 2002 12:19:33 -0000	1.2
  @@ -14,28 +14,45 @@
   import org.apache.excalibur.altrmi.server.impl.socket.AbstractPartialSocketStreamServer;
   import org.apache.excalibur.altrmi.server.impl.adapters.InvocationHandlerAdapter;
   
  +
   /**
    * Class CallbackEnabledSocketCustomStreamServer
    *
    * @author <a href="mailto:vinayc77@yahoo.com">Vinay Chandran</a>
    * @author Peter Royal
  - * @version $Revision: 1.1 $
  + * @version $Revision: 1.2 $
    */
  -public class PartialCallbackEnabledSocketCustomStreamServer extends AbstractPartialSocketStreamServer {
  +public class PartialCallbackEnabledSocketCustomStreamServer
  +        extends AbstractPartialSocketStreamServer
  +{
  +
  +    /**
  +     * Constructor PartialCallbackEnabledSocketCustomStreamServer
  +     *
  +     *
  +     */
       public PartialCallbackEnabledSocketCustomStreamServer()
       {
       }
   
  -    public PartialCallbackEnabledSocketCustomStreamServer(InvocationHandlerAdapter inovcationHandlerAdapter)
  +    /**
  +     * Constructor PartialCallbackEnabledSocketCustomStreamServer
  +     *
  +     *
  +     * @param inovcationHandlerAdapter
  +     *
  +     */
  +    public PartialCallbackEnabledSocketCustomStreamServer(
  +            InvocationHandlerAdapter inovcationHandlerAdapter)
       {
           super(inovcationHandlerAdapter);
       }
   
       /*
  -	 * @see AbstractPartialSocketStreamServer#createServerStreamReadWriter()
  -	 */
  -    protected ServerStreamReadWriter createServerStreamReadWriter() {
  +         * @see AbstractPartialSocketStreamServer#createServerStreamReadWriter()
  +         */
  +    protected ServerStreamReadWriter createServerStreamReadWriter()
  +    {
           return new CallbackEnabledSocketCustomStreamReadWriter();
       }
  -
   }
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>