hammant     2003/01/05 14:38:26

  Added:       altrmi/src/test/org/apache/excalibur/altrmi/test/invalidstate
                        BouncingServerTestCase.java
  Removed:     altrmi/src/test/org/apache/excalibur/altrmi/test/hackers
                        BouncingServerTestCase.java
  Log:
  Under advice fron Nicola, a package is renamed.
  
  Revision  Changes    Path
  1.1                  
jakarta-avalon-excalibur/altrmi/src/test/org/apache/excalibur/altrmi/test/invalidstate/BouncingServerTestCase.java
  
  Index: BouncingServerTestCase.java
  ===================================================================
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included with this distribution in
   * the LICENSE.txt file.
   */
  package org.apache.excalibur.altrmi.test.invalidstate;
  
  import junit.framework.TestCase;
  import 
org.apache.excalibur.altrmi.server.impl.socket.CompleteSocketCustomStreamServer;
  import org.apache.excalibur.altrmi.server.PublicationDescription;
  import org.apache.excalibur.altrmi.server.AltrmiServerException;
  import org.apache.excalibur.altrmi.server.PublicationException;
  import org.apache.excalibur.altrmi.test.TestInterfaceImpl;
  import org.apache.excalibur.altrmi.test.TestInterface;
  import org.apache.excalibur.altrmi.test.TestInterface3;
  import org.apache.excalibur.altrmi.test.TestInterface2;
  import org.apache.excalibur.altrmi.client.impl.ClientClassAltrmiFactory;
  import org.apache.excalibur.altrmi.client.impl.NeverConnectionPinger;
  import org.apache.excalibur.altrmi.client.impl.DumbConnectionListener;
  import 
org.apache.excalibur.altrmi.client.impl.socket.SocketCustomStreamHostContext;
  import org.apache.excalibur.altrmi.client.AltrmiHostContext;
  import org.apache.excalibur.altrmi.client.AltrmiClientInvocationHandler;
  import org.apache.excalibur.altrmi.common.NoSuchSessionException;
  
  
  /**
   * Tests concerning the bouncing of a server.
   * @author Paul Hammant
   */
  public class BouncingServerTestCase extends TestCase
  {
  
      public BouncingServerTestCase(String name)
      {
          super(name);
      }
  
      public void testBouncingOfServerCausesClientProblems() throws Exception
      {
  
          // server side setup.
          CompleteSocketCustomStreamServer server = startServer();
  
          ClientClassAltrmiFactory altrmiFactory = null;
          try
          {
  
              // Client side setup
              altrmiFactory = new ClientClassAltrmiFactory(false);
              AltrmiHostContext hc = new 
SocketCustomStreamHostContext("127.0.0.1", 12101);
  
              altrmiFactory.setHostContext(hc, false);
              AltrmiClientInvocationHandler ih = 
hc.getClientInvocationHandler();
              ih.setConnectionPinger(new NeverConnectionPinger());
              ih.setAltrmiConnectionListener(new DumbConnectionListener());
              TestInterface testClient = (TestInterface) 
altrmiFactory.lookup("Hello");
  
              // just a kludge for unit testing given we are intrinsically 
dealing with
              // threads, AltRMI being a client/server thing
              Thread.yield();
  
              int i = testClient.hello2(100);
  
              // Stop server and restarting (essentially binning sessions).
              server.stop();
              server = startServer();
  
              try
              {
                  i = testClient.hello2(123);
              }
              catch (NoSuchSessionException e)
              {
                  // expected
              }
  
  
          }
          finally
          {
              System.gc();
              Thread.yield();
              altrmiFactory.close();
              Thread.yield();
              server.stop();
              Thread.yield();
          }
      }
  
      private CompleteSocketCustomStreamServer startServer() throws 
AltrmiServerException, PublicationException
      {
          CompleteSocketCustomStreamServer server = new 
CompleteSocketCustomStreamServer(12101);
          TestInterfaceImpl testServer = new TestInterfaceImpl();
          PublicationDescription pd = new 
PublicationDescription(TestInterface.class,
                  new Class[]{TestInterface3.class, TestInterface2.class});
          server.publish(testServer, "Hello", pd);
          server.start();
          return server;
      }
  
  }
  
  
  

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

Reply via email to