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

Tom Elrod tom.elrod at jboss.com
Mon Sep 25 22:27:52 EDT 2006


  User: telrod  
  Date: 06/09/25 22:27:52

  Added:       src/tests/org/jboss/test/remoting/transport/socket/raw   
                        RawTestCase.java RawTestClient.java
                        RawTestServer.java
  Log:
  JBREM-548 & JBREM-604 & JBREM-596 - updated so oneway invocations will only send data on client (and not wait for response) and only receive data on the server (and not write out response).  Also allowing socket server invoker to receive raw data from any client and send along to the handler.  Finally, fixed some issues where test cases were failing due to change leasing (JBREM-596) as well as changes made to http server invoker to work with messaging.
  
  Revision  Changes    Path
  1.1      date: 2006/09/26 02:27:52;  author: telrod;  state: Exp;JBossRemoting/src/tests/org/jboss/test/remoting/transport/socket/raw/RawTestCase.java
  
  Index: RawTestCase.java
  ===================================================================
  /*
  * JBoss, a division of Red Hat
  * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
  * by the @authors tag. See the copyright.txt in the distribution for a
  * full listing of individual contributors.
  *
  * This is free software; you can redistribute it and/or modify it
  * under the terms of the GNU Lesser General Public License as
  * published by the Free Software Foundation; either version 2.1 of
  * the License, or (at your option) any later version.
  *
  * This software is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this software; if not, write to the Free
  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  */
  package org.jboss.test.remoting.transport.socket.raw;
  
  import org.jboss.test.remoting.transport.InvokerTestDriver;
  
  /**
   * @author <a href="mailto:tom at jboss.org">Tom Elrod</a>
   */
  public class RawTestCase extends InvokerTestDriver
  {
     public void declareTestClasses()
     {
        addTestClasses(RawTestClient.class.getName(),
                       1,
                       RawTestServer.class.getName());
     }
  }
  
  
  
  1.1      date: 2006/09/26 02:27:52;  author: telrod;  state: Exp;JBossRemoting/src/tests/org/jboss/test/remoting/transport/socket/raw/RawTestClient.java
  
  Index: RawTestClient.java
  ===================================================================
  package org.jboss.test.remoting.transport.socket.raw;
  
  import junit.framework.TestCase;
  
  import java.io.BufferedInputStream;
  import java.io.BufferedOutputStream;
  import java.io.IOException;
  import java.io.ObjectInputStream;
  import java.io.ObjectOutputStream;
  import java.net.Socket;
  
  /**
   * @author <a href="mailto:tom.elrod at jboss.com">Tom Elrod</a>
   */
  public class RawTestClient extends TestCase
  {
     protected String address = "localhost";
     protected int port = 6700;
  
     public boolean enableTcpNoDelay = false;
     public int timeout = 60000;
  
     private Socket socket = null;
  
     private ObjectOutputStream oos;
     private ObjectInputStream objInputStream;
  
     public void testRawInvocation()
     {
        makeRawInvocation();
        makeRawInvocation();
     }
  
     public void makeRawInvocation()
     {
           try
           {
              getSocket();
  
              oos.writeObject("This is the request");
  
              //oos.flush();
  
              oos.reset();
              // to make sure stream gets reset
              // Stupid ObjectInputStream holds object graph
              // can only be set by the client/server sending a TC_RESET
              oos.writeObject(Boolean.TRUE);
              oos.flush();
              oos.reset();
  
  
              Object obj = objInputStream.readObject();
  
              objInputStream.readObject(); // for stupid ObjectInputStream reset
  
              System.out.println("response: " + obj);
  
              assertEquals(RawTestServer.RESPONSE, obj);
  
           }
           catch(IOException e)
           {
              e.printStackTrace();
           }
           catch(ClassNotFoundException e)
           {
              e.printStackTrace();
           }
  
     }
  
     public void getSocket() throws IOException
     {
        if(socket == null)
        {
           try
           {
              socket = new Socket(address, port);
              socket.setTcpNoDelay(enableTcpNoDelay);
  //            socket.setSoTimeout(timeout);
  
              BufferedOutputStream out = new BufferedOutputStream(socket.getOutputStream());
  //         out.flush();
              BufferedInputStream in = new BufferedInputStream(socket.getInputStream());
  
              oos = new ObjectOutputStream(out);
              objInputStream = new ObjectInputStream(in);
  
           }
           catch(IOException e)
           {
              e.printStackTrace();
           }
        }
        else
        {
  //         oos.reset();
  //         oos.writeByte(1);
  //         oos.flush();
  //         oos.reset();
  //         objInputStream.readByte();
  //         objInputStream.reset();
        }
     }
  
     public static void main(String[] args)
     {
        RawTestClient client = new RawTestClient();
        client.testRawInvocation();
     }
  }
  
  
  
  1.1      date: 2006/09/26 02:27:52;  author: telrod;  state: Exp;JBossRemoting/src/tests/org/jboss/test/remoting/transport/socket/raw/RawTestServer.java
  
  Index: RawTestServer.java
  ===================================================================
  /*
  * JBoss, a division of Red Hat
  * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
  * by the @authors tag. See the copyright.txt in the distribution for a
  * full listing of individual contributors.
  *
  * This is free software; you can redistribute it and/or modify it
  * under the terms of the GNU Lesser General Public License as
  * published by the Free Software Foundation; either version 2.1 of
  * the License, or (at your option) any later version.
  *
  * This software is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this software; if not, write to the Free
  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  */
  package org.jboss.test.remoting.transport.socket.raw;
  
  import org.jboss.jrunit.extensions.ServerTestCase;
  import org.jboss.remoting.InvocationRequest;
  import org.jboss.remoting.ServerInvocationHandler;
  import org.jboss.remoting.ServerInvoker;
  import org.jboss.remoting.callback.InvokerCallbackHandler;
  import org.jboss.remoting.transport.Connector;
  
  import javax.management.MBeanServer;
  
  /**
   * @author <a href="mailto:tom at jboss.org">Tom Elrod</a>
   */
  public class RawTestServer extends ServerTestCase
  {
     public static final String RESPONSE = "This is response";
  
     private Connector connector;
  
     public void setUp() throws Exception
     {
        connector = new Connector("socket://localhost:6700");
        connector.create();
        connector.addInvocationHandler("test", new TestInvocationHandler());
        connector.start();
     }
  
     public void tearDown()
     {
        if(connector != null)
        {
           connector.stop();
           connector.destroy();
        }
     }
  
     public static void main(String[] args)
     {
        RawTestServer server = new RawTestServer();
        try
        {
           server.setUp();
        }
        catch (Exception e)
        {
           e.printStackTrace();
        }
     }
  
     public class TestInvocationHandler implements ServerInvocationHandler
     {
  
        public void setMBeanServer(MBeanServer server)
        {
           //To change body of implemented methods use File | Settings | File Templates.
        }
  
        public void setInvoker(ServerInvoker invoker)
        {
           //To change body of implemented methods use File | Settings | File Templates.
        }
  
        public Object invoke(InvocationRequest invocation) throws Throwable
        {
           return RESPONSE;
        }
  
        public void addListener(InvokerCallbackHandler callbackHandler)
        {
           //To change body of implemented methods use File | Settings | File Templates.
        }
  
        public void removeListener(InvokerCallbackHandler callbackHandler)
        {
           //To change body of implemented methods use File | Settings | File Templates.
        }
     }
  }
  
  



More information about the jboss-cvs-commits mailing list