MessageFormat.java: Removed some whitespace.
authorTom Tromey <tromey@redhat.com>
Sat, 29 Mar 2003 21:23:25 +0000 (21:23 +0000)
committerTom Tromey <tromey@gcc.gnu.org>
Sat, 29 Mar 2003 21:23:25 +0000 (21:23 +0000)
* java/text/MessageFormat.java: Removed some whitespace.

* Makefile.in: Rebuilt.
* Makefile.am (awt_java_source_files): Added new files.
* gnu/javax/rmi/PortableServer.java,
gnu/javax/rmi/CORBA/DelegateFactory.java,
gnu/javax/rmi/CORBA/GetDelegateInstanceException.java,
gnu/javax/rmi/CORBA/PortableRemoteObjectDelegateImpl.java,
gnu/javax/rmi/CORBA/StubDelegateImpl.java,
gnu/javax/rmi/CORBA/UtilDelegateImpl.java,
gnu/javax/rmi/CORBA/ValueHandlerImpl.java,
javax/rmi/BAD_OPERATION.java, javax/rmi/ORB.java,
javax/rmi/PortableRemoteObject.java,
javax/rmi/CORBA/ClassDesc.java, javax/rmi/CORBA/ObjectImpl.java,
javax/rmi/CORBA/PortableRemoteObjectDelegate.java,
javax/rmi/CORBA/Stub.java, javax/rmi/CORBA/StubDelegate.java,
javax/rmi/CORBA/SystemException.java, javax/rmi/CORBA/Tie.java,
javax/rmi/CORBA/Util.java, javax/rmi/CORBA/UtilDelegate.java,
javax/rmi/CORBA/ValueHandler.java: New files from Classpath.

From-SVN: r65024

24 files changed:
libjava/ChangeLog
libjava/Makefile.am
libjava/Makefile.in
libjava/gnu/javax/rmi/CORBA/DelegateFactory.java [new file with mode: 0644]
libjava/gnu/javax/rmi/CORBA/GetDelegateInstanceException.java [new file with mode: 0644]
libjava/gnu/javax/rmi/CORBA/PortableRemoteObjectDelegateImpl.java [new file with mode: 0644]
libjava/gnu/javax/rmi/CORBA/StubDelegateImpl.java [new file with mode: 0644]
libjava/gnu/javax/rmi/CORBA/UtilDelegateImpl.java [new file with mode: 0644]
libjava/gnu/javax/rmi/CORBA/ValueHandlerImpl.java [new file with mode: 0644]
libjava/gnu/javax/rmi/PortableServer.java [new file with mode: 0644]
libjava/java/text/MessageFormat.java
libjava/javax/rmi/BAD_OPERATION.java [new file with mode: 0644]
libjava/javax/rmi/CORBA/ClassDesc.java [new file with mode: 0644]
libjava/javax/rmi/CORBA/ObjectImpl.java [new file with mode: 0644]
libjava/javax/rmi/CORBA/PortableRemoteObjectDelegate.java [new file with mode: 0644]
libjava/javax/rmi/CORBA/Stub.java [new file with mode: 0644]
libjava/javax/rmi/CORBA/StubDelegate.java [new file with mode: 0644]
libjava/javax/rmi/CORBA/SystemException.java [new file with mode: 0644]
libjava/javax/rmi/CORBA/Tie.java [new file with mode: 0644]
libjava/javax/rmi/CORBA/Util.java [new file with mode: 0644]
libjava/javax/rmi/CORBA/UtilDelegate.java [new file with mode: 0644]
libjava/javax/rmi/CORBA/ValueHandler.java [new file with mode: 0644]
libjava/javax/rmi/ORB.java [new file with mode: 0644]
libjava/javax/rmi/PortableRemoteObject.java [new file with mode: 0644]

index a0713a0..b946adc 100644 (file)
@@ -1,5 +1,25 @@
 2003-03-29  Tom Tromey  <tromey@redhat.com>
 
+       * java/text/MessageFormat.java: Removed some whitespace.
+
+       * Makefile.in: Rebuilt.
+       * Makefile.am (awt_java_source_files): Added new files.
+       * gnu/javax/rmi/PortableServer.java,
+       gnu/javax/rmi/CORBA/DelegateFactory.java,
+       gnu/javax/rmi/CORBA/GetDelegateInstanceException.java,
+       gnu/javax/rmi/CORBA/PortableRemoteObjectDelegateImpl.java,
+       gnu/javax/rmi/CORBA/StubDelegateImpl.java,
+       gnu/javax/rmi/CORBA/UtilDelegateImpl.java,
+       gnu/javax/rmi/CORBA/ValueHandlerImpl.java,
+       javax/rmi/BAD_OPERATION.java, javax/rmi/ORB.java,
+       javax/rmi/PortableRemoteObject.java,
+       javax/rmi/CORBA/ClassDesc.java, javax/rmi/CORBA/ObjectImpl.java,
+       javax/rmi/CORBA/PortableRemoteObjectDelegate.java,
+       javax/rmi/CORBA/Stub.java, javax/rmi/CORBA/StubDelegate.java,
+       javax/rmi/CORBA/SystemException.java, javax/rmi/CORBA/Tie.java,
+       javax/rmi/CORBA/Util.java, javax/rmi/CORBA/UtilDelegate.java,
+       javax/rmi/CORBA/ValueHandler.java: New files from Classpath.
+
        * java/lang/natClass.cc (newInstance): Put method name in
        exception.
        (getConstructor): Likewise.
index 563b0b0..38435cb 100644 (file)
@@ -767,6 +767,13 @@ gnu/java/beans/BeanInfoEmbryo.java \
 gnu/java/beans/EmptyBeanInfo.java \
 gnu/java/beans/ExplicitBeanInfo.java \
 gnu/java/beans/IntrospectionIncubator.java \
