hammant     02/02/02 04:18:02

  Modified:    altrmi/src/java/org/apache/commons/altrmi/client/impl
                        AbstractAltrmiFactory.java BaseServedObject.java
                        ClientClassAltrmiFactory.java
                        ServerClassAltrmiFactory.java
  Log:
  alternate facades as arrays/retval now works in a more classloader aware manner.
  
  Revision  Changes    Path
  1.13      +3 -1      
jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/AbstractAltrmiFactory.java
  
  Index: AbstractAltrmiFactory.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/AbstractAltrmiFactory.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- AbstractAltrmiFactory.java        1 Feb 2002 00:16:38 -0000       1.12
  +++ AbstractAltrmiFactory.java        2 Feb 2002 12:18:02 -0000       1.13
  @@ -31,7 +31,7 @@
    *
    *
    * @author Paul Hammant <a 
href="mailto:[EMAIL PROTECTED]";>[EMAIL PROTECTED]</a>
  - * @version $Revision: 1.12 $
  + * @version $Revision: 1.13 $
    */
   public abstract class AbstractAltrmiFactory implements AltrmiFactory {
   
  @@ -95,6 +95,8 @@
               //TODO
           }
       }
  +
  +    protected abstract Class getFacadeClass(String publishedServiceName, String 
objectName, boolean beanOnly) throws AltrmiConnectionException, ClassNotFoundException;
   
       protected abstract Object getInstance(
           String publishedServiceName, String objectName, BaseServedObject 
baseServedObject,
  
  
  
  1.8       +3 -2      
jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/BaseServedObject.java
  
  Index: BaseServedObject.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/BaseServedObject.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- BaseServedObject.java     1 Feb 2002 00:16:38 -0000       1.7
  +++ BaseServedObject.java     2 Feb 2002 12:18:02 -0000       1.8
  @@ -30,7 +30,7 @@
    *
    *
    * @author Paul Hammant <a 
href="mailto:[EMAIL PROTECTED]";>[EMAIL PROTECTED]</a>
  - * @version $Revision: 1.7 $
  + * @version $Revision: 1.8 $
    */
   public final class BaseServedObject {
   
  @@ -130,7 +130,8 @@
               }
           } else if (reply.getReplyCode() == AltrmiReply.METHODFACADEARRAYREPLY) {
               MethodFacadeArrayReply mfar = (MethodFacadeArrayReply) reply;
  -            Class clazz = Class.forName(objNameWithoutArray.replace('$','.'));
  +            Class clazz = mAltrmiFactory.getFacadeClass(mPublishedServiceName, 
objNameWithoutArray,
  +                                                                  
mAltrmiFactory.isBeanOnly());
               Long[] refs = mfar.getReferenceIDs();
               Object[] implBeans = (Object[]) Array.newInstance(clazz, refs.length);
   
  
  
  
  1.9       +13 -7     
jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/ClientClassAltrmiFactory.java
  
  Index: ClientClassAltrmiFactory.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/ClientClassAltrmiFactory.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- ClientClassAltrmiFactory.java     30 Jan 2002 23:42:44 -0000      1.8
  +++ ClientClassAltrmiFactory.java     2 Feb 2002 12:18:02 -0000       1.9
  @@ -29,7 +29,7 @@
    *
    *
    * @author Paul Hammant <a 
href="mailto:[EMAIL PROTECTED]";>[EMAIL PROTECTED]</a>
  - * @version $Revision: 1.8 $
  + * @version $Revision: 1.9 $
    */
   public class ClientClassAltrmiFactory extends AbstractAltrmiFactory {
   
  @@ -92,6 +92,17 @@
           return retVal;
       }
   
  +    protected Class getFacadeClass(String publishedServiceName, String objectName, 
boolean beanOnly) throws AltrmiConnectionException, ClassNotFoundException {
  +        String code = "2";
  +
  +        if (beanOnly) {
  +            code = "";
  +        }
  +
  +        return Class.forName("AltrmiGenerated" + code + publishedServiceName + "_"
  +                                        + objectName);
  +    }
  +
       /**
        * Method getInstance
        *
  @@ -109,15 +120,10 @@
               boolean beanOnly)
                   throws AltrmiConnectionException {
   
  -        String code = "2";
   
  -        if (beanOnly) {
  -            code = "";
  -        }
   
           try {
  -            Class clazz = Class.forName("AltrmiGenerated" + code + 
publishedServiceName + "_"
  -                                        + objectName);
  +            Class clazz = getFacadeClass(publishedServiceName, objectName, 
beanOnly);
               Constructor[] constructors = clazz.getConstructors();
               Object retVal = constructors[0].newInstance(new Object[]{ 
baseServedObject });
   
  
  
  
  1.11      +16 -6     
jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/ServerClassAltrmiFactory.java
  
  Index: ServerClassAltrmiFactory.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/client/impl/ServerClassAltrmiFactory.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- ServerClassAltrmiFactory.java     1 Feb 2002 00:16:38 -0000       1.10
  +++ ServerClassAltrmiFactory.java     2 Feb 2002 12:18:02 -0000       1.11
  @@ -36,7 +36,7 @@
    *
    *
    * @author Paul Hammant <a 
href="mailto:[EMAIL PROTECTED]";>[EMAIL PROTECTED]</a>
  - * @version $Revision: 1.10 $
  + * @version $Revision: 1.11 $
    */
   public class ServerClassAltrmiFactory extends AbstractAltrmiFactory {
   
  @@ -110,9 +110,7 @@
           return retVal;
       }
   
  -    protected Object getInstance(
  -            String publishedServiceName, String objectName, BaseServedObject 
baseServedObject, boolean beanOnly)
  -                throws AltrmiConnectionException {
  +    protected Class getFacadeClass(String publishedServiceName, String objectName, 
boolean beanOnly) throws AltrmiConnectionException, ClassNotFoundException{
   
           String code = "2";
   
  @@ -120,7 +118,6 @@
               code = "";
           }
   
  -        try {
               TransportedClassLoader tcl = null;
               String beanClassName = "AltrmiGenerated" + publishedServiceName + "_" + 
objectName;
               String iiClassName = "AltrmiGenerated2" + publishedServiceName + "_" + 
objectName;
  @@ -171,8 +168,21 @@
   
                   mPublishedServiceClassLoaders.put(beanClassName, tcl);
               }
  +            return tcl.loadClass(className);
  +    }
  +
  +    protected Object getInstance(
  +            String publishedServiceName, String objectName, BaseServedObject 
baseServedObject, boolean beanOnly)
  +                throws AltrmiConnectionException {
  +
  +        String code = "2";
  +
  +        if (beanOnly) {
  +            code = "";
  +        }
   
  -            Class clazz = tcl.loadClass(className);
  +        try {
  +            Class clazz = getFacadeClass(publishedServiceName, objectName, 
beanOnly);
               Constructor[] constructors = clazz.getConstructors();
               Object retVal = constructors[0].newInstance(new Object[]{ 
baseServedObject });
   
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to