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;
}
signature.asc
Description: Digital signature
