[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