You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by ha...@apache.org on 2002/01/28 11:27:06 UTC
cvs commit: jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/test PipeTest.java
hammant 02/01/28 02:27:06
Modified: altrmi tests.xml
altrmi/src/java/org/apache/commons/altrmi/client/impl
ServerClassAltrmiFactory.java
altrmi/src/java/org/apache/commons/altrmi/common
AltrmiReply.java
altrmi/src/java/org/apache/commons/altrmi/server/impl
AbstractServer.java
altrmi/src/java/org/apache/commons/altrmi/server/impl/classretrievers
AbstractClassRetriever.java
altrmi/src/java/org/apache/commons/altrmi/test PipeTest.java
Added: altrmi/src/java/org/apache/commons/altrmi/common
ClassRetrievalFailedReply.java
Log:
Tests for dynamic proxy generation
Revision Changes Path
1.5 +18 -1 jakarta-commons-sandbox/altrmi/tests.xml
Index: tests.xml
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/tests.xml,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- tests.xml 26 Jan 2002 15:22:16 -0000 1.4
+++ tests.xml 28 Jan 2002 10:27:06 -0000 1.5
@@ -3,7 +3,7 @@
<!--
"Alt (to) RMI" component of the Jakarta Commons Subproject
- $Id: tests.xml,v 1.4 2002/01/26 15:22:16 hammant Exp $
+ $Id: tests.xml,v 1.5 2002/01/28 10:27:06 hammant Exp $
-->
@@ -55,6 +55,13 @@
<pathelement location="${build.home}/classes"/>
</path>
+ <path id="testC1.classpath">
+ <pathelement location="${build.home}/classes"/>
+ <pathelement location="D:/jdk1.4/lib/tools.jar"/>
+ </path>
+
+
+
<taskdef name="altrmiinterfaces" classname="org.apache.commons.altrmi.generator.ant.AltrmiInterfaceTask">
@@ -220,6 +227,16 @@
<java classname="org.apache.commons.altrmi.test.PipeTest" fork="true">
<classpath refid="testB1.classpath"/>
<arg value="S"/>
+ </java>
+ </target>
+
+ <target name="pipedc" depends="generate">
+
+ <echo>ee ${java.home}</echo>
+
+ <java classname="org.apache.commons.altrmi.test.PipeTest" fork="true">
+ <classpath refid="testC1.classpath"/>
+ <arg value="D"/>
</java>
</target>
1.8 +6 -2 jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/ServerClassAltrmiFactory.java
Index: ServerClassAltrmiFactory.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/ServerClassAltrmiFactory.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- ServerClassAltrmiFactory.java 21 Jan 2002 20:10:34 -0000 1.7
+++ ServerClassAltrmiFactory.java 28 Jan 2002 10:27:06 -0000 1.8
@@ -23,6 +23,7 @@
import org.apache.commons.altrmi.common.RequestFailedReply;
import org.apache.commons.altrmi.common.AltrmiAuthentication;
import org.apache.commons.altrmi.common.ExceptionReply;
+import org.apache.commons.altrmi.common.ClassRetrievalFailedReply;
import java.util.HashMap;
@@ -35,7 +36,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.7 $
+ * @version $Revision: 1.8 $
*/
public class ServerClassAltrmiFactory extends AbstractAltrmiFactory {
@@ -138,7 +139,10 @@
if (ar instanceof RequestFailedReply) {
throw new AltrmiConnectionException(((RequestFailedReply) ar)
.getFailureReason());
- } //TODO others.
+ } else if (ar instanceof ClassRetrievalFailedReply) {
+ ClassRetrievalFailedReply crfr = (ClassRetrievalFailedReply) ar;
+ throw new AltrmiConnectionException("Exception on server side ");
+ } //TODO others.
}
cr = (ClassReply) ar;
1.5 +2 -1 jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/common/AltrmiReply.java
Index: AltrmiReply.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/common/AltrmiReply.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- AltrmiReply.java 19 Jan 2002 13:30:19 -0000 1.4
+++ AltrmiReply.java 28 Jan 2002 10:27:06 -0000 1.5
@@ -21,7 +21,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.4 $
+ * @version $Revision: 1.5 $
*/
public abstract class AltrmiReply implements Externalizable {
@@ -41,6 +41,7 @@
public static final int SUSPENDEDREPLY = 104;
public static final int ENDCONNECTIONREPLY = 105;
public static final int NOSUCHREFERENCEREPLY = 106;
+ public static final int CLASSRETRIEVALFAILEDREPLY = 107;
/**
* Method getReplyCode. This is quicker than instanceof for type checking.
1.1 jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/common/ClassRetrievalFailedReply.java
Index: ClassRetrievalFailedReply.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.commons.altrmi.common;
/**
* Class RequestFailedReply
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
* @version $Revision: 1.1 $
*/
public final class ClassRetrievalFailedReply extends AltrmiReply {
/**
* Constructor RequestFailedReply
*
*
* @param failureReason
*
*/
public ClassRetrievalFailedReply() {
}
/**
* Method getReplyCode. This is quicker than instanceof for type checking.
*
*
* @return
*
*/
public int getReplyCode() {
return CLASSRETRIEVALFAILEDREPLY;
}
}
1.14 +3 -2 jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/server/impl/AbstractServer.java
Index: AbstractServer.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/server/impl/AbstractServer.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- AbstractServer.java 27 Jan 2002 15:47:40 -0000 1.13
+++ AbstractServer.java 28 Jan 2002 10:27:06 -0000 1.14
@@ -35,6 +35,7 @@
import org.apache.commons.altrmi.common.AltrmiInvocationException;
import org.apache.commons.altrmi.common.OpenConnectionReply;
import org.apache.commons.altrmi.common.PingReply;
+import org.apache.commons.altrmi.common.ClassRetrievalFailedReply;
import org.apache.commons.altrmi.server.ClassRetrievalException;
import org.apache.commons.altrmi.server.ClassRetriever;
import org.apache.commons.altrmi.server.ServerInvocationHandler;
@@ -57,7 +58,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.13 $
+ * @version $Revision: 1.14 $
*/
public abstract class AbstractServer extends AbstractMethodHandler implements AltrmiServer {
@@ -366,7 +367,7 @@
mClassRetriever
.getInterfaceImplementationBytes(publishedThing));
} catch (ClassRetrievalException e) {
- return new ExceptionReply(new ClassNotFoundException("AltRMI Server exception - " + publishedThing + " not found"));
+ return new ClassRetrievalFailedReply();
}
} else if (request.getRequestCode() == AltrmiRequest.OPENCONNECTIONREQUEST) {
Long session = getNewSession();
1.2 +4 -0 jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/server/impl/classretrievers/AbstractClassRetriever.java
Index: AbstractClassRetriever.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/server/impl/classretrievers/AbstractClassRetriever.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- AbstractClassRetriever.java 27 Jan 2002 15:47:40 -0000 1.1
+++ AbstractClassRetriever.java 28 Jan 2002 10:27:06 -0000 1.2
@@ -66,6 +66,10 @@
"Generated class not found in classloader specified : " + e.getMessage());
}
+ if (is == null) {
+ throw new ClassRetrievalException("Generated class not found in classloader specified.");
+ }
+
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int i = 0;
1.8 +30 -5 jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/test/PipeTest.java
Index: PipeTest.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/test/PipeTest.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- PipeTest.java 25 Jan 2002 16:40:14 -0000 1.7
+++ PipeTest.java 28 Jan 2002 10:27:06 -0000 1.8
@@ -12,6 +12,9 @@
import org.apache.commons.altrmi.server.impl.piped.AbstractPipedServer;
import org.apache.commons.altrmi.server.impl.piped.PipedObjectStreamServer;
import org.apache.commons.altrmi.server.impl.classretrievers.JarFileClassRetriever;
+import org.apache.commons.altrmi.server.impl.classretrievers.NoClassRetriever;
+import org.apache.commons.altrmi.server.impl.classretrievers.DynamicGeneratorClassRetriever;
+import org.apache.commons.altrmi.server.ClassRetriever;
import org.apache.commons.altrmi.client.AltrmiHostContext;
import org.apache.commons.altrmi.client.impl.socket.SocketObjectStreamHostContext;
import org.apache.commons.altrmi.client.AltrmiFactory;
@@ -23,6 +26,7 @@
import java.io.IOException;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
+import java.io.File;
/**
@@ -30,7 +34,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.7 $
+ * @version $Revision: 1.8 $
*/
public class PipeTest {
@@ -52,10 +56,30 @@
mServerOrClientFactory = args[0];
AbstractPipedServer ps = new PipedObjectStreamServer();
+
+ TestInterfaceImpl ti = new TestInterfaceImpl();
+
+ ClassRetriever cr = new NoClassRetriever();
if (mServerOrClientFactory.equals("S")) {
- ps.setClassRetriever(new JarFileClassRetriever("build/classes2"));
+ cr = new JarFileClassRetriever("build/classes2");
+ } else if (mServerOrClientFactory.equals("D")) {
+ DynamicGeneratorClassRetriever dr = new DynamicGeneratorClassRetriever();
+
+ File source = new File("testSource");
+ source.mkdir();
+ File gen = new File("testGenerated");
+ gen.mkdir();
+
+ dr.setAltrmiClasspath("build/classes");
+ dr.setSrcGenDir(source.getAbsolutePath());
+ dr.setClassGenDir(gen.getAbsolutePath());
+
+ dr.generate(ti,"Hello",TestInterface.class, TestInterface2.class);
+ cr = dr;
+
}
- TestInterfaceImpl ti = new TestInterfaceImpl();
+ ps.setClassRetriever(cr);
+
ps.publish(ti, "Hello", TestInterface.class, TestInterface2.class);
ps.start();
@@ -71,7 +95,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.7 $
+ * @version $Revision: 1.8 $
*/
static class PipedTestClient implements Runnable {
@@ -101,7 +125,8 @@
AltrmiHostContext arhc = new PipedObjectStreamHostContext(in, out);
mPipedServer.makeNewConnection(in, out);
AltrmiFactory af = null;
- if (mServerOrClientFactory.equals("S")) {
+ if (mServerOrClientFactory.equals("S")
+ | mServerOrClientFactory.equals("D")) {
af = new ServerClassAltrmiFactory(false);
} else {
af = new ClientClassAltrmiFactory(false);
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>