+gnu/javax/rmi/CORBA/DelegateFactory.java \
+gnu/javax/rmi/CORBA/GetDelegateInstanceException.java \
+gnu/javax/rmi/CORBA/PortableRemoteObjectDelegateImpl.java \
+gnu/javax/rmi/CORBA/StubDelegateImpl.java \
+gnu/javax/rmi/CORBA/UtilDelegateImpl.java \
+gnu/javax/rmi/CORBA/ValueHandlerImpl.java \
+gnu/javax/rmi/PortableServer.java \
 java/applet/Applet.java \
 java/applet/AppletStub.java \
 java/applet/AppletContext.java \
@@ -1123,6 +1130,19 @@ java/beans/VetoableChangeListenerProxy.java \
 java/beans/VetoableChangeSupport.java \
 java/beans/Visibility.java \
 java/beans/AppletInitializer.java \
+javax/rmi/BAD_OPERATION.java \
+javax/rmi/ORB.java \
+javax/rmi/PortableRemoteObject.java \
+javax/rmi/CORBA/ClassDesc.java \
+javax/rmi/CORBA/ObjectImpl.java        \
+javax/rmi/CORBA/PortableRemoteObjectDelegate.java \
+javax/rmi/CORBA/StubDelegate.java \
+javax/rmi/CORBA/Stub.java \
+javax/rmi/CORBA/SystemException.java \
+javax/rmi/CORBA/Tie.java \
+javax/rmi/CORBA/UtilDelegate.java \
+javax/rmi/CORBA/Util.java \
+javax/rmi/CORBA/ValueHandler.java \
 javax/swing/border/AbstractBorder.java \
 javax/swing/border/Border.java \
 javax/swing/border/CompoundBorder.java \
index 5a1a983..15279a5 100644 (file)
@@ -536,6 +536,13 @@ gnu/java/beans/BeanInfoEmbryo.java \
 gnu/java/beans/EmptyBeanInfo.java \
 gnu/java/beans/ExplicitBeanInfo.java \
 gnu/java/beans/IntrospectionIncubator.java \
+gnu/javax/rmi/CORBA/DelegateFactory.java \
+gnu/javax/rmi/CORBA/GetDelegateInstanceException.java \
+gnu/javax/rmi/CORBA/PortableRemoteObjectDelegateImpl.java \
+gnu/javax/rmi/CORBA/StubDelegateImpl.java \
+gnu/javax/rmi/CORBA/UtilDelegateImpl.java \
+gnu/javax/rmi/CORBA/ValueHandlerImpl.java \
+gnu/javax/rmi/PortableServer.java \
 java/applet/Applet.java \
 java/applet/AppletStub.java \
 java/applet/AppletContext.java \
@@ -892,6 +899,19 @@ java/beans/VetoableChangeListenerProxy.java \
 java/beans/VetoableChangeSupport.java \
 java/beans/Visibility.java \
 java/beans/AppletInitializer.java \
+javax/rmi/BAD_OPERATION.java \
+javax/rmi/ORB.java \
+javax/rmi/PortableRemoteObject.java \
+javax/rmi/CORBA/ClassDesc.java \
+javax/rmi/CORBA/ObjectImpl.java        \
+javax/rmi/CORBA/PortableRemoteObjectDelegate.java \
+javax/rmi/CORBA/StubDelegate.java \
+javax/rmi/CORBA/Stub.java \
+javax/rmi/CORBA/SystemException.java \
+javax/rmi/CORBA/Tie.java \
+javax/rmi/CORBA/UtilDelegate.java \
+javax/rmi/CORBA/Util.java \
+javax/rmi/CORBA/ValueHandler.java \
 javax/swing/border/AbstractBorder.java \
 javax/swing/border/Border.java \
 javax/swing/border/CompoundBorder.java \
@@ -2984,7 +3004,14 @@ DEP_FILES =  .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
 .deps/gnu/java/util/prefs/MemoryBasedFactory.P \
 .deps/gnu/java/util/prefs/MemoryBasedPreferences.P \
 .deps/gnu/java/util/prefs/NodeReader.P \
-.deps/gnu/java/util/prefs/NodeWriter.P .deps/interpret.P \
+.deps/gnu/java/util/prefs/NodeWriter.P \
+.deps/gnu/javax/rmi/CORBA/DelegateFactory.P \
+.deps/gnu/javax/rmi/CORBA/GetDelegateInstanceException.P \
+.deps/gnu/javax/rmi/CORBA/PortableRemoteObjectDelegateImpl.P \
+.deps/gnu/javax/rmi/CORBA/StubDelegateImpl.P \
+.deps/gnu/javax/rmi/CORBA/UtilDelegateImpl.P \
+.deps/gnu/javax/rmi/CORBA/ValueHandlerImpl.P \
+.deps/gnu/javax/rmi/PortableServer.P .deps/interpret.P \
 .deps/java/applet/Applet.P .deps/java/applet/AppletContext.P \
 .deps/java/applet/AppletStub.P .deps/java/applet/AudioClip.P \
 .deps/java/awt/AWTError.P .deps/java/awt/AWTEvent.P \
@@ -3824,6 +3851,14 @@ DEP_FILES =  .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
 .deps/javax/print/attribute/Attribute.P \
 .deps/javax/print/attribute/AttributeSet.P \
 .deps/javax/print/attribute/PrintRequestAttributeSet.P \
