hammant     02/01/19 07:06:58

  Modified:    altrmi/src/java/org/apache/commons/altrmi/client
                        AltrmiClientInvocationHandler.java
                        AltrmiConnectionPinger.java
               altrmi/src/java/org/apache/commons/altrmi/client/impl
                        AbstractAltrmiClientInvocationHandler.java
                        StreamInvocationHandler.java
               altrmi/src/java/org/apache/commons/altrmi/client/impl/direct
                        DirectInvocationHandler.java
               altrmi/src/java/org/apache/commons/altrmi/client/impl/rmi
                        RmiInvocationHandler.java
               altrmi/src/java/org/apache/commons/altrmi/server/impl
                        StreamServerConnection.java
               altrmi/src/java/org/apache/commons/altrmi/test
                        SocketClientTest.java
  Added:       altrmi/src/java/org/apache/commons/altrmi/client/impl
                        DefaultConnectionPinger.java
                        PerpetualConnectionPinger.java
  Removed:     altrmi/src/java/org/apache/commons/altrmi/client/impl
                        DefaultAltrmiConnectionPinger.java
  Log:
  Two types of Pinger now. Default (times out 100 seconds after last real connect) and 
perpetual.
  
  Revision  Changes    Path
  1.2       +2 -0      
jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/AltrmiClientInvocationHandler.java
  
  Index: AltrmiClientInvocationHandler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/AltrmiClientInvocationHandler.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AltrmiClientInvocationHandler.java        19 Jan 2002 13:30:18 -0000      1.1
  +++ AltrmiClientInvocationHandler.java        19 Jan 2002 15:06:58 -0000      1.2
  @@ -34,6 +34,8 @@
   
       void close();
   
  +    long getLastRealRequest();
  +
   }
   
   
  
  
  
  1.2       +1 -1      
jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/AltrmiConnectionPinger.java
  
  Index: AltrmiConnectionPinger.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/AltrmiConnectionPinger.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AltrmiConnectionPinger.java       19 Jan 2002 13:30:18 -0000      1.1
  +++ AltrmiConnectionPinger.java       19 Jan 2002 15:06:58 -0000      1.2
  @@ -18,7 +18,7 @@
    *
    *
    * @author Paul Hammant <a 
