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/07/15 01:12:44 UTC

cvs commit: jakarta-avalon-excalibur/altrmi/src/test/org/apache/excalibur/altrmi/test/piped PipedTest.java

hammant     2002/07/14 16:12:44

  Modified:    altrmi   build.xml piped.xml
               altrmi/src/java/org/apache/excalibur/altrmi/generator
                        BCELProxyGeneratorImpl.java ProxyGeneratorImpl.java
               altrmi/src/java/org/apache/excalibur/altrmi/server/impl/classretrievers
                        AbstractClassRetriever.java
                        PlainClassRetriever.java
               altrmi/src/test/org/apache/excalibur/altrmi/test/piped
                        PipedTest.java
  Added:       altrmi/src/java/org/apache/excalibur/altrmi/generator
                        AbstractProxyGenerator.java
               altrmi/src/java/org/apache/excalibur/altrmi/server/impl/classretrievers
                        AbstractDynamicGeneratorClassRetriever.java
                        BcelDynamicGeneratorClassRetriever.java
                        JavacDynamicGeneratorClassRetriever.java
  Removed:     altrmi/src/java/org/apache/excalibur/altrmi/server/impl/classretrievers
                        DynamicGeneratorClassRetriever.java
  Log:
  More standards conformance and slight refactor of BCEL / JAVAC duality.
  
  Revision  Changes    Path
  1.23      +2 -0      jakarta-avalon-excalibur/altrmi/build.xml
  
  Index: build.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/build.xml,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- build.xml	23 May 2002 21:37:19 -0000	1.22
  +++ build.xml	14 Jul 2002 23:12:44 -0000	1.23
  @@ -266,6 +266,8 @@
               ignoreCastWhitespace="true">
               <fileset dir="${java.dir}">
                   <include name="org/apache/excalibur/altrmi/common/*.java"/>
  +                <include name="org/apache/excalibur/altrmi/generator/*.java"/>
  +                <include name="org/apache/excalibur/altrmi/server/impl/classretrievers/*.java"/>
               </fileset>
               <formatter type="plain"/>
               <formatter type="xml" toFile="${build.dir}/checkstyle-results.xml"/>
  
  
  
  1.5       +1 -0      jakarta-avalon-excalibur/altrmi/piped.xml
  
  Index: piped.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/piped.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- piped.xml	26 Apr 2002 05:41:44 -0000	1.4
  +++ piped.xml	14 Jul 2002 23:12:44 -0000	1.5
  @@ -24,6 +24,7 @@
       <pathelement location="${build.home}/testclasses"/>    
       <pathelement location="${build.home}/genclasses"/>
       <pathelement location="lib/JSX0.9.8.1.jar"/>
  +    <pathelement location="lib/bcel.jar"/>
       <pathelement location="${avalon-framework.jar}"/>
     </path>    
       
  
  
  
  1.4       +261 -254  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.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- BCELProxyGeneratorImpl.java	23 May 2002 21:37:21 -0000	1.3
  +++ BCELProxyGeneratorImpl.java	14 Jul 2002 23:12:44 -0000	1.4
  @@ -22,7 +22,6 @@
   import org.apache.bcel.generic.BranchInstruction;
   import org.apache.bcel.generic.ClassGen;
   import org.apache.bcel.generic.ConstantPoolGen;
  -import org.apache.bcel.generic.DLOAD;
   import org.apache.bcel.generic.FieldGen;
   import org.apache.bcel.generic.INSTANCEOF;
   import org.apache.bcel.generic.Instruction;
  @@ -34,30 +33,27 @@
   import org.apache.bcel.generic.ObjectType;
   import org.apache.bcel.generic.PUSH;
   import org.apache.bcel.generic.Type;
  -import org.apache.excalibur.altrmi.common.ProxyGenerator;
   
   /**
    * Class BCElProxyGeneratorImpl
    *  This class generates Altrmi stubs using Jakarta BCEL library.
    * 
  - * @HOWTO: Use 'javap' to read the bytecodes of the stubs generated
  + * HOWTO: Use 'javap' to read the bytecodes of the stubs generated
    *      by using the original stub-generator(which generates pure java code).
    *
    * @author <a href="mailto:vinayc77@yahoo.com">Vinay Chandran</a>
    * @version $Revision$
    */
   public class BCELProxyGeneratorImpl
  -    extends ProxyGeneratorImpl
  -    implements ProxyGenerator
  +    extends AbstractProxyGenerator
   {
       
       //bcel 
  -    private static final String mStubPrefix = "AltrmiGenerated";
  -    private InstructionFactory mFactory;
  -    private ConstantPoolGen mConstantsPool;
  -    private ClassGen mClassGen;
  -    private ArrayList mInternalFieldRepresentingClasses;
  -    private int mArrayDepth_ = 0;
  +    private static final String STUB_PREFIX = "AltrmiGenerated";
  +    private InstructionFactory m_factory;
  +    private ConstantPoolGen m_constantsPool;
  +    private ClassGen m_classGen;
  +    private ArrayList m_internalFieldRepresentingClasses;
   
       /*
        * @see ProxyGenerator#generateClass(ClassLoader)
  @@ -66,25 +62,25 @@
       {
   
           //create the Main Stubs:
  -        generateAltrmiProxyClass(mStubPrefix + mGenName + "_Main", mInterfacesToExpose);
  +        generateAltrmiProxyClass(STUB_PREFIX + getGenName() + "_Main", getInterfacesToExpose());
           generateAltrmiProxyClass2(
  -            mStubPrefix + "2" + mGenName + "_Main",
  -            mStubPrefix + mGenName + "_Main",
  -            mInterfacesToExpose);
  +            STUB_PREFIX + "2" + getGenName() + "_Main",
  +            STUB_PREFIX + getGenName() + "_Main",
  +            getInterfacesToExpose());
   
           //Create the Additional Facades 
  -        if (mAdditionalFacades != null)
  +        if (getAdditionalFacades() != null)
           {
  -            for (int i = 0; i < mAdditionalFacades.length; i++)
  +            for (int i = 0; i < getAdditionalFacades().length; i++)
               {
  -                String encodedClassName = encodeClassName(mAdditionalFacades[i]);
  +                String encodedClassName = encodeClassName(getAdditionalFacades()[i]);
                   generateAltrmiProxyClass(
  -                    mStubPrefix + mGenName + "_" + encodedClassName,
  -                    new Class[] { mAdditionalFacades[i] });
  +                    STUB_PREFIX + getGenName() + "_" + encodedClassName,
  +                    new Class[] { getAdditionalFacades()[i] });
                   generateAltrmiProxyClass2(
  -                    mStubPrefix + "2" + mGenName + "_" + encodedClassName,
  -                    mStubPrefix + mGenName + "_" + encodedClassName,
  -                    new Class[] { mAdditionalFacades[i] });
  +                    STUB_PREFIX + "2" + getGenName() + "_" + encodedClassName,
  +                    STUB_PREFIX + getGenName() + "_" + encodedClassName,
  +                    new Class[] { getAdditionalFacades()[i] });
   
               }
           }
  @@ -95,10 +91,10 @@
        * Method generateAltrmiProxyClass.
        *         Create AltrmiProxy Implementation with all interface methods 
        *     Generating AltrmiGeneratedGENNAME_Main class
  -     * @param className
  +     * @param mGeneratedClassName
        * @param interfacesToStubify
        */
  -    private void generateAltrmiProxyClass(
  +    protected void generateAltrmiProxyClass(
           String mGeneratedClassName,
           Class[] interfacesToStubify)
       {
  @@ -119,8 +115,8 @@
           FileOutputStream fos = null;
           try
           {
  -            fos = new FileOutputStream(mClassGenDir + "/" + mGeneratedClassName + ".class");
  -            mClassGen.getJavaClass().dump(fos);
  +            fos = new FileOutputStream(getClassGenDir() + "/" + mGeneratedClassName + ".class");
  +            m_classGen.getJavaClass().dump(fos);
               fos.close();
           }
           catch (FileNotFoundException fnfe)
  @@ -138,25 +134,27 @@
        *      Create the Stub Class purely implementing the Interface  and
        *             inheriting the implementation from the helper class
        *     Generating AltrmiGenerated2GENNAME_Main class
  -     * @param className
  +     * @param generatedClassName2
  +     * @param generatedClassName
  +     * @param interfacesToStubify
        */
  -    private void generateAltrmiProxyClass2(
  -        String mGeneratedClassName2,
  -        String mGeneratedClassName,
  +    protected void generateAltrmiProxyClass2(
  +        String generatedClassName2,
  +        String generatedClassName,
           Class[] interfacesToStubify)
       {
           //start creating the class
           createNewClassDeclaration2(
  -            mGeneratedClassName2,
  -            mGeneratedClassName,
  +            generatedClassName2,
  +            generatedClassName,
               interfacesToStubify);
           //create the constructor 
  -        createConstructor2(mGeneratedClassName2, mGeneratedClassName);
  +        createConstructor2(generatedClassName2, generatedClassName);
           try
           {
               FileOutputStream fos =
  -                new FileOutputStream(mClassGenDir + "/" + mGeneratedClassName2 + ".class");
  -            mClassGen.getJavaClass().dump(fos);
  +                new FileOutputStream(getClassGenDir() + "/" + generatedClassName2 + ".class");
  +            m_classGen.getJavaClass().dump(fos);
               fos.close();
           }
           catch (FileNotFoundException fnfe)
  @@ -176,19 +174,19 @@
        * Method createAndInitializeClass.
        *     This method starts creating the class.
        */
  -    private void createNewClassDeclaration(String mGeneratedClassName)
  +    protected void createNewClassDeclaration(String mGeneratedClassName)
       {
   
  -        mClassGen =
  +        m_classGen =
               new ClassGen(
                   mGeneratedClassName,
                   "java.lang.Object",
                   mGeneratedClassName + ".java",
                   Constants.ACC_PUBLIC | Constants.ACC_SUPER,
                   new String[] { "org.apache.excalibur.altrmi.client.AltrmiProxy" });
  -        mConstantsPool = mClassGen.getConstantPool();
  -        mFactory = new InstructionFactory(mClassGen, mConstantsPool);
  -        mInternalFieldRepresentingClasses = new ArrayList();
  +        m_constantsPool = m_classGen.getConstantPool();
  +        m_factory = new InstructionFactory(m_classGen, m_constantsPool);
  +        m_internalFieldRepresentingClasses = new ArrayList();
   
       }
       /**
  @@ -196,7 +194,7 @@
        *     Create a class which extends a class contained the impl of the Interface and 
        *                     and  implements the interface
        */
  -    private void createNewClassDeclaration2(
  +    protected void createNewClassDeclaration2(
           String mGeneratedClassName2,
           String mGeneratedClassName,
           Class[] interfacesToStubify)
  @@ -204,21 +202,21 @@
           String[] mInterafacesToImplement = new String[interfacesToStubify.length];
           for (int i = 0; i < mInterafacesToImplement.length; i++)
               mInterafacesToImplement[i] = interfacesToStubify[i].getName();
  -        mClassGen =
  +        m_classGen =
               new ClassGen(
                   mGeneratedClassName2,
                   mGeneratedClassName,
                   mGeneratedClassName2 + ".java",
                   Constants.ACC_PUBLIC | Constants.ACC_FINAL | Constants.ACC_SUPER,
                   mInterafacesToImplement);
  -        mConstantsPool = mClassGen.getConstantPool();
  -        mFactory = new InstructionFactory(mClassGen, mConstantsPool);
  +        m_constantsPool = m_classGen.getConstantPool();
  +        m_factory = new InstructionFactory(m_classGen, m_constantsPool);
       }
       /**
        * Method createConstructor.
        *     This method adds a constructor that takes in a ProxyHelper Instance
        */
  -    private void createConstructor(String mGeneratedClassName)
  +    protected void createConstructor(String mGeneratedClassName)
       {
           InstructionList il = new InstructionList();
           MethodGen method =
  @@ -230,34 +228,34 @@
                   "<init>",
                   mGeneratedClassName,
                   il,
  -                mConstantsPool);
  -        InstructionHandle ih_0 = il.append(mFactory.createLoad(Type.OBJECT, 0));
  +                m_constantsPool);
  +        InstructionHandle ih0 = il.append(m_factory.createLoad(Type.OBJECT, 0));
           il.append(
  -            mFactory.createInvoke(
  +            m_factory.createInvoke(
                   "java.lang.Object",
                   "<init>",
                   Type.VOID,
                   Type.NO_ARGS,
                   Constants.INVOKESPECIAL));
  -        InstructionHandle ih_4 = il.append(mFactory.createLoad(Type.OBJECT, 0));
  -        il.append(mFactory.createLoad(Type.OBJECT, 1));
  +        InstructionHandle ih4 = il.append(m_factory.createLoad(Type.OBJECT, 0));
  +        il.append(m_factory.createLoad(Type.OBJECT, 1));
           il.append(
  -            mFactory.createFieldAccess(
  +            m_factory.createFieldAccess(
                   mGeneratedClassName,
                   "mProxyHelper",
                   new ObjectType("org.apache.excalibur.altrmi.client.ProxyHelper"),
                   Constants.PUTFIELD));
  -        InstructionHandle ih_9 = il.append(mFactory.createReturn(Type.VOID));
  +        InstructionHandle ih9 = il.append(m_factory.createReturn(Type.VOID));
           method.setMaxStack();
           method.setMaxLocals();
  -        mClassGen.addMethod(method.getMethod());
  +        m_classGen.addMethod(method.getMethod());
           il.dispose();
       }
   
       /**
        * Method createConstructor2.
        */
  -    private void createConstructor2(
  +    protected void createConstructor2(
           String mGeneratedClassName2,
           String mGeneratedClassName)
       {
  @@ -271,20 +269,20 @@
                   "<init>",
                   mGeneratedClassName2,
                   il,
  -                mConstantsPool);
  -        InstructionHandle ih_0 = il.append(mFactory.createLoad(Type.OBJECT, 0));
  -        il.append(mFactory.createLoad(Type.OBJECT, 1));
  +                m_constantsPool);
  +        InstructionHandle ih0 = il.append(m_factory.createLoad(Type.OBJECT, 0));
  +        il.append(m_factory.createLoad(Type.OBJECT, 1));
           il.append(
  -            mFactory.createInvoke(
  +            m_factory.createInvoke(
                   mGeneratedClassName,
                   "<init>",
                   Type.VOID,
                   new Type[] { new ObjectType("org.apache.excalibur.altrmi.client.ProxyHelper")},
                   Constants.INVOKESPECIAL));
  -        InstructionHandle ih_5 = il.append(mFactory.createReturn(Type.VOID));
  +        InstructionHandle ih5 = il.append(m_factory.createReturn(Type.VOID));
           method.setMaxStack();
           method.setMaxLocals();
  -        mClassGen.addMethod(method.getMethod());
  +        m_classGen.addMethod(method.getMethod());
           il.dispose();
       }
   
  @@ -295,7 +293,7 @@
        * =================adding===============
        *     Add 
        */
  -    private void createFields()
  +    protected void createFields()
       {
           FieldGen field;
           field =
  @@ -303,19 +301,22 @@
                   Constants.ACC_PRIVATE | Constants.ACC_TRANSIENT,
                   new ObjectType("org.apache.excalibur.altrmi.client.ProxyHelper"),
                   "mProxyHelper",
  -                mConstantsPool);
  -        mClassGen.addField(field.getField());
  +                m_constantsPool);
  +        m_classGen.addField(field.getField());
       }
   
       /**
        * Method createAltrmiGetReferenceIDMethod. 
        * =================adding=====================================
  -     *      public Long altrmiGetReferenceID(Object factoryThatIsAsking) {
  -     *   return mProxyHelper.getReferenceID(factoryThatIsAsking);
  -     *        }
  +     *   public Long altrmiGetReferenceID(Object factoryThatIsAsking) {
  +     *     return mProxyHelper.getReferenceID(factoryThatIsAsking);
  +     *   }
        * =================adding=====================================
  +     *
  +     * @param generatedClassName the generated class name
  +     *
        */
  -    private void createAltrmiGetReferenceIDMethod(String mGeneratedClassName)
  +    protected void createAltrmiGetReferenceIDMethod(String generatedClassName)
       {
           InstructionList il = new InstructionList();
           MethodGen method =
  @@ -325,28 +326,28 @@
                   new Type[] { Type.OBJECT },
                   new String[] { "arg0" },
                   "altrmiGetReferenceID",
  -                mGeneratedClassName,
  +                generatedClassName,
                   il,
  -                mConstantsPool);
  -        InstructionHandle ih_0 = il.append(mFactory.createLoad(Type.OBJECT, 0));
  +                m_constantsPool);
  +        InstructionHandle ih0 = il.append(m_factory.createLoad(Type.OBJECT, 0));
           il.append(
  -            mFactory.createFieldAccess(
  -                mGeneratedClassName,
  +            m_factory.createFieldAccess(
  +                generatedClassName,
                   "mProxyHelper",
                   new ObjectType("org.apache.excalibur.altrmi.client.ProxyHelper"),
                   Constants.GETFIELD));
  -        il.append(mFactory.createLoad(Type.OBJECT, 1));
  +        il.append(m_factory.createLoad(Type.OBJECT, 1));
           il.append(
  -            mFactory.createInvoke(
  +            m_factory.createInvoke(
                   "org.apache.excalibur.altrmi.client.ProxyHelper",
                   "getReferenceID",
                   new ObjectType("java.lang.Long"),
                   new Type[] { Type.OBJECT },
                   Constants.INVOKEINTERFACE));
  -        InstructionHandle ih_8 = il.append(mFactory.createReturn(Type.OBJECT));
  +        InstructionHandle ih8 = il.append(m_factory.createReturn(Type.OBJECT));
           method.setMaxStack();
           method.setMaxLocals();
  -        mClassGen.addMethod(method.getMethod());
  +        m_classGen.addMethod(method.getMethod());
           il.dispose();
       }
   
  @@ -356,7 +357,7 @@
        *     during SomeClass.class instruction
        * 
        */
  -    private void createHelperMethodForDotClassCalls(String mGeneratedClassName)
  +    protected void createHelperMethodForDotClassCalls(String mGeneratedClassName)
       {
           InstructionList il = new InstructionList();
           MethodGen method =
  @@ -368,43 +369,43 @@
                   "class$",
                   mGeneratedClassName,
                   il,
  -                mConstantsPool);
  -        InstructionHandle ih_0 = il.append(mFactory.createLoad(Type.OBJECT, 0));
  +                m_constantsPool);
  +        InstructionHandle ih0 = il.append(m_factory.createLoad(Type.OBJECT, 0));
           il.append(
  -            mFactory.createInvoke(
  +            m_factory.createInvoke(
                   "java.lang.Class",
                   "forName",
                   new ObjectType("java.lang.Class"),
                   new Type[] { Type.STRING },
                   Constants.INVOKESTATIC));
  -        InstructionHandle ih_4 = il.append(mFactory.createReturn(Type.OBJECT));
  -        InstructionHandle ih_5 = il.append(mFactory.createStore(Type.OBJECT, 1));
  -        il.append(mFactory.createNew("java.lang.NoClassDefFoundError"));
  +        InstructionHandle ih4 = il.append(m_factory.createReturn(Type.OBJECT));
  +        InstructionHandle ih5 = il.append(m_factory.createStore(Type.OBJECT, 1));
  +        il.append(m_factory.createNew("java.lang.NoClassDefFoundError"));
           il.append(InstructionConstants.DUP);
  -        il.append(mFactory.createLoad(Type.OBJECT, 1));
  +        il.append(m_factory.createLoad(Type.OBJECT, 1));
           il.append(
  -            mFactory.createInvoke(
  +            m_factory.createInvoke(
                   "java.lang.Throwable",
                   "getMessage",
                   Type.STRING,
                   Type.NO_ARGS,
                   Constants.INVOKEVIRTUAL));
           il.append(
  -            mFactory.createInvoke(
  +            m_factory.createInvoke(
                   "java.lang.NoClassDefFoundError",
                   "<init>",
                   Type.VOID,
                   new Type[] { Type.STRING },
                   Constants.INVOKESPECIAL));
  -        InstructionHandle ih_17 = il.append(InstructionConstants.ATHROW);
  +        InstructionHandle ih17 = il.append(InstructionConstants.ATHROW);
           method.addExceptionHandler(
  -            ih_0,
  -            ih_4,
  -            ih_5,
  +            ih0,
  +            ih4,
  +            ih5,
               new ObjectType("java.lang.ClassNotFoundException"));
           method.setMaxStack();
           method.setMaxLocals();
  -        mClassGen.addMethod(method.getMethod());
  +        m_classGen.addMethod(method.getMethod());
           il.dispose();
       }
   
  @@ -413,23 +414,26 @@
        *     This methods shall iterate through the set of methods
        *     of the interface creating equivalent methods for the
        *     stubs in the process.
  +     *
  +     * @param generatedClassName the generated class name
  +     * @param interfacesToStubify the interfaces to make stubs for.
        */
  -    private void createInterfaceMethods(
  -        String mGeneratedClassName,
  +    protected void createInterfaceMethods(
  +        String generatedClassName,
           Class[] interfacesToStubify)
       {
           for (int x = 0; x < interfacesToStubify.length; x++)
           {
               Class clazz = interfacesToStubify[x];
   
  -            if (mVerbose)
  +            if (isVerbose())
               {
                   System.out.println("ProxyGen: Processing interface: " + clazz.getName());
               }
               Method[] methods = clazz.getMethods();
               for (int i = 0; i < methods.length; i++)
               {
  -                createInterfaceMethod(mGeneratedClassName, methods[i]);
  +                createInterfaceMethod(generatedClassName, methods[i]);
               }
   
           }
  @@ -441,7 +445,7 @@
        *     Add the java.lang.reflect.Method wrapper into the stub
        * @param m
        */
  -    private void createInterfaceMethod(String mGeneratedClassName, Method m)
  +    protected void createInterfaceMethod(String mGeneratedClassName, Method m)
       {
           InstructionList il = new InstructionList();
           MethodGen method =
  @@ -453,7 +457,7 @@
                   m.getName(),
                   mGeneratedClassName,
                   il,
  -                mConstantsPool);
  +                m_constantsPool);
   
           //debug(getArguments(m));
   
  @@ -472,15 +476,15 @@
           Class[] paramTypes = m.getParameterTypes();
           numberOfArguments = paramTypes.length;
           variableIndex = getFreeIndexToStart(paramTypes);
  -        InstructionHandle ih_0 = il.append(new PUSH(mConstantsPool, numberOfArguments));
  -        il.append((Instruction) mFactory.createNewArray(Type.OBJECT, (short) 1));
  -        il.append(mFactory.createStore(Type.OBJECT, ++variableIndex));
  -        InstructionHandle ih_5 = il.append(new PUSH(mConstantsPool, numberOfArguments));
  +        InstructionHandle ih0 = il.append(new PUSH(m_constantsPool, numberOfArguments));
  +        il.append((Instruction) m_factory.createNewArray(Type.OBJECT, (short) 1));
  +        il.append(m_factory.createStore(Type.OBJECT, ++variableIndex));
  +        InstructionHandle ih5 = il.append(new PUSH(m_constantsPool, numberOfArguments));
           il.append(
  -            (Instruction) mFactory.createNewArray(
  +            (Instruction) m_factory.createNewArray(
                   new ObjectType("java.lang.Class"),
                   (short) 1));
  -        il.append(mFactory.createStore(Type.OBJECT, ++variableIndex));
  +        il.append(m_factory.createStore(Type.OBJECT, ++variableIndex));
   
           /*
            *  Assigning parameter into Object[] and Class[] Array
  @@ -489,25 +493,25 @@
            *   argClasses[0]=v0Class.class
            */
           //Used for adjustment of double/long datatype: 
  -        Type _previousType = null;
  -        int _loadIndex = 0;
  +        Type previousType = null;
  +        int loadIndex = 0;
           for (int i = 0; i < numberOfArguments; i++)
           {
               // assigning the obj ref's
  -            il.append(mFactory.createLoad(Type.OBJECT, variableIndex - 1));
  -            il.append(new PUSH(mConstantsPool, i));
  +            il.append(m_factory.createLoad(Type.OBJECT, variableIndex - 1));
  +            il.append(new PUSH(m_constantsPool, i));
               String className = paramTypes[i].getName();
               //adjust for any previous wider datatype (double/long)
  -            if (_previousType != null
  -                && (_previousType == Type.DOUBLE || _previousType == Type.LONG))
  -                ++_loadIndex;
  +            if (previousType != null
  +                && (previousType == Type.DOUBLE || previousType == Type.LONG))
  +                ++loadIndex;
               if (paramTypes[i].isPrimitive())
               {
  -                il.append(mFactory.createNew(getJavaWrapperClass(className)));
  +                il.append(m_factory.createNew(getJavaWrapperClass(className)));
                   il.append(InstructionConstants.DUP);
  -                il.append(mFactory.createLoad(getBCELPrimitiveType(className), ++_loadIndex));
  +                il.append(m_factory.createLoad(getBCELPrimitiveType(className), ++loadIndex));
                   il.append(
  -                    mFactory.createInvoke(
  +                    m_factory.createInvoke(
                           getJavaWrapperClass(className),
                           "<init>",
                           Type.VOID,
  @@ -519,56 +523,56 @@
               {
   
                   //create the static fields for enabling .class calls
  -                String _encodedFieldName;
  +                String encodedFieldName;
                   if (paramTypes[i].isArray())
                   {
  -                    int _index = className.lastIndexOf('[');
  -                    if (className.charAt(_index + 1) == 'L')
  -                        _encodedFieldName =
  +                    int index = className.lastIndexOf('[');
  +                    if (className.charAt(index + 1) == 'L')
  +                        encodedFieldName =
                               "array$"
  -                                + className.substring(1 + _index, className.length() - 1).replace('.', '$');
  +                                + className.substring(1 + index, className.length() - 1).replace('.', '$');
                       else
  -                        _encodedFieldName =
  -                            "array$" + className.substring(1 + _index, className.length());
  +                        encodedFieldName =
  +                            "array$" + className.substring(1 + index, className.length());
                   }
                   else
  -                    _encodedFieldName = "class$" + className.replace('.', '$');
  +                    encodedFieldName = "class$" + className.replace('.', '$');
                   
  -                addField(_encodedFieldName);
  +                addField(encodedFieldName);
                   // ******** TODO assign the obj reference 
  -                il.append(mFactory.createLoad(Type.OBJECT, variableIndex - 1));
  -                il.append(new PUSH(mConstantsPool, i));
  -                il.append(mFactory.createLoad(Type.OBJECT, ++_loadIndex));
  +                il.append(m_factory.createLoad(Type.OBJECT, variableIndex - 1));
  +                il.append(new PUSH(m_constantsPool, i));
  +                il.append(m_factory.createLoad(Type.OBJECT, ++loadIndex));
                   il.append(InstructionConstants.AASTORE);
   
                   // *********TODO assign the class ref's
  -                il.append(mFactory.createLoad(Type.OBJECT, variableIndex));
  -                il.append(new PUSH(mConstantsPool, i));
  +                il.append(m_factory.createLoad(Type.OBJECT, variableIndex));
  +                il.append(new PUSH(m_constantsPool, i));
                   il.append(
  -                    mFactory.createFieldAccess(
  +                    m_factory.createFieldAccess(
                           mGeneratedClassName,
  -                        _encodedFieldName,
  +                        encodedFieldName,
                           new ObjectType("java.lang.Class"),
                           Constants.GETSTATIC));
                   BranchInstruction ifnull =
  -                    mFactory.createBranchInstruction(Constants.IFNULL, null);
  +                    m_factory.createBranchInstruction(Constants.IFNULL, null);
                   il.append(ifnull);
                   il.append(
  -                    mFactory.createFieldAccess(
  +                    m_factory.createFieldAccess(
                           mGeneratedClassName,
  -                        _encodedFieldName,
  +                        encodedFieldName,
                           new ObjectType("java.lang.Class"),
                           Constants.GETSTATIC));
                   BranchInstruction goHeadToStoreRef =
  -                    mFactory.createBranchInstruction(Constants.GOTO, null);
  +                    m_factory.createBranchInstruction(Constants.GOTO, null);
                   il.append(goHeadToStoreRef);
                   InstructionHandle ifnullStartHere =
  -                    il.append(new PUSH(mConstantsPool, className));
  +                    il.append(new PUSH(m_constantsPool, className));
   
                   ifnull.setTarget(ifnullStartHere);
   
                   il.append(
  -                    mFactory.createInvoke(
  +                    m_factory.createInvoke(
                           mGeneratedClassName,
                           "class$",
                           new ObjectType("java.lang.Class"),
  @@ -576,16 +580,16 @@
                           Constants.INVOKESTATIC));
                   il.append(InstructionConstants.DUP);
                   il.append(
  -                    mFactory.createFieldAccess(
  +                    m_factory.createFieldAccess(
                           mGeneratedClassName,
  -                        _encodedFieldName,
  +                        encodedFieldName,
                           new ObjectType("java.lang.Class"),
                           Constants.PUTSTATIC));
                   InstructionHandle storeClassRef = il.append(InstructionConstants.AASTORE);
                   goHeadToStoreRef.setTarget(storeClassRef);
   
               }
  -            _previousType = getBCELPrimitiveType(className);
  +            previousType = getBCELPrimitiveType(className);
           }
   
           /* Within the stub put the 
  @@ -614,46 +618,46 @@
                *     }
            * ================================================
            */
  -        InstructionHandle ihe1 = il.append(mFactory.createLoad(Type.OBJECT, 0));
  +        InstructionHandle ihe1 = il.append(m_factory.createLoad(Type.OBJECT, 0));
           il.append(
  -            mFactory.createFieldAccess(
  +            m_factory.createFieldAccess(
                   mGeneratedClassName,
                   "mProxyHelper",
                   new ObjectType("org.apache.excalibur.altrmi.client.ProxyHelper"),
                   Constants.GETFIELD));
           // **** Check if the return type is facade ***
  -        Class _returnClass=m.getReturnType();
  -        if(_returnClass.isArray())
  -                _returnClass=_returnClass.getComponentType();
  +        Class returnClass=m.getReturnType();
  +        if(returnClass.isArray())
  +                returnClass=returnClass.getComponentType();
           
           if (isAdditionalFacade(m.getReturnType()))
           {
  -            String _encodedReturnClassName="class$" + encodeClassName(_returnClass);
  -            addField(_encodedReturnClassName);
  +            String encodedReturnClassName="class$" + encodeClassName(returnClass);
  +            addField(encodedReturnClassName);
               il.append(
  -                mFactory.createFieldAccess(
  +                m_factory.createFieldAccess(
                       mGeneratedClassName,
  -                    _encodedReturnClassName,
  +                    encodedReturnClassName,
                       new ObjectType("java.lang.Class"),
                       Constants.GETSTATIC));
               BranchInstruction ifnullReturnClass =
  -                mFactory.createBranchInstruction(Constants.IFNULL, null);
  +                m_factory.createBranchInstruction(Constants.IFNULL, null);
               il.append(ifnullReturnClass);
               il.append(
  -                mFactory.createFieldAccess(
  +                m_factory.createFieldAccess(
                       mGeneratedClassName,
  -                    _encodedReturnClassName,
  +                    encodedReturnClassName,
                       new ObjectType("java.lang.Class"),
                       Constants.GETSTATIC));
               BranchInstruction gotoReturnClass =
  -                mFactory.createBranchInstruction(Constants.GOTO, null);
  +                m_factory.createBranchInstruction(Constants.GOTO, null);
               il.append(gotoReturnClass);
               
               InstructionHandle ihPushMethodName =
  -                il.append(new PUSH(mConstantsPool, _returnClass.getName()));
  +                il.append(new PUSH(m_constantsPool, returnClass.getName()));
               ifnullReturnClass.setTarget(ihPushMethodName);
               il.append(
  -                mFactory.createInvoke(
  +                m_factory.createInvoke(
                       mGeneratedClassName,
                       "class$",
                       new ObjectType("java.lang.Class"),
  @@ -661,18 +665,18 @@
                       Constants.INVOKESTATIC));
               il.append(InstructionConstants.DUP);
               il.append(
  -                mFactory.createFieldAccess(
  +                m_factory.createFieldAccess(
                       mGeneratedClassName,
  -                    _encodedReturnClassName,
  +                    encodedReturnClassName,
                       new ObjectType("java.lang.Class"),
                       Constants.PUTSTATIC));
               InstructionHandle ihPushSignature =
  -                il.append(new PUSH(mConstantsPool, getMethodSignature(m)));
  +                il.append(new PUSH(m_constantsPool, getMethodSignature(m)));
               gotoReturnClass.setTarget(ihPushSignature);
  -            il.append(mFactory.createLoad(Type.OBJECT, variableIndex-1));
  -            il.append(new PUSH(mConstantsPool, encodeClassName( getClassType( _returnClass ) )));
  +            il.append(m_factory.createLoad(Type.OBJECT, variableIndex-1));
  +            il.append(new PUSH(m_constantsPool, encodeClassName( getClassType( returnClass ) )));
               il.append(
  -                mFactory.createInvoke(
  +                m_factory.createInvoke(
                       "org.apache.excalibur.altrmi.client.ProxyHelper",
                       "processObjectRequestGettingFacade",
                       Type.OBJECT,
  @@ -686,12 +690,12 @@
           else
           {
               //method signature = METHODNAME(arguments....)   
  -            il.append(new PUSH(mConstantsPool, getMethodSignature(m)));
  +            il.append(new PUSH(m_constantsPool, getMethodSignature(m)));
               variableIndex -= 2;
  -            il.append(mFactory.createLoad(Type.OBJECT, ++variableIndex));
  -            il.append(mFactory.createLoad(Type.OBJECT, ++variableIndex));
  +            il.append(m_factory.createLoad(Type.OBJECT, ++variableIndex));
  +            il.append(m_factory.createLoad(Type.OBJECT, ++variableIndex));
               il.append(
  -                mFactory.createInvoke(
  +                m_factory.createInvoke(
                       "org.apache.excalibur.altrmi.client.ProxyHelper",
                       "processObjectRequest",
                       Type.OBJECT,
  @@ -701,23 +705,23 @@
                           new ArrayType(new ObjectType("java.lang.Class"), 1)},
                       Constants.INVOKEINTERFACE));
           }
  -        il.append(mFactory.createStore(Type.OBJECT, ++variableIndex));
  -        il.append(mFactory.createLoad(Type.OBJECT, variableIndex));
  +        il.append(m_factory.createStore(Type.OBJECT, ++variableIndex));
  +        il.append(m_factory.createLoad(Type.OBJECT, variableIndex));
   
           InstructionHandle ihe2;
           if (m.getReturnType().isPrimitive())
           {
               if (getBCELPrimitiveType(m.getReturnType().getName()) == Type.VOID)
               {
  -                ihe2 = il.append(mFactory.createReturn(Type.VOID));
  +                ihe2 = il.append(m_factory.createReturn(Type.VOID));
               }
               else
               {
                   il.append(
  -                    mFactory.createCheckCast(
  +                    m_factory.createCheckCast(
                           new ObjectType(getJavaWrapperClass(m.getReturnType().getName()))));
                   il.append(
  -                    mFactory.createInvoke(
  +                    m_factory.createInvoke(
                           getJavaWrapperClass(m.getReturnType().getName()),
                           m.getReturnType().getName() + "Value",
                           getBCELPrimitiveType(m.getReturnType().getName()),
  @@ -725,111 +729,111 @@
                           Constants.INVOKEVIRTUAL));
                   ihe2 =
                       il.append(
  -                        mFactory.createReturn(getBCELPrimitiveType(m.getReturnType().getName())));
  +                        m_factory.createReturn(getBCELPrimitiveType(m.getReturnType().getName())));
               }
           }
           else
           {
               il.append(
  -                mFactory.createCheckCast(new ObjectType(m.getReturnType().getName())));
  -            ihe2 = il.append(mFactory.createReturn(Type.OBJECT));
  +                m_factory.createCheckCast(new ObjectType(m.getReturnType().getName())));
  +            ihe2 = il.append(m_factory.createReturn(Type.OBJECT));
           }
   
           InstructionHandle ihe3 =
  -            il.append(mFactory.createStore(Type.OBJECT, variableIndex));
  +            il.append(m_factory.createStore(Type.OBJECT, variableIndex));
   
           //add custom exceptionHandling here 
  -        Class[] _exceptionClasses = m.getExceptionTypes();
  -        InstructionHandle _customHandler = null;
  -        BranchInstruction _ifCustomExceptionBranch = null;
  -        for (int i = 0; i < _exceptionClasses.length; i++)
  +        Class[] exceptionClasses = m.getExceptionTypes();
  +        InstructionHandle customHandler = null;
  +        BranchInstruction ifCustomExceptionBranch = null;
  +        for (int i = 0; i < exceptionClasses.length; i++)
           {
   
  -            _customHandler = il.append(mFactory.createLoad(Type.OBJECT, variableIndex));
  +            customHandler = il.append(m_factory.createLoad(Type.OBJECT, variableIndex));
               //create the series of custom exception handlers for the classes
  -            if (_ifCustomExceptionBranch != null)
  -                _ifCustomExceptionBranch.setTarget(_customHandler);
  +            if (ifCustomExceptionBranch != null)
  +                ifCustomExceptionBranch.setTarget(customHandler);
               il.append(
                   new INSTANCEOF(
  -                    mConstantsPool.addClass(new ObjectType(_exceptionClasses[i].getName()))));
  -            _ifCustomExceptionBranch =
  -                mFactory.createBranchInstruction(Constants.IFEQ, null);
  -            il.append(_ifCustomExceptionBranch);
  -            il.append(mFactory.createLoad(Type.OBJECT, variableIndex));
  +                    m_constantsPool.addClass(new ObjectType(exceptionClasses[i].getName()))));
  +            ifCustomExceptionBranch =
  +                m_factory.createBranchInstruction(Constants.IFEQ, null);
  +            il.append(ifCustomExceptionBranch);
  +            il.append(m_factory.createLoad(Type.OBJECT, variableIndex));
               il.append(
  -                mFactory.createCheckCast(new ObjectType(_exceptionClasses[i].getName())));
  +                m_factory.createCheckCast(new ObjectType(exceptionClasses[i].getName())));
               il.append(InstructionConstants.ATHROW);
           }
   
  -        InstructionHandle _defaultExceptionHandler =
  -            il.append(mFactory.createLoad(Type.OBJECT, variableIndex));
  -        if (_customHandler != null)
  -            _ifCustomExceptionBranch.setTarget(_defaultExceptionHandler);
  +        InstructionHandle defaultExceptionHandler =
  +            il.append(m_factory.createLoad(Type.OBJECT, variableIndex));
  +        if (customHandler != null)
  +            ifCustomExceptionBranch.setTarget(defaultExceptionHandler);
           il.append(
               new INSTANCEOF(
  -                mConstantsPool.addClass(new ObjectType("java.lang.RuntimeException"))));
  -        BranchInstruction b1 = mFactory.createBranchInstruction(Constants.IFEQ, null);
  +                m_constantsPool.addClass(new ObjectType("java.lang.RuntimeException"))));
  +        BranchInstruction b1 = m_factory.createBranchInstruction(Constants.IFEQ, null);
           il.append(b1);
  -        il.append(mFactory.createLoad(Type.OBJECT, variableIndex));
  +        il.append(m_factory.createLoad(Type.OBJECT, variableIndex));
           il.append(
  -            mFactory.createCheckCast(new ObjectType("java.lang.RuntimeException")));
  +            m_factory.createCheckCast(new ObjectType("java.lang.RuntimeException")));
           il.append(InstructionConstants.ATHROW);
           InstructionHandle ih1 =
  -            il.append(mFactory.createLoad(Type.OBJECT, variableIndex));
  +            il.append(m_factory.createLoad(Type.OBJECT, variableIndex));
           il.append(
  -            new INSTANCEOF(mConstantsPool.addClass(new ObjectType("java.lang.Error"))));
  -        BranchInstruction b2 = mFactory.createBranchInstruction(Constants.IFEQ, null);
  +            new INSTANCEOF(m_constantsPool.addClass(new ObjectType("java.lang.Error"))));
  +        BranchInstruction b2 = m_factory.createBranchInstruction(Constants.IFEQ, null);
           il.append(b2);
  -        il.append(mFactory.createLoad(Type.OBJECT, variableIndex));
  -        il.append(mFactory.createCheckCast(new ObjectType("java.lang.Error")));
  +        il.append(m_factory.createLoad(Type.OBJECT, variableIndex));
  +        il.append(m_factory.createCheckCast(new ObjectType("java.lang.Error")));
           il.append(InstructionConstants.ATHROW);
           InstructionHandle ih2 =
  -            il.append(mFactory.createLoad(Type.OBJECT, variableIndex));
  +            il.append(m_factory.createLoad(Type.OBJECT, variableIndex));
           il.append(
  -            mFactory.createInvoke(
  +            m_factory.createInvoke(
                   "java.lang.Throwable",
                   "printStackTrace",
                   Type.VOID,
                   Type.NO_ARGS,
                   Constants.INVOKEVIRTUAL));
           il.append(
  -            mFactory.createNew(
  +            m_factory.createNew(
                   "org.apache.excalibur.altrmi.common.AltrmiInvocationException"));
           il.append(InstructionConstants.DUP);
  -        il.append(mFactory.createNew("java.lang.StringBuffer"));
  +        il.append(m_factory.createNew("java.lang.StringBuffer"));
           il.append(InstructionConstants.DUP);
  -        il.append(new PUSH(mConstantsPool, "Should never get here: "));
  +        il.append(new PUSH(m_constantsPool, "Should never get here: "));
           il.append(
  -            mFactory.createInvoke(
  +            m_factory.createInvoke(
                   "java.lang.StringBuffer",
                   "<init>",
                   Type.VOID,
                   new Type[] { Type.STRING },
                   Constants.INVOKESPECIAL));
  -        il.append(mFactory.createLoad(Type.OBJECT, variableIndex));
  +        il.append(m_factory.createLoad(Type.OBJECT, variableIndex));
           il.append(
  -            mFactory.createInvoke(
  +            m_factory.createInvoke(
                   "java.lang.Throwable",
                   "getMessage",
                   Type.STRING,
                   Type.NO_ARGS,
                   Constants.INVOKEVIRTUAL));
           il.append(
  -            mFactory.createInvoke(
  +            m_factory.createInvoke(
                   "java.lang.StringBuffer",
                   "append",
                   Type.STRINGBUFFER,
                   new Type[] { Type.STRING },
                   Constants.INVOKEVIRTUAL));
           il.append(
  -            mFactory.createInvoke(
  +            m_factory.createInvoke(
                   "java.lang.StringBuffer",
                   "toString",
                   Type.STRING,
                   Type.NO_ARGS,
                   Constants.INVOKEVIRTUAL));
           il.append(
  -            mFactory.createInvoke(
  +            m_factory.createInvoke(
                   "org.apache.excalibur.altrmi.common.AltrmiInvocationException",
                   "<init>",
                   Type.VOID,
  @@ -846,7 +850,7 @@
               new ObjectType("java.lang.Throwable"));
           method.setMaxStack();
           method.setMaxLocals();
  -        mClassGen.addMethod(method.getMethod());
  +        m_classGen.addMethod(method.getMethod());
           il.dispose();
       }
   
  @@ -856,19 +860,19 @@
        * @param ca
        * @return int
        */
  -    private int getFreeIndexToStart(Class[] ca)
  +    protected int getFreeIndexToStart(Class[] ca)
       {
  -        int _index = 0;
  +        int index = 0;
           for (int i = 0; i < ca.length; i++)
           {
               if (getBCELType(ca[i]) == Type.DOUBLE) //|| getBCELType(ca[i])==Type.LONG)
               {
  -                _index += 2;
  +                index += 2;
               }
  -            _index += 1;
  +            index += 1;
           }
   
  -        return _index;
  +        return index;
       }
       /**
        * Method getArguments.
  @@ -877,16 +881,16 @@
        * @param m
        * @return Type[]
        */
  -    private Type[] getArguments(Method m)
  +    protected Type[] getArguments(Method m)
       {
  -        Class[] _classes = m.getParameterTypes();
  -        if (_classes.length == 0)
  +        Class[] classes = m.getParameterTypes();
  +        if (classes.length == 0)
               return Type.NO_ARGS;
   
  -        Type[] types = new Type[_classes.length];
  -        for (int i = 0; i < _classes.length; i++)
  +        Type[] types = new Type[classes.length];
  +        for (int i = 0; i < classes.length; i++)
           {
  -            types[i] = getBCELType(_classes[i]);
  +            types[i] = getBCELType(classes[i]);
           }
           return types;
       }
  @@ -897,7 +901,7 @@
        * @param m
        * @return Type
        */
  -    private Type getReturnType(Method m)
  +    protected Type getReturnType(Method m)
       {
           return getBCELType(m.getReturnType());
       }
  @@ -908,15 +912,15 @@
        * @param m
        * @return String[]
        */
  -    private String[] getArgumentNames(Method m)
  +    protected String[] getArgumentNames(Method m)
       {
  -        Class[] _classes = m.getParameterTypes();
  -        String[] _args = new String[_classes.length];
  -        for (int i = 0; i < _classes.length; i++)
  +        Class[] classes = m.getParameterTypes();
  +        String[] args = new String[classes.length];
  +        for (int i = 0; i < classes.length; i++)
           {
  -            _args[i] = "arg" + i;
  +            args[i] = "arg" + i;
           }
  -        return _args;
  +        return args;
       }
   
       /**
  @@ -925,7 +929,7 @@
        * @param c
        * @return Type
        */
  -    private Type getBCELType(Class c)
  +    protected Type getBCELType(Class c)
       {
   
           if (c.isPrimitive())
  @@ -939,16 +943,16 @@
           else
           {
               String className = c.getName();
  -            int _index = className.lastIndexOf('[');
  -            int _arrayDepth = className.indexOf('[') - className.lastIndexOf('[') + 1;
  -            if (className.charAt(_index + 1) == 'L')
  +            int index = className.lastIndexOf('[');
  +            int arrayDepth = className.indexOf('[') - className.lastIndexOf('[') + 1;
  +            if (className.charAt(index + 1) == 'L')
               {
  -                return new ArrayType(new ObjectType(c.getComponentType().getName()), _arrayDepth);
  +                return new ArrayType(new ObjectType(c.getComponentType().getName()), arrayDepth);
               }
   
               return new ArrayType(
  -                getBCELPrimitiveType(className.substring(_arrayDepth)),
  -                _arrayDepth);
  +                getBCELPrimitiveType(className.substring(arrayDepth)),
  +                arrayDepth);
           }
   
       }
  @@ -959,16 +963,20 @@
        * @param javaDataType
        * @return Type
        */
  -    private Type getBCELPrimitiveType(String javaDataType)
  +    protected Type getBCELPrimitiveType(String javaDataType)
       {
           switch (javaDataType.charAt(0))
           {
   
               case 'b' :
                   if (javaDataType.toString().charAt(1) == 'o')
  +                {
                       return Type.BOOLEAN;
  +                }
                   else
  +                {
                       return Type.BYTE;
  +                }
               case 'c' :
               case 'C' :
                   return Type.CHAR;
  @@ -1006,7 +1014,7 @@
        * @param javaDataType
        * @return String
        */
  -    private String getJavaWrapperClass(String javaDataType)
  +    protected String getJavaWrapperClass(String javaDataType)
       {
           switch (javaDataType.charAt(0))
           {
  @@ -1042,42 +1050,41 @@
               case 'V' :
                   return "java.lang.Void";
               case '[' :
  -                mArrayDepth_++;
                   return getJavaWrapperClass(javaDataType.substring(1));
   
           }
           return null; //never occurs;
       }
   
  -    private void addField(String _encodedFieldName)
  +    protected void addField(String encodedFieldName)
       {
  -        if (!mInternalFieldRepresentingClasses.contains(_encodedFieldName))
  +        if (!m_internalFieldRepresentingClasses.contains(encodedFieldName))
           {
               //System.out.println("method."+method.getName()+".addingfield[" + _encodedFieldName + "]");
               FieldGen field =
                   new FieldGen(
                       Constants.ACC_STATIC,
                       new ObjectType("java.lang.Class"),
  -                    _encodedFieldName,
  -                    mConstantsPool);
  -            mClassGen.addField(field.getField());
  -            mInternalFieldRepresentingClasses.add(_encodedFieldName);
  +                    encodedFieldName,
  +                    m_constantsPool);
  +            m_classGen.addField(field.getField());
  +            m_internalFieldRepresentingClasses.add(encodedFieldName);
           }
   
       }
       
       //++++++++++++++++++testing
  -    private void createTestMethod(InstructionList il, String msg)
  +    protected void createTestMethod(InstructionList il, String msg)
       {
           il.append(
  -            mFactory.createFieldAccess(
  +            m_factory.createFieldAccess(
                   "java.lang.System",
                   "out",
                   new ObjectType("java.io.PrintStream"),
                   Constants.GETSTATIC));
  -        il.append(new PUSH(mConstantsPool, msg));
  +        il.append(new PUSH(m_constantsPool, msg));
           il.append(
  -            mFactory.createInvoke(
  +            m_factory.createInvoke(
                   "java.io.PrintStream",
                   "println",
                   Type.VOID,
  @@ -1085,7 +1092,7 @@
                   Constants.INVOKEVIRTUAL));
       }
   
  -    private void debug(String prefix, Object[] a)
  +    protected void debug(String prefix, Object[] a)
       {
           System.out.print(prefix);
           for (int i = 0; i < a.length; i++)
  @@ -1103,14 +1110,14 @@
        *     This get the Class definition from the bytes
        * @return Class
        */
  -    private Class getAltrmiClass(String className)
  +    protected Class getAltrmiClass(String className)
       {
   
           /*
           FromJavaClassClassLoader fromJavaClassClassLoader =
               new FromJavaClassClassLoader();
           Class clazz =
  -            fromJavaClassClassLoader.getClassFromJavaClass(mClassGen.getJavaClass());
  +            fromJavaClassClassLoader.getClassFromJavaClass(m_classGen.getJavaClass());
           */
           Class clazz = null;
   
  @@ -1119,7 +1126,7 @@
               URLClassLoader urlCL =
                   new URLClassLoader(
                       new URL[] {
  -                         new URL("file:/" + new File(mClassGenDir).getCanonicalPath() + "/")},
  +                         new URL("file:/" + new File(getClassGenDir()).getCanonicalPath() + "/")},
               //
               this.getClass().getClassLoader());
               clazz = urlCL.loadClass(className);
  
  
  
  1.10      +33 -162   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.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- ProxyGeneratorImpl.java	23 May 2002 21:37:21 -0000	1.9
  +++ ProxyGeneratorImpl.java	14 Jul 2002 23:12:44 -0000	1.10
  @@ -14,9 +14,7 @@
   import java.io.Serializable;
   import java.lang.reflect.Method;
   import java.util.Vector;
  -import org.apache.excalibur.altrmi.common.AbstractMethodHandler;
   import org.apache.excalibur.altrmi.common.ProxyGenerationException;
  -import org.apache.excalibur.altrmi.common.ProxyGenerator;
   import org.apache.excalibur.altrmi.javacompiler.JavaCompiler;
   
   /**
  @@ -28,102 +26,12 @@
    * @author <a href="mailto:proyal@apache.org">Peter Royal</a>
    * @version $Revision$
    */
  -public class ProxyGeneratorImpl extends AbstractMethodHandler implements ProxyGenerator
  +public class ProxyGeneratorImpl extends AbstractProxyGenerator
   {
   
  -    protected Class[] mInterfacesToExpose;
  -    protected Class[] mAdditionalFacades;
  -    protected String mSrcGenDir;
  -    protected String mClassGenDir;
  -    protected String mClasspath;
  -    protected String mGenName;
  -    protected boolean mVerbose;
  -    protected PrintWriter mClassSource;
  -
  -    /**
  -     * Method setInterfacesToExpose
  -     *
  -     *
  -     * @param interfacesToExpose
  -     *
  -     */
  -    public void setInterfacesToExpose( Class[] interfacesToExpose )
  -    {
  -        mInterfacesToExpose = interfacesToExpose;
  -    }
  -
  -    /**
  -     * Method setInterfacesToExpose
  -     *
  -     *
  -     *
  -     * @param additionalFacades
  -     *
  -     */
  -    public void setAdditionalFacades( Class[] additionalFacades )
  -    {
  -        mAdditionalFacades = additionalFacades;
  -    }
  -
  -    /**
  -     * Method setSrcGenDir
  -     *
  -     *
  -     * @param srcGenDir
  -     *
  -     */
  -    public void setSrcGenDir( String srcGenDir )
  -    {
  -        mSrcGenDir = srcGenDir;
  -    }
   
  -    /**
  -     * Method setClasspath
  -     *
  -     *
  -     * @param classpath
  -     *
  -     */
  -    public void setClasspath( String classpath )
  -    {
  -        mClasspath = classpath;
  -    }
  -
  -    /**
  -     * Method setClassGenDir
  -     *
  -     *
  -     * @param classGenDir
  -     *
  -     */
  -    public void setClassGenDir( String classGenDir )
  -    {
  -        mClassGenDir = classGenDir;
  -    }
  +    protected PrintWriter mClassSource;
   
  -    /**
  -     * Method setGenName
  -     *
  -     *
  -     * @param genName
  -     *
  -     */
  -    public void setGenName( String genName )
  -    {
  -        this.mGenName = genName;
  -    }
  -
  -    /**
  -     * Method verbose
  -     *
  -     *
  -     * @param trueFalse
  -     *
  -     */
  -    public void verbose( boolean trueFalse )
  -    {
  -        mVerbose = trueFalse;
  -    }
   
       /**
        * Method generate
  @@ -136,14 +44,14 @@
       {
   
           // The lookupable service class source.
  -        makeSource( cL, "Main", mInterfacesToExpose );
  -        makeSource2( cL, "Main", mInterfacesToExpose );
  +        makeSource( cL, "Main", getInterfacesToExpose() );
  +        makeSource2( cL, "Main", getInterfacesToExpose() );
   
  -        if( mAdditionalFacades != null )
  +        if( getAdditionalFacades() != null )
           {
  -            for( int i = 0; i < mAdditionalFacades.length; i++ )
  +            for( int i = 0; i < getAdditionalFacades().length; i++ )
               {
  -                Class facade = mAdditionalFacades[ i ];
  +                Class facade = getAdditionalFacades()[ i ];
   
                   makeSource( cL, encodeClassName( facade ), new Class[]{facade} );
                   makeSource2( cL, encodeClassName( facade ), new Class[]{facade} );
  @@ -155,33 +63,33 @@
        * Method generateClass
        *
        *
  -     * @param cL
  +     * @param classLoader
        *
        */
  -    public void generateClass( ClassLoader cL )
  +    public void generateClass( ClassLoader classLoader )
       {
   
           JavaCompiler jc = JavaCompiler.getDefaultCompiler();
   
  -        jc.setOutputDir( mClassGenDir );
  +        jc.setOutputDir( getClassGenDir() );
   
           //jc.setCompilerPath();
  -        jc.addClassPath( mClassGenDir );
  -        jc.addClassPath( mClasspath );
  +        jc.addClassPath( getClassGenDir() );
  +        jc.addClassPath( getClasspath() );
           jc.addDefaultClassPath();
  -        jc.doCompile( mSrcGenDir + File.separator + "AltrmiGenerated" + mGenName + "_Main.java" );
  -        jc.doCompile( mSrcGenDir + File.separator + "AltrmiGenerated2" + mGenName + "_Main.java" );
  +        jc.doCompile( getSrcGenDir() + File.separator + "AltrmiGenerated" + getGenName() + "_Main.java" );
  +        jc.doCompile( getSrcGenDir() + File.separator + "AltrmiGenerated2" + getGenName() + "_Main.java" );
           System.out.println( jc.getCompilerMessage() );
   
  -        if( mAdditionalFacades != null )
  +        if( getAdditionalFacades() != null )
           {
  -            for( int i = 0; i < mAdditionalFacades.length; i++ )
  +            for( int i = 0; i < getAdditionalFacades().length; i++ )
               {
  -                String classname = encodeClassName( mAdditionalFacades[ i ] );
  +                String classname = encodeClassName( getAdditionalFacades()[ i ] );
   
  -                jc.doCompile( mSrcGenDir + File.separator + "AltrmiGenerated" + mGenName + "_"
  +                jc.doCompile( getSrcGenDir() + File.separator + "AltrmiGenerated" + getGenName() + "_"
                                 + classname + ".java" );
  -                jc.doCompile( mSrcGenDir + File.separator + "AltrmiGenerated2" + mGenName + "_"
  +                jc.doCompile( getSrcGenDir() + File.separator + "AltrmiGenerated2" + getGenName() + "_"
                                 + classname + ".java" );
               }
           }
  @@ -197,10 +105,10 @@
   
           JavaCompiler jc = JavaCompiler.getDefaultCompiler();
   
  -        jc.setOutputDir( mClassGenDir );
  -        jc.setCompilerPath( mSrcGenDir );
  -        jc.addClassPath( mClassGenDir );
  -        jc.addClassPath( mClasspath );
  +        jc.setOutputDir( getClassGenDir() );
  +        jc.setCompilerPath( getSrcGenDir() );
  +        jc.addClassPath( getClassGenDir() );
  +        jc.addClassPath( getClasspath() );
           jc.addDefaultClassPath();
           jc.doCompile( "*.java" );
           System.out.println( jc.getCompilerMessage() );
  @@ -223,7 +131,7 @@
   
           // methdos could be in more than one interface.
           Vector methodsDone = new Vector();
  -        String filename = mSrcGenDir + File.separator + "AltrmiGenerated" + mGenName + "_" + name
  +        String filename = getSrcGenDir() + File.separator + "AltrmiGenerated" + getGenName() + "_" + name
               + ".java";
   
           try
  @@ -236,14 +144,14 @@
                                                   + "'" );
           }
   
  -        mClassSource.print( "public class AltrmiGenerated" + mGenName + "_" + name );
  +        mClassSource.print( "public class AltrmiGenerated" + getGenName() + "_" + name );
           mClassSource.println( " implements org.apache.excalibur.altrmi.client.AltrmiProxy{ " );
           mClassSource.println(
               "  private transient org.apache.excalibur.altrmi.client.ProxyHelper mProxyHelper;" );
   
           // Generate Constructor
           mClassSource.println(
  -            "  public AltrmiGenerated" + mGenName + "_" + name
  +            "  public AltrmiGenerated" + getGenName() + "_" + name
               + " (org.apache.excalibur.altrmi.client.ProxyHelper proxyHelper) {" );
           mClassSource.println( "      mProxyHelper = proxyHelper;" );
           mClassSource.println( "  }" );
  @@ -261,7 +169,7 @@
           {
               Class clazz = interfacesToExpose[ x ];
   
  -            if( mVerbose )
  +            if( isVerbose() )
               {
                   System.out.println( "ProxyGen: Processing interface: " + clazz.getName() );
               }
  @@ -273,7 +181,7 @@
                   Method method = methods[ y ];
                   String methodSignature = getMethodSignature( method );
   
  -                if( mVerbose )
  +                if( isVerbose() )
                   {
                       System.out.println( "ProxyGen:   Processing method: " + methodSignature );
                   }
  @@ -346,11 +254,9 @@
                           if( isFacadeRetVal )
                           {
                               Class retClassType = rClass;
  -                            boolean isArray = false;
                               if( rClass.isArray() )
                               {
                                   retClassType = rClass.getComponentType();
  -                                isArray = true;
                               }
   
                               mClassSource.println(
  @@ -413,20 +319,20 @@
           throws ProxyGenerationException
       {
   
  -        String filename = mSrcGenDir + File.separator + "AltrmiGenerated2" + mGenName + "_"
  +        String filename = getSrcGenDir() + File.separator + "AltrmiGenerated2" + getGenName() + "_"
               + name + ".java";
   
           try
           {
               PrintWriter class2Source = new PrintWriter( new FileOutputStream( filename ) );
   
  -            class2Source.print( "public final class AltrmiGenerated2" + mGenName + "_" + name );
  -            class2Source.print( " extends AltrmiGenerated" + mGenName + "_" + name );
  +            class2Source.print( "public final class AltrmiGenerated2" + getGenName() + "_" + name );
  +            class2Source.print( " extends AltrmiGenerated" + getGenName() + "_" + name );
               class2Source.print( " implements " );
               generateInterfaceList( class2Source, interfacesToExpose );
               class2Source.println( " { " );
               class2Source.println(
  -                "  public AltrmiGenerated2" + mGenName + "_" + name
  +                "  public AltrmiGenerated2" + getGenName() + "_" + name
                   + " (org.apache.excalibur.altrmi.client.ProxyHelper proxyHelper) {" );
               class2Source.println( "      super(proxyHelper);" );
               class2Source.println( "  }" );
  @@ -639,20 +545,7 @@
           }
       }
   
  -    protected String getClassType( Class rClass )
  -    {
   
  -        String cn = rClass.getName();
  -
  -        if( rClass.getName().startsWith( "[L" ) )
  -        {
  -            return cn.substring( 2, cn.length() - 1 ) + "[]";
  -        }
  -        else
  -        {
  -            return cn;
  -        }
  -    }
   
       private String generateReturnValue( Class rClass )
       {
  @@ -701,26 +594,4 @@
           }
       }
   
  -    protected boolean isAdditionalFacade( Class clazz )
  -    {
  -
  -        if( mAdditionalFacades == null )
  -        {
  -            return false;
  -        }
  -
  -        for( int p = 0; p < mAdditionalFacades.length; p++ )
  -        {
  -            if( clazz.getName().equals( mAdditionalFacades[ p ].getName() ) )
  -            {
  -                return true;
  -            }
  -            else if( clazz.getName().equals( "[L" + mAdditionalFacades[ p ].getName() + ";" ) )
  -            {
  -                return true;
  -            }
  -        }
  -
  -        return false;
  -    }
   }
  
  
  
  1.1                  jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/generator/AbstractProxyGenerator.java
  
  Index: AbstractProxyGenerator.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.generator;
  
  import org.apache.excalibur.altrmi.common.AbstractMethodHandler;
  import org.apache.excalibur.altrmi.common.ProxyGenerator;
  import org.apache.excalibur.altrmi.common.ProxyGenerationException;
  
  
  /**
   * Abstract parent for Proxy Generators
   *
   * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
   * @version $Revision: 1.1 $*
   *
   */
  
  public abstract class AbstractProxyGenerator extends AbstractMethodHandler
    implements ProxyGenerator
  {
  
      private String m_classGenDir;
      private String m_genName;
      private String m_srcGenDir;
      private String m_classpath;
      private boolean m_verbose;
      private Class[] m_additionalFacades;
      private Class[] m_interfacesToExpose;
  
      /**
       * Get the directory name of the class generation directory.
       *
       * @return the dir name.
       */
      public String getClassGenDir()
      {
          return m_classGenDir;
      }
  
      /**
       * Get the generation name of the class
       *
       * @return the name.
       */
  
      public String getGenName()
      {
          return m_genName;
      }
  
      /**
       * Get the source directory name
       *
       * @return the dir name.
       */
  
      public String getSrcGenDir()
      {
          return m_srcGenDir;
      }
  
  
      /**
       * Get the classpath used during creation
       *
       * @return classpath
       */
  
      public String getClasspath()
      {
          return m_classpath;
      }
  
      /**
       * Is verbose debugging level
       *
       * @return verbose or not
       */
      public boolean isVerbose()
      {
          return m_verbose;
      }
  
      /**
       * Get the additional facades
       *
       * @return the additional facades
       */
      public Class[] getAdditionalFacades()
      {
          return m_additionalFacades;
      }
  
      /**
       * Get the interfaces to expose.
       *
       * @return the interfaces
       */
      public Class[] getInterfacesToExpose()
      {
          return m_interfacesToExpose;
      }
  
      /**
       * Set the verbose logging level for class generation.
       *
       *
       * @param trueFalse set the verbose level
       *
       */
      public void verbose( boolean trueFalse )
      {
          m_verbose = trueFalse;
      }
  
  
      /**
        * Set the interfaces to expose.
        *
        *
        * @param interfacesToExpose the interfaces.
        *
        */
       public void setInterfacesToExpose( Class[] interfacesToExpose )
       {
           m_interfacesToExpose = interfacesToExpose;
       }
  
  
      /**
       * Set the additional facades
       *
       *
       *
       * @param additionalFacades the facades.
       *
       */
      public void setAdditionalFacades( Class[] additionalFacades )
      {
          m_additionalFacades = additionalFacades;
      }
  
      /**
       * Set the clas generation dorectory
       *
       *
       * @param classGenDir the dir.
       *
       */
      public void setClassGenDir( String classGenDir )
      {
          m_classGenDir = classGenDir;
      }
  
      /**
       * Set the generation name
       *
       *
       * @param genName the name
       *
       */
      public void setGenName( String genName )
      {
          this.m_genName = genName;
      }
  
      /**
       * Set the source generation directory.
       *
       *
       * @param srcGenDir the dir name.
       *
       */
      public void setSrcGenDir( String srcGenDir )
      {
          m_srcGenDir = srcGenDir;
      }
  
      /**
       * Set the classpath to generate with
       *
       *
       * @param classpath the classpath.
       *
       */
      public void setClasspath( String classpath )
      {
          m_classpath = classpath;
      }
  
      /**
       * Is the param one of the additional facades?
       *
       *
       * @param clazz the class
       *
       */
      protected boolean isAdditionalFacade( Class clazz )
      {
  
          if( m_additionalFacades == null )
          {
              return false;
          }
  
          for( int p = 0; p < m_additionalFacades.length; p++ )
          {
              if( clazz.getName().equals( m_additionalFacades[ p ].getName() ) )
              {
                  return true;
              }
              else if( clazz.getName().equals( "[L" + m_additionalFacades[ p ].getName() + ";" ) )
              {
                  return true;
              }
          }
  
          return false;
      }
  
      protected String getClassType( Class rClass )
      {
  
          String cn = rClass.getName();
  
          if( rClass.getName().startsWith( "[L" ) )
          {
              return cn.substring( 2, cn.length() - 1 ) + "[]";
          }
          else
          {
              return cn;
          }
      }
  
      /**
       * Method generateSrc
       *
       *
       * @param classLoader
       *
       */
      public void generateSrc( ClassLoader classLoader ) throws ProxyGenerationException
      {
          // default impl
      }
  
      /**
       * Method generateDeferredClasses
       *
       *
       */
      public void generateDeferredClasses()
      {
          // default impl
      }
  
  }
  
  
  
  1.3       +4 -4      jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/classretrievers/AbstractClassRetriever.java
  
  Index: AbstractClassRetriever.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/classretrievers/AbstractClassRetriever.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- AbstractClassRetriever.java	24 Apr 2002 12:43:02 -0000	1.2
  +++ AbstractClassRetriever.java	14 Jul 2002 23:12:44 -0000	1.3
  @@ -23,11 +23,11 @@
   public abstract class AbstractClassRetriever implements ClassRetriever
   {
   
  -    private ClassLoader mClassLoader;
  +    private ClassLoader m_classLoader;
   
       protected void setClassLoader( ClassLoader classLoader )
       {
  -        mClassLoader = classLoader;
  +        m_classLoader = classLoader;
       }
   
       /**
  @@ -72,7 +72,7 @@
   
           try
           {
  -            is = mClassLoader.getResourceAsStream( thingName );
  +            is = m_classLoader.getResourceAsStream( thingName );
           }
           catch( Exception e )
           {
  
  
  
  1.4       +18 -9     jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/classretrievers/PlainClassRetriever.java
  
  Index: PlainClassRetriever.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/classretrievers/PlainClassRetriever.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- PlainClassRetriever.java	24 Apr 2002 12:43:02 -0000	1.3
  +++ PlainClassRetriever.java	14 Jul 2002 23:12:44 -0000	1.4
  @@ -17,13 +17,14 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @author Vinay Chandrasekharan <a href="mailto:vinay_chandran@users.sourceforge.net">vinay_chandran@users.sourceforge.net</a>
  + * @author Vinay Chandrasekharan <a href="mailto:vinay_chandran@users.sourceforge.net">
  + * vinay_chandran@users.sourceforge.net</a>
    * @version $Revision$
    */
   public class PlainClassRetriever extends AbstractClassRetriever
   {
   
  -    private ClassLoader mClassLoader;
  +    private ClassLoader m_classLoader;
   
       /**
        * Constructor PlainClassRetriever
  @@ -32,27 +33,35 @@
        */
       public PlainClassRetriever()
       {
  -        mClassLoader = this.getClass().getClassLoader();
  +        m_classLoader = this.getClass().getClassLoader();
       }
   
       /**
  -     * Constructor PlainClassRetriever
  +     * Create a plain clasretriever from a classloader.
        *
        *
  -     * @param cl
  +     * @param classLoader the classloader.
        *
        */
  -    public PlainClassRetriever( ClassLoader cl )
  +    public PlainClassRetriever( ClassLoader classLoader )
       {
  -        mClassLoader = cl;
  +        m_classLoader = classLoader;
       }
   
  +    /**
  +     *
  +     * Get the classfile byte array for the thing name
  +     *
  +     * @param thingName the things name
  +     * @return the byte array of the thing.
  +     * @throws ClassRetrievalException if the bytes are not available.
  +     */
       protected byte[] getThingBytes( String thingName ) throws ClassRetrievalException
       {
   
           InputStream is = null;
   
  -        is = mClassLoader.getResourceAsStream( thingName + ".class" );
  +        is = m_classLoader.getResourceAsStream( thingName + ".class" );
   
           if( is == null )
           {
  
  
  
  1.1                  jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/classretrievers/AbstractDynamicGeneratorClassRetriever.java
  
  Index: AbstractDynamicGeneratorClassRetriever.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.impl.classretrievers;
  
  import java.io.ByteArrayOutputStream;
  import java.io.File;
  import java.io.FileInputStream;
  import java.io.IOException;
  import java.net.URL;
  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;
  
  /**
   * Class JarFileClassRetriever
   *
   *
   * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
   * @version $Revision: 1.1 $
   */
  public class AbstractDynamicGeneratorClassRetriever implements AltrmiProxyGenerator, ClassRetriever
  {
  
      private String m_altrmiClasspath;
      private String m_classGenDir;
      private String m_srcGenDir;
      private URL m_genJarURL;
      private Class m_generatorClass ;
  
      /**
       * Constructor AbstractDynamicGeneratorClassRetriever
       *
       *
       */
      public AbstractDynamicGeneratorClassRetriever( URL genJarURL, Class generatorClass)
      {
          m_genJarURL = genJarURL;
          m_generatorClass = generatorClass;
      }
  
      /**
       * Method generate
       *
       *
       * @param asName
       * @param interfaceToExpose
       * @param classLoader
       *
       */
      public void generate( String asName, Class interfaceToExpose, ClassLoader classLoader )
          throws PublicationException
      {
          generateProxy( asName, new PublicationDescription( interfaceToExpose ), classLoader, false );
      }
  
      /**
       * Method generate
       *
       *
       * @param asName
       * @param publicationDescription
       * @param classLoader
       *
       * @throws PublicationException
       *
       */
      public void generate(
          String asName, PublicationDescription publicationDescription, ClassLoader classLoader )
          throws PublicationException
      {
          generateProxy( asName, publicationDescription, classLoader, false );
      }
  
      /**
       * Method deferredGenerate
       *
       *
       * @param asName
       * @param publicationDescription
       * @param classLoader
       *
       * @throws PublicationException
       *
       */
      public void deferredGenerate(
          String asName, PublicationDescription publicationDescription, ClassLoader classLoader )
          throws PublicationException
      {
          generateProxy( asName, publicationDescription, classLoader, true );
      }
  
      /**
       * Method setAltrmiClasspath
       *
       *
       * @param altrmiClasspath
       *
       */
      public void setAltrmiClasspath( String altrmiClasspath )
      {
          m_altrmiClasspath = altrmiClasspath;
      }
  
      /**
       * Method addToAltrmiClasspath
       *
       *
       * @param classpathElement
       *
       */
      public void addToAltrmiClasspath( String classpathElement )
      {
          m_altrmiClasspath = m_altrmiClasspath + File.pathSeparator + classpathElement;
      }
  
      /**
       * Method setClassGenDir
       *
       *
       * @param classGenDir
       *
       */
      public void setClassGenDir( String classGenDir )
      {
          m_classGenDir = classGenDir;
      }
  
      /**
       * 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
      {
  
          thingName = thingName.replace( '.', '\\' ) + ".class";
  
          FileInputStream fis;
  
          try
          {
              fis = new FileInputStream( new File( m_classGenDir, thingName ) );
          }
          catch( Exception e )
          {
              e.printStackTrace();
  
              throw new ClassRetrievalException(
                  "Generated class not found in classloader specified : " + e.getMessage() );
          }
  
          if( fis == null )
          {
              throw new ClassRetrievalException(
                  "Generated class not found in classloader specified." );
          }
  
          ByteArrayOutputStream baos = new ByteArrayOutputStream();
          int i = 0;
  
          try
          {
              while( -1 != ( i = fis.read() ) )
              {
                  baos.write( i );
              }
  
              fis.close();
          }
          catch( IOException e )
          {
              e.printStackTrace();
  
              throw new ClassRetrievalException( "Error retrieving generated class bytes : "
                                                 + e.getMessage() );
          }
  
          byte[] bytes = baos.toByteArray();
  
          return bytes;
      }
  
      /**
       * Method setSrcGenDir
       *
       *
       * @param srcGenDir
       *
       */
      public void setSrcGenDir( String srcGenDir )
      {
          m_srcGenDir = srcGenDir;
      }
  
      private void generateProxy(
          String asName, PublicationDescription publicationDescription, ClassLoader classLoader, boolean deferred )
          throws PublicationException
      {
  
          if( classLoader == null )
          {
              classLoader = this.getClass().getClassLoader();
          }
  
          Class[] interfacesToExpose = new Class[ 0 ];
          Class[] addInfs = new Class[ 0 ];
  
          interfacesToExpose = publicationDescription.getInterfacesToExpose();
          addInfs = publicationDescription.getAdditionalFacades();
  
          ProxyGenerator proxyGenerator;
  
          try
          {
              proxyGenerator = (ProxyGenerator) m_generatorClass.newInstance();
          }
          catch (InstantiationException e)
          {
              throw new RuntimeException( "ProxyGenerator cannot be instantiated." );
          }
          catch (IllegalAccessException e)
          {
              throw new RuntimeException( "ProxyGenerator was illegally accessed" );
          }
  
          proxyGenerator.setSrcGenDir( m_srcGenDir );
          proxyGenerator.setClassGenDir( m_classGenDir );
          proxyGenerator.setGenName( asName );
          proxyGenerator.setClasspath( m_altrmiClasspath );
          proxyGenerator.setInterfacesToExpose( interfacesToExpose );
          proxyGenerator.setAdditionalFacades( addInfs );
  
          //ClassLoader cL = this.getClass().getClassLoader();
          try
          {
              proxyGenerator.generateSrc( classLoader );
          }
          catch( Throwable t )
          {
              System.out.println( "******" );
              System.out.println( "** Exception while making source : " );
              System.out.flush();
              t.printStackTrace();
              System.out.println( "** Name=" + asName );
              System.out.println( "** Classes/Interfaces to Expose.." );
  
              for( int i = 0; i < interfacesToExpose.length; i++ )
              {
                  String aString = interfacesToExpose[ i ].getName();
  
                  System.out.println( "** .." + aString );
              }
  
              System.out.println( "******" );
              System.out.flush();
          }
  
          if( !deferred )
          {
              try
              {
                  proxyGenerator.generateClass( classLoader );
              }
              catch( Throwable t )
              {
                  if( ( t instanceof NoClassDefFoundError )
                      && t.getMessage().equals( "sun/tools/javac/Main" ) )
                  {
                      System.out.println( "***************************************" );
                      System.out.println( "*                                     *" );
                      System.out.println( "* AltRMI problem......                *" );
                      System.out.println( "* Please copy JAVA_HOME/lib/tools.jar *" );
                      System.out.println( "* to your applications classpath so   *" );
                      System.out.println( "* that proxys can be compiled.        *" );
                      System.out.println( "*                                     *" );
                      System.out.println( "***************************************" );
  
                      throw new ProxyGenerationEnvironmentException(
                          "tools.jar not found in classpath." );
                  }
  
                  System.out.println( "******" );
                  System.out.println( "** Exception while making String : " );
                  System.out.flush();
                  t.printStackTrace();
                  System.out.println( "** SrcDir=" + m_srcGenDir );
                  System.out.println( "** ClassDir=" + m_classGenDir );
                  System.out.println( "** Name=" + asName );
                  System.out.println( "** CLasspath=" + m_altrmiClasspath );
                  System.out.println( "** Classes/Interfaces to Expose.." );
  
                  for( int i = 0; i < interfacesToExpose.length; i++ )
                  {
                      String aString = interfacesToExpose[ i ].getName();
  
                      System.out.println( "** .." + aString );
                  }
  
                  System.out.println( "******" );
                  System.out.flush();
              }
          }
      }
  
      /**
       * Method generateDeferred
       *
       *
       * @param classLoader
       *
       */
      public void generateDeferred( ClassLoader classLoader )
      {
  
          ProxyGenerator proxyGenerator;
  
          try
          {
              proxyGenerator = (ProxyGenerator) m_generatorClass.newInstance();
          }
          catch (InstantiationException e)
          {
              throw new RuntimeException( "ProxyGenerator cannot be instantiated." );
          }
          catch (IllegalAccessException e)
          {
              throw new RuntimeException( "ProxyGenerator was illegally accessed" );
          }
          proxyGenerator.generateDeferredClasses();
      }
  }
  
  
  
  1.1                  jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/classretrievers/BcelDynamicGeneratorClassRetriever.java
  
  Index: BcelDynamicGeneratorClassRetriever.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.impl.classretrievers;
  
  import org.apache.excalibur.altrmi.generator.BCELProxyGeneratorImpl;
  
  import java.net.URL;
  
  
  /**
   * Class BcelDynamicGeneratorClassRetriever
   *
   *
   * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
   * @version $Revision: 1.1 $
   */
  public class BcelDynamicGeneratorClassRetriever extends AbstractDynamicGeneratorClassRetriever
  {
      public BcelDynamicGeneratorClassRetriever(URL genJarURL)
      {
          super(genJarURL, BCELProxyGeneratorImpl.class);
      }
  }
  
  
  
  1.1                  jakarta-avalon-excalibur/altrmi/src/java/org/apache/excalibur/altrmi/server/impl/classretrievers/JavacDynamicGeneratorClassRetriever.java
  
  Index: JavacDynamicGeneratorClassRetriever.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.impl.classretrievers;
  
  import org.apache.excalibur.altrmi.generator.ProxyGeneratorImpl;
  
  import java.net.URL;
  
  
  /**
   * Class JavacDynamicGeneratorClassRetriever
   *
   *
   * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
   * @version $Revision: 1.1 $
   */
  public class JavacDynamicGeneratorClassRetriever extends AbstractDynamicGeneratorClassRetriever
  {
      public JavacDynamicGeneratorClassRetriever(URL genJarURL)
      {
          super(genJarURL, ProxyGeneratorImpl.class);
      }
  }
  
  
  
  1.4       +4 -6      jakarta-avalon-excalibur/altrmi/src/test/org/apache/excalibur/altrmi/test/piped/PipedTest.java
  
  Index: PipedTest.java
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-excalibur/altrmi/src/test/org/apache/excalibur/altrmi/test/piped/PipedTest.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- PipedTest.java	14 Jul 2002 20:59:47 -0000	1.3
  +++ PipedTest.java	14 Jul 2002 23:12:44 -0000	1.4
  @@ -11,9 +11,7 @@
   import java.net.MalformedURLException;
   
   import org.apache.excalibur.altrmi.server.*;
  -import org.apache.excalibur.altrmi.server.impl.classretrievers.DynamicGeneratorClassRetriever;
  -import org.apache.excalibur.altrmi.server.impl.classretrievers.JarFileClassRetriever;
  -import org.apache.excalibur.altrmi.server.impl.classretrievers.NoClassRetriever;
  +import org.apache.excalibur.altrmi.server.impl.classretrievers.*;
   import org.apache.excalibur.altrmi.server.impl.piped.AbstractPipedServer;
   import org.apache.excalibur.altrmi.server.impl.piped.PipedObjectStreamServer;
   import org.apache.excalibur.altrmi.test.TestInterface;
  @@ -43,8 +41,8 @@
           }
           else if( serverOrClientFactory.equals( "D" ) )
           {
  -            DynamicGeneratorClassRetriever dr =
  -                new DynamicGeneratorClassRetriever( new File( "build" + File.separator
  +            AbstractDynamicGeneratorClassRetriever dr =
  +                new BcelDynamicGeneratorClassRetriever( new File( "build" + File.separator
                                                                 + "classes" ).toURL() );
               File source = new File( "testSource" );
   
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>