This adds generics to the RMI classes, fixing
some JAPI errors and allowing Sun's rmic to compile
against Classpath.

Changelog:

2007-05-14  Andrew John Hughes  <[EMAIL PROTECTED]>

        * java/rmi/MarshelledObject.java,
        * java/rmi/activation/Activatable.java,
        * java/rmi/activation/ActivationDesc.java,
        * java/rmi/activation/ActivationGroup.java,
        * java/rmi/activation/ActivationGroupDesc.java,
        * java/rmi/activation/ActivationInstantiator.java,
        * java/rmi/activation/ActivationMonitor.java,
        * java/rmi/activation/Activator.java:
        Genericized.

-- 
Andrew :-)

Escape the Java Trap with GNU Classpath!
http://www.gnu.org/philosophy/java-trap.html
public class gcj extends Freedom implements Java { ... }
Index: java/rmi/MarshalledObject.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/rmi/MarshalledObject.java,v
retrieving revision 1.11
diff -u -3 -p -u -r1.11 MarshalledObject.java
--- java/rmi/MarshalledObject.java	12 Feb 2006 12:27:01 -0000	1.11
+++ java/rmi/MarshalledObject.java	14 May 2007 02:15:59 -0000
@@ -58,7 +58,7 @@ import java.io.Serializable;
  *
  * @author unknown
  */
