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/27 16:47:40 UTC
cvs commit: jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/server/impl/classretrievers AbstractClassRetriever.java DynamicGeneratorClassRetriever.java JarFileClassRetriever.java NoClassRetriever.java PlainClassRetriever.java
hammant 02/01/27 07:47:40
Modified: altrmi build.xml
altrmi/src/java/org/apache/commons/altrmi/client/impl/direct
DirectMarshalledInvocationHandler.java
altrmi/src/java/org/apache/commons/altrmi/server
AltrmiServer.java
altrmi/src/java/org/apache/commons/altrmi/server/impl
AbstractServer.java
altrmi/src/java/org/apache/commons/altrmi/server/impl/classretrievers
JarFileClassRetriever.java NoClassRetriever.java
PlainClassRetriever.java
Added: altrmi/src/java/org/apache/commons/altrmi/server/impl/classretrievers
AbstractClassRetriever.java
DynamicGeneratorClassRetriever.java
Removed: altrmi/src/java/org/apache/commons/altrmi/server/impl
AbstractClassRetriever.java
Log:
rework of class retrievers
Revision Changes Path
1.5 +1 -3 jakarta-commons-sandbox/altrmi/build.xml
Index: build.xml
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/build.xml,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- build.xml 26 Jan 2002 13:51:34 -0000 1.4
+++ build.xml 27 Jan 2002 15:47:40 -0000 1.5
@@ -3,7 +3,7 @@
<!--
"Alternative (to) RMI" component of the Jakarta Commons Subproject
- $Id: build.xml,v 1.4 2002/01/26 13:51:34 hammant Exp $
+ $Id: build.xml,v 1.5 2002/01/27 15:47:40 hammant Exp $
-->
@@ -142,12 +142,10 @@
<!-- includes="org/apache/commons/altrmi/server/impl/rmi/RmiAltrmiInovcationAdapter.class"> -->
- <echo>rmic?</echo>
<rmic base="${build.home}/classes"
includes="org/apache/commons/altrmi/common/RmiAltrmiInovcationHandler.class">
<classpath refid="compile.classpath" />
</rmic>
- <echo>rmic!</echo>
</target>
1.2 +15 -4 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.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- DirectMarshalledInvocationHandler.java 26 Jan 2002 15:22:16 -0000 1.1
+++ DirectMarshalledInvocationHandler.java 27 Jan 2002 15:47:40 -0000 1.2
@@ -24,6 +24,7 @@
import org.apache.commons.altrmi.common.NotSuchReferenceException;
import org.apache.commons.altrmi.common.AltrmiMarshalledInvocationHandler;
import org.apache.commons.altrmi.common.SerializationHelper;
+import org.apache.commons.altrmi.common.RequestFailedReply;
import org.apache.commons.altrmi.client.impl.AbstractClientInvocationHandler;
import org.apache.commons.altrmi.client.AltrmiConnectionListener;
@@ -35,7 +36,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
public final class DirectMarshalledInvocationHandler extends AbstractDirectInvocationHandler {
@@ -57,9 +58,19 @@
}
protected AltrmiReply performInvocation(AltrmiRequest request) throws IOException {
- byte[] serRequest = SerializationHelper.getBytesFromInstance(request);
- byte[] serReply = mAltrmiInvocationHandler.handleInvocation(serRequest);
- return (AltrmiReply) SerializationHelper.getInstanceFromBytes(serReply);
+
+ try {
+ byte[] serRequest = SerializationHelper.getBytesFromInstance(request);
+ byte[] serReply = mAltrmiInvocationHandler.handleInvocation(serRequest);
+ return (AltrmiReply) SerializationHelper.getInstanceFromBytes(serReply);
+ } catch (IOException e) {
+ e.printStackTrace();
+ return new RequestFailedReply("Some IO Exception on server side : " + e.getMessage());
+ } catch (ClassNotFoundException e) {
+ e.printStackTrace();
+ return new RequestFailedReply("Some Class not found Exception on server side : " + e.getMessage());
+ }
+
}
}
1.4 +2 -2 jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/server/AltrmiServer.java
Index: AltrmiServer.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/server/AltrmiServer.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- AltrmiServer.java 25 Jan 2002 16:40:13 -0000 1.3
+++ AltrmiServer.java 27 Jan 2002 15:47:40 -0000 1.4
@@ -19,9 +19,9 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version * $Revision: 1.3 $
+ * @version * $Revision: 1.4 $
*/
-public interface AltrmiServer extends AltrmiPublisher, AltrmiProxyGenerator {
+public interface AltrmiServer extends AltrmiPublisher {
/**
* Method setClassRetriever
1.13 +2 -95 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.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- AbstractServer.java 26 Jan 2002 13:51:34 -0000 1.12
+++ AbstractServer.java 27 Jan 2002 15:47:40 -0000 1.13
@@ -57,7 +57,7 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.12 $
+ * @version $Revision: 1.13 $
*/
public abstract class AbstractServer extends AbstractMethodHandler implements AltrmiServer {
@@ -75,9 +75,7 @@
protected static final int STOPPED = 33;
protected static final int UNSTARTED = 44;
protected int mState = UNSTARTED;
- private String mAltrmiClasspath;
- private String mClassGenDir;
- private String mSrcGenDir;
+
/**
* Method publish
@@ -463,98 +461,7 @@
return new Long((long) ((long) SESSION++ << 32) + (long) Math.round(Math.random()));
}
- /**
- * Method generate
- *
- *
- * @param impl
- * @param asName
- * @param classOrInterfaceToExpose
- * @param additionalFacade
- *
- */
- public void generate(Object impl, String asName, Class classOrInterfaceToExpose, Class additionalFacade) throws PublicationException {
- generate(impl, asName, classOrInterfaceToExpose, new Class[] {additionalFacade} );
- }
-
- /**
- * Method generate
- *
- *
- * @param impl
- * @param asName
- * @param classOrInterfaceToExpose
- * @param additionalFacades
- *
- */
- public void generate(Object impl, String asName, Class classOrInterfaceToExpose, Class[] additionalFacades) throws PublicationException {
- generate(impl, asName, new Class[] { classOrInterfaceToExpose }, additionalFacades );
- }
-
- /**
- * Method generate
- *
- *
- * @param impl
- * @param asName
- * @param classesOrInterfacesToExpose
- *
- */
- public void generate(Object impl, String asName, Class[] classesOrInterfacesToExpose) throws PublicationException {
- generate(impl, asName, classesOrInterfacesToExpose, new Class[0] );
- }
-
- /**
- * Method generate
- *
- *
- * @param impl
- * @param asName
- * @param classOrInterfaceToExpose
- *
- */
- public void generate(Object impl, String asName, Class classOrInterfaceToExpose) throws PublicationException {
- generate(impl, asName, new Class[] { classOrInterfaceToExpose } , new Class[0] );
- }
- public void setAltrmiClasspath(String altrmiClasspath) {
- mAltrmiClasspath = altrmiClasspath;
- }
- public void setClassGenDir(String classGenDir) {
- mClassGenDir = classGenDir;
- }
- public void setSrcGenDir(String srcGenDir) {
- mSrcGenDir = srcGenDir;
- }
-
- /**
- * Method generate
- *
- *
- * @param impl
- * @param asName
- * @param classesOrInterfacesToExpose
- * @param additionalFacades
- *
- */
- public void generate(Object impl, String asName, Class[] classesOrInterfacesToExpose, Class[] additionalFacades) throws PublicationException {
- PrimarySourceGenerator sg = new PrimarySourceGenerator();
- sg.setSrcGenDir(mSrcGenDir);
- sg.setClassGenDir(mClassGenDir);
- sg.setGenName(asName);
- sg.setClasspath(mAltrmiClasspath);
- sg.setClassOrInterfacesToExpose(classesOrInterfacesToExpose);
- sg.setAdditionalfacades(additionalFacades);
- ClassLoader cL = this.getClass().getClassLoader();
- try {
- sg.generateSrc(cL);
- sg.generateClass(cL);
- } catch (SourceGenerationException e) {
- e.printStackTrace();
- // TODO ?
- }
-
- }
}
1.4 +6 -50 jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/server/impl/classretrievers/JarFileClassRetriever.java
Index: JarFileClassRetriever.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/server/impl/classretrievers/JarFileClassRetriever.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- JarFileClassRetriever.java 26 Jan 2002 13:51:34 -0000 1.3
+++ JarFileClassRetriever.java 27 Jan 2002 15:47:40 -0000 1.4
@@ -7,19 +7,10 @@
*/
package org.apache.commons.altrmi.server.impl.classretrievers;
-
-
-import org.apache.commons.altrmi.server.ClassRetrievalException;
-import org.apache.commons.altrmi.server.ClassRetriever;
-import org.apache.commons.altrmi.server.impl.AbstractClassRetriever;
-
-import java.net.URLClassLoader;
import java.net.URL;
+import java.net.URLClassLoader;
import java.net.MalformedURLException;
-
import java.io.File;
-import java.io.InputStream;
-import java.io.ByteArrayInputStream;
/**
@@ -27,11 +18,10 @@
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
- * @version $Revision: 1.3 $
+ * @version $Revision: 1.4 $
*/
public class JarFileClassRetriever extends AbstractClassRetriever {
- private URLClassLoader mURLClassLoader;
/**
* Constructor JarFileClassRetriever
@@ -41,8 +31,7 @@
*
*/
public JarFileClassRetriever(URL urlOfJarFile) {
- System.out.println("URL1 " + urlOfJarFile);
- mURLClassLoader = new URLClassLoader(new URL[]{ urlOfJarFile });
+ setClassLoader(new URLClassLoader(new URL[]{ urlOfJarFile }));
}
/**
@@ -53,8 +42,7 @@
*
*/
public JarFileClassRetriever(URL[] urlsOfJarFiles) {
- System.out.println("URL2 " + urlsOfJarFiles[0]);
- mURLClassLoader = new URLClassLoader(urlsOfJarFiles);
+ setClassLoader(new URLClassLoader(urlsOfJarFiles));
}
/**
@@ -68,15 +56,13 @@
*/
public JarFileClassRetriever(String[] pathsOfJarFiles) throws MalformedURLException {
- System.out.println("URL3 " + pathsOfJarFiles[0]);
-
URL[] urls = new URL[pathsOfJarFiles.length];
for (int i = 0; i < pathsOfJarFiles.length; i++) {
urls[i] = new File(pathsOfJarFiles[i]).toURL();
}
- mURLClassLoader = new URLClassLoader(urls);
+ setClassLoader(new URLClassLoader(urls));
}
/**
@@ -90,38 +76,8 @@
*/
public JarFileClassRetriever(String pathOfJarFile) throws MalformedURLException {
- System.out.println("URL4 " + pathOfJarFile);
-
- mURLClassLoader = new URLClassLoader(new URL[]{ new File(pathOfJarFile).toURL() });
+ setClassLoader(new URLClassLoader(new URL[]{ new File(pathOfJarFile).toURL() }));
}
- /**
- * Method getThingBytes
- *
- *
- * @param thingName
- *
- * @return
- *
- * @throws ClassRetrievalException
- *
- */
- public byte[] getThingBytes(String thingName) throws ClassRetrievalException {
-
- thingName = thingName.replace('.','/') + ".class";
- try {
- InputStream is = mURLClassLoader.getResourceAsStream(thingName);
- if (is == null) {
- throw new ClassRetrievalException("Generated class not found in Jar on server");
- }
- byte[] bytes = new byte[is.available()];
- is.read(bytes);
-
- return bytes;
- } catch (java.io.IOException e) {
- e.printStackTrace();
- throw new ClassRetrievalException("Generated class not found in Jar on server");
- }
- }
}
1.3 +1 -3 jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/server/impl/classretrievers/NoClassRetriever.java
Index: NoClassRetriever.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/server/impl/classretrievers/NoClassRetriever.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- NoClassRetriever.java 21 Jan 2002 15:38:21 -0000 1.2
+++ NoClassRetriever.java 27 Jan 2002 15:47:40 -0000 1.3
@@ -8,8 +8,6 @@
package org.apache.commons.altrmi.server.impl.classretrievers;
import org.apache.commons.altrmi.server.ClassRetrievalException;
-import org.apache.commons.altrmi.server.ClassRetriever;
-import org.apache.commons.altrmi.server.impl.AbstractClassRetriever;
/**
@@ -17,7 +15,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 NoClassRetriever extends AbstractClassRetriever {
1.3 +1 -5 jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/server/impl/classretrievers/PlainClassRetriever.java
Index: PlainClassRetriever.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/server/impl/classretrievers/PlainClassRetriever.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- PlainClassRetriever.java 21 Jan 2002 15:38:21 -0000 1.2
+++ PlainClassRetriever.java 27 Jan 2002 15:47:40 -0000 1.3
@@ -8,11 +8,7 @@
*/
package org.apache.commons.altrmi.server.impl.classretrievers;
-
-
import org.apache.commons.altrmi.server.ClassRetrievalException;
-import org.apache.commons.altrmi.server.ClassRetriever;
-import org.apache.commons.altrmi.server.impl.AbstractClassRetriever;
import java.io.InputStream;
import java.io.ByteArrayOutputStream;
@@ -24,7 +20,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 PlainClassRetriever extends AbstractClassRetriever {
1.1 jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/server/impl/classretrievers/AbstractClassRetriever.java
Index: AbstractClassRetriever.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.server.impl.classretrievers;
import org.apache.commons.altrmi.server.ClassRetrievalException;
import org.apache.commons.altrmi.server.ClassRetriever;
import java.io.InputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
public abstract class AbstractClassRetriever implements ClassRetriever {
private ClassLoader mClassLoader;
protected void setClassLoader(ClassLoader classLoader) {
mClassLoader = classLoader;
}
/**
* Method getBeanBytes
*
*
* @param publishedName
*
* @return
*
* @throws ClassRetrievalException
*
*/
public final byte[] getBeanBytes(String publishedName) throws ClassRetrievalException {
return getThingBytes("AltrmiGenerated" + publishedName);
}
/**
* Method getInterfaceImplementationBytes
*
*
* @param publishedName
*
* @return
*
* @throws ClassRetrievalException
*
*/
public final byte[] getInterfaceImplementationBytes(String publishedName)
throws ClassRetrievalException {
return getThingBytes("AltrmiGenerated2" + publishedName);
}
protected byte[] getThingBytes(String thingName) throws ClassRetrievalException {
InputStream is = null;
thingName = thingName.replace('.','/') + ".class";
try {
is = mClassLoader.getResourceAsStream(thingName);
} catch (Exception e) {
throw new ClassRetrievalException(
"Generated class not found in classloader specified : " + e.getMessage());
}
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int i = 0;
try {
while (-1 != (i = is.read())) {
baos.write(i);
}
is.close();
} catch (IOException e) {
throw new ClassRetrievalException("Error retrieving generated class bytes : "
+ e.getMessage());
}
return baos.toByteArray();
}
}
1.1 jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/server/impl/classretrievers/DynamicGeneratorClassRetriever.java
Index: DynamicGeneratorClassRetriever.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.server.impl.classretrievers;
import org.apache.commons.altrmi.server.AltrmiProxyGenerator;
import org.apache.commons.altrmi.server.PublicationException;
import org.apache.commons.altrmi.generator.PrimarySourceGenerator;
import org.apache.commons.altrmi.generator.SourceGenerationException;
import java.net.URLClassLoader;
import java.net.URL;
import java.net.MalformedURLException;
import java.io.File;
/**
* Class JarFileClassRetriever
*
*
* @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
* @version $Revision: 1.1 $
*/
public class DynamicGeneratorClassRetriever extends AbstractClassRetriever implements AltrmiProxyGenerator {
private String mAltrmiClasspath;
private String mClassGenDir;
private String mSrcGenDir;
/**
* Constructor JarFileClassRetriever
*
*
*/
public DynamicGeneratorClassRetriever() {
}
/**
* Method generate
*
*
* @param impl
* @param asName
* @param classOrInterfaceToExpose
* @param additionalFacade
*
*/
public void generate(Object impl, String asName, Class classOrInterfaceToExpose, Class additionalFacade) throws PublicationException {
generate(impl, asName, classOrInterfaceToExpose, new Class[] {additionalFacade} );
}
/**
* Method generate
*
*
* @param impl
* @param asName
* @param classOrInterfaceToExpose
* @param additionalFacades
*
*/
public void generate(Object impl, String asName, Class classOrInterfaceToExpose, Class[] additionalFacades) throws PublicationException {
generate(impl, asName, new Class[] { classOrInterfaceToExpose }, additionalFacades );
}
/**
* Method generate
*
*
* @param impl
* @param asName
* @param classesOrInterfacesToExpose
*
*/
public void generate(Object impl, String asName, Class[] classesOrInterfacesToExpose) throws PublicationException {
generate(impl, asName, classesOrInterfacesToExpose, new Class[0] );
}
/**
* Method generate
*
*
* @param impl
* @param asName
* @param classOrInterfaceToExpose
*
*/
public void generate(Object impl, String asName, Class classOrInterfaceToExpose) throws PublicationException {
generate(impl, asName, new Class[] { classOrInterfaceToExpose } , new Class[0] );
}
public void setAltrmiClasspath(String altrmiClasspath) {
mAltrmiClasspath = altrmiClasspath;
}
public void setClassGenDir(String classGenDir) {
mClassGenDir = classGenDir;
try {
setClassLoader( new URLClassLoader(new URL[]{ new File(classGenDir).toURL() }));
} catch (MalformedURLException e) {
e.printStackTrace();
//TODO ?
}
}
public void setSrcGenDir(String srcGenDir) {
mSrcGenDir = srcGenDir;
}
/**
* Method generate
*
*
* @param impl
* @param asName
* @param classesOrInterfacesToExpose
* @param additionalFacades
*
*/
public void generate(Object impl, String asName, Class[] classesOrInterfacesToExpose, Class[] additionalFacades) throws PublicationException {
PrimarySourceGenerator sg = new PrimarySourceGenerator();
sg.setSrcGenDir(mSrcGenDir);
sg.setClassGenDir(mClassGenDir);
sg.setGenName(asName);
sg.setClasspath(mAltrmiClasspath);
sg.setClassOrInterfacesToExpose(classesOrInterfacesToExpose);
sg.setAdditionalfacades(additionalFacades);
ClassLoader cL = this.getClass().getClassLoader();
try {
sg.generateSrc(cL);
sg.generateClass(cL);
} catch (SourceGenerationException e) {
e.printStackTrace();
// TODO ?
}
}
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>