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>