+.deps/javax/rmi/BAD_OPERATION.P .deps/javax/rmi/CORBA/ClassDesc.P \
+.deps/javax/rmi/CORBA/ObjectImpl.P \
+.deps/javax/rmi/CORBA/PortableRemoteObjectDelegate.P \
+.deps/javax/rmi/CORBA/Stub.P .deps/javax/rmi/CORBA/StubDelegate.P \
+.deps/javax/rmi/CORBA/SystemException.P .deps/javax/rmi/CORBA/Tie.P \
+.deps/javax/rmi/CORBA/Util.P .deps/javax/rmi/CORBA/UtilDelegate.P \
+.deps/javax/rmi/CORBA/ValueHandler.P .deps/javax/rmi/ORB.P \
+.deps/javax/rmi/PortableRemoteObject.P \
 .deps/javax/sql/ConnectionEvent.P \
 .deps/javax/sql/ConnectionEventListener.P \
 .deps/javax/sql/ConnectionPoolDataSource.P .deps/javax/sql/DataSource.P \
diff --git a/libjava/gnu/javax/rmi/CORBA/DelegateFactory.java b/libjava/gnu/javax/rmi/CORBA/DelegateFactory.java
new file mode 100644 (file)
index 0000000..c98549b
--- /dev/null
@@ -0,0 +1,74 @@
+/* DelegateFactory.java -- 
+   Copyright (C) 2002 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package gnu.javax.rmi.CORBA;
+
+import java.util.HashMap;
+import javax.rmi.CORBA.Util;
+
+public class DelegateFactory
+{
+  private static HashMap cache = new HashMap(4);
+    
+  public static synchronized Object getInstance(String type)
+    throws GetDelegateInstanceException
+  {
+    Object r = cache.get(type);
+    if (r != null)
+      return r;
+    String dcname = System.getProperty("javax.rmi.CORBA." + type + "Class");
+    if (dcname == null)
+      {
+       //throw new DelegateException
+       //  ("no javax.rmi.CORBA.XXXClass property sepcified.");
+       dcname = "gnu.javax.rmi.CORBA." + type + "DelegateImpl";
+      }
+    try
+      {
+       Class dclass = Class.forName(dcname);
+       r = dclass.newInstance();
+       cache.put(type, r);
+       return r;
+      }
+    catch(Exception e)
+      {
+       throw new GetDelegateInstanceException
+         ("Exception when trying to get delegate instance:" + dcname, e);
+      }
+  }
+}
diff --git a/libjava/gnu/javax/rmi/CORBA/GetDelegateInstanceException.java b/libjava/gnu/javax/rmi/CORBA/GetDelegateInstanceException.java
new file mode 100644 (file)
index 0000000..27b84f1
--- /dev/null
@@ -0,0 +1,58 @@
+/* GetDelegateInstanceException.java -- 
+   Copyright (C) 2002 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package gnu.javax.rmi.CORBA;
+
+import java.io.PrintStream;
+import java.io.PrintWriter;
+
+public class GetDelegateInstanceException
+  extends Exception
+{
+  private Throwable next;
+  
+  public GetDelegateInstanceException(String msg)
+  {
+    super(msg);
+  }
+  
+  public GetDelegateInstanceException(String msg, Throwable next)
+  {
+    super(msg, next);
+  }
+}
diff --git a/libjava/gnu/javax/rmi/CORBA/PortableRemoteObjectDelegateImpl.java b/libjava/gnu/javax/rmi/CORBA/PortableRemoteObjectDelegateImpl.java
new file mode 100644 (file)
index 0000000..973c4c4
--- /dev/null
@@ -0,0 +1,133 @@
+/* PortableRemoteObjectDelegateImpl.java -- 
+   Copyright (C) 2002 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package gnu.javax.rmi.CORBA;
+
+import java.rmi.*;
+import java.rmi.server.*;
+import gnu.javax.rmi.*;
+import javax.rmi.CORBA.*;
+
+public class PortableRemoteObjectDelegateImpl
+  implements PortableRemoteObjectDelegate
+{
+    
+  public PortableRemoteObjectDelegateImpl()
+  {
+  }
+
+  public void connect(Remote remote, Remote remote1)
+    throws RemoteException
+  {
+    throw new Error("Not implemented for PortableRemoteObjectDelegateImpl");
+  }
+        
+  public void exportObject(Remote obj)
+    throws RemoteException
+  {
+    PortableServer.exportObject(obj);
+  }
+
+  public Object narrow(Object narrowFrom, Class narrowTo)
+    throws ClassCastException
+  {
+    if (narrowTo == null)
+      throw new ClassCastException("Can't narrow to null class");
+    if (narrowFrom == null)
+      return null;
+
+    Class fromClass = narrowFrom.getClass();
+    Object result = null;
+        
+    try
+      {
+       if (narrowTo.isAssignableFrom(fromClass))
+         result = narrowFrom;
+       else
+         {
+           System.out.println("We still haven't implement this case: narrow "
+                              + narrowFrom + " of type " + fromClass + " to "
+                              + narrowTo);
+           Class[] cs = fromClass.getInterfaces();
+           for (int i = 0; i < cs.length; i++)
+             System.out.println(cs[i]);
+           Exception e1 = new Exception();
+           try
+             {
+               throw e1;
+             }
+           catch(Exception ee)
+             {
+               ee.printStackTrace();
+             }
+           System.exit(2);
+           //throw new Error("We still haven't implement this case: narrow "
+           //                + narrowFrom + " of type " + fromClass + " to "
+           //                + narrowTo);
+           /*
+             ObjectImpl objimpl = (ObjectImpl)narrowFrom;
+             if(objimpl._is_a(PortableServer.getTypeName(narrowTo)))
+             result = PortableServer.getStubFromObjectImpl(objimpl, narrowTo);
+           */
+         }
+      }
+    catch(Exception e)
+      {
+       result = null;
+      }
+        
+    if (result == null)
+      throw new ClassCastException("Can't narrow from "
+                                  + fromClass + " to " + narrowTo);
+            
+    return result;
+  }
+        
+  public Remote toStub(Remote obj)
+    throws NoSuchObjectException
+  {
+    return PortableServer.toStub(obj);
+  }
+
+  public void unexportObject(Remote obj)
+    throws NoSuchObjectException
+  {
+    PortableServer.unexportObject(obj);
+  }
+
+}
diff --git a/libjava/gnu/javax/rmi/CORBA/StubDelegateImpl.java b/libjava/gnu/javax/rmi/CORBA/StubDelegateImpl.java
new file mode 100644 (file)
index 0000000..894e502
--- /dev/null
@@ -0,0 +1,113 @@
+/* StubDelegateImpl.java -- 
+   Copyright (C) 2002 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package gnu.javax.rmi.CORBA;
+
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+//import org.omg.CORBA.portable.Delegate;
+//import org.omg.CORBA.portable.InputStream;
+//import org.omg.CORBA.portable.OutputStream;
+//import org.omg.CORBA_2_3.portable.ObjectImpl;
+//import org.omg.CORBA.portable.ObjectImpl;
+//import org.omg.CORBA.BAD_OPERATION;
+//import org.omg.CORBA.ORB;
+import java.rmi.RemoteException;
+import javax.rmi.CORBA.Stub;
+import javax.rmi.CORBA.StubDelegate;
+import javax.rmi.CORBA.Tie;
+import javax.rmi.CORBA.StubDelegate;
+
+public class StubDelegateImpl
+  implements StubDelegate
+{
+
+  private int hashCode;
+    
+  public StubDelegateImpl(){
+    hashCode = 0;   
+  }
+  // XXX javax.rmi.ORB -> org.omg.CORBA.ORB
+  public void connect(Stub self, javax.rmi.ORB orb)
+    throws RemoteException
+  {
+    throw new Error("Not implemented for StubDelegate");
+  }
+
+  public boolean equals(Stub self, Object obj)
+  {
+    if(self == null || obj == null)
+      return self == obj;
+    if(!(obj instanceof Stub))
+      return false;
+    return self.hashCode() == ((Stub)obj).hashCode();
+  }
+
+  public int hashCode(Stub self)
+  {
+    //FIX ME
+    return hashCode;
+  }
+
+  public String toString(Stub self)
+  {
+    try
+      {
+       return self._orb().object_to_string(self);
+      }
+    // XXX javax.rmi.BAD_OPERATION -> org.omg.CORBA.BAD_OPERATION
+    catch(javax.rmi.BAD_OPERATION bad_operation)
+      {
+       return null;
+      }
+  }
+
+  public void readObject(Stub self, ObjectInputStream s)
+    throws IOException, ClassNotFoundException
+  {
+    throw new Error("Not implemented for StubDelegate");
+  }
+
+  public void writeObject(Stub self, ObjectOutputStream s)
+    throws IOException
+  {
+    throw new Error("Not implemented for StubDelegate");
+  }
+    
+}
diff --git a/libjava/gnu/javax/rmi/CORBA/UtilDelegateImpl.java b/libjava/gnu/javax/rmi/CORBA/UtilDelegateImpl.java
new file mode 100644 (file)
index 0000000..70b2e60
--- /dev/null
@@ -0,0 +1,152 @@
+/* UtilDelegateImpl.java -- 
+   Copyright (C) 2002 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package gnu.javax.rmi.CORBA;
+
+import java.rmi.Remote;
+import java.rmi.RemoteException;
+import java.rmi.server.RMIClassLoader;
+import java.net.MalformedURLException;
+import java.io.*;
+//import org.omg.CORBA.ORB;
+//import org.omg.CORBA.SystemException;
+//import org.omg.CORBA.portable.InputStream;
+//import org.omg.CORBA.portable.OutputStream;
+import javax.rmi.CORBA.*;
+
+public class UtilDelegateImpl
+  implements UtilDelegate
+{
+  // XXX javax.rmi.ORB -> org.omg.CORBA.ORB
+  public Object copyObject(Object obj, javax.rmi.ORB orb)
+    throws RemoteException
+  {
+    throw new Error("Not implemented for UtilDelegate");
+  }
+
+  // XXX javax.rmi.ORB -> org.omg.CORBA.ORB
+  public Object[] copyObjects(Object obj[], javax.rmi.ORB orb)
+    throws RemoteException
+  {
+    throw new Error("Not implemented for UtilDelegate");
+  }
+
+  public ValueHandler createValueHandler()
+  {
+    throw new Error("Not implemented for UtilDelegate");
+  }
+    
+  public String getCodebase(Class clz)
+  {
+    throw new Error("Not implemented for UtilDelegate");
+  }
+    
+  public Tie getTie(Remote target)
+  {
+    throw new Error("Not implemented for UtilDelegate");
+  }
+    
+  public boolean isLocal(Stub stub)
+    throws RemoteException
+  {
+    throw new Error("Not implemented for UtilDelegate");
+  }
+
+  public Class loadClass(String className, String remoteCodebase,
+                        ClassLoader loader)
+    throws ClassNotFoundException
+  {
+    try{
+      if (remoteCodebase == null)
+       return RMIClassLoader.loadClass(className);
+      else
+       return RMIClassLoader.loadClass(remoteCodebase, className);
+    }
+    catch (MalformedURLException e1)
+      {
+       throw new ClassNotFoundException(className, e1);
+      }
+    catch(ClassNotFoundException e2)
+      {
+       if(loader != null)
+         return loader.loadClass(className);
+       else
+         return null;
+      }
+  }
+
+  public RemoteException mapSystemException(SystemException ex)
+  {
+    throw new Error("Not implemented for UtilDelegate");
+  }
+
+  public Object readAny(InputStream in)
+  {
+    throw new Error("Not implemented for UtilDelegate");
+  }
+
+  public void registerTarget(Tie tie, Remote target)
+  {
+    throw new Error("Not implemented for UtilDelegate");
+  }
+    
+  public void unexportObject(Remote target)
+  {
+    throw new Error("Not implemented for UtilDelegate");
+  }
+    
+  public RemoteException wrapException(Throwable orig)
+  {
+    throw new Error("Not implemented for UtilDelegate");
+  }
+    
+  public void writeAbstractObject(OutputStream out, Object obj)
+  {
+    throw new Error("Not implemented for UtilDelegate");
+  }
+    
+  public void writeAny(OutputStream out, Object obj)
+  {
+    throw new Error("Not implemented for UtilDelegate");
+  }
+
+  public void writeRemoteObject(OutputStream out, Object obj)
+  {
+    throw new Error("Not implemented for UtilDelegate");
+  }
+}
diff --git a/libjava/gnu/javax/rmi/CORBA/ValueHandlerImpl.java b/libjava/gnu/javax/rmi/CORBA/ValueHandlerImpl.java
new file mode 100644 (file)
index 0000000..6935aa6
--- /dev/null
@@ -0,0 +1,82 @@
+/* ValueHandlerImpl.java -- 
+   Copyright (C) 2002 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package gnu.javax.rmi.CORBA;
+
+import java.io.*;
+//import org.omg.CORBA.portable.InputStream;
+//import org.omg.CORBA.portable.OutputStream;
+//import org.omg.SendingContext.RunTime;
+import javax.rmi.CORBA.ValueHandler;
+
+public class ValueHandlerImpl
+  implements ValueHandler
+{
+
+  public String getRMIRepositoryID(Class clz)
+  {
+    throw new Error("Not implemented for ValueHandler");
+  }
+
+  // XXX - Runtime -> RunTime
+  public Runtime getRunTimeCodeBase()
+  {
+    throw new Error("Not implemented for ValueHandler");
+  }
+    
+  public boolean isCustomMarshaled(Class clz)
+  {
+    throw new Error("Not implemented for ValueHandler");
+  }   
+    
+  // XXX - Runtime -> RunTime
+  public Serializable readValue(InputStream in, int offset, Class clz, String repositoryID, Runtime sender)
+  {
+    throw new Error("Not implemented for ValueHandler");
+  }
+    
+  public Serializable writeReplace(Serializable value)
+  {
+    throw new Error("Not implemented for ValueHandler");
+  }
+    
+  public void writeValue(OutputStream out, Serializable value)
+  {
+    throw new Error("Not implemented for ValueHandler");
+  }
+}
diff --git a/libjava/gnu/javax/rmi/PortableServer.java b/libjava/gnu/javax/rmi/PortableServer.java
new file mode 100644 (file)
index 0000000..b5022ca
--- /dev/null
@@ -0,0 +1,142 @@
+/* PortableServer.java -- 
+   Copyright (C) 2002 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package gnu.javax.rmi;
+
+import java.util.Hashtable;
+import java.rmi.Remote;
+import java.rmi.RemoteException;
+import java.rmi.NoSuchObjectException;
+import java.rmi.server.ExportException;
+import java.rmi.server.UnicastRemoteObject;
+import java.rmi.server.RemoteStub;
+import javax.rmi.CORBA.*;
+//import org.omg.CORBA.portable.ObjectImpl;
+
+/**
+ * The relationship of PortableRemoteObjectImpl with PortableServer
+ * is like that of UnicastRemoteObject with UnicastServer
+ */
+public class PortableServer
+{
+  static private Hashtable tieCache = new Hashtable();
+  static private Object NO_TIE = new Object();
+    
+  public static final synchronized void exportObject(Remote obj)
+    throws RemoteException
+  {
+    if(Util.getTie(obj) != null)
+      return;
+    
+    Tie tie = getTieFromRemote(obj);
+    if (tie != null)
+      Util.registerTarget(tie, obj);
+    else
+      UnicastRemoteObject.exportObject(obj);
+  }
+    
+  public static final void unexportObject(Remote obj)
+  {
+    if (Util.getTie(obj) != null)
+      Util.unexportObject(obj);
+    if (tieCache.get(obj) != null) //??
+      tieCache.remove(obj);
+  }
+  
+  public static final Remote toStub(Remote obj)
+    throws NoSuchObjectException
+  {
+    if (obj instanceof Stub || obj instanceof RemoteStub) 
+      return obj;
+    
+    Tie tie = Util.getTie(obj);
+    Remote stub;
+    if (tie != null)
+      stub = getStubFromTie(tie);
+    else
+      throw new NoSuchObjectException("Can't toStub an unexported object");
+    return stub;
+  }
+    
+  static synchronized Tie getTieFromRemote(Remote obj)
+  {
+    Object tie = tieCache.get(obj);
+    if (tie == null)
+      {
+       tie = getTieFromClass(obj.getClass());
+       if(tie == null)
+         tieCache.put(obj, NO_TIE);
+       else
+         tieCache.put(obj, tie);
+      }
+    else
+      if(tie != NO_TIE)
+       {
+         try
+           {
+             tie = obj.getClass().newInstance();
+           }
+         catch(Exception _)
+           {
+             tie = null;
+           }
+       }
+      else //NO_TIE
+       tie = null;
+                
+    return (Tie)tie;
+  }
+  
+  static synchronized Tie getTieFromClass(Class clz)
+  {
+    //FIX ME
+    return null;
+  }
+    
+  public static Remote getStubFromTie(Tie tie)
+  {
+    //FIX ME
+    return null;
+  }
+  
+  public static Remote getStubFromObjectImpl(ObjectImpl objimpl, Class toClass)
+  {
+    //FIX ME
+    return null;
+  }
+}
index 0e4a678..caeb726 100644 (file)
@@ -144,7 +144,7 @@ final class MessageFormatElement
 public class MessageFormat extends Format
 {
   private static final long serialVersionUID = 6479157306784022952L;
-  
+
   // Helper that returns the text up to the next format opener.  The
   // text is put into BUFFER.  Returns index of character after end of
   // string.  Throws IllegalArgumentException on error.
diff --git a/libjava/javax/rmi/BAD_OPERATION.java b/libjava/javax/rmi/BAD_OPERATION.java
new file mode 100644 (file)
index 0000000..36081a4
--- /dev/null
@@ -0,0 +1,4 @@
+package javax.rmi;
+
+/** XXX - Stub till we have org.omg.CORBA */
+public class BAD_OPERATION extends Exception { }
diff --git a/libjava/javax/rmi/CORBA/ClassDesc.java b/libjava/javax/rmi/CORBA/ClassDesc.java
new file mode 100644 (file)
index 0000000..052046d
--- /dev/null
@@ -0,0 +1,55 @@
+/* ClassDesc.java -- 
+   Copyright (C) 2002 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package javax.rmi.CORBA;
+
+import java.io.Serializable;
+
+public class ClassDesc
+  implements Serializable
+{
+  /*
+   * The following is serialized form required by Java API Doc
+   */
+  private String repid;
+  private String codebase;
+  
+  public ClassDesc()
+  {
+  }
+}
diff --git a/libjava/javax/rmi/CORBA/ObjectImpl.java b/libjava/javax/rmi/CORBA/ObjectImpl.java
new file mode 100644 (file)
index 0000000..d76d673
--- /dev/null
@@ -0,0 +1,9 @@
+package javax.rmi.CORBA;
+
+/** XXX - Stub till we have org.omg.CORBA */
+public class ObjectImpl
+{
+  public ObjectImpl _orb() { return null; }
+  public String object_to_string(ObjectImpl o) 
+    throws javax.rmi.BAD_OPERATION { return null; }
+}
diff --git a/libjava/javax/rmi/CORBA/PortableRemoteObjectDelegate.java b/libjava/javax/rmi/CORBA/PortableRemoteObjectDelegate.java
new file mode 100644 (file)
index 0000000..a073cf4
--- /dev/null
@@ -0,0 +1,63 @@
+/* PortableRemoteObjectDelegate.java -- Interface supporting PortableRemoteObject
+   Copyright (C) 2002 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package javax.rmi.CORBA;
+
+import java.rmi.*;
+
+/**
+ * A delegate is a singleton class that support delegation for method
+ * implementation in PortableRemoteObject.
+ */
+public interface PortableRemoteObjectDelegate
+{
+  void connect(Remote target, Remote source)
+    throws RemoteException;
+        
+  void exportObject(Remote obj)
+    throws RemoteException;
+
+  Object narrow(Object narrowFrom, Class narrowTo)
+    throws ClassCastException;
+        
+  Remote toStub(Remote obj)
+    throws NoSuchObjectException;
+  
+  void unexportObject(Remote obj)
+    throws NoSuchObjectException;
+}
diff --git a/libjava/javax/rmi/CORBA/Stub.java b/libjava/javax/rmi/CORBA/Stub.java
new file mode 100644 (file)
index 0000000..c79b85c
--- /dev/null
@@ -0,0 +1,120 @@
+/* Stub.java -- 
+   Copyright (C) 2002 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package javax.rmi.CORBA;
+
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.Serializable;
+import java.rmi.RemoteException;
+//import org.omg.CORBA.ORB;
+//import org.omg.CORBA_2_3.portable.ObjectImpl;
+//import org.omg.CORBA.portable.ObjectImpl;
+import gnu.javax.rmi.CORBA.DelegateFactory;
+import gnu.javax.rmi.CORBA.GetDelegateInstanceException;
+
+public abstract class Stub extends ObjectImpl
+  implements Serializable
+{
+  private transient StubDelegate delegate;
+                
+  protected Stub()
+  {
+    try
+      {
+       delegate = (StubDelegate)DelegateFactory.getInstance("Stub");
+      }
+    catch(GetDelegateInstanceException e)
+      {
+       delegate = null;
+      }
+  }
+
+  public int hashCode()
+  {
+    if(delegate != null)
+      return delegate.hashCode(this);
+    else
+      return 0;
+  }
+
+  public boolean equals(Object obj)
+  {
+    if(delegate != null)
+      return delegate.equals(this, obj);
+    else
+      return false;
+  }
+
+  public String toString()
+  {
+    String s = null;
+    if(delegate != null)
+      s = delegate.toString(this);
+    if(s == null)
+      s = super.toString();
+    return s;
+  }
+
+  // XXX javax.rmi.ORB -> org.omg.CORBA.ORB
+  public void connect(javax.rmi.ORB orb)
+    throws RemoteException
+  {
+    if(delegate != null)
+      delegate.connect(this, orb);
+  }
+
+  /**
+   * The following two routines are required by serialized form of Java API doc.
+   */
+  private void readObject(ObjectInputStream stream)
+    throws IOException, ClassNotFoundException
+  {
+    if(delegate != null)
+      delegate.readObject(this, stream);
+  }
+
+  private void writeObject(ObjectOutputStream stream)
+    throws IOException
+  {
+    if(delegate != null)
+      delegate.writeObject(this, stream);
+  }
+
+}
diff --git a/libjava/javax/rmi/CORBA/StubDelegate.java b/libjava/javax/rmi/CORBA/StubDelegate.java
new file mode 100644 (file)
index 0000000..6c7f69f
--- /dev/null
@@ -0,0 +1,65 @@
+/* StubDelegate.java -- 
+   Copyright (C) 2002 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package javax.rmi.CORBA;
+
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.rmi.RemoteException;
+//import org.omg.CORBA.ORB;
+
+public interface StubDelegate
+{
+
+  // XXX javax.rmi.ORB -> org.omg.CORBA.ORB
+  void connect(Stub self, javax.rmi.ORB orb)
+    throws RemoteException;
+
+  boolean equals(Stub self, Object obj);
+
+  int hashCode(Stub self);
+
+  void readObject(Stub self, ObjectInputStream s)
+    throws IOException, ClassNotFoundException;
+
+  String toString(Stub self);
+
+  void writeObject(Stub self, ObjectOutputStream s)
+    throws IOException;
+}
diff --git a/libjava/javax/rmi/CORBA/SystemException.java b/libjava/javax/rmi/CORBA/SystemException.java
new file mode 100644 (file)
index 0000000..f8afdc3
--- /dev/null
@@ -0,0 +1,4 @@
+package javax.rmi.CORBA;
+
+/** XXX - Stub till we have org.omg.CORBA */
+public class SystemException extends Exception { }
diff --git a/libjava/javax/rmi/CORBA/Tie.java b/libjava/javax/rmi/CORBA/Tie.java
new file mode 100644 (file)
index 0000000..ca14e3d
--- /dev/null
@@ -0,0 +1,62 @@
+/* Tie.java -- 
+   Copyright (C) 2002 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package javax.rmi.CORBA;
+
+import java.rmi.Remote;
+//import org.omg.CORBA.ORB;
+//import org.omg.CORBA.portable.InvokeHandler;
+
+public interface Tie // XXX extends InvokeHandler
+{
+    
+  void deactivate();
+
+  Remote getTarget();
+
+  // XXX javax.rmi.ORB -> org.omg.CORBA.ORB
+  javax.rmi.ORB orb();
+  
+  // XXX javax.rmi.ORB -> org.omg.CORBA.ORB
+  void orb(javax.rmi.ORB orb);
+  
+  void setTarget(Remote target);
+  // XXX Object -> org.omg.CORBA.Object
+  Object thisObject();
+}
diff --git a/libjava/javax/rmi/CORBA/Util.java b/libjava/javax/rmi/CORBA/Util.java
new file mode 100644 (file)
index 0000000..45a189d
--- /dev/null
@@ -0,0 +1,187 @@
+/* Util.java -- 
+   Copyright (C) 2002 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package javax.rmi.CORBA;
+
+import java.rmi.Remote;
+import java.rmi.RemoteException;
+import java.lang.Object;
+import java.io.*;
+//import org.omg.CORBA.*;
+//import org.omg.CORBA.portable.InputStream;
+//import org.omg.CORBA.portable.OutputStream;
+import gnu.javax.rmi.CORBA.DelegateFactory;
+import gnu.javax.rmi.CORBA.GetDelegateInstanceException;
+
+public class Util
+{
+
+  private static UtilDelegate delegate;
+  static
+  {
+    try
+      {
+       delegate = (UtilDelegate)DelegateFactory.getInstance("Util");
+      }
+    catch(GetDelegateInstanceException e)
+      {
+       delegate = null;
+      }
+  }
+
+  private Util()
+  {
+  }
+
+  // XXX - javax.rmi.ORB -> org.omg.CORBA.ORB
+  public static Object copyObject(Object obj, javax.rmi.ORB orb)
+    throws RemoteException
+  {
+    if(delegate != null)
+      return delegate.copyObject(obj, orb);
+    else
+      return null;
+  }
+
+  // XXX - javax.rmi.ORB -> org.omg.CORBA.ORB
+  public static Object[] copyObjects(Object obj[], javax.rmi.ORB orb)
+    throws RemoteException
+  {
+    if(delegate != null)
+      return delegate.copyObjects(obj, orb);
+    else
+      return null;
+  }
+    
+  public static ValueHandler createValueHandler()
+  {
+    if(delegate != null)
+      return delegate.createValueHandler();
+    else
+      return null;
+  }
+    
+  public static String getCodebase(Class clz)
+  {
+    if(delegate != null)
+      return delegate.getCodebase(clz);
+    else
+      return null;
+  }
+    
+  public static Tie getTie(Remote target)
+  {
+    if(delegate != null)
+      return delegate.getTie(target);
+    else
+      return null;
+  }
+
+  public static boolean isLocal(Stub stub)
+    throws RemoteException
+  {
+    if(delegate != null)
+      return delegate.isLocal(stub);
+    else
+      return false;
+  }
+
+  public static Class loadClass(String className, String remoteCodebase, ClassLoader loader)
+    throws ClassNotFoundException
+  {
+    if(delegate != null)
+      return delegate.loadClass(className, remoteCodebase, loader);
+    else
+      throw new ClassNotFoundException(className + ": delegate == null");
+  }
+    
+  public static RemoteException mapSystemException(SystemException ex)
+  {
+    if(delegate != null)
+      return delegate.mapSystemException(ex);
+    else
+      return null;
+  }
+
+  public static Object readAny(InputStream in)
+  {
+    if(delegate != null)
+      return delegate.readAny(in);
+    else
+      return null;
+  }
+
+  public static void registerTarget(Tie tie, Remote target)
+  {
+    if(delegate != null)
+      delegate.registerTarget(tie, target);
+  }
+    
+  public static void unexportObject(Remote target)
+  {
+    if(delegate != null)
+      delegate.unexportObject(target);
+  }
+    
+  public static RemoteException wrapException(Throwable orig)
+  {
+    if(delegate != null)
+      return delegate.wrapException(orig);
+    else
+      return null;
+  }
+    
+  public static void writeAbstractObject(OutputStream out, Object obj)
+  {
+    if(delegate != null)
+      delegate.writeAbstractObject(out, obj);
+  }
+    
+  public static void writeAny(OutputStream out, Object obj)
+  {
+    if(delegate != null)
+      delegate.writeAny(out, obj);
+  }
+    
+  public static void writeRemoteObject(OutputStream out, Object obj)
+  {
+    if(delegate != null)
+      delegate.writeRemoteObject(out, obj);
+  }
+
+}
diff --git a/libjava/javax/rmi/CORBA/UtilDelegate.java b/libjava/javax/rmi/CORBA/UtilDelegate.java
new file mode 100644 (file)
index 0000000..4d611bc
--- /dev/null
@@ -0,0 +1,84 @@
+/* UtilDelegate.java -- 
+   Copyright (C) 2002 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package javax.rmi.CORBA;
+
+import java.rmi.Remote;
+import java.rmi.RemoteException;
+import java.io.*;
+//import org.omg.CORBA.ORB;
+//import org.omg.CORBA.SystemException;
+//import org.omg.CORBA.portable.InputStream;
+//import org.omg.CORBA.portable.OutputStream;
+
+public interface UtilDelegate
+{
+
+  // XXX javax.rmi.ORB -> org.omg.CORBA.ORB
+  Object copyObject(Object obj, javax.rmi.ORB orb) throws RemoteException;
+  
+  // XXX javax.rmi.ORB -> org.omg.CORBA.ORB
+  Object[] copyObjects(Object obj[], javax.rmi.ORB orb) throws RemoteException;
+
+  ValueHandler createValueHandler();
+    
+  String getCodebase(Class clz);
+    
+  Tie getTie(Remote target);
+    
+  boolean isLocal(Stub stub) throws RemoteException;
+
+  Class loadClass(String className, String remoteCodebase,
+                 ClassLoader loader) throws ClassNotFoundException;
+
+  RemoteException mapSystemException(SystemException ex);
+
+  Object readAny(InputStream in);
+
+  void registerTarget(Tie tie, Remote target);
+    
+  void unexportObject(Remote target);
+    
+  RemoteException wrapException(Throwable orig);
+    
+  void writeAbstractObject(OutputStream out, Object obj);
+    
+  void writeAny(OutputStream out, Object obj);
+
+  void writeRemoteObject(OutputStream out, Object obj);
+}
diff --git a/libjava/javax/rmi/CORBA/ValueHandler.java b/libjava/javax/rmi/CORBA/ValueHandler.java
new file mode 100644 (file)
index 0000000..3a008f1
--- /dev/null
@@ -0,0 +1,63 @@
+/* ValueHandler.java -- 
+   Copyright (C) 2002 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package javax.rmi.CORBA;
+
+import java.io.*;
+//import org.omg.CORBA.portable.InputStream;
+//import org.omg.CORBA.portable.OutputStream;
+//import org.omg.SendingContext.RunTime;
+
+public interface ValueHandler
+{
+  
+  String getRMIRepositoryID(Class clz);
+  // XXX Runtime -> RunTime
+  Runtime getRunTimeCodeBase();
+  
+  boolean isCustomMarshaled(Class clz);
+  
+  // XXX Runtime -> RunTime
+  Serializable readValue(InputStream in, int offset, Class clz,
+                        String repositoryID, Runtime sender);
+    
+  Serializable writeReplace(Serializable value);
+    
+  void writeValue(OutputStream out, Serializable value);
+}
diff --git a/libjava/javax/rmi/ORB.java b/libjava/javax/rmi/ORB.java
new file mode 100644 (file)
index 0000000..be7a894
--- /dev/null
@@ -0,0 +1,4 @@
+package javax.rmi;
+
+/** XXX - Stub till we have org.omg.CORBA */
+public class ORB { }
diff --git a/libjava/javax/rmi/PortableRemoteObject.java b/libjava/javax/rmi/PortableRemoteObject.java
new file mode 100644 (file)
index 0000000..ee40d9c
--- /dev/null
@@ -0,0 +1,114 @@
+/* PortableRemoteObject.java -- 
+   Copyright (C) 2002 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package javax.rmi;
+
+import java.rmi.Remote;
+import java.rmi.RemoteException;
+import java.rmi.NoSuchObjectException;
+import gnu.javax.rmi.CORBA.DelegateFactory;
+import gnu.javax.rmi.CORBA.GetDelegateInstanceException;
+import javax.rmi.CORBA.PortableRemoteObjectDelegate;
+import javax.rmi.CORBA.Util;
+
+public class PortableRemoteObject
+  implements Remote /* why doc doesn't say should implement Remote */
+{
+
+  private static PortableRemoteObjectDelegate delegate;
+  static
+  {
+    try
+      {
+       delegate = (PortableRemoteObjectDelegate)DelegateFactory.getInstance
+         ("PortableRemoteObject");
+      }
+    catch(GetDelegateInstanceException e)
+      {
+       e.printStackTrace();
+       delegate = null;
+      }
+  }
+
+  protected PortableRemoteObject()
+    throws RemoteException
+  {
+    if(delegate != null)
+      exportObject((Remote)this);
+  }
+
+  public static void connect(Remote target, Remote source)
+    throws RemoteException
+  {
+    if(delegate != null)
+      delegate.connect(target, source);
+  }
+    
+  public static void exportObject(Remote obj)
+    throws RemoteException
+  {
+    if(delegate != null)
+      delegate.exportObject(obj);
+  }
+
+  public static Object narrow(Object narrowFrom, Class narrowTo)
+    throws ClassCastException
+  {
+    if(delegate != null)
+      return delegate.narrow(narrowFrom, narrowTo);
+    else
+      return null;
+  }
+
+  public static Remote toStub(Remote obj)
+    throws NoSuchObjectException
+  {
+    if(delegate != null)
+      return delegate.toStub(obj);
+    else
+      return null;
+  }
+
+  public static void unexportObject(Remote obj)
+    throws NoSuchObjectException
+  {
+    if(delegate != null)
+      delegate.unexportObject(obj);
+  }
+  
+}