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/03/04 13:10:49 UTC
cvs commit: jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/common ClassLoaderObjectInputStream.java
hammant 02/03/04 04:10:49
Modified: altrmi/src/java/org/apache/commons/altrmi/client
AltrmiClientInvocationHandler.java
AltrmiHostContext.java
altrmi/src/java/org/apache/commons/altrmi/client/impl
AbstractAltrmiFactory.java
AbstractClientInvocationHandler.java
AbstractHostContext.java
ClientClassAltrmiFactory.java
ServerClassAltrmiFactory.java
altrmi/src/java/org/apache/commons/altrmi/client/impl/beep
BEEPInvocationHandler.java
altrmi/src/java/org/apache/commons/altrmi/client/impl/direct
DirectHostContext.java
DirectMarshalledHostContext.java
DirectMarshalledInvocationHandler.java
altrmi/src/java/org/apache/commons/altrmi/client/impl/multiple
AbstractMultipleInvocationHandler.java
altrmi/src/java/org/apache/commons/altrmi/client/impl/piped
AbstractPipedStreamInvocationHandler.java
PipedCustomStreamInvocationHandler.java
PipedObjectStreamInvocationHandler.java
altrmi/src/java/org/apache/commons/altrmi/client/impl/socket
AbstractSocketStreamInvocationHandler.java
SocketCustomStreamHostContext.java
SocketCustomStreamInvocationHandler.java
SocketObjectStreamHostContext.java
SocketObjectStreamInvocationHandler.java
altrmi/src/java/org/apache/commons/altrmi/client/impl/stream
ClientCustomStreamReadWriter.java
StreamInvocationHandler.java
altrmi/src/java/org/apache/commons/altrmi/common
ClassLoaderObjectInputStream.java
Log:
changes to allow for complex clientside classloading arrangements
Revision Changes Path
1.4 +3 -0 jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/AltrmiClientInvocationHandler.java
Index: AltrmiClientInvocationHandler.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/AltrmiClientInvocationHandler.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- AltrmiClientInvocationHandler.java 21 Jan 2002 20:10:34 -0000 1.3
+++ AltrmiClientInvocationHandler.java 4 Mar 2002 12:10:48 -0000 1.4
@@ -38,6 +38,9 @@
void ping();
+ ClassLoader getInterfacesClassLoader();
+
+
}
1.3 +2 -1 jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/AltrmiHostContext.java
Index: AltrmiHostContext.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/AltrmiHostContext.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- AltrmiHostContext.java 19 Jan 2002 13:30:18 -0000 1.2
+++ AltrmiHostContext.java 4 Mar 2002 12:10:48 -0000 1.3
@@ -17,7 +17,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version * $Revision: 1.2 $
+ * @version * $Revision: 1.3 $
*/
public interface AltrmiHostContext {
@@ -29,4 +29,5 @@
*
*/
AltrmiClientInvocationHandler getInvocationHandler();
+
}
1.14 +3 -4 jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/AbstractAltrmiFactory.java
Index: AbstractAltrmiFactory.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/AbstractAltrmiFactory.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- AbstractAltrmiFactory.java 2 Feb 2002 12:18:02 -0000 1.13
+++ AbstractAltrmiFactory.java 4 Mar 2002 12:10:48 -0000 1.14
@@ -31,7 +31,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 AbstractAltrmiFactory implements AltrmiFactory {
@@ -41,7 +41,7 @@
private final boolean mBeanOnly;
private transient String mTextToSign;
protected Long mSession;
- protected ClassLoader mClassLoader;
+
/**
* Constructor AbstractAltrmiFactory
@@ -51,9 +51,8 @@
* @param classLoader
*
*/
- public AbstractAltrmiFactory(boolean beanOnly, ClassLoader classLoader) {
+ public AbstractAltrmiFactory(boolean beanOnly) {
mBeanOnly = beanOnly;
- mClassLoader = classLoader;
}
/**
1.4 +5 -1 jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/AbstractClientInvocationHandler.java
Index: AbstractClientInvocationHandler.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/AbstractClientInvocationHandler.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- AbstractClientInvocationHandler.java 30 Jan 2002 23:42:44 -0000 1.3
+++ AbstractClientInvocationHandler.java 4 Mar 2002 12:10:48 -0000 1.4
@@ -26,7 +26,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.3 $
+ * @version $Revision: 1.4 $
*/
public abstract class AbstractClientInvocationHandler implements AltrmiInvocationHandler, AltrmiClientInvocationHandler {
@@ -79,5 +79,9 @@
*/
public void setConnectionPinger(AltrmiConnectionPinger connectionPinger) {
mConnectionPinger = connectionPinger;
+ }
+
+ public ClassLoader getInterfacesClassLoader() {
+ return AbstractClientInvocationHandler.class.getClassLoader();
}
}
1.3 +3 -2 jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/AbstractHostContext.java
Index: AbstractHostContext.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/AbstractHostContext.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- AbstractHostContext.java 4 Feb 2002 21:07:07 -0000 1.2
+++ AbstractHostContext.java 4 Mar 2002 12:10:48 -0000 1.3
@@ -21,9 +21,9 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.2 $
+ * @version $Revision: 1.3 $
*/
-public class AbstractHostContext implements AltrmiHostContext {
+public abstract class AbstractHostContext implements AltrmiHostContext {
protected final AltrmiClientInvocationHandler mAltrmiClientInvocationHandler;
@@ -62,4 +62,5 @@
public void setAltrmiConnectionListener(AltrmiConnectionListener altrmiConnectionListener) {
mAltrmiClientInvocationHandler.setAltrmiConnectionListener(altrmiConnectionListener);
}
+
}
1.10 +5 -5 jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/ClientClassAltrmiFactory.java
Index: ClientClassAltrmiFactory.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/ClientClassAltrmiFactory.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- ClientClassAltrmiFactory.java 2 Feb 2002 12:18:02 -0000 1.9
+++ ClientClassAltrmiFactory.java 4 Mar 2002 12:10:48 -0000 1.10
@@ -29,7 +29,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.9 $
+ * @version $Revision: 1.10 $
*/
public class ClientClassAltrmiFactory extends AbstractAltrmiFactory {
@@ -41,12 +41,12 @@
*
*/
public ClientClassAltrmiFactory(boolean beanOnly) {
- super(beanOnly, ClientClassAltrmiFactory.class.getClassLoader());
+ super(beanOnly);
}
- public ClientClassAltrmiFactory(boolean beanOnly, ClassLoader classLoader) {
- super(beanOnly, classLoader);
- }
+// public ClientClassAltrmiFactory(boolean beanOnly, ClassLoader classLoader) {
+ // super(beanOnly, classLoader);
+ //}
/**
* Method lookup
1.12 +4 -14 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.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- ServerClassAltrmiFactory.java 2 Feb 2002 12:18:02 -0000 1.11
+++ ServerClassAltrmiFactory.java 4 Mar 2002 12:10:48 -0000 1.12
@@ -36,12 +36,13 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.11 $
+ * @version $Revision: 1.12 $
*/
public class ServerClassAltrmiFactory extends AbstractAltrmiFactory {
private HashMap mPublishedServiceClassLoaders = new HashMap();
+
/**
* Constructor ServerClassAltrmiFactory
*
@@ -50,20 +51,9 @@
*
*/
public ServerClassAltrmiFactory(boolean beanOnly) {
- super(beanOnly, ServerClassAltrmiFactory.class.getClassLoader());
+ super(beanOnly);
}
- /**
- * Constructor ServerClassAltrmiFactory
- *
- *
- * @param beanOnly
- * @param classLoader
- *
- */
- public ServerClassAltrmiFactory(boolean beanOnly, ClassLoader classLoader) {
- super(beanOnly, classLoader);
- }
/**
* Method lookup
@@ -150,7 +140,7 @@
+ " not published on Server");
}
- tcl = new TransportedClassLoader(mClassLoader);
+ tcl = new TransportedClassLoader(mHostContext.getInvocationHandler().getInterfacesClassLoader());
tcl.add(beanClassName, cr.getBeanClassBytes());
1.2 +1 -0 jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/beep/BEEPInvocationHandler.java
Index: BEEPInvocationHandler.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/beep/BEEPInvocationHandler.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- BEEPInvocationHandler.java 27 Feb 2002 14:47:36 -0000 1.1
+++ BEEPInvocationHandler.java 4 Mar 2002 12:10:48 -0000 1.2
@@ -43,7 +43,7 @@
*
*
* @author Vinay Chandrasekharan<a href="mailto:vinay_chandran@users.surceforge.net">vinay_chandran@users.surceforge.net</a>
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
public class BEEPInvocationHandler extends StreamInvocationHandler
{
@@ -66,6 +66,7 @@
public BEEPInvocationHandler(String host, int port)
throws AltrmiConnectionException
{
+ super(BEEPInvocationHandler.class.getClassLoader());
mHost = host;
mPort = port;
try
1.3 +1 -2 jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/direct/DirectHostContext.java
Index: DirectHostContext.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/direct/DirectHostContext.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- DirectHostContext.java 26 Jan 2002 15:22:16 -0000 1.2
+++ DirectHostContext.java 4 Mar 2002 12:10:48 -0000 1.3
@@ -19,7 +19,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.2 $
+ * @version $Revision: 1.3 $
*/
public class DirectHostContext extends AbstractHostContext {
@@ -39,5 +39,4 @@
//public void setAltrmiConnectionListener(AltrmiConnectionListener altrmiConnectionListener) {
//}
-
}
1.3 +1 -2 jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/direct/DirectMarshalledHostContext.java
Index: DirectMarshalledHostContext.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/direct/DirectMarshalledHostContext.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- DirectMarshalledHostContext.java 2 Feb 2002 23:39:41 -0000 1.2
+++ DirectMarshalledHostContext.java 4 Mar 2002 12:10:48 -0000 1.3
@@ -19,7 +19,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.2 $
+ * @version $Revision: 1.3 $
*/
public class DirectMarshalledHostContext extends AbstractHostContext {
@@ -41,6 +41,5 @@
throws AltrmiConnectionException {
super(new DirectMarshalledInvocationHandler(altrmiInvocationHandler, classLoader));
}
-
}
1.4 +8 -5 jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/direct/DirectMarshalledInvocationHandler.java
Index: DirectMarshalledInvocationHandler.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/direct/DirectMarshalledInvocationHandler.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- DirectMarshalledInvocationHandler.java 2 Feb 2002 23:39:41 -0000 1.3
+++ DirectMarshalledInvocationHandler.java 4 Mar 2002 12:10:48 -0000 1.4
@@ -36,12 +36,12 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.3 $
+ * @version $Revision: 1.4 $
*/
public final class DirectMarshalledInvocationHandler extends AbstractDirectInvocationHandler {
private AltrmiMarshalledInvocationHandler mAltrmiInvocationHandler;
- private ClassLoader mClassLoader;
+ private ClassLoader mInterfacesClassLoader;
/**
@@ -56,13 +56,13 @@
public DirectMarshalledInvocationHandler(AltrmiMarshalledInvocationHandler altrmiInvocationHandler)
throws AltrmiConnectionException {
mAltrmiInvocationHandler = altrmiInvocationHandler;
- mClassLoader = this.getClass().getClassLoader();
+ mInterfacesClassLoader = this.getClass().getClassLoader();
}
public DirectMarshalledInvocationHandler(AltrmiMarshalledInvocationHandler altrmiInvocationHandler, ClassLoader classLoader)
throws AltrmiConnectionException {
mAltrmiInvocationHandler = altrmiInvocationHandler;
- mClassLoader = classLoader;
+ mInterfacesClassLoader = classLoader;
}
protected AltrmiReply performInvocation(AltrmiRequest request) throws IOException {
@@ -70,7 +70,7 @@
try {
byte[] serRequest = SerializationHelper.getBytesFromInstance(request);
byte[] serReply = mAltrmiInvocationHandler.handleInvocation(serRequest);
- return (AltrmiReply) SerializationHelper.getInstanceFromBytes(serReply, mClassLoader);
+ return (AltrmiReply) SerializationHelper.getInstanceFromBytes(serReply, mInterfacesClassLoader);
} catch (IOException e) {
e.printStackTrace();
return new RequestFailedReply("Some IO Exception on server side : " + e.getMessage());
@@ -81,4 +81,7 @@
}
+ public ClassLoader getInterfacesClassLoader() {
+ return mInterfacesClassLoader;
+ }
}
1.2 +49 -9 jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/multiple/AbstractMultipleInvocationHandler.java
Index: AbstractMultipleInvocationHandler.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/multiple/AbstractMultipleInvocationHandler.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- AbstractMultipleInvocationHandler.java 21 Jan 2002 21:19:49 -0000 1.1
+++ AbstractMultipleInvocationHandler.java 4 Mar 2002 12:10:48 -0000 1.2
@@ -1,3 +1,4 @@
+
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
@@ -7,6 +8,8 @@
*/
package org.apache.commons.altrmi.client.impl.multiple;
+
+
import org.apache.commons.altrmi.client.AltrmiClientInvocationHandler;
import org.apache.commons.altrmi.client.AltrmiConnectionListener;
import org.apache.commons.altrmi.client.AltrmiConnectionPinger;
@@ -15,6 +18,14 @@
import java.io.IOException;
+
+/**
+ * Class AbstractMultipleInvocationHandler
+ *
+ *
+ * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
+ * @version $Revision: 1.2 $
+ */
public abstract class AbstractMultipleInvocationHandler implements AltrmiClientInvocationHandler {
private AltrmiConnectionListener mAltrmiConnectionListener;
@@ -35,8 +46,6 @@
mMultipleHostContext = multipleHostContext;
}
-
-
/**
* Method setConnectionPinger
*
@@ -44,19 +53,50 @@
* @param connectionPinger
*
*/
- public void setConnectionPinger(AltrmiConnectionPinger connectionPinger) {
- }
+ public void setConnectionPinger(AltrmiConnectionPinger connectionPinger) {}
- public void initialize() throws IOException {
- }
+ /**
+ * Method initialize
+ *
+ *
+ * @throws IOException
+ *
+ */
+ public void initialize() throws IOException {}
- public void close() {
- }
+ /**
+ * Method close
+ *
+ *
+ */
+ public void close() {}
+ /**
+ * Method getLastRealRequest
+ *
+ *
+ * @return
+ *
+ */
public long getLastRealRequest() {
return 0;
}
- public void ping() {
+ /**
+ * Method ping
+ *
+ *
+ */
+ public void ping() {}
+
+ /**
+ * Method getInterfacesClassLoader
+ *
+ *
+ * @return
+ *
+ */
+ public ClassLoader getInterfacesClassLoader() {
+ return null; //TODO
}
}
1.5 +15 -4 jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/piped/AbstractPipedStreamInvocationHandler.java
Index: AbstractPipedStreamInvocationHandler.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/piped/AbstractPipedStreamInvocationHandler.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- AbstractPipedStreamInvocationHandler.java 20 Jan 2002 00:13:40 -0000 1.4
+++ AbstractPipedStreamInvocationHandler.java 4 Mar 2002 12:10:48 -0000 1.5
@@ -31,7 +31,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 AbstractPipedStreamInvocationHandler extends StreamInvocationHandler {
@@ -42,19 +42,30 @@
* Constructor AbstractPipedStreamInvocationHandler
*
*
- *
* @param is
* @param os
+ * @param interfacesClassLoader
*
* @throws AltrmiConnectionException
*
*/
- public AbstractPipedStreamInvocationHandler(PipedInputStream is, PipedOutputStream os)
- throws AltrmiConnectionException {
+ public AbstractPipedStreamInvocationHandler(
+ PipedInputStream is, PipedOutputStream os, ClassLoader interfacesClassLoader)
+ throws AltrmiConnectionException {
+
+ super(interfacesClassLoader);
+
mIS = is;
mOS = os;
}
+ /**
+ * Method initialize
+ *
+ *
+ * @throws IOException
+ *
+ */
public void initialize() throws IOException {
setObjectReadWriter(createClientStreamReadWriter(mIS, mOS));
super.initialize();
1.4 +28 -4 jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/piped/PipedCustomStreamInvocationHandler.java
Index: PipedCustomStreamInvocationHandler.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/piped/PipedCustomStreamInvocationHandler.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- PipedCustomStreamInvocationHandler.java 20 Jan 2002 00:13:40 -0000 1.3
+++ PipedCustomStreamInvocationHandler.java 4 Mar 2002 12:10:48 -0000 1.4
@@ -26,7 +26,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.3 $
+ * @version $Revision: 1.4 $
*/
public final class PipedCustomStreamInvocationHandler
extends AbstractPipedStreamInvocationHandler {
@@ -35,7 +35,6 @@
* Constructor PipedCustomStreamInvocationHandler
*
*
- *
* @param is
* @param os
*
@@ -44,11 +43,36 @@
*/
public PipedCustomStreamInvocationHandler(PipedInputStream is, PipedOutputStream os)
throws AltrmiConnectionException {
- super(is, os);
+ super(is, os, PipedCustomStreamInvocationHandler.class.getClassLoader());
+ }
+
+ /**
+ * Constructor PipedCustomStreamInvocationHandler
+ *
+ *
+ * @param is
+ * @param os
+ * @param interfacesClassLoader
+ *
+ * @throws AltrmiConnectionException
+ *
+ */
+ public PipedCustomStreamInvocationHandler(
+ PipedInputStream is, PipedOutputStream os, ClassLoader interfacesClassLoader)
+ throws AltrmiConnectionException {
+ super(is, os, interfacesClassLoader);
}
protected ClientStreamReadWriter createClientStreamReadWriter(
InputStream in, OutputStream out) throws IOException {
- return new ClientCustomStreamReadWriter(in, out);
+
+ return new ClientCustomStreamReadWriter(in, out,
+ PipedCustomStreamInvocationHandler.class
+ .getClassLoader());
+ }
+
+ protected ClientStreamReadWriter createClientStreamReadWriter(
+ InputStream in, OutputStream out, ClassLoader classLoader) throws IOException {
+ return new ClientCustomStreamReadWriter(in, out, classLoader);
}
}
1.6 +19 -3 jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/piped/PipedObjectStreamInvocationHandler.java
Index: PipedObjectStreamInvocationHandler.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/piped/PipedObjectStreamInvocationHandler.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- PipedObjectStreamInvocationHandler.java 20 Jan 2002 00:13:40 -0000 1.5
+++ PipedObjectStreamInvocationHandler.java 4 Mar 2002 12:10:48 -0000 1.6
@@ -26,7 +26,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.5 $
+ * @version $Revision: 1.6 $
*/
public final class PipedObjectStreamInvocationHandler
extends AbstractPipedStreamInvocationHandler {
@@ -35,7 +35,6 @@
* Constructor PipedObjectStreamInvocationHandler
*
*
- *
* @param is
* @param os
*
@@ -44,7 +43,24 @@
*/
public PipedObjectStreamInvocationHandler(PipedInputStream is, PipedOutputStream os)
throws AltrmiConnectionException {
- super(is, os);
+ super(is, os, PipedObjectStreamInvocationHandler.class.getClassLoader());
+ }
+
+ /**
+ * Constructor PipedObjectStreamInvocationHandler
+ *
+ *
+ * @param is
+ * @param os
+ * @param interfacesClassLoader
+ *
+ * @throws AltrmiConnectionException
+ *
+ */
+ public PipedObjectStreamInvocationHandler(
+ PipedInputStream is, PipedOutputStream os, ClassLoader interfacesClassLoader)
+ throws AltrmiConnectionException {
+ super(is, os, interfacesClassLoader);
}
protected ClientStreamReadWriter createClientStreamReadWriter(
1.7 +6 -4 jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/socket/AbstractSocketStreamInvocationHandler.java
Index: AbstractSocketStreamInvocationHandler.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/socket/AbstractSocketStreamInvocationHandler.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- AbstractSocketStreamInvocationHandler.java 20 Jan 2002 00:13:40 -0000 1.6
+++ AbstractSocketStreamInvocationHandler.java 4 Mar 2002 12:10:49 -0000 1.7
@@ -30,12 +30,13 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.6 $
+ * @version $Revision: 1.7 $
*/
public abstract class AbstractSocketStreamInvocationHandler extends StreamInvocationHandler {
- private String mHost;
- private int mPort;
+ private final String mHost;
+ private final int mPort;
+
/**
* Constructor SocketCustomStreamInvocationHandler
@@ -47,9 +48,10 @@
* @throws AltrmiConnectionException
*
*/
- public AbstractSocketStreamInvocationHandler(String host, int port)
+ public AbstractSocketStreamInvocationHandler(String host, int port, ClassLoader classLoader)
throws AltrmiConnectionException {
+ super(classLoader);
mHost = host;
mPort = port;
1.3 +7 -2 jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/socket/SocketCustomStreamHostContext.java
Index: SocketCustomStreamHostContext.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/socket/SocketCustomStreamHostContext.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- SocketCustomStreamHostContext.java 21 Jan 2002 15:38:21 -0000 1.2
+++ SocketCustomStreamHostContext.java 4 Mar 2002 12:10:49 -0000 1.3
@@ -21,7 +21,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.2 $
+ * @version $Revision: 1.3 $
*/
public class SocketCustomStreamHostContext extends AbstractHostContext {
@@ -36,6 +36,11 @@
*
*/
public SocketCustomStreamHostContext(String host, int port) throws AltrmiConnectionException {
- super(new SocketCustomStreamInvocationHandler(host, port));
+ super(new SocketCustomStreamInvocationHandler(host, port, SocketCustomStreamHostContext.class.getClassLoader()));
}
+
+ public SocketCustomStreamHostContext(String host, int port, ClassLoader classLoader) throws AltrmiConnectionException {
+ super(new SocketCustomStreamInvocationHandler(host, port, classLoader));
+ }
+
}
1.4 +6 -6 jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/socket/SocketCustomStreamInvocationHandler.java
Index: SocketCustomStreamInvocationHandler.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/socket/SocketCustomStreamInvocationHandler.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- SocketCustomStreamInvocationHandler.java 20 Jan 2002 00:13:40 -0000 1.3
+++ SocketCustomStreamInvocationHandler.java 4 Mar 2002 12:10:49 -0000 1.4
@@ -24,13 +24,13 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.3 $
+ * @version $Revision: 1.4 $
*/
public final class SocketCustomStreamInvocationHandler
extends AbstractSocketStreamInvocationHandler {
- private String mHost;
- private int mPort;
+
+
/**
* Constructor SocketCustomStreamInvocationHandler
@@ -42,13 +42,13 @@
* @throws AltrmiConnectionException
*
*/
- public SocketCustomStreamInvocationHandler(String host, int port)
+ public SocketCustomStreamInvocationHandler(String host, int port, ClassLoader classLoader)
throws AltrmiConnectionException {
- super(host, port);
+ super(host, port, classLoader);
}
protected ClientStreamReadWriter createClientStreamReadWriter(
InputStream in, OutputStream out) throws IOException {
- return new ClientCustomStreamReadWriter(in, out);
+ return new ClientCustomStreamReadWriter(in, out, mInterfacesClassLoader);
}
}
1.6 +30 -3 jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/socket/SocketObjectStreamHostContext.java
Index: SocketObjectStreamHostContext.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/socket/SocketObjectStreamHostContext.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- SocketObjectStreamHostContext.java 21 Jan 2002 15:38:21 -0000 1.5
+++ SocketObjectStreamHostContext.java 4 Mar 2002 12:10:49 -0000 1.6
@@ -21,7 +21,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.5 $
+ * @version $Revision: 1.6 $
*/
public class SocketObjectStreamHostContext extends AbstractHostContext {
@@ -39,7 +39,11 @@
*
*/
public SocketObjectStreamHostContext(String host, int port) throws AltrmiConnectionException {
- super(new SocketObjectStreamInvocationHandler(host, port, null, null));
+ super(new SocketObjectStreamInvocationHandler(host, port, null, null, SocketObjectStreamHostContext.class.getClassLoader() ));
+ }
+
+ public SocketObjectStreamHostContext(String host, int port, ClassLoader classLoader) throws AltrmiConnectionException {
+ super(new SocketObjectStreamInvocationHandler(host, port, null, null, classLoader));
}
/**
@@ -57,7 +61,30 @@
public SocketObjectStreamHostContext(
String host, int port, String objectInputStreamClassName, String objectOutputStreamClassName)
throws AltrmiConnectionException {
+
+ super(new SocketObjectStreamInvocationHandler(host, port, objectInputStreamClassName,
+ objectOutputStreamClassName,
+ SocketObjectStreamHostContext.class
+ .getClassLoader()));
+ }
+
+ /**
+ * Constructor SocketObjectStreamHostContext
+ *
+ *
+ * @param host
+ * @param port
+ * @param objectInputStreamClassName
+ * @param objectOutputStreamClassName
+ * @param classLoader
+ *
+ * @throws AltrmiConnectionException
+ *
+ */
+ public SocketObjectStreamHostContext(
+ String host, int port, String objectInputStreamClassName, String objectOutputStreamClassName, ClassLoader classLoader)
+ throws AltrmiConnectionException {
super(new SocketObjectStreamInvocationHandler(host, port, objectInputStreamClassName,
- objectOutputStreamClassName));
+ objectOutputStreamClassName, classLoader));
}
}
1.8 +6 -3 jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/socket/SocketObjectStreamInvocationHandler.java
Index: SocketObjectStreamInvocationHandler.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/socket/SocketObjectStreamInvocationHandler.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- SocketObjectStreamInvocationHandler.java 20 Jan 2002 00:13:40 -0000 1.7
+++ SocketObjectStreamInvocationHandler.java 4 Mar 2002 12:10:49 -0000 1.8
@@ -24,7 +24,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 final class SocketObjectStreamInvocationHandler
extends AbstractSocketStreamInvocationHandler {
@@ -45,10 +45,13 @@
*
*/
public SocketObjectStreamInvocationHandler(
- String host, int port, String objectInputStreamClassName, String objectOutputStreamClassName)
+ String host, int port, String objectInputStreamClassName, String objectOutputStreamClassName, ClassLoader classLoader)
throws AltrmiConnectionException {
- super(host, port);
+ super(host, port, classLoader);
+
+ //TODO - is this a pending problem? The superclass invokes createClientStreamReadWriter
+ // perhaps an init() is needed.
mObjectInputStreamClassName = objectInputStreamClassName;
mObjectOutputStreamClassName = objectOutputStreamClassName;
1.3 +5 -3 jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/stream/ClientCustomStreamReadWriter.java
Index: ClientCustomStreamReadWriter.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/stream/ClientCustomStreamReadWriter.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ClientCustomStreamReadWriter.java 26 Jan 2002 15:22:16 -0000 1.2
+++ ClientCustomStreamReadWriter.java 4 Mar 2002 12:10:49 -0000 1.3
@@ -25,12 +25,13 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.2 $
+ * @version $Revision: 1.3 $
*/
public class ClientCustomStreamReadWriter extends ClientStreamReadWriter {
private DataInputStream mDataInputStream;
private DataOutputStream mDataOutputStream;
+ private ClassLoader mClassLoader;
/**
* Constructor ClientCustomStreamReadWriter
@@ -42,10 +43,11 @@
* @throws IOException
*
*/
- public ClientCustomStreamReadWriter(InputStream inputStream, OutputStream outputStream)
+ public ClientCustomStreamReadWriter(InputStream inputStream, OutputStream outputStream, ClassLoader classLoader)
throws IOException {
mDataOutputStream = new DataOutputStream(new BufferedOutputStream(outputStream));
mDataInputStream = new DataInputStream(inputStream);
+ mClassLoader = classLoader;
}
protected synchronized AltrmiReply postRequest(AltrmiRequest altrmiRequest)
@@ -72,6 +74,6 @@
mDataInputStream.read(byteArray);
- return (AltrmiReply) SerializationHelper.getInstanceFromBytes(byteArray);
+ return (AltrmiReply) SerializationHelper.getInstanceFromBytes(byteArray, mClassLoader);
}
}
1.6 +14 -2 jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/stream/StreamInvocationHandler.java
Index: StreamInvocationHandler.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/stream/StreamInvocationHandler.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- StreamInvocationHandler.java 4 Feb 2002 21:07:07 -0000 1.5
+++ StreamInvocationHandler.java 4 Mar 2002 12:10:49 -0000 1.6
@@ -37,13 +37,22 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.5 $
+ * @version $Revision: 1.6 $
*/
public abstract class StreamInvocationHandler extends AbstractClientInvocationHandler {
private ClientStreamReadWriter mObjectReadWriter;
private boolean mMethodLogging = false;
private long mLastRealRequest = System.currentTimeMillis();
+ protected final ClassLoader mInterfacesClassLoader;
+
+ public StreamInvocationHandler(ClassLoader interfacesClassLoader) {
+ mInterfacesClassLoader = interfacesClassLoader;
+ }
+
+ public ClassLoader getInterfacesClassLoader() {
+ return mInterfacesClassLoader;
+ }
/**
* Method setAltrmiConnectionListener
@@ -153,7 +162,10 @@
return reply;
}
} catch (ClassNotFoundException e) {
- throw new AltrmiInvocationException("Class definition missing on Deserialization"
+ System.out.println("--");
+ e.printStackTrace();
+ System.out.println("--");
+ throw new AltrmiInvocationException("Class definition missing on Deserialization: "
+ e.getMessage());
}
}
1.3 +11 -0 jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/common/ClassLoaderObjectInputStream.java
Index: ClassLoaderObjectInputStream.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/common/ClassLoaderObjectInputStream.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ClassLoaderObjectInputStream.java 18 Feb 2002 21:25:24 -0000 1.2
+++ ClassLoaderObjectInputStream.java 4 Mar 2002 12:10:49 -0000 1.3
@@ -46,7 +46,18 @@
return clazz; // the classloader knows of the class
} else {
// classloader knows not of class, let the super classloader do it
+ //printCLs();
return super.resolveClass(objectStreamClass);
+ }
+ }
+
+ // for debugging
+ private void printCLs() {
+ ClassLoader cl = mClassLoader;
+ System.out.println("Cl1>" + cl);
+ while(cl != null) {
+ System.out.println("Cl?>" + cl);
+ cl = cl.getParent();
}
}
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>