hammant 2002/08/25 15:43:11
Modified: altrmi/src/java/org/apache/excalibur/altrmi/client/impl/callback/stream
CallbackEnabledClientCustomStreamReadWriter.java
Added: altrmi/src/test/org/apache/excalibur/altrmi/test/socket
CallbackEnabledCustomStreamTestCase.java
Removed: altrmi/src/test/org/apache/excalibur/altrmi/test/socket
CustomStreamSocketClientCBTest.java
CustomStreamSocketServerCBTest.java
altrmi socketa.xml socketb.xml socketc.xml
Log:
Call-Back (for speed comparison) now a Unit test.
Revision Changes Path
1.5 +18 -6
jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/callback/stream/CallbackEnabledClientCustomStreamReadWriter.java
Index: CallbackEnabledClientCustomStreamReadWriter.java
===================================================================
RCS file:
/home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/client/impl/callback/stream/CallbackEnabledClientCustomStreamReadWriter.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- CallbackEnabledClientCustomStreamReadWriter.java 23 Jun 2002 17:03:53 -0000
1.4
+++ CallbackEnabledClientCustomStreamReadWriter.java 25 Aug 2002 22:43:11 -0000
1.5
@@ -13,6 +13,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.io.EOFException;
import java.util.HashMap;
import org.apache.excalibur.altrmi.client.impl.stream.ClientStreamReadWriter;
import org.apache.excalibur.altrmi.common.AltrmiCallbackException;
@@ -87,11 +88,15 @@
*/
public void run()
{
+ boolean readingInt = false;
while( !mIsStopped )
{
try
{
+
+ readingInt = true;
int byteArraySize = (int)mDataInputStream.readInt();
+ readingInt = false;
byte[] byteArray = new byte[ byteArraySize ];
mDataInputStream.read( byteArray );
@@ -114,16 +119,23 @@
}
else
{
- //NEVER OCCURS
+ //NEVER OCCURS, or a hack?
}
}
catch( IOException e )
{
- // :-?
- if( e.getClass().getName().equals(
"java.net.SocketTimeoutException" ) )
- continue;
- e.printStackTrace();
+ if (e instanceof EOFException && readingInt)
+ {
+ // do nothing, connection closed
+ }
+ else
+ {
+ // :-?
+ if( e.getClass().getName().equals(
"java.net.SocketTimeoutException" ) )
+ continue;
+ e.printStackTrace();
+ }
mIsStopped = true;
return;
}
1.1
jakarta-avalon-excalibur/altrmi/src/test/org/apache/excalibur/altrmi/test/socket/CallbackEnabledCustomStreamTestCase.java
Index: CallbackEnabledCustomStreamTestCase.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.socket;
import org.apache.excalibur.altrmi.client.impl.ClientClassAltrmiFactory;
import
org.apache.excalibur.altrmi.client.impl.callback.socket.CallbackEnabledSocketCustomStreamHostContext;
import org.apache.excalibur.altrmi.client.AltrmiFactory;
import org.apache.excalibur.altrmi.test.TestInterface;
import org.apache.excalibur.altrmi.test.AbstractHelloTestCase;
import org.apache.excalibur.altrmi.test.SimpleHelloTestServerImpl;
import
org.apache.excalibur.altrmi.server.impl.callback.socket.CallbackEnabledSocketCustomStreamServer;
/**
* Test Custom Stream over sockets.
* @author Paul Hammant
*/
public class CallbackEnabledCustomStreamTestCase extends AbstractHelloTestCase
{
public CallbackEnabledCustomStreamTestCase(String name)
{
super(name);
}
protected void setUp() throws Exception
{
super.setUp();
// server side setup.
server = new CallbackEnabledSocketCustomStreamServer(10004);
testServer = new SimpleHelloTestServerImpl();
server.publish(testServer, "Hello", TestInterface.class);
server.start();
// Client side setup
AltrmiFactory af = new ClientClassAltrmiFactory(false);
af.setHostContext(new
CallbackEnabledSocketCustomStreamHostContext("127.0.0.1", 10004));
testClient = (TestInterface) af.lookup("Hello");
// just a kludge for unit testing given we are intrinsically dealing with
// threads, AltRMI being a client/server thing
Thread.yield();
}
protected void tearDown() throws Exception
{
server.stop();
Thread.yield();
server = null;
testServer = null;
super.tearDown();
}
}
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>