Imported from mainline FSF repositories
From-SVN: r94600
This commit is contained in:
parent
55967ba27b
commit
b919490c9c
152 changed files with 132562 additions and 0 deletions
74
libjava/gnu/javax/rmi/CORBA/DelegateFactory.java
Normal file
74
libjava/gnu/javax/rmi/CORBA/DelegateFactory.java
Normal file
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
113
libjava/gnu/javax/rmi/CORBA/StubDelegateImpl.java
Normal file
113
libjava/gnu/javax/rmi/CORBA/StubDelegateImpl.java
Normal file
|
@ -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");
|
||||
}
|
||||
|
||||
}
|
152
libjava/gnu/javax/rmi/CORBA/UtilDelegateImpl.java
Normal file
152
libjava/gnu/javax/rmi/CORBA/UtilDelegateImpl.java
Normal file
|
@ -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");
|
||||
}
|
||||
}
|
82
libjava/gnu/javax/rmi/CORBA/ValueHandlerImpl.java
Normal file
82
libjava/gnu/javax/rmi/CORBA/ValueHandlerImpl.java
Normal file
|
@ -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");
|
||||
}
|
||||
}
|
142
libjava/gnu/javax/rmi/PortableServer.java
Normal file
142
libjava/gnu/javax/rmi/PortableServer.java
Normal file
|
@ -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;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue