[jboss-cvs] JBossRemoting/src/tests/org/jboss/test/remoting/transport/bisocket ...

Ron Sigal ron_sigal at yahoo.com
Fri Dec 29 01:46:30 EST 2006


  User: rsigal  
  Date: 06/12/29 01:46:30

  Modified:    src/tests/org/jboss/test/remoting/transport/bisocket  Tag:
                        remoting_2_x BisocketTestCase.java
  Log:
  JBREM-650:  Added test method for restarted Connector.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.4   +107 -3    JBossRemoting/src/tests/org/jboss/test/remoting/transport/bisocket/BisocketTestCase.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: BisocketTestCase.java
  ===================================================================
  RCS file: /cvsroot/jboss/JBossRemoting/src/tests/org/jboss/test/remoting/transport/bisocket/BisocketTestCase.java,v
  retrieving revision 1.1.2.3
  retrieving revision 1.1.2.4
  diff -u -b -r1.1.2.3 -r1.1.2.4
  --- BisocketTestCase.java	20 Dec 2006 08:57:15 -0000	1.1.2.3
  +++ BisocketTestCase.java	29 Dec 2006 06:46:30 -0000	1.1.2.4
  @@ -36,7 +36,12 @@
   
   import junit.framework.TestCase;
   
  -import org.jboss.logging.Logger;
  +import org.apache.log4j.BasicConfigurator;
  +import org.apache.log4j.Category;
  +import org.apache.log4j.ConsoleAppender;
  +import org.apache.log4j.Level;
  +import org.apache.log4j.PatternLayout;
  +import org.apache.log4j.Logger;
   import org.jboss.remoting.Client;
   import org.jboss.remoting.InvocationRequest;
   import org.jboss.remoting.InvokerLocator;
  @@ -55,7 +60,7 @@
   
   /** 
    * @author <a href="ron.sigal at jboss.com">Ron Sigal</a>
  - * @version $Revision: 1.1.2.3 $
  + * @version $Revision: 1.1.2.4 $
    * <p>
    * Copyright Nov 25, 2006
    * </p>
  @@ -79,6 +84,8 @@
      private Connector connector;
      private SampleInvocationHandler invocationHandler;
   
  +   private boolean firstTime = true;
  +
   
      
      /**
  @@ -86,6 +93,17 @@
       */
      public void setUp() throws Exception
      {
  +      if (firstTime)
  +      {
  +         firstTime = false;
  +         Logger.getLogger("org.jboss.remoting").setLevel(Level.DEBUG);
  +         Logger.getLogger("org.jboss.test.remoting").setLevel(Level.DEBUG);
  +         String pattern = "[%d{ABSOLUTE}] [%t] %5p (%F:%L) - %m%n";
  +         PatternLayout layout = new PatternLayout(pattern);
  +         ConsoleAppender consoleAppender = new ConsoleAppender(layout);
  +         Logger.getRootLogger().addAppender(consoleAppender);  
  +      }
  +      
         String locatorURI = getTransport() + "://" + InetAddress.getLocalHost().getHostAddress() + ":" + port; 
         InvokerLocator serverLocator = new InvokerLocator(locatorURI);
         System.out.println("Starting remoting server with locator uri of: " + locatorURI);
  @@ -269,7 +287,7 @@
            client.invokeOneway(CALLBACK_TEST);
         }
         
  -      Thread.sleep(100);
  +      Thread.sleep(500);
         assertEquals(invocationCount, callbackHandler.callbackCounter);
         assertEquals(0, pool.size());
         usedPooled = (Long) field.get(clientInvoker);
  @@ -1147,6 +1165,7 @@
         field.setAccessible(true);
         Socket controlSocket = (Socket) field.get(clientInvoker);
         controlSocket.close();
  +      log.info("CLOSED CONTROL SOCKET");
         
         Thread.sleep(TEST_PING_FREQUENCY * 2);
         client.invoke(CALLBACK_TEST);
  @@ -1226,6 +1245,7 @@
         field.setAccessible(true);
         Socket clientSideControlSocket = (Socket) field.get(controlConnectionThread);
         clientSideControlSocket.close();
  +      log.info("CLOSED CONTROL SOCKET");
         
         Thread.sleep(TEST_PING_FREQUENCY * 2);
         client.invoke(CALLBACK_TEST);
  @@ -1243,6 +1263,90 @@
      }
      
      
  +   public void testNoControlConnectionRestart() throws Throwable
  +   {
  +      log.info("entering " + getName());
  +      String host = InetAddress.getLocalHost().getHostName();
  +      String locatorURI = getTransport() + "://" + host + ":" + port; 
  +      InvokerLocator serverLocator = new InvokerLocator(locatorURI);
  +      log.info("Connecting to: " + serverLocator);
  +      HashMap config = new HashMap();
  +      config.put(InvokerLocator.FORCE_REMOTE, "true");
  +      config.put(Bisocket.IS_CALLBACK_SERVER, "true");
  +      config.put(Bisocket.PING_FREQUENCY, TEST_PING_FREQUENCY_STRING);
  +      addExtraClientConfig(config);
  +      Client client = new Client(serverLocator, config);
  +      client.connect();
  +      log.info("client is connected");
  +      assertTrue(client.getInvoker() instanceof BisocketClientInvoker);
  +      
  +      SimpleCallbackHandler callbackHandler = new SimpleCallbackHandler();
  +      client.addListener(callbackHandler, new HashMap());
  +      log.info("client added callback handler");
  +      
  +      Iterator it = invocationHandler.callbackHandlers.iterator();
  +      ServerInvokerCallbackHandler serverInvokerCallbackHandler = (ServerInvokerCallbackHandler) it.next();
  +      Client callbackClient = serverInvokerCallbackHandler.getCallbackClient();
  +      assertTrue(callbackClient.getInvoker() instanceof BisocketClientInvoker);
  +      MicroSocketClientInvoker clientInvoker = (MicroSocketClientInvoker) callbackClient.getInvoker();
  +      Field field = BisocketClientInvoker.class.getDeclaredField("controlSocket");
  +      field.setAccessible(true);
  +      Socket controlSocketBefore = (Socket) field.get(clientInvoker);
  +
  +      Thread.sleep(4 * TEST_PING_FREQUENCY);
  +      Socket controlSocketAfter = (Socket) field.get(clientInvoker);      
  +      assertEquals(controlSocketBefore, controlSocketAfter);
  +      log.info("control socket: " + controlSocketBefore);
  +
  +      client.removeListener(callbackHandler);
  +      client.disconnect();
  +   }
  +   
  +   
  +   public void testServerRestart() throws Throwable
  +   {
  +      log.info("entering " + getName());
  +      String host = InetAddress.getLocalHost().getHostName();
  +      String locatorURI = getTransport() + "://" + host + ":" + port; 
  +      InvokerLocator serverLocator = new InvokerLocator(locatorURI);
  +      log.info("Connecting to: " + serverLocator);
  +      HashMap config = new HashMap();
  +      config.put(InvokerLocator.FORCE_REMOTE, "true");
  +      config.put(Bisocket.IS_CALLBACK_SERVER, "true");
  +      config.put(Bisocket.PING_FREQUENCY, TEST_PING_FREQUENCY_STRING);
  +      addExtraClientConfig(config);
  +      Client client = new Client(serverLocator, config);
  +      client.connect();
  +      log.info("client is connected");
  +      assertTrue(client.getInvoker() instanceof BisocketClientInvoker);
  +      SimpleCallbackHandler callbackHandler = new SimpleCallbackHandler();
  +      client.addListener(callbackHandler, new HashMap());
  +      log.info("client added callback handler");
  +      client.invoke(CALLBACK_TEST);
  +      assertEquals(1, callbackHandler.callbackCounter);
  +      
  +      Connector oldConnector = connector;
  +      connector.stop();
  +      log.info("STOPPED CONNECTOR");
  +      setUp();
  +      log.info("RESTARTED CONNECTOR");
  +      assertTrue(!connector.equals(oldConnector));
  +      
  +      Thread.sleep(TEST_PING_FREQUENCY * 3);
  +      
  +      // It is beyond the scope of Remoting to fail over to a new server,
  +      // complete with registered callback handlers.
  +      client.addListener(callbackHandler, new HashMap());
  +      log.info("client added callback handler");
  +      
  +      client.invoke(CALLBACK_TEST);
  +      assertEquals(2, callbackHandler.callbackCounter);
  +
  +      client.removeListener(callbackHandler);
  +      client.disconnect();
  +   }
  +   
  +   
      public static void main(String[] args)
      {
         BisocketTestCase testCase = new BisocketTestCase();
  
  
  



More information about the jboss-cvs-commits mailing list