You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by ha...@apache.org on 2002/11/15 00:49:29 UTC
cvs commit: jakarta-avalon-excalibur/altrmi/src/test/org/apache/excalibur/altrmi/test/async AsyncTest.java AsyncTestImpl.java SimpleAsyncTestCase.java
hammant 2002/11/14 15:49:29
Modified: altrmi base.xml
altrmi/src/java/org/apache/excalibur/altrmi/common
ProxyGenerator.java
altrmi/src/java/org/apache/excalibur/altrmi/generator
AbstractProxyGenerator.java
BCELProxyGeneratorImpl.java ProxyGeneratorImpl.java
altrmi/src/java/org/apache/excalibur/altrmi/generator/ant
AltrmiProxyTask.java
altrmi/src/java/org/apache/excalibur/altrmi/server
PublicationDescription.java
altrmi/src/java/org/apache/excalibur/altrmi/server/impl/adapters
PublicationAdapter.java
altrmi/src/java/org/apache/excalibur/altrmi/server/impl/classretrievers
AbstractDynamicGeneratorClassRetriever.java
altrmi/src/test/org/apache/excalibur/altrmi/test/generator
BCELProxyGeneratorTestCase.java
Added: altrmi/src/java/org/apache/excalibur/altrmi/server
PublicationDescriptionItem.java
altrmi/src/test/org/apache/excalibur/altrmi/test/async
AsyncTest.java AsyncTestImpl.java
SimpleAsyncTestCase.java
Log:
start of asynchronous functionality
Revision Changes Path
1.6 +9 -0 jakarta-avalon-excalibur/altrmi/base.xml
Index: base.xml
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/base.xml,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- base.xml 26 Aug 2002 21:53:48 -0000 1.5
+++ base.xml 14 Nov 2002 23:49:28 -0000 1.6
@@ -53,6 +53,15 @@
<pathelement location="${build.home}/testclasses"/>
</classpath>
</altrmiproxies>
+
+ <altrmiproxies genname="AsyncTest" srcgendir="${build.home}/genjava"
+ classgendir="${build.home}/genclasses" verbose="true"
+ interfaces="org.apache.excalibur.altrmi.test.async.AsyncTest">
+ <classpath>
+ <pathelement location="${build.home}/classes"/>
+ <pathelement location="${build.home}/testclasses"/>
+ </classpath>
+ </altrmiproxies>
<altrmiproxies genname="CallBackTestListenerImpl" srcgendir="${build.home}/genjava"
classgendir="${build.home}/genclasses" verbose="true"
1.4 +5 -3 jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/common/ProxyGenerator.java
Index: ProxyGenerator.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/common/ProxyGenerator.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ProxyGenerator.java 23 May 2002 21:37:19 -0000 1.3
+++ ProxyGenerator.java 14 Nov 2002 23:49:28 -0000 1.4
@@ -7,6 +7,8 @@
*/
package org.apache.excalibur.altrmi.common;
+import org.apache.excalibur.altrmi.server.PublicationDescriptionItem;
+
/**
* Class ProxyGenerator
*
@@ -24,7 +26,7 @@
* @param interfacesToExpose the interfaces to expose
*
*/
- void setInterfacesToExpose( Class[] interfacesToExpose );
+ void setInterfacesToExpose( PublicationDescriptionItem[] interfacesToExpose );
/**
* Set the additional facades
@@ -33,7 +35,7 @@
* @param additionalFacades additional facades/interfaces to expose
*
*/
- void setAdditionalFacades( Class[] additionalFacades );
+ void setAdditionalFacades( PublicationDescriptionItem[] additionalFacades );
/**
* Set the source generation directory
1.3 +10 -9 jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/generator/AbstractProxyGenerator.java
Index: AbstractProxyGenerator.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/generator/AbstractProxyGenerator.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- AbstractProxyGenerator.java 15 Jul 2002 21:52:19 -0000 1.2
+++ AbstractProxyGenerator.java 14 Nov 2002 23:49:28 -0000 1.3
@@ -10,6 +10,7 @@
import org.apache.excalibur.altrmi.common.AbstractMethodHandler;
import org.apache.excalibur.altrmi.common.ProxyGenerator;
import org.apache.excalibur.altrmi.common.ProxyGenerationException;
+import org.apache.excalibur.altrmi.server.PublicationDescriptionItem;
/**
@@ -29,8 +30,8 @@
private String m_srcGenDir;
private String m_classpath;
private boolean m_verbose;
- private Class[] m_additionalFacades;
- private Class[] m_interfacesToExpose;
+ private PublicationDescriptionItem[] m_additionalFacades;
+ private PublicationDescriptionItem[] m_interfacesToExpose;
/**
* Get the directory name of the class generation directory.
@@ -91,7 +92,7 @@
*
* @return the additional facades
*/
- public Class[] getAdditionalFacades()
+ public PublicationDescriptionItem[] getAdditionalFacades()
{
return m_additionalFacades;
}
@@ -101,7 +102,7 @@
*
* @return the interfaces
*/
- public Class[] getInterfacesToExpose()
+ public PublicationDescriptionItem[] getInterfacesToExpose()
{
return m_interfacesToExpose;
}
@@ -126,7 +127,7 @@
* @param interfacesToExpose the interfaces.
*
*/
- public void setInterfacesToExpose( Class[] interfacesToExpose )
+ public void setInterfacesToExpose( PublicationDescriptionItem[] interfacesToExpose )
{
m_interfacesToExpose = interfacesToExpose;
}
@@ -140,7 +141,7 @@
* @param additionalFacades the facades.
*
*/
- public void setAdditionalFacades( Class[] additionalFacades )
+ public void setAdditionalFacades( PublicationDescriptionItem[] additionalFacades )
{
m_additionalFacades = additionalFacades;
}
@@ -211,11 +212,11 @@
for( int p = 0; p < m_additionalFacades.length; p++ )
{
- if( clazz.getName().equals( m_additionalFacades[ p ].getName() ) )
+ if( clazz.getName().equals( m_additionalFacades[ p ].getFacadeClass().getName() ) )
{
return true;
}
- else if( clazz.getName().equals( "[L" + m_additionalFacades[ p ].getName() + ";" ) )
+ else if( clazz.getName().equals( "[L" + m_additionalFacades[ p ].getFacadeClass().getName() + ";" ) )
{
return true;
}
1.7 +11 -10 jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/generator/BCELProxyGeneratorImpl.java
Index: BCELProxyGeneratorImpl.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/generator/BCELProxyGeneratorImpl.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- BCELProxyGeneratorImpl.java 24 Aug 2002 11:39:05 -0000 1.6
+++ BCELProxyGeneratorImpl.java 14 Nov 2002 23:49:28 -0000 1.7
@@ -33,6 +33,7 @@
import org.apache.bcel.generic.ObjectType;
import org.apache.bcel.generic.PUSH;
import org.apache.bcel.generic.Type;
+import org.apache.excalibur.altrmi.server.PublicationDescriptionItem;
/**
* Class BCElProxyGeneratorImpl
@@ -76,14 +77,14 @@
{
for (int i = 0; i < getAdditionalFacades().length; i++)
{
- String encodedClassName = encodeClassName(getAdditionalFacades()[i]);
+ String encodedClassName = encodeClassName(getAdditionalFacades()[i].getFacadeClass());
generateAltrmiProxyClass(
STUB_PREFIX + getGenName() + "_" + encodedClassName,
- new Class[] { getAdditionalFacades()[i] });
+ new PublicationDescriptionItem[] { getAdditionalFacades()[i] });
generateAltrmiProxyClass2(
STUB_PREFIX + "2" + getGenName() + "_" + encodedClassName,
STUB_PREFIX + getGenName() + "_" + encodedClassName,
- new Class[] { getAdditionalFacades()[i] });
+ new PublicationDescriptionItem[] { getAdditionalFacades()[i] });
}
}
@@ -99,7 +100,7 @@
*/
protected void generateAltrmiProxyClass(
String mGeneratedClassName,
- Class[] interfacesToStubify)
+ PublicationDescriptionItem[] interfacesToStubify)
{
//Start creating class
createNewClassDeclaration(mGeneratedClassName);
@@ -147,7 +148,7 @@
protected void generateAltrmiProxyClass2(
String generatedClassName2,
String generatedClassName,
- Class[] interfacesToStubify)
+ PublicationDescriptionItem[] interfacesToStubify)
{
//start creating the class
createNewClassDeclaration2(
@@ -208,12 +209,12 @@
protected void createNewClassDeclaration2(
String generatedClassName2,
String generatedClassName,
- Class[] interfacesToStubify)
+ PublicationDescriptionItem[] interfacesToStubify)
{
String[] interafacesToImplement = new String[interfacesToStubify.length];
for (int i = 0; i < interafacesToImplement.length; i++)
{
- interafacesToImplement[i] = interfacesToStubify[i].getName();
+ interafacesToImplement[i] = interfacesToStubify[i].getFacadeClass().getName();
}
m_classGen =
new ClassGen(
@@ -438,11 +439,11 @@
*/
protected void createInterfaceMethods(
String generatedClassName,
- Class[] interfacesToStubify)
+ PublicationDescriptionItem[] interfacesToStubify)
{
for (int x = 0; x < interfacesToStubify.length; x++)
{
- Class clazz = interfacesToStubify[x];
+ Class clazz = interfacesToStubify[x].getFacadeClass();
if (isVerbose())
{
1.13 +12 -11 jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/generator/ProxyGeneratorImpl.java
Index: ProxyGeneratorImpl.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/generator/ProxyGeneratorImpl.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- ProxyGeneratorImpl.java 24 Aug 2002 11:39:05 -0000 1.12
+++ ProxyGeneratorImpl.java 14 Nov 2002 23:49:28 -0000 1.13
@@ -16,6 +16,7 @@
import java.util.Vector;
import org.apache.excalibur.altrmi.common.ProxyGenerationException;
import org.apache.excalibur.altrmi.javacompiler.JavaCompiler;
+import org.apache.excalibur.altrmi.server.PublicationDescriptionItem;
/**
* Class ProxyGeneratorImpl
@@ -51,10 +52,10 @@
{
for( int i = 0; i < getAdditionalFacades().length; i++ )
{
- Class facade = getAdditionalFacades()[ i ];
+ PublicationDescriptionItem facade = getAdditionalFacades()[ i ];
- makeSource( classLoader, encodeClassName( facade ), new Class[]{facade} );
- makeSource2( classLoader, encodeClassName( facade ), new Class[]{facade} );
+ makeSource( classLoader, encodeClassName( facade.getFacadeClass() ), new PublicationDescriptionItem[]{facade} );
+ makeSource2( classLoader, encodeClassName( facade.getFacadeClass() ), new PublicationDescriptionItem[]{facade} );
}
}
}
@@ -87,7 +88,7 @@
{
for( int i = 0; i < getAdditionalFacades().length; i++ )
{
- String classname = encodeClassName( getAdditionalFacades()[ i ] );
+ String classname = encodeClassName( getAdditionalFacades()[ i ].getFacadeClass() );
jc.doCompile( getSrcGenDir() + File.separator + "AltrmiGenerated"
+ getGenName() + "_" + classname + ".java" );
@@ -127,7 +128,7 @@
* @throws ProxyGenerationException if generation not possible.
*
*/
- public void makeSource( ClassLoader classloader, String name, Class[] interfacesToExpose )
+ public void makeSource( ClassLoader classloader, String name, PublicationDescriptionItem[] interfacesToExpose )
throws ProxyGenerationException
{
@@ -172,13 +173,13 @@
m_classSource.close();
}
- private void makeSourceInterfaces(Class[] interfacesToExpose,
+ private void makeSourceInterfaces(PublicationDescriptionItem[] interfacesToExpose,
Vector methodsDone) throws ProxyGenerationException
{
// TODO DefaultProxyHelper altrmiGetProxyHelper();
for( int x = 0; x < interfacesToExpose.length; x++ )
{
- Class clazz = interfacesToExpose[ x ];
+ Class clazz = interfacesToExpose[ x ].getFacadeClass();
if( isVerbose() )
{
@@ -338,7 +339,7 @@
* @throws ProxyGenerationException if generation not possible.
*
*/
- public void makeSource2( ClassLoader classloader, String name, Class[] interfacesToExpose )
+ public void makeSource2( ClassLoader classloader, String name, PublicationDescriptionItem[] interfacesToExpose )
throws ProxyGenerationException
{
@@ -407,12 +408,12 @@
}
}
- private void generateInterfaceList( PrintWriter pw, Class[] interfacesToExpose )
+ private void generateInterfaceList( PrintWriter pw, PublicationDescriptionItem[] interfacesToExpose )
{
for( int x = 0; x < interfacesToExpose.length; x++ )
{
- pw.print( interfacesToExpose[ x ].getName() );
+ pw.print( interfacesToExpose[ x ].getFacadeClass().getName() );
if( x + 1 < interfacesToExpose.length )
{
1.9 +6 -5 jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/generator/ant/AltrmiProxyTask.java
Index: AltrmiProxyTask.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/generator/ant/AltrmiProxyTask.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- AltrmiProxyTask.java 2 Sep 2002 22:36:23 -0000 1.8
+++ AltrmiProxyTask.java 14 Nov 2002 23:49:28 -0000 1.9
@@ -12,6 +12,7 @@
import java.util.Vector;
import org.apache.excalibur.altrmi.common.ProxyGenerationException;
import org.apache.excalibur.altrmi.common.ProxyGenerator;
+import org.apache.excalibur.altrmi.server.PublicationDescriptionItem;
import org.apache.tools.ant.AntClassLoader;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;
@@ -253,27 +254,27 @@
proxyGenerator.verbose( Boolean.valueOf( mVerbose ).booleanValue() );
proxyGenerator.setClasspath( mClasspath.concatSystemClasspath( "ignore" ).toString() );
- Class[] interfacesToExpose = new Class[ mInterfacesToExpose.length ];
+ PublicationDescriptionItem[] interfacesToExpose = new PublicationDescriptionItem[ mInterfacesToExpose.length ];
ClassLoader classLoader = new AntClassLoader( getProject(), mClasspath );
for( int i = 0; i < mInterfacesToExpose.length; i++ )
{
String cn = mInterfacesToExpose[ i ];
- interfacesToExpose[ i ] = classLoader.loadClass( cn );
+ interfacesToExpose[ i ] = new PublicationDescriptionItem(classLoader.loadClass( cn ));
}
proxyGenerator.setInterfacesToExpose( interfacesToExpose );
if( mAdditionalFacades != null )
{
- Class[] additionalFacades = new Class[ mAdditionalFacades.length ];
+ PublicationDescriptionItem[] additionalFacades = new PublicationDescriptionItem[ mAdditionalFacades.length ];
for( int i = 0; i < mAdditionalFacades.length; i++ )
{
String cn = mAdditionalFacades[ i ];
- additionalFacades[ i ] = classLoader.loadClass( cn );
+ additionalFacades[ i ] = new PublicationDescriptionItem(classLoader.loadClass( cn ));
}
proxyGenerator.setAdditionalFacades( additionalFacades );
1.6 +85 -35 jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/PublicationDescription.java
Index: PublicationDescription.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/PublicationDescription.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- PublicationDescription.java 28 Oct 2002 23:44:49 -0000 1.5
+++ PublicationDescription.java 14 Nov 2002 23:49:28 -0000 1.6
@@ -7,6 +7,8 @@
*/
package org.apache.excalibur.altrmi.server;
+import java.util.ArrayList;
+
/**
* Class PublicationDescription
*
@@ -20,11 +22,11 @@
/**
* An array of interfaces to expose.
*/
- private final Class[] m_interfacesToExpose;
+ private ArrayList m_interfacesToExpose = new ArrayList();
/**
* An array of additional facades.
*/
- private final Class[] m_additionalFacades;
+ private ArrayList m_additionalFacades = new ArrayList();
/**
* Construct a publication description.
@@ -35,9 +37,7 @@
*/
public PublicationDescription( Class interfaceToExpose )
{
- m_interfacesToExpose = new Class[]{interfaceToExpose};
- m_additionalFacades = new Class[ 0 ];
- }
+ this( new Class[] {interfaceToExpose}, new Class[0]); }
/**
* Construct a publication description.
@@ -50,9 +50,7 @@
*/
public PublicationDescription( Class interfaceToExpose, Class additionalFacade )
{
- m_interfacesToExpose = new Class[]{interfaceToExpose};
- m_additionalFacades = new Class[]{additionalFacade};
- }
+ this( new Class[] {interfaceToExpose}, new Class[] {additionalFacade}); }
/**
* Construct a publication description.
@@ -66,8 +64,7 @@
*/
public PublicationDescription( Class interfaceToExpose, Class[] additionalFacades )
{
- m_interfacesToExpose = new Class[]{interfaceToExpose};
- m_additionalFacades = additionalFacades;
+ this( new Class[] {interfaceToExpose}, additionalFacades);
}
/**
@@ -79,8 +76,7 @@
*/
public PublicationDescription( Class[] interfacesToExpose )
{
- m_interfacesToExpose = interfacesToExpose;
- m_additionalFacades = new Class[ 0 ];
+ this(interfacesToExpose, new Class[ 0 ]);
}
/**
@@ -94,8 +90,8 @@
*/
public PublicationDescription( Class[] interfacesToExpose, Class[] additionalFacades )
{
- m_interfacesToExpose = interfacesToExpose;
- m_additionalFacades = additionalFacades;
+ addInterfacesToExpose(interfacesToExpose);
+ addAdditionalFacadesToExpose(additionalFacades);
}
/**
@@ -111,8 +107,7 @@
public PublicationDescription( String interfaceToExpose, ClassLoader classLoader )
throws PublicationException
{
- m_interfacesToExpose = makeClasses( new String[]{interfaceToExpose}, classLoader );
- m_additionalFacades = new Class[ 0 ];
+ this( makeClasses( new String[]{interfaceToExpose}, classLoader ), new Class[0]);
}
/**
@@ -130,8 +125,8 @@
String interfaceToExpose, String additionalFacade, ClassLoader classLoader )
throws PublicationException
{
- m_interfacesToExpose = makeClasses( new String[]{interfaceToExpose}, classLoader );
- m_additionalFacades = makeClasses( new String[]{additionalFacade}, classLoader );
+ this( makeClasses( new String[]{interfaceToExpose}, classLoader ),
+ makeClasses( new String[]{additionalFacade}, classLoader ));
}
/**
@@ -148,8 +143,8 @@
String interfaceToExpose, String[] additionalFacades, ClassLoader classLoader )
throws PublicationException
{
- m_interfacesToExpose = makeClasses( new String[]{interfaceToExpose}, classLoader );
- m_additionalFacades = makeClasses( additionalFacades, classLoader );
+ this( makeClasses( new String[]{interfaceToExpose}, classLoader ),
+ makeClasses( additionalFacades, classLoader ) );
}
/**
@@ -164,8 +159,8 @@
public PublicationDescription( String[] interfacesToExpose, ClassLoader classLoader )
throws PublicationException
{
- m_interfacesToExpose = makeClasses( interfacesToExpose, classLoader );
- m_additionalFacades = new Class[ 0 ];
+ this( makeClasses( interfacesToExpose, classLoader ),
+ new Class[0]);
}
/**
@@ -183,8 +178,8 @@
String[] interfacesToExpose, String[] additionalFacades, ClassLoader classLoader )
throws PublicationException
{
- m_interfacesToExpose = makeClasses( interfacesToExpose, classLoader );
- m_additionalFacades = makeClasses( additionalFacades, classLoader );
+ this( makeClasses( interfacesToExpose, classLoader ),
+ makeClasses( additionalFacades, classLoader ) );
}
private static Class[] makeClasses( String[] classNames, ClassLoader classLoader )
@@ -213,6 +208,56 @@
}
}
+ public void addInterfacesToExpose(Class[] interfacesToExpose) {
+ for (int i = 0; i < interfacesToExpose.length; i++) {
+ Class interfaceToExpose = interfacesToExpose[i];
+ addInterfaceToExpose(new PublicationDescriptionItem(interfaceToExpose));
+ }
+ }
+
+ public void addInterfaceToExpose(PublicationDescriptionItem publicationDescriptionItem) {
+ addInterfacesToExpose(
+ new PublicationDescriptionItem[] {publicationDescriptionItem});
+ }
+
+ public void addInterfacesToExpose(PublicationDescriptionItem[] publicationDescriptionItems) {
+ for (int i = 0; i < publicationDescriptionItems.length; i++) {
+ PublicationDescriptionItem publicationDescriptionItem = publicationDescriptionItems[i];
+ if (publicationDescriptionItem == null) {
+ throw new RuntimeException("'PubDescItem' cannot be null");
+ }
+ if (publicationDescriptionItem.getFacadeClass() == null) {
+ throw new RuntimeException("'Class' cannot be null");
+ }
+ m_interfacesToExpose.add(publicationDescriptionItem);
+ }
+ }
+
+ public void addAdditionalFacadesToExpose(Class[] additionalFacades) {
+ for (int i = 0; i < additionalFacades.length; i++) {
+ Class additionalFacade = additionalFacades[i];
+ addAdditionalFacadeToExpose(new PublicationDescriptionItem(additionalFacade));
+ }
+ }
+
+ public void addAdditionalFacadeToExpose(PublicationDescriptionItem publicationDescriptionItem) {
+ addAdditionalFacadesToExpose( new PublicationDescriptionItem[] { publicationDescriptionItem });
+ }
+
+ public void addAdditionalFacadesToExpose(PublicationDescriptionItem[] publicationDescriptionItems) {
+ for (int i = 0; i < publicationDescriptionItems.length; i++) {
+ PublicationDescriptionItem publicationDescriptionItem = publicationDescriptionItems[i];
+ if (publicationDescriptionItem == null) {
+ throw new RuntimeException("'PubDescItem' cannot be null");
+ }
+ if (publicationDescriptionItem.getFacadeClass() == null) {
+ throw new RuntimeException("'Class' cannot be null");
+ }
+ m_additionalFacades.add(publicationDescriptionItem);
+ }
+ }
+
+
/**
* Get the princiapal interfaces to expose.
*
@@ -220,9 +265,11 @@
* @return an array of those interfaces.
*
*/
- public Class[] getInterfacesToExpose()
+ public PublicationDescriptionItem[] getInterfacesToExpose()
{
- return m_interfacesToExpose;
+ PublicationDescriptionItem[] items = new PublicationDescriptionItem[m_interfacesToExpose.size()];
+ m_interfacesToExpose.toArray(items);
+ return items;
}
/**
@@ -232,9 +279,12 @@
* @return an array of those facades.
*
*/
- public Class[] getAdditionalFacades()
+ public PublicationDescriptionItem[] getAdditionalFacades()
{
- return m_additionalFacades;
+ PublicationDescriptionItem[] items = new PublicationDescriptionItem[m_additionalFacades.size()];
+ m_additionalFacades.toArray(items);
+ return items;
+
}
@@ -254,19 +304,19 @@
Class facadeRetVal = null;
- for( int i = 0; i < m_additionalFacades.length; i++ )
+ for( int i = 0; i < m_additionalFacades.size(); i++ )
{
- Class facade = m_additionalFacades[ i ];
+ Class facadeClass = ((PublicationDescriptionItem) m_additionalFacades.get( i )).getFacadeClass();
- if( facade.isAssignableFrom( beanImpl.getClass() ) )
+ if( facadeClass.isAssignableFrom( beanImpl.getClass() ) )
{
if( facadeRetVal == null )
{
- facadeRetVal = facade;
+ facadeRetVal = facadeClass;
}
- else if( facadeRetVal.isAssignableFrom( facade ) )
+ else if( facadeRetVal.isAssignableFrom( facadeClass ) )
{
- facadeRetVal = facade;
+ facadeRetVal = facadeClass;
}
}
}
1.1 jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/PublicationDescriptionItem.java
Index: PublicationDescriptionItem.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.server;
/**
* Class PublicationDescriptionItem
*
*
* @author Paul Hammant
* @version * $Revision: 1.1 $
*/
public class PublicationDescriptionItem
{
private final Class m_facadeClass;
private final String[] m_asyncMethods;
public PublicationDescriptionItem(Class facadeClass)
{
this.m_facadeClass = facadeClass;
this.m_asyncMethods = new String[0];
}
public PublicationDescriptionItem(Class facadeClass, String[] asyncMethods)
{
this.m_facadeClass = facadeClass;
if (facadeClass == null)
{
throw new RuntimeException("Facade class nust not be null");
}
this.m_asyncMethods = asyncMethods;
}
public Class getFacadeClass()
{
return m_facadeClass;
}
public String[] getAsyncMethods()
{
return m_asyncMethods;
}
}
1.6 +9 -12 jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/adapters/PublicationAdapter.java
Index: PublicationAdapter.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/adapters/PublicationAdapter.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- PublicationAdapter.java 26 Sep 2002 06:23:54 -0000 1.5
+++ PublicationAdapter.java 14 Nov 2002 23:49:28 -0000 1.6
@@ -13,10 +13,7 @@
import org.apache.excalibur.altrmi.common.AbstractMethodHandler;
import org.apache.excalibur.altrmi.common.MethodRequest;
-import org.apache.excalibur.altrmi.server.AltrmiPublisher;
-import org.apache.excalibur.altrmi.server.MethodInvocationHandler;
-import org.apache.excalibur.altrmi.server.PublicationDescription;
-import org.apache.excalibur.altrmi.server.PublicationException;
+import org.apache.excalibur.altrmi.server.*;
import org.apache.excalibur.altrmi.server.impl.DefaultMethodInvocationHandler;
/**
@@ -67,7 +64,7 @@
throws PublicationException
{
publish( impl, asName,
- new PublicationDescription( new Class[]{interfaceToExpose}, new Class[ 0 ] ) );
+ new PublicationDescription( interfaceToExpose ) );
}
/**
@@ -84,8 +81,8 @@
PublicationDescription publicationDescription ) throws PublicationException
{
- Class[] interfacesToExpose = publicationDescription.getInterfacesToExpose();
- Class[] additionalFacades = publicationDescription.getAdditionalFacades();
+ PublicationDescriptionItem[] interfacesToExpose = publicationDescription.getInterfacesToExpose();
+ PublicationDescriptionItem[] additionalFacades = publicationDescription.getAdditionalFacades();
if( m_publishedObjects.containsKey( asName + "_Main" ) )
{
@@ -96,7 +93,7 @@
for( int i = 0; i < interfacesToExpose.length; i++ )
{
- interfaceNames[ i ] = interfacesToExpose[ i ].getName();
+ interfaceNames[ i ] = interfacesToExpose[ i ].getFacadeClass().getName();
}
// add method maps for main lookup-able service.
@@ -109,7 +106,7 @@
for( int x = 0; x < interfacesToExpose.length; x++ )
{
- Method methods[] = interfacesToExpose[ x ].getMethods();
+ Method methods[] = interfacesToExpose[ x ].getFacadeClass().getMethods();
for( int y = 0; y < methods.length; y++ )
{
@@ -129,8 +126,8 @@
// add method maps for all the additional facades.
for( int x = 0; x < additionalFacades.length; x++ )
{
- Method methods[] = additionalFacades[ x ].getMethods();
- String encodedClassName = encodeClassName( additionalFacades[ x ].getName() );
+ Method methods[] = additionalFacades[ x ].getFacadeClass().getMethods();
+ String encodedClassName = encodeClassName( additionalFacades[ x ].getFacadeClass().getName() );
HashMap methodMap = new HashMap();
MethodInvocationHandler methodInvocationHandler =
new DefaultMethodInvocationHandler( this, asName + "_" + encodedClassName,
1.6 +6 -11 jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/classretrievers/AbstractDynamicGeneratorClassRetriever.java
Index: AbstractDynamicGeneratorClassRetriever.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/classretrievers/AbstractDynamicGeneratorClassRetriever.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- AbstractDynamicGeneratorClassRetriever.java 25 Aug 2002 22:23:31 -0000 1.5
+++ AbstractDynamicGeneratorClassRetriever.java 14 Nov 2002 23:49:28 -0000 1.6
@@ -12,12 +12,7 @@
import java.io.FileInputStream;
import java.io.IOException;
import org.apache.excalibur.altrmi.common.ProxyGenerator;
-import org.apache.excalibur.altrmi.server.AltrmiProxyGenerator;
-import org.apache.excalibur.altrmi.server.ClassRetrievalException;
-import org.apache.excalibur.altrmi.server.ClassRetriever;
-import org.apache.excalibur.altrmi.server.ProxyGenerationEnvironmentException;
-import org.apache.excalibur.altrmi.server.PublicationDescription;
-import org.apache.excalibur.altrmi.server.PublicationException;
+import org.apache.excalibur.altrmi.server.*;
/**
* Class JarFileClassRetriever
@@ -254,8 +249,8 @@
classLoader = this.getClass().getClassLoader();
}
- Class[] interfacesToExpose = new Class[ 0 ];
- Class[] addInfs = new Class[ 0 ];
+ PublicationDescriptionItem[] interfacesToExpose = new PublicationDescriptionItem[ 0 ];
+ PublicationDescriptionItem[] addInfs = new PublicationDescriptionItem[ 0 ];
interfacesToExpose = publicationDescription.getInterfacesToExpose();
addInfs = publicationDescription.getAdditionalFacades();
@@ -297,7 +292,7 @@
for( int i = 0; i < interfacesToExpose.length; i++ )
{
- String aString = interfacesToExpose[ i ].getName();
+ String aString = interfacesToExpose[ i ].getFacadeClass().getName();
System.out.println( "** .." + aString );
}
@@ -342,7 +337,7 @@
for( int i = 0; i < interfacesToExpose.length; i++ )
{
- String aString = interfacesToExpose[ i ].getName();
+ String aString = interfacesToExpose[ i ].getFacadeClass().getName();
System.out.println( "** .." + aString );
}
1.5 +3 -1 jakarta-avalon-excalibur/altrmi/src/test/org/apache/excalibur/altrmi/test/generator/BCELProxyGeneratorTestCase.java
Index: BCELProxyGeneratorTestCase.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/test/org/apache/excalibur/altrmi/test/generator/BCELProxyGeneratorTestCase.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- BCELProxyGeneratorTestCase.java 4 Sep 2002 11:01:23 -0000 1.4
+++ BCELProxyGeneratorTestCase.java 14 Nov 2002 23:49:29 -0000 1.5
@@ -18,6 +18,7 @@
import org.apache.excalibur.altrmi.client.impl.ClientClassAltrmiFactory;
import org.apache.excalibur.altrmi.common.ProxyGenerator;
import org.apache.excalibur.altrmi.generator.BCELProxyGeneratorImpl;
+import org.apache.excalibur.altrmi.server.PublicationDescriptionItem;
@@ -46,7 +47,8 @@
if(mGeneratedProxyClass!=null)
return mGeneratedProxyClass;
mProxyGenerator.setGenName("Something");
- mProxyGenerator.setInterfacesToExpose(new Class[]{mTestInterfaceClass});
+ mProxyGenerator.setInterfacesToExpose(new PublicationDescriptionItem[]{
+ new PublicationDescriptionItem(mTestInterfaceClass)});
mProxyGenerator.setClassGenDir(".");
mProxyGenerator.verbose(true);
mProxyGenerator.generateClass(null);
1.1 jakarta-avalon-excalibur/altrmi/src/test/org/apache/excalibur/altrmi/test/async/AsyncTest.java
Index: AsyncTest.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.async;
public interface AsyncTest
{
void setOne(String one);
void setTwo(String two);
void setThree(String three);
void fire();
}
1.1 jakarta-avalon-excalibur/altrmi/src/test/org/apache/excalibur/altrmi/test/async/AsyncTestImpl.java
Index: AsyncTestImpl.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.async;
public class AsyncTestImpl implements AsyncTest
{
public String one;
public String two;
public String three;
public boolean fired;
public void setOne(String one)
{
this.one = one;
}
public void setTwo(String two)
{
this.two = two;
}
public void setThree(String three)
{
this.three = three;
}
public void fire()
{
fired = true;
}
}
1.1 jakarta-avalon-excalibur/altrmi/src/test/org/apache/excalibur/altrmi/test/async/SimpleAsyncTestCase.java
Index: SimpleAsyncTestCase.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.async;
import org.apache.excalibur.altrmi.server.impl.socket.CompleteSocketCustomStreamServer;
import org.apache.excalibur.altrmi.server.PublicationDescription;
import org.apache.excalibur.altrmi.client.impl.ClientClassAltrmiFactory;
import org.apache.excalibur.altrmi.client.impl.socket.SocketCustomStreamHostContext;
import org.apache.excalibur.altrmi.client.AltrmiFactory;
import junit.framework.TestCase;
public class SimpleAsyncTestCase extends TestCase
{
AsyncTestImpl asyncTestImpl;
AsyncTest testClient;
AltrmiFactory altrmiFactory;
CompleteSocketCustomStreamServer server;
public SimpleAsyncTestCase(String name)
{
super(name);
}
protected void setUp() throws Exception
{
super.setUp();
// server side setup.
server = new CompleteSocketCustomStreamServer(11001);
asyncTestImpl = new AsyncTestImpl();
PublicationDescription pd = new PublicationDescription(AsyncTest.class);
server.publish(asyncTestImpl, "AsyncTest", pd);
server.start();
// Client side setup
altrmiFactory = new ClientClassAltrmiFactory(false);
altrmiFactory.setHostContext(new SocketCustomStreamHostContext("127.0.0.1", 11001), false);
testClient = (AsyncTest) altrmiFactory.lookup("AsyncTest");
// just a kludge for unit testing given we are intrinsically dealing with
// threads, AltRMI being a client/server thing
Thread.yield();
}
public void testTrue()
{
}
public void testSimpleAsync() throws Exception
{
testClient.setOne("one");
testClient.setTwo("two");
testClient.setThree("three");
assertNull("One should be null", asyncTestImpl.one);
assertNull("Two should be null", asyncTestImpl.two);
assertNull("Tree should be null", asyncTestImpl.three);
assertFalse("Fire should be false", asyncTestImpl.fired);
testClient.fire();
assertNotNull("One should not be null", asyncTestImpl.one);
assertNotNull("Two should not be null", asyncTestImpl.two);
assertNotNull("Tree should not be null", asyncTestImpl.three);
assertTrue("Fire should not be false", asyncTestImpl.fired);
}
protected void tearDown() throws Exception
{
testClient = null;
System.gc();
Thread.yield();
altrmiFactory.close();
Thread.yield();
server.stop();
Thread.yield();
server = null;
asyncTestImpl = null;
super.tearDown();
}
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>