-public final class MarshalledObject
+public final class MarshalledObject<T>
   implements Serializable
 {
   // The following fields are from Java API Documentation "Serialized form"
@@ -74,7 +74,7 @@ public final class MarshalledObject
    * @param obj the object to marshal
    * @throws IOException if an I/O error during serialization occurs.
    */
-  public MarshalledObject(Object obj) throws IOException
+  public MarshalledObject(T obj) throws IOException
   {
     ByteArrayOutputStream objStream = new ByteArrayOutputStream();
     RMIMarshalledObjectOutputStream stream = 
@@ -136,14 +136,14 @@ public final class MarshalledObject
    * @throws ClassNotFoundException if the class of the deserialized object 
    * cannot be found.
    */
-  public Object get() throws IOException, ClassNotFoundException
+  public T get() throws IOException, ClassNotFoundException
   {
     if (objBytes == null)
       return null;
     
     RMIMarshalledObjectInputStream stream = 
       new RMIMarshalledObjectInputStream(objBytes, locBytes);
-    return stream.readObject();
+    return (T) stream.readObject();
   }
 
   public int hashCode()
Index: java/rmi/activation/Activatable.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/rmi/activation/Activatable.java,v
retrieving revision 1.10
diff -u -3 -p -u -r1.10 Activatable.java
--- java/rmi/activation/Activatable.java	24 Mar 2006 17:40:24 -0000	1.10
+++ java/rmi/activation/Activatable.java	14 May 2007 02:15:59 -0000
@@ -103,7 +103,7 @@ public abstract class Activatable
    * @throws ActivationException if the activation failed
    * @throws RemoteException if the remote call failed.
    */
-  protected Activatable(String codebase, MarshalledObject data,
+  protected Activatable(String codebase, MarshalledObject<?> data,
                         boolean restart, int port) throws ActivationException,
       RemoteException
   {
@@ -133,7 +133,7 @@ public abstract class Activatable
    * @throws ActivationException if the activation failed
    * @throws RemoteException if the remote call failed.
    */
-  protected Activatable(String codebase, MarshalledObject data,
+  protected Activatable(String codebase, MarshalledObject<?> data,
                         boolean restart, int port, RMIClientSocketFactory csf,
                         RMIServerSocketFactory ssf) throws ActivationException,
       RemoteException
@@ -314,7 +314,7 @@ public abstract class Activatable
    * @throws RemoteException if the registration or export fails
    */
   public static ActivationID exportObject(Remote obj, String location,
-                                          MarshalledObject data,
+                                          MarshalledObject<?> data,
                                           boolean restart, int port)
       throws ActivationException, RemoteException
   {
Index: java/rmi/activation/ActivationDesc.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/rmi/activation/ActivationDesc.java,v
retrieving revision 1.8
diff -u -3 -p -u -r1.8 ActivationDesc.java
--- java/rmi/activation/ActivationDesc.java	17 Mar 2006 12:19:25 -0000	1.8
+++ java/rmi/activation/ActivationDesc.java	14 May 2007 02:15:59 -0000
@@ -80,7 +80,7 @@ public final class ActivationDesc
   /**
    * The object specific intitalization data.
    */
-  private MarshalledObject data;
+  private MarshalledObject<?> data;
 
   /**
    * The start mode.
@@ -95,7 +95,7 @@ public final class ActivationDesc
    * @param location the code base URL
    * @param data the object initialization data, contained in a marshalled form
    */
-  public ActivationDesc(String className, String location, MarshalledObject data)
+  public ActivationDesc(String className, String location, MarshalledObject<?> data)
       throws ActivationException
   {
     this(ActivationGroup.currentGroupID(), className, location, data, false);
@@ -115,7 +115,7 @@ public final class ActivationDesc
    *          object is normally activated on demand).
    */
   public ActivationDesc(String className, String location,
-                        MarshalledObject data, boolean restart)
+                        MarshalledObject<?> data, boolean restart)
       throws ActivationException
   {
     this(ActivationGroup.currentGroupID(), className, location, data, restart);
@@ -131,7 +131,7 @@ public final class ActivationDesc
    * @param data the object initialization data, contained in a marshalled form
    */
   public ActivationDesc(ActivationGroupID groupID, String className,
-                        String location, MarshalledObject data)
+                        String location, MarshalledObject<?> data)
   {
     this(groupID, className, location, data, false);
   }
@@ -150,7 +150,7 @@ public final class ActivationDesc
    *          object is normally activated on demand).
    */
   public ActivationDesc(ActivationGroupID groupID, String className,
-                        String location, MarshalledObject data, boolean restart)
+                        String location, MarshalledObject<?> data, boolean restart)
   {
     this.groupid = groupID;
     this.classname = className;
@@ -184,7 +184,7 @@ public final class ActivationDesc
     return location;
   }
 
-  public MarshalledObject getData()
+  public MarshalledObject<?> getData()
   {
     return data;
   }
Index: java/rmi/activation/ActivationGroup.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/rmi/activation/ActivationGroup.java,v
retrieving revision 1.12
diff -u -3 -p -u -r1.12 ActivationGroup.java
--- java/rmi/activation/ActivationGroup.java	26 Mar 2006 10:14:01 -0000	1.12
+++ java/rmi/activation/ActivationGroup.java	14 May 2007 02:15:59 -0000
@@ -314,7 +314,8 @@ public abstract class ActivationGroup
    * @throws UnknownObjectException if such object is not registered
    * @throws RemoteException on remote call (to monitor) error
    */
-  protected void activeObject(ActivationID id, MarshalledObject mObject)
+  protected void activeObject(ActivationID id,
+			      MarshalledObject<? extends Remote> mObject)
       throws ActivationException, UnknownObjectException, RemoteException
   {
     if (monitor!=null)
Index: java/rmi/activation/ActivationGroupDesc.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/rmi/activation/ActivationGroupDesc.java,v
retrieving revision 1.10
diff -u -3 -p -u -r1.10 ActivationGroupDesc.java
--- java/rmi/activation/ActivationGroupDesc.java	17 Mar 2006 12:19:25 -0000	1.10
+++ java/rmi/activation/ActivationGroupDesc.java	14 May 2007 02:15:59 -0000
@@ -199,7 +199,7 @@ public final class ActivationGroupDesc
   /**
    * The group initialization data.
    */
-  final MarshalledObject data;
+  final MarshalledObject<?> data;
   
   /**
    * The path to the group jre and the parameters of this jre, may be
@@ -252,7 +252,7 @@ public final class ActivationGroupDesc
    *          options.
    */
   public ActivationGroupDesc(String aClassName, String aLocation,
-                             MarshalledObject aData, Properties aProperties,
+                             MarshalledObject<?> aData, Properties aProperties,
                              ActivationGroupDesc.CommandEnvironment environment)
   {
     className = aClassName;
@@ -288,7 +288,7 @@ public final class ActivationGroupDesc
    * 
    * @return the group intialization data in the marshalled form.
    */
-  public MarshalledObject getData()
+  public MarshalledObject<?> getData()
   {
     return data;
   }
Index: java/rmi/activation/ActivationInstantiator.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/rmi/activation/ActivationInstantiator.java,v
retrieving revision 1.8
diff -u -3 -p -u -r1.8 ActivationInstantiator.java
--- java/rmi/activation/ActivationInstantiator.java	12 Mar 2006 16:34:26 -0000	1.8
+++ java/rmi/activation/ActivationInstantiator.java	14 May 2007 02:15:59 -0000
@@ -68,6 +68,6 @@ public interface ActivationInstantiator
    * @throws ActivationException if the activation fails
    * @throws RemoteException if the remote call fails
    */
-  MarshalledObject newInstance (ActivationID id, ActivationDesc desc)
+  MarshalledObject<? extends Remote> newInstance (ActivationID id, ActivationDesc desc)
     throws ActivationException, RemoteException;
 }
Index: java/rmi/activation/ActivationMonitor.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/rmi/activation/ActivationMonitor.java,v
retrieving revision 1.7
diff -u -3 -p -u -r1.7 ActivationMonitor.java
--- java/rmi/activation/ActivationMonitor.java	13 Mar 2006 16:33:14 -0000	1.7
+++ java/rmi/activation/ActivationMonitor.java	14 May 2007 02:15:59 -0000
@@ -59,7 +59,7 @@ public interface ActivationMonitor exten
    * @throws UnknownObjectException is such object is not known in this group
    * @throws RemoteException if remote call fails
    */
-  void activeObject (ActivationID id, MarshalledObject obj)
+  void activeObject (ActivationID id, MarshalledObject<? extends Remote> obj)
     throws UnknownObjectException, RemoteException;
 
   /**
Index: java/rmi/activation/Activator.java
===================================================================
RCS file: /cvsroot/classpath/classpath/java/rmi/activation/Activator.java,v
retrieving revision 1.9
diff -u -3 -p -u -r1.9 Activator.java
--- java/rmi/activation/Activator.java	12 Mar 2006 16:34:26 -0000	1.9
+++ java/rmi/activation/Activator.java	14 May 2007 02:15:59 -0000
@@ -67,6 +67,6 @@ public interface Activator
    * @throws ActivationException if the activation has failed due other reason
    * @throws RemoteException if the remote call has failed.
    */
-  MarshalledObject activate (ActivationID id, boolean force)
+  MarshalledObject<? extends Remote> activate (ActivationID id, boolean force)
     throws ActivationException, UnknownObjectException, RemoteException;
 }

Attachment: signature.asc
Description: Digital signature

Reply via email to