You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by ha...@apache.org on 2002/03/30 09:55:46 UTC

cvs commit: jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/server/impl/adapters InvocationHandlerAdapter.java PublicationAdapter.java

hammant     02/03/30 00:55:46

  Modified:    altrmi/src/java/org/apache/commons/altrmi/client/impl
                        BaseServedObject.java
               altrmi/src/java/org/apache/commons/altrmi/common
                        GarbageCollectionRequest.java
               altrmi/src/java/org/apache/commons/altrmi/server
                        MethodInvocationHandler.java
               altrmi/src/java/org/apache/commons/altrmi/server/impl
                        DefaultMethodInvocationHandler.java
               altrmi/src/java/org/apache/commons/altrmi/server/impl/adapters
                        InvocationHandlerAdapter.java
                        PublicationAdapter.java
  Log:
  DGC processed by MethodInvocationHandler now.
  
  Revision  Changes    Path
  1.17      +2 -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.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- BaseServedObject.java	30 Mar 2002 08:32:10 -0000	1.16
  +++ BaseServedObject.java	30 Mar 2002 08:55:45 -0000	1.17
  @@ -34,7 +34,7 @@
    *
    * @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>
  - * @version $Revision: 1.16 $
  + * @version $Revision: 1.17 $
    */
   public final class BaseServedObject {
   
  @@ -350,7 +350,7 @@
   
       protected void finalize() throws Throwable {
           synchronized(mAltrmiFactory) {
  -            GarbageCollectionReply gcr = (GarbageCollectionReply) mInvocationHandler.handleInvocation(new GarbageCollectionRequest(mReferenceID));
  +            GarbageCollectionReply gcr = (GarbageCollectionReply) mInvocationHandler.handleInvocation(new GarbageCollectionRequest(mPublishedServiceName, mObjectName, mSession, mReferenceID));
               //System.out.println("BO finalizing");
           }
           super.finalize();
  
  
  
  1.2       +26 -3     jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/common/GarbageCollectionRequest.java
  
  Index: GarbageCollectionRequest.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/common/GarbageCollectionRequest.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- GarbageCollectionRequest.java	30 Mar 2002 08:03:49 -0000	1.1
  +++ GarbageCollectionRequest.java	30 Mar 2002 08:55:45 -0000	1.2
  @@ -20,21 +20,30 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.1 $
  + * @version $Revision: 1.2 $
    */
  -public final class GarbageCollectionRequest extends AltrmiRequest implements Sessionable {
  +public final class GarbageCollectionRequest extends PublishedNameRequest implements Sessionable {
   
       private Long mSession;
  +    private Long mReferenceID;
   
       /**
        * Constructor GarbageCollectionRequest
        *
        *
  +     * @param publishedServiceName
  +     * @param objectName
        * @param session
  +     * @param referenceID
        *
        */
  -    public GarbageCollectionRequest(Long session) {
  +    public GarbageCollectionRequest(String publishedServiceName, String objectName, Long session,
  +                                    Long referenceID) {
  +
  +        super(publishedServiceName, objectName);
  +
           mSession = session;
  +        mReferenceID = referenceID;
       }
   
       /**
  @@ -67,6 +76,17 @@
       }
   
       /**
  +     * Method getReferenceID
  +     *
  +     *
  +     * @return
  +     *
  +     */
  +    public Long getReferenceID() {
  +        return mReferenceID;
  +    }
  +
  +    /**
        * The object implements the writeExternal method to save its contents
        * by calling the methods of DataOutput for its primitive values or
        * calling the writeObject method of ObjectOutput for objects, strings,
  @@ -82,8 +102,10 @@
        * @exception IOException Includes any I/O exceptions that may occur
        */
       public void writeExternal(ObjectOutput out) throws IOException {
  +
           super.writeExternal(out);
           out.writeObject(mSession);
  +        out.writeObject(mReferenceID);
       }
   
       /**
  @@ -103,5 +125,6 @@
           super.readExternal(in);
   
           mSession = (Long) in.readObject();
  +        mReferenceID = (Long) in.readObject();
       }
   }
  
  
  
  1.2       +16 -5     jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/server/MethodInvocationHandler.java
  
  Index: MethodInvocationHandler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/server/MethodInvocationHandler.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- MethodInvocationHandler.java	29 Jan 2002 10:05:00 -0000	1.1
  +++ MethodInvocationHandler.java	30 Mar 2002 08:55:45 -0000	1.2
  @@ -1,3 +1,4 @@
  +
   /*
    * Copyright (C) The Apache Software Foundation. All rights reserved.
    *
  @@ -7,14 +8,17 @@
    */
   package org.apache.commons.altrmi.server;
   
  +
  +
   import org.apache.commons.altrmi.common.AltrmiInvocationHandler;
   
  +
   /**
    * Class MethodInvocationHandler
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.1 $
  + * @version $Revision: 1.2 $
    */
   public interface MethodInvocationHandler extends AltrmiInvocationHandler {
   
  @@ -26,7 +30,7 @@
        * @param beanImpl
        *
        */
  -   void addImplementationBean(Long referenceID, Object beanImpl);
  +    void addImplementationBean(Long referenceID, Object beanImpl);
   
       /**
        * Method replaceImplementationBean
  @@ -36,7 +40,7 @@
        * @param withImplBean
        *
        */
  -   void replaceImplementationBean(Object implBean, Object withImplBean);
  +    void replaceImplementationBean(Object implBean, Object withImplBean);
   
       /**
        * Method getOrMakeReferenceIDForBean
  @@ -45,8 +49,15 @@
        * @param implBean
        *
        */
  -   Long getOrMakeReferenceIDForBean(Object implBean);
  -
  +    Long getOrMakeReferenceIDForBean(Object implBean);
   
  +    /**
  +     * Method garbageCollectionRequest
  +     *
  +     *
  +     * @param sessionID
  +     * @param refereinceID
  +     *
  +     */
  +    void garbageCollectionRequest(Long sessionID, Long refereinceID);
   }
  -
  
  
  
  1.6       +5 -1      jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/server/impl/DefaultMethodInvocationHandler.java
  
  Index: DefaultMethodInvocationHandler.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/server/impl/DefaultMethodInvocationHandler.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DefaultMethodInvocationHandler.java	22 Mar 2002 22:51:37 -0000	1.5
  +++ DefaultMethodInvocationHandler.java	30 Mar 2002 08:55:45 -0000	1.6
  @@ -39,7 +39,7 @@
    *
    * @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>
  - * @version $Revision: 1.5 $
  + * @version $Revision: 1.6 $
    */
   public class DefaultMethodInvocationHandler implements MethodInvocationHandler {
   
  @@ -198,6 +198,10 @@
                   new AltrmiInvocationException(
                       "Some ServerSide exception problem :" + t.getMessage()));
           }
  +    }
  +
  +    public void garbageCollectionRequest(Long sessionID, Long refereinceID) {
  +        //TODO
       }
   
       private void correctArgs(MethodRequest mr, Object[] args) {
  
  
  
  1.6       +25 -10    jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/server/impl/adapters/InvocationHandlerAdapter.java
  
  Index: InvocationHandlerAdapter.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/server/impl/adapters/InvocationHandlerAdapter.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- InvocationHandlerAdapter.java	30 Mar 2002 08:32:10 -0000	1.5
  +++ InvocationHandlerAdapter.java	30 Mar 2002 08:55:45 -0000	1.6
  @@ -33,6 +33,7 @@
   import org.apache.commons.altrmi.common.ListReply;
   import org.apache.commons.altrmi.common.MethodFacadeArrayReply;
   import org.apache.commons.altrmi.common.GarbageCollectionReply;
  +import org.apache.commons.altrmi.common.GarbageCollectionRequest;
   import org.apache.commons.altrmi.server.AltrmiServer;
   import org.apache.commons.altrmi.server.MethodInvocationHandler;
   import org.apache.commons.altrmi.server.ClassRetrievalException;
  @@ -43,7 +44,6 @@
   import org.apache.commons.altrmi.server.impl.AbstractServer;
   
   import java.util.Vector;
  -import java.util.HashMap;
   import java.util.Iterator;
   
   
  @@ -52,7 +52,7 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.5 $
  + * @version $Revision: 1.6 $
    */
   public class InvocationHandlerAdapter extends PublicationAdapter
           implements AltrmiInvocationHandler {
  @@ -128,9 +128,9 @@
                       new AltrmiInvocationException("TODO - you dirty rat/hacker"));
               }
   
  -            MethodInvocationHandler mih =
  +            MethodInvocationHandler methodInvocationHandler =
                   (MethodInvocationHandler) mPublishedObjects.get(publishedThing);
  -            AltrmiReply ar = mih.handleInvocation(mFacReq);
  +            AltrmiReply ar = methodInvocationHandler.handleInvocation(mFacReq);
   
               if (ar.getReplyCode() == AltrmiReply.EXCEPTIONREPLY) {
                   return ar;
  @@ -148,11 +148,11 @@
   
                   Object beanImpl = replyObject;
   
  -                MethodInvocationHandler asih2 =
  +                MethodInvocationHandler methodInvocationHandler2 =
                       (MethodInvocationHandler) mPublishedObjects.get(
                        mFacReq.getPublishedServiceName() + "_" + mFacReq.getBaseReturnClassNameEncoded());
   
  -                if (asih2 == null) {
  +                if (methodInvocationHandler2 == null) {
                       return new NotPublishedReply();
                   }
   
  @@ -162,7 +162,7 @@
                   }
   
                   //TODO a decent ref number for main?
  -                Long newRef = asih2.getOrMakeReferenceIDForBean(beanImpl);
  +                Long newRef = methodInvocationHandler2.getOrMakeReferenceIDForBean(beanImpl);
   
                   //long newRef2 = asih2.getOrMakeReferenceIDForBean(beanImpl);
                   return new MethodFacadeReply(newRef);
  @@ -171,11 +171,11 @@
                   Long[] refs = new Long[beanImpls.length];
                   for (int i = 0; i < beanImpls.length; i++) {
                       Object impl = beanImpls[i];
  -                    MethodInvocationHandler asih2 =
  +                    MethodInvocationHandler methodInvocationHandler2 =
                           (MethodInvocationHandler) mPublishedObjects.get(
                            mFacReq.getPublishedServiceName() + "_" + mFacReq.getBaseReturnClassNameEncoded());
   
  -                    if (asih2 == null) {
  +                    if (methodInvocationHandler2 == null) {
                           return new NotPublishedReply();
                       }
   
  @@ -188,13 +188,28 @@
                       if (beanImpls[i] == null) {
                           refs[i] = null;
                       } else {
  -                        refs[i] = asih2.getOrMakeReferenceIDForBean(beanImpls[i]);
  +                        refs[i] = methodInvocationHandler2.getOrMakeReferenceIDForBean(beanImpls[i]);
                       }
   
                   }
                   return new MethodFacadeArrayReply(refs);
               }
           } else if (request.getRequestCode() == AltrmiRequest.GCREQUEST) {
  +            GarbageCollectionRequest gcr = (GarbageCollectionRequest) request;
  +            String publishedThing = gcr.getPublishedServiceName() + "_" + gcr.getObjectName();
  +
  +            if (!mPublishedObjects.containsKey(publishedThing)) {
  +                return new NotPublishedReply();
  +            }
  +
  +            if (!sessionExists(gcr.getSession())) {
  +                return new ExceptionReply(
  +                    new AltrmiInvocationException("TODO - you dirty rat/hacker"));
  +            }
  +
  +            MethodInvocationHandler methodInvocationHandler =
  +                (MethodInvocationHandler) mPublishedObjects.get(publishedThing);
  +            methodInvocationHandler.garbageCollectionRequest(gcr.getSession(), gcr.getReferenceID());
               return new GarbageCollectionReply();
           } else if (request.getRequestCode() == AltrmiRequest.LOOKUPREQUEST) {
               LookupRequest lr = (LookupRequest) request;
  
  
  
  1.5       +3 -3      jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/server/impl/adapters/PublicationAdapter.java
  
  Index: PublicationAdapter.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/altrmi/src/java/org/apache/commons/altrmi/server/impl/adapters/PublicationAdapter.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- PublicationAdapter.java	26 Mar 2002 11:24:06 -0000	1.4
  +++ PublicationAdapter.java	30 Mar 2002 08:55:45 -0000	1.5
  @@ -28,7 +28,7 @@
    *
    *
    * @author Paul Hammant <a href="mailto:Paul_Hammant@yahoo.com">Paul_Hammant@yahoo.com</a>
  - * @version $Revision: 1.4 $
  + * @version $Revision: 1.5 $
    */
   public class PublicationAdapter extends AbstractMethodHandler implements AltrmiPublisher {
   
  @@ -105,7 +105,7 @@
               Method methods[] = additionalFacades[x].getMethods();
               String encodedClassName = encodeClassName(additionalFacades[x].getName());
               HashMap methodMap = new HashMap();
  -            MethodInvocationHandler asih = new DefaultMethodInvocationHandler(this,
  +            MethodInvocationHandler methodInvocationHandler = new DefaultMethodInvocationHandler(this,
                                                  asName + "_" + encodedClassName, methodMap);
   
               for (int y = 0; y < methods.length; y++) {
  @@ -117,7 +117,7 @@
                   }
               }
   
  -            mPublishedObjects.put(asName + "_" + encodedClassName, asih);
  +            mPublishedObjects.put(asName + "_" + encodedClassName, methodInvocationHandler);
           }
       }
   
  
  
  

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