[jboss-remoting-commits] JBoss Remoting SVN: r6221 - remoting2/branches/2.x/src/tests/org/jboss/test/remoting/connection/identity.

jboss-remoting-commits at lists.jboss.org jboss-remoting-commits at lists.jboss.org
Tue Jan 25 23:44:40 EST 2011


Author: ron.sigal at jboss.com
Date: 2011-01-25 23:44:40 -0500 (Tue, 25 Jan 2011)
New Revision: 6221

Modified:
   remoting2/branches/2.x/src/tests/org/jboss/test/remoting/connection/identity/ServerIdentityTestCase.java
Log:
JBREM-1144: Added testServerIdentityWithLeasingNewLease().

Modified: remoting2/branches/2.x/src/tests/org/jboss/test/remoting/connection/identity/ServerIdentityTestCase.java
===================================================================
--- remoting2/branches/2.x/src/tests/org/jboss/test/remoting/connection/identity/ServerIdentityTestCase.java	2011-01-26 04:16:48 UTC (rev 6220)
+++ remoting2/branches/2.x/src/tests/org/jboss/test/remoting/connection/identity/ServerIdentityTestCase.java	2011-01-26 04:44:40 UTC (rev 6221)
@@ -170,7 +170,7 @@
       log.info(getName() + " PASSES");
    }
    
-   public void testServerIdentityWithLeasing() throws Throwable
+   public void testServerIdentityWithLeasingNewServer() throws Throwable
    {
       log.info("entering " + getName());
       
@@ -227,6 +227,67 @@
    }
    
    
+   public void testServerIdentityWithLeasingNewLease() throws Throwable
+   {
+      log.info("entering " + getName());
+      
+      // Start server.
+      setupServer(true);
+      
+      // Create client. Adding "dummy=dummy" assures that InvokerRegistry will not create a
+      // LocalClientInvoker for the ConnectionValidator.
+      InvokerLocator clientLocator = new InvokerLocator(locatorURI + "&dummy=dummy");
+      HashMap clientConfig = new HashMap();
+      clientConfig.put(InvokerLocator.FORCE_REMOTE, "true");
+      clientConfig.put("numberOfCallRetries", "3"); // for ConnectionValidator
+      addExtraClientConfig(clientConfig);
+      Client client = new Client(clientLocator, clientConfig);
+      client.connect();
+      log.info("client is connected");
+      
+      // Test connection.
+      assertEquals("abc", client.invoke("abc"));
+      log.info("connection is good");
+      
+      // Install connection listener.
+      TestConnectionListener listener = new TestConnectionListener();
+      HashMap metadata = new HashMap();
+      metadata.put(Remoting.USE_SERVER_CONNECTION_IDENTITY, "true");
+      metadata.put(ConnectionValidator.VALIDATOR_PING_PERIOD, "10000");
+      metadata.put(ConnectionValidator.VALIDATOR_PING_TIMEOUT, "10000");
+      client.addConnectionListener(listener, metadata);
+      log.info(this + " added connection listener: " + listener);
+      // Allow time to get serverId of first server.
+      Thread.sleep(15000);
+      
+      // Verify listener is notified if Lease is destroyed.
+      Field field = ServerInvoker.class.getDeclaredField("clientLeases");
+      field.setAccessible(true);
+      Map clientLeases = (Map) field.get(connector.getServerInvoker());
+      clientLeases.clear();
+      log.info("REMOVED LEASE");
+      Thread.sleep(15000);
+      log.info(this + " listener.connectionFailed: " + listener.connectionFailed);
+      assertTrue(listener.connectionFailed);
+      
+      setOut(originalOutPrintStream);
+      String sOut = new String(baosOut.toByteArray());
+      setErr(originalErrPrintStream);
+      String sErr = new String(baosErr.toByteArray());
+      if (!(sOut.indexOf("detected new serverId:") > -1 || sErr.indexOf("detected new serverId:") > -1))
+      {
+         System.out.println(sOut);
+         System.out.println(sErr);
+      }
+      assertTrue(sOut.indexOf("detected new serverId:") > -1 || sErr.indexOf("detected new serverId:") > -1);
+     
+      client.disconnect();
+      shutdownServer();
+     
+      log.info(getName() + " PASSES");
+   }
+   
+   
    protected String getTransport()
    {
       return "socket";



More information about the jboss-remoting-commits mailing list