href="mailto:[EMAIL PROTECTED]";>[EMAIL PROTECTED]</a>
  - * @version * $Revision: 1.1 $
  + * @version * $Revision: 1.2 $
    */
   public interface AltrmiConnectionPinger {
   
  @@ -28,7 +28,7 @@
        *
        *
        */
  -    void setAltrmiInvocationHandler(AltrmiInvocationHandler 
altrmiInvocationHandler);
  +    void setAltrmiInvocationHandler(AltrmiClientInvocationHandler 
altrmiInvocationHandler);
   
       /**
        * Method start
  
  
  
  1.2       +2 -2      
jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/AbstractAltrmiClientInvocationHandler.java
  
  Index: AbstractAltrmiClientInvocationHandler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/AbstractAltrmiClientInvocationHandler.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AbstractAltrmiClientInvocationHandler.java        19 Jan 2002 13:30:19 -0000     
 1.1
  +++ AbstractAltrmiClientInvocationHandler.java        19 Jan 2002 15:06:58 -0000     
 1.2
  @@ -23,7 +23,7 @@
    *
    *
    * @author Paul Hammant <a 
href="mailto:[EMAIL PROTECTED]";>[EMAIL PROTECTED]</a>
  - * @version $Revision: 1.1 $
  + * @version $Revision: 1.2 $
    */
   public abstract class AbstractAltrmiClientInvocationHandler implements 
AltrmiInvocationHandler, AltrmiClientInvocationHandler {
   
  @@ -46,7 +46,7 @@
           System.out.println(" initializing ");
   
           if (mConnectionPinger == null) {
  -            mConnectionPinger = new DefaultAltrmiConnectionPinger();
  +            mConnectionPinger = new DefaultConnectionPinger();
           }
           mConnectionPinger.setAltrmiInvocationHandler(this);
           mConnectionPinger.start();
  
  
  
  1.5       +17 -1     
jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/StreamInvocationHandler.java
  
  Index: StreamInvocationHandler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/StreamInvocationHandler.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- StreamInvocationHandler.java      19 Jan 2002 13:30:19 -0000      1.4
  +++ StreamInvocationHandler.java      19 Jan 2002 15:06:58 -0000      1.5
  @@ -36,12 +36,13 @@
    *
    *
    * @author Paul Hammant <a 
href="mailto:[EMAIL PROTECTED]";>[EMAIL PROTECTED]</a>
  - * @version $Revision: 1.4 $
  + * @version $Revision: 1.5 $
    */
   public abstract class StreamInvocationHandler extends 
AbstractAltrmiClientInvocationHandler {
   
       private ClientStreamReadWriter mObjectReadWriter;
       private boolean mMethodLogging = false;
  +    private long mLastRealRequest = System.currentTimeMillis();
   
       /**
        * Method setAltrmiConnectionListener
  @@ -74,6 +75,10 @@
        */
       public synchronized AltrmiReply handleInvocation(AltrmiRequest request) {
   
  +        if (request.getRequestCode() != AltrmiRequest.PINGREQUEST) {
  +            mLastRealRequest = System.currentTimeMillis();
  +        }
  +
           try {
               while (true) {
                   boolean again = true;
  @@ -146,5 +151,16 @@
               throw new AltrmiInvocationException("Class definition missing on 
Deserialization"
                                                   + e.getMessage());
           }
  +    }
  +
  +    /**
  +     * Method getLastRealRequest
  +     *
  +     *
  +     * @return
  +     *
  +     */
  +    public long getLastRealRequest() {
  +        return mLastRealRequest;
       }
   }
  
  
  
  1.1                  
jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/DefaultConnectionPinger.java
  
  Index: DefaultConnectionPinger.java
  ===================================================================
  
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included with this distribution in
   * the LICENSE.txt file.
   */
  package org.apache.commons.altrmi.client.impl;
  
  
  
  import org.apache.commons.altrmi.client.AltrmiConnectionPinger;
  import org.apache.commons.altrmi.client.AltrmiClientInvocationHandler;
  import org.apache.commons.altrmi.common.AltrmiReply;
  import org.apache.commons.altrmi.common.PingRequest;
  
  
  /**
   * Interface DefaultConnectionPinger
   *
   *
   * @author Paul Hammant <a 
href="mailto:[EMAIL PROTECTED]";>[EMAIL PROTECTED]</a>
   * @version * $Revision: 1.1 $
   */
  public class DefaultConnectionPinger implements AltrmiConnectionPinger, Runnable {
  
      private AltrmiClientInvocationHandler mAltrmiInvocationHandler;
      private boolean mContinue = true;
      private Thread mThread;
  
  
      /**
       * Method setAltrmiInvocationHandler
       *
       *
       *
       */
      public void setAltrmiInvocationHandler(AltrmiClientInvocationHandler 
altrmiInvocationHandler) {
          mAltrmiInvocationHandler = altrmiInvocationHandler;
      }
  
      /**
       * Method start
       *
       *
       */
      public void start() {
          mThread = new Thread(this);
          mThread.start();
      }
  
      public void stop() {
          mContinue = false;
      }
  
      /**
       * Method run
       *
       *
       */
      public void run() {
          try {
              while (mContinue) {
                  Thread.sleep(10 * 1000);
                  if ( mAltrmiInvocationHandler.getLastRealRequest() > 
(System.currentTimeMillis() - (100 * 1000))) {
                      AltrmiReply ar = mAltrmiInvocationHandler.handleInvocation(new 
PingRequest());
                  } else {
                      // if more than 100 seconds since last request, stop pinging
                      // Let the server do a disconnect according to its rules.
                  }
              }
          } catch (InterruptedException e) {
  
              // do nothing.
          }
      }
  }
  
  
  
  1.1                  
jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/PerpetualConnectionPinger.java
  
  Index: PerpetualConnectionPinger.java
  ===================================================================
  
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included with this distribution in
   * the LICENSE.txt file.
   */
  package org.apache.commons.altrmi.client.impl;
  
  
  
  import org.apache.commons.altrmi.client.AltrmiConnectionPinger;
  import org.apache.commons.altrmi.client.AltrmiClientInvocationHandler;
  import org.apache.commons.altrmi.common.AltrmiReply;
  import org.apache.commons.altrmi.common.PingRequest;
  
  
  /**
   * Interface PerpetualConnectionPinger
   *
   * Pings every ten seconds.
   *
   *
   * @author Paul Hammant <a 
href="mailto:[EMAIL PROTECTED]";>[EMAIL PROTECTED]</a>
   * @version * $Revision: 1.1 $
   */
  public class PerpetualConnectionPinger implements AltrmiConnectionPinger, Runnable {
  
      private AltrmiClientInvocationHandler mAltrmiInvocationHandler;
      private boolean mContinue = true;
      private Thread mThread;
  
  
      /**
       * Method setAltrmiInvocationHandler
       *
       *
       *
       */
      public void setAltrmiInvocationHandler(AltrmiClientInvocationHandler 
altrmiInvocationHandler) {
          mAltrmiInvocationHandler = altrmiInvocationHandler;
      }
  
      /**
       * Method start
       *
       *
       */
      public void start() {
          mThread = new Thread(this);
          mThread.start();
      }
  
      public void stop() {
          mContinue = false;
      }
  
      /**
       * Method run
       *
       *
       */
      public void run() {
          try {
              while (mContinue) {
                  Thread.sleep(10 * 1000);
                  AltrmiReply ar = mAltrmiInvocationHandler.handleInvocation(new 
PingRequest());
              }
          } catch (InterruptedException e) {
  
              // do nothing.
          }
      }
  }
  
  
  
  1.4       +19 -1     
jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/direct/DirectInvocationHandler.java
  
  Index: DirectInvocationHandler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/direct/DirectInvocationHandler.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- DirectInvocationHandler.java      19 Jan 2002 13:30:19 -0000      1.3
  +++ DirectInvocationHandler.java      19 Jan 2002 15:06:58 -0000      1.4
  @@ -33,12 +33,14 @@
    *
    *
    * @author Paul Hammant <a 
href="mailto:[EMAIL PROTECTED]";>[EMAIL PROTECTED]</a>
  - * @version $Revision: 1.3 $
  + * @version $Revision: 1.4 $
    */
   public final class DirectInvocationHandler extends 
AbstractAltrmiClientInvocationHandler {
   
       private AltrmiInvocationHandler mAltrmiInvocationHandler;
       private boolean mMethodLogging = false;
  +    private long mLastRealRequest = System.currentTimeMillis();
  +
   
       /**
        * Constructor DirectInvocationHandler
  @@ -80,6 +82,10 @@
        */
       public AltrmiReply handleInvocation(AltrmiRequest request) {
   
  +        if (request.getRequestCode() != AltrmiRequest.PINGREQUEST) {
  +            mLastRealRequest = System.currentTimeMillis();
  +        }
  +
           boolean again = true;
           AltrmiReply reply = null;
           int tries = 0;
  @@ -130,4 +136,16 @@
           // blimey how do we reconnect this?
           throw new AltrmiInvocationException("Direct connection broken, unable to 
reconnect.");
       }
  +
  +    /**
  +     * Method getLastRealRequest
  +     *
  +     *
  +     * @return
  +     *
  +     */
  +    public long getLastRealRequest() {
  +        return mLastRealRequest;
  +    }
  +
   }
  
  
  
  1.4       +17 -2     
jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/rmi/RmiInvocationHandler.java
  
  Index: RmiInvocationHandler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/rmi/RmiInvocationHandler.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- RmiInvocationHandler.java 19 Jan 2002 13:30:19 -0000      1.3
  +++ RmiInvocationHandler.java 19 Jan 2002 15:06:58 -0000      1.4
  @@ -41,13 +41,14 @@
    *
    *
    * @author Paul Hammant <a 
href="mailto:[EMAIL PROTECTED]";>[EMAIL PROTECTED]</a>
  - * @version $Revision: 1.3 $
  + * @version $Revision: 1.4 $
    */
   public final class RmiInvocationHandler extends 
AbstractAltrmiClientInvocationHandler {
   
       private RmiAltrmiInvocationHandler mRmiAltrmiInvocationHandler;
       private String mURL;
       private boolean mMethodLogging = false;
  +    private long mLastRealRequest = System.currentTimeMillis();
   
       /**
        * Constructor RmiInvocationHandler
  @@ -76,7 +77,6 @@
           }
       }
   
  -
       /**
        * Method setAltrmiConnectionListener
        *
  @@ -119,6 +119,10 @@
        */
       public synchronized AltrmiReply handleInvocation(AltrmiRequest request) {
   
  +        if (request.getRequestCode() != AltrmiRequest.PINGREQUEST) {
  +            mLastRealRequest = System.currentTimeMillis();
  +        }
  +
           boolean again = true;
           AltrmiReply reply = null;
           int tries = 0;
  @@ -179,5 +183,16 @@
           }
   
           return reply;
  +    }
  +
  +    /**
  +     * Method getLastRealRequest
  +     *
  +     *
  +     * @return
  +     *
  +     */
  +    public long getLastRealRequest() {
  +        return mLastRealRequest;
       }
   }
  
  
  
  1.5       +2 -2      
jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/server/impl/StreamServerConnection.java
  
  Index: StreamServerConnection.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/server/impl/StreamServerConnection.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- StreamServerConnection.java       19 Jan 2002 14:00:57 -0000      1.4
  +++ StreamServerConnection.java       19 Jan 2002 15:06:58 -0000      1.5
  @@ -30,7 +30,7 @@
    *
    *
    * @author Paul Hammant <a 
href="mailto:[EMAIL PROTECTED]";>[EMAIL PROTECTED]</a>
  - * @version $Revision: 1.4 $
  + * @version $Revision: 1.5 $
    */
   public abstract class StreamServerConnection implements Runnable, 
AltrmiServerConnection {
   
  @@ -85,7 +85,7 @@
                       }
                   } catch (IOException ioe) {
                       more = false;
  -                    if (ioe instanceof SocketException) {
  +                    if (ioe instanceof SocketException | 
ioe.getClass().getName().equals("java.net.SocketTimeoutException")) {
                           // TODO implement implementation indepandant logger
                           System.out.println("One Connection closed.");
                       } else {
  
  
  
  1.8       +3 -1      
jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/test/SocketClientTest.java
  
  Index: SocketClientTest.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/test/SocketClientTest.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- SocketClientTest.java     19 Jan 2002 13:30:19 -0000      1.7
  +++ SocketClientTest.java     19 Jan 2002 15:06:58 -0000      1.8
  @@ -26,7 +26,7 @@
    *
    *
    * @author Paul Hammant <a 
href="mailto:[EMAIL PROTECTED]";>[EMAIL PROTECTED]</a>
  - * @version $Revision: 1.7 $
  + * @version $Revision: 1.8 $
    */
   public class SocketClientTest {
   
  @@ -70,6 +70,8 @@
   
           new TestClient(ti);
   
  +        Thread.sleep(200 * 1000);
  +        System.out.println("closed after200");
           af.close();
   
       }
  
  
  

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

Reply via email to