From 116b271d255dcb1ad7449c859a0661b64bf5f296 Mon Sep 17 00:00:00 2001 From: tromey Date: Tue, 28 Aug 2001 00:03:35 +0000 Subject: [PATCH] * java/rmi/activation/Activatable.java, java/rmi/activation/ActivateFailedException.java, java/rmi/activation/ActivationDesc.java, java/rmi/activation/ActivationException.java, java/rmi/activation/ActivationGroup.java, java/rmi/activation/ActivationGroupDesc.java, java/rmi/activation/ActivationGroupID.java, java/rmi/activation/ActivationID.java, java/rmi/activation/ActivationInstantiator.java, java/rmi/activation/ActivationMonitor.java, java/rmi/activation/ActivationSystem.java, java/rmi/activation/Activator.java, java/rmi/activation/UnknownGroupException.java, java/rmi/activation/UnknownObjectException.java, java/rmi/AccessException.java, java/rmi/AlreadyBoundException.java, java/rmi/ConnectException.java, java/rmi/ConnectIOException.java, java/rmi/MarshalException.java, java/rmi/MarshalledObject.java, java/rmi/Naming.java, java/rmi/NoSuchObjectException.java, java/rmi/NotBoundException.java, java/rmi/RMISecurityException.java, java/rmi/RMISecurityManager.java, java/rmi/Remote.java, java/rmi/RemoteException.java, java/rmi/ServerError.java, java/rmi/ServerException.java, java/rmi/ServerRuntimeException.java, java/rmi/StubNotFoundException.java, java/rmi/UnexpectedException.java, java/rmi/UnknownHostException.java, java/rmi/UnmarshalException.java, java/rmi/dgc/DGC.java, java/rmi/dgc/Lease.java, java/rmi/dgc/VMID.java, java/rmi/registry/LocateRegistry.java, java/rmi/registry/Registry.java, java/rmi/registry/RegistryHandler.java, java/rmi/server/ExportException.java, java/rmi/server/LoaderHandler.java, java/rmi/server/LogStream.java, java/rmi/server/ObjID.java, java/rmi/server/Operation.java, java/rmi/server/RMIClassLoader.java, java/rmi/server/RMIClientSocketFactory.java, java/rmi/server/RMIFailureHandler.java, java/rmi/server/RMIServerSocketFactory.java, java/rmi/server/RMISocketFactory.java, java/rmi/server/RemoteCall.java, java/rmi/server/RemoteObject.java, java/rmi/server/RemoteRef.java, java/rmi/server/RemoteServer.java, java/rmi/server/RemoteStub.java, java/rmi/server/ServerCloneException.java, java/rmi/server/ServerNotActiveException.java, java/rmi/server/ServerRef.java, java/rmi/server/Skeleton.java, java/rmi/server/SkeletonMismatchException.java, java/rmi/server/SkeletonNotFoundException.java, java/rmi/server/SocketSecurityException.java, java/rmi/server/UID.java, java/rmi/server/UnicastRemoteObject.java, java/rmi/server/Unreferenced.java, gnu/java/rmi/dgc/DGCImpl.java, gnu/java/rmi/dgc/DGCImpl_Skel.java, gnu/java/rmi/dgc/DGCImpl_Stub.java, gnu/java/rmi/registry/RegistryImpl.java, gnu/java/rmi/registry/RegistryImpl_Skel.java, gnu/java/rmi/registry/RegistryImpl_Stub.java, gnu/java/rmi/rmic/RMIC.java, gnu/java/rmi/rmic/TabbedWriter.java, gnu/java/rmi/server/ProtocolConstants.java, gnu/java/rmi/server/RMIDefaultSocketFactory.java, gnu/java/rmi/server/RMIHashes.java, gnu/java/rmi/server/RMIObjectInputStream.java, gnu/java/rmi/server/RMIObjectOutputStream.java, gnu/java/rmi/server/UnicastConnection.java, gnu/java/rmi/server/UnicastConnectionManager.java, gnu/java/rmi/server/UnicastRef.java, gnu/java/rmi/server/UnicastRemoteCall.java, gnu/java/rmi/server/UnicastRemoteStub.java, gnu/java/rmi/server/UnicastServer.java, gnu/java/rmi/server/UnicastServerRef.java: RMI implementation from Kaffe. Relabelled classes to fit into Classpath tree. * Makefile.in: Rebuilt. * Makefile.am (rmi_java_source_files): New macro. (ordinary_java_source_files): Reference it. (bin_PROGRAMS): Added rmic and rmiregistry. (rmic_SOURCES): New macro. (EXTRA_rmic_SOURCES): Likewise. (rmic_LDFLAGS): Likewise. (rmic_LINK): Likewise. (rmic_LDADD): Likewise. (rmic_DEPENDENCIES): Likewise. (rmiregistry_SOURCES): New macro. (EXTRA_rmiregistry_SOURCES): Likewise. (rmiregistry_LDFLAGS): Likewise. (rmiregistry_LINK): Likewise. (rmiregistry_LDADD): Likewise. (rmiregistry_DEPENDENCIES): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45218 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/ChangeLog | 93 ++ libjava/Makefile.am | 122 +- libjava/Makefile.in | 1261 +++++++++++++++++++- libjava/gnu/java/rmi/dgc/DGCImpl.java | 55 + libjava/gnu/java/rmi/dgc/DGCImpl_Skel.java | 106 ++ libjava/gnu/java/rmi/dgc/DGCImpl_Stub.java | 120 ++ libjava/gnu/java/rmi/registry/RegistryImpl.java | 115 ++ .../gnu/java/rmi/registry/RegistryImpl_Skel.java | 189 +++ .../gnu/java/rmi/registry/RegistryImpl_Stub.java | 255 ++++ libjava/gnu/java/rmi/rmic/RMIC.java | 982 +++++++++++++++ libjava/gnu/java/rmi/rmic/TabbedWriter.java | 90 ++ libjava/gnu/java/rmi/server/ProtocolConstants.java | 53 + .../java/rmi/server/RMIDefaultSocketFactory.java | 49 + libjava/gnu/java/rmi/server/RMIHashes.java | 45 + .../gnu/java/rmi/server/RMIObjectInputStream.java | 65 + .../gnu/java/rmi/server/RMIObjectOutputStream.java | 47 + libjava/gnu/java/rmi/server/UnicastConnection.java | 162 +++ .../java/rmi/server/UnicastConnectionManager.java | 262 ++++ libjava/gnu/java/rmi/server/UnicastRef.java | 219 ++++ libjava/gnu/java/rmi/server/UnicastRemoteCall.java | 301 +++++ libjava/gnu/java/rmi/server/UnicastRemoteStub.java | 40 + libjava/gnu/java/rmi/server/UnicastServer.java | 119 ++ libjava/gnu/java/rmi/server/UnicastServerRef.java | 198 +++ libjava/java/rmi/AccessException.java | 43 + libjava/java/rmi/AlreadyBoundException.java | 41 + libjava/java/rmi/ConnectException.java | 42 + libjava/java/rmi/ConnectIOException.java | 42 + libjava/java/rmi/MarshalException.java | 42 + libjava/java/rmi/MarshalledObject.java | 51 + libjava/java/rmi/Naming.java | 70 ++ libjava/java/rmi/NoSuchObjectException.java | 39 + libjava/java/rmi/NotBoundException.java | 43 + libjava/java/rmi/RMISecurityException.java | 43 + libjava/java/rmi/RMISecurityManager.java | 139 +++ libjava/java/rmi/Remote.java | 31 + libjava/java/rmi/RemoteException.java | 85 ++ libjava/java/rmi/ServerError.java | 37 + libjava/java/rmi/ServerException.java | 43 + libjava/java/rmi/ServerRuntimeException.java | 37 + libjava/java/rmi/StubNotFoundException.java | 41 + libjava/java/rmi/UnexpectedException.java | 41 + libjava/java/rmi/UnknownHostException.java | 41 + libjava/java/rmi/UnmarshalException.java | 43 + libjava/java/rmi/activation/Activatable.java | 93 ++ .../rmi/activation/ActivateFailedException.java | 43 + libjava/java/rmi/activation/ActivationDesc.java | 102 ++ .../java/rmi/activation/ActivationException.java | 78 ++ libjava/java/rmi/activation/ActivationGroup.java | 73 ++ .../java/rmi/activation/ActivationGroupDesc.java | 120 ++ libjava/java/rmi/activation/ActivationGroupID.java | 59 + libjava/java/rmi/activation/ActivationID.java | 61 + .../rmi/activation/ActivationInstantiator.java | 39 + libjava/java/rmi/activation/ActivationMonitor.java | 41 + libjava/java/rmi/activation/ActivationSystem.java | 49 + libjava/java/rmi/activation/Activator.java | 39 + .../java/rmi/activation/UnknownGroupException.java | 37 + .../rmi/activation/UnknownObjectException.java | 37 + libjava/java/rmi/dgc/DGC.java | 41 + libjava/java/rmi/dgc/Lease.java | 58 + libjava/java/rmi/dgc/VMID.java | 106 ++ libjava/java/rmi/registry/LocateRegistry.java | 75 ++ libjava/java/rmi/registry/Registry.java | 51 + libjava/java/rmi/registry/RegistryHandler.java | 39 + libjava/java/rmi/server/ExportException.java | 43 + libjava/java/rmi/server/LoaderHandler.java | 44 + libjava/java/rmi/server/LogStream.java | 92 ++ libjava/java/rmi/server/ObjID.java | 95 ++ libjava/java/rmi/server/Operation.java | 46 + libjava/java/rmi/server/RMIClassLoader.java | 92 ++ .../java/rmi/server/RMIClientSocketFactory.java | 37 + libjava/java/rmi/server/RMIFailureHandler.java | 34 + .../java/rmi/server/RMIServerSocketFactory.java | 37 + libjava/java/rmi/server/RMISocketFactory.java | 74 ++ libjava/java/rmi/server/RemoteCall.java | 46 + libjava/java/rmi/server/RemoteObject.java | 119 ++ libjava/java/rmi/server/RemoteRef.java | 51 + libjava/java/rmi/server/RemoteServer.java | 56 + libjava/java/rmi/server/RemoteStub.java | 47 + libjava/java/rmi/server/ServerCloneException.java | 76 ++ .../java/rmi/server/ServerNotActiveException.java | 43 + libjava/java/rmi/server/ServerRef.java | 43 + libjava/java/rmi/server/Skeleton.java | 39 + .../java/rmi/server/SkeletonMismatchException.java | 41 + .../java/rmi/server/SkeletonNotFoundException.java | 43 + .../java/rmi/server/SocketSecurityException.java | 43 + libjava/java/rmi/server/UID.java | 120 ++ libjava/java/rmi/server/UnicastRemoteObject.java | 76 ++ libjava/java/rmi/server/Unreferenced.java | 34 + 88 files changed, 8594 insertions(+), 60 deletions(-) create mode 100644 libjava/gnu/java/rmi/dgc/DGCImpl.java create mode 100644 libjava/gnu/java/rmi/dgc/DGCImpl_Skel.java create mode 100644 libjava/gnu/java/rmi/dgc/DGCImpl_Stub.java create mode 100644 libjava/gnu/java/rmi/registry/RegistryImpl.java create mode 100644 libjava/gnu/java/rmi/registry/RegistryImpl_Skel.java create mode 100644 libjava/gnu/java/rmi/registry/RegistryImpl_Stub.java create mode 100644 libjava/gnu/java/rmi/rmic/RMIC.java create mode 100644 libjava/gnu/java/rmi/rmic/TabbedWriter.java create mode 100644 libjava/gnu/java/rmi/server/ProtocolConstants.java create mode 100644 libjava/gnu/java/rmi/server/RMIDefaultSocketFactory.java create mode 100644 libjava/gnu/java/rmi/server/RMIHashes.java create mode 100644 libjava/gnu/java/rmi/server/RMIObjectInputStream.java create mode 100644 libjava/gnu/java/rmi/server/RMIObjectOutputStream.java create mode 100644 libjava/gnu/java/rmi/server/UnicastConnection.java create mode 100644 libjava/gnu/java/rmi/server/UnicastConnectionManager.java create mode 100644 libjava/gnu/java/rmi/server/UnicastRef.java create mode 100644 libjava/gnu/java/rmi/server/UnicastRemoteCall.java create mode 100644 libjava/gnu/java/rmi/server/UnicastRemoteStub.java create mode 100644 libjava/gnu/java/rmi/server/UnicastServer.java create mode 100644 libjava/gnu/java/rmi/server/UnicastServerRef.java create mode 100644 libjava/java/rmi/AccessException.java create mode 100644 libjava/java/rmi/AlreadyBoundException.java create mode 100644 libjava/java/rmi/ConnectException.java create mode 100644 libjava/java/rmi/ConnectIOException.java create mode 100644 libjava/java/rmi/MarshalException.java create mode 100644 libjava/java/rmi/MarshalledObject.java create mode 100644 libjava/java/rmi/Naming.java create mode 100644 libjava/java/rmi/NoSuchObjectException.java create mode 100644 libjava/java/rmi/NotBoundException.java create mode 100644 libjava/java/rmi/RMISecurityException.java create mode 100644 libjava/java/rmi/RMISecurityManager.java create mode 100644 libjava/java/rmi/Remote.java create mode 100644 libjava/java/rmi/RemoteException.java create mode 100644 libjava/java/rmi/ServerError.java create mode 100644 libjava/java/rmi/ServerException.java create mode 100644 libjava/java/rmi/ServerRuntimeException.java create mode 100644 libjava/java/rmi/StubNotFoundException.java create mode 100644 libjava/java/rmi/UnexpectedException.java create mode 100644 libjava/java/rmi/UnknownHostException.java create mode 100644 libjava/java/rmi/UnmarshalException.java create mode 100644 libjava/java/rmi/activation/Activatable.java create mode 100644 libjava/java/rmi/activation/ActivateFailedException.java create mode 100644 libjava/java/rmi/activation/ActivationDesc.java create mode 100644 libjava/java/rmi/activation/ActivationException.java create mode 100644 libjava/java/rmi/activation/ActivationGroup.java create mode 100644 libjava/java/rmi/activation/ActivationGroupDesc.java create mode 100644 libjava/java/rmi/activation/ActivationGroupID.java create mode 100644 libjava/java/rmi/activation/ActivationID.java create mode 100644 libjava/java/rmi/activation/ActivationInstantiator.java create mode 100644 libjava/java/rmi/activation/ActivationMonitor.java create mode 100644 libjava/java/rmi/activation/ActivationSystem.java create mode 100644 libjava/java/rmi/activation/Activator.java create mode 100644 libjava/java/rmi/activation/UnknownGroupException.java create mode 100644 libjava/java/rmi/activation/UnknownObjectException.java create mode 100644 libjava/java/rmi/dgc/DGC.java create mode 100644 libjava/java/rmi/dgc/Lease.java create mode 100644 libjava/java/rmi/dgc/VMID.java create mode 100644 libjava/java/rmi/registry/LocateRegistry.java create mode 100644 libjava/java/rmi/registry/Registry.java create mode 100644 libjava/java/rmi/registry/RegistryHandler.java create mode 100644 libjava/java/rmi/server/ExportException.java create mode 100644 libjava/java/rmi/server/LoaderHandler.java create mode 100644 libjava/java/rmi/server/LogStream.java create mode 100644 libjava/java/rmi/server/ObjID.java create mode 100644 libjava/java/rmi/server/Operation.java create mode 100644 libjava/java/rmi/server/RMIClassLoader.java create mode 100644 libjava/java/rmi/server/RMIClientSocketFactory.java create mode 100644 libjava/java/rmi/server/RMIFailureHandler.java create mode 100644 libjava/java/rmi/server/RMIServerSocketFactory.java create mode 100644 libjava/java/rmi/server/RMISocketFactory.java create mode 100644 libjava/java/rmi/server/RemoteCall.java create mode 100644 libjava/java/rmi/server/RemoteObject.java create mode 100644 libjava/java/rmi/server/RemoteRef.java create mode 100644 libjava/java/rmi/server/RemoteServer.java create mode 100644 libjava/java/rmi/server/RemoteStub.java create mode 100644 libjava/java/rmi/server/ServerCloneException.java create mode 100644 libjava/java/rmi/server/ServerNotActiveException.java create mode 100644 libjava/java/rmi/server/ServerRef.java create mode 100644 libjava/java/rmi/server/Skeleton.java create mode 100644 libjava/java/rmi/server/SkeletonMismatchException.java create mode 100644 libjava/java/rmi/server/SkeletonNotFoundException.java create mode 100644 libjava/java/rmi/server/SocketSecurityException.java create mode 100644 libjava/java/rmi/server/UID.java create mode 100644 libjava/java/rmi/server/UnicastRemoteObject.java create mode 100644 libjava/java/rmi/server/Unreferenced.java diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 9dbf8d17c5e..350efc02b08 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,96 @@ +2001-08-27 Tom Tromey + + * java/rmi/activation/Activatable.java, + java/rmi/activation/ActivateFailedException.java, + java/rmi/activation/ActivationDesc.java, + java/rmi/activation/ActivationException.java, + java/rmi/activation/ActivationGroup.java, + java/rmi/activation/ActivationGroupDesc.java, + java/rmi/activation/ActivationGroupID.java, + java/rmi/activation/ActivationID.java, + java/rmi/activation/ActivationInstantiator.java, + java/rmi/activation/ActivationMonitor.java, + java/rmi/activation/ActivationSystem.java, + java/rmi/activation/Activator.java, + java/rmi/activation/UnknownGroupException.java, + java/rmi/activation/UnknownObjectException.java, + java/rmi/AccessException.java, + java/rmi/AlreadyBoundException.java, + java/rmi/ConnectException.java, java/rmi/ConnectIOException.java, + java/rmi/MarshalException.java, java/rmi/MarshalledObject.java, + java/rmi/Naming.java, java/rmi/NoSuchObjectException.java, + java/rmi/NotBoundException.java, + java/rmi/RMISecurityException.java, + java/rmi/RMISecurityManager.java, java/rmi/Remote.java, + java/rmi/RemoteException.java, java/rmi/ServerError.java, + java/rmi/ServerException.java, + java/rmi/ServerRuntimeException.java, + java/rmi/StubNotFoundException.java, + java/rmi/UnexpectedException.java, + java/rmi/UnknownHostException.java, + java/rmi/UnmarshalException.java, java/rmi/dgc/DGC.java, + java/rmi/dgc/Lease.java, java/rmi/dgc/VMID.java, + java/rmi/registry/LocateRegistry.java, + java/rmi/registry/Registry.java, + java/rmi/registry/RegistryHandler.java, + java/rmi/server/ExportException.java, + java/rmi/server/LoaderHandler.java, + java/rmi/server/LogStream.java, java/rmi/server/ObjID.java, + java/rmi/server/Operation.java, + java/rmi/server/RMIClassLoader.java, + java/rmi/server/RMIClientSocketFactory.java, + java/rmi/server/RMIFailureHandler.java, + java/rmi/server/RMIServerSocketFactory.java, + java/rmi/server/RMISocketFactory.java, + java/rmi/server/RemoteCall.java, + java/rmi/server/RemoteObject.java, java/rmi/server/RemoteRef.java, + java/rmi/server/RemoteServer.java, + java/rmi/server/RemoteStub.java, + java/rmi/server/ServerCloneException.java, + java/rmi/server/ServerNotActiveException.java, + java/rmi/server/ServerRef.java, java/rmi/server/Skeleton.java, + java/rmi/server/SkeletonMismatchException.java, + java/rmi/server/SkeletonNotFoundException.java, + java/rmi/server/SocketSecurityException.java, + java/rmi/server/UID.java, + java/rmi/server/UnicastRemoteObject.java, + java/rmi/server/Unreferenced.java, gnu/java/rmi/dgc/DGCImpl.java, + gnu/java/rmi/dgc/DGCImpl_Skel.java, + gnu/java/rmi/dgc/DGCImpl_Stub.java, + gnu/java/rmi/registry/RegistryImpl.java, + gnu/java/rmi/registry/RegistryImpl_Skel.java, + gnu/java/rmi/registry/RegistryImpl_Stub.java, + gnu/java/rmi/rmic/RMIC.java, gnu/java/rmi/rmic/TabbedWriter.java, + gnu/java/rmi/server/ProtocolConstants.java, + gnu/java/rmi/server/RMIDefaultSocketFactory.java, + gnu/java/rmi/server/RMIHashes.java, + gnu/java/rmi/server/RMIObjectInputStream.java, + gnu/java/rmi/server/RMIObjectOutputStream.java, + gnu/java/rmi/server/UnicastConnection.java, + gnu/java/rmi/server/UnicastConnectionManager.java, + gnu/java/rmi/server/UnicastRef.java, + gnu/java/rmi/server/UnicastRemoteCall.java, + gnu/java/rmi/server/UnicastRemoteStub.java, + gnu/java/rmi/server/UnicastServer.java, + gnu/java/rmi/server/UnicastServerRef.java: RMI implementation from + Kaffe. Relabelled classes to fit into Classpath tree. + * Makefile.in: Rebuilt. + * Makefile.am (rmi_java_source_files): New macro. + (ordinary_java_source_files): Reference it. + (bin_PROGRAMS): Added rmic and rmiregistry. + (rmic_SOURCES): New macro. + (EXTRA_rmic_SOURCES): Likewise. + (rmic_LDFLAGS): Likewise. + (rmic_LINK): Likewise. + (rmic_LDADD): Likewise. + (rmic_DEPENDENCIES): Likewise. + (rmiregistry_SOURCES): New macro. + (EXTRA_rmiregistry_SOURCES): Likewise. + (rmiregistry_LDFLAGS): Likewise. + (rmiregistry_LINK): Likewise. + (rmiregistry_LDADD): Likewise. + (rmiregistry_DEPENDENCIES): Likewise. + 2001-08-26 Bryce McKinlay * name-finder.cc (lookup): Ignore a null dli_fname from dladdr. diff --git a/libjava/Makefile.am b/libjava/Makefile.am index b764803dfb5..bcff10a1d20 100644 --- a/libjava/Makefile.am +++ b/libjava/Makefile.am @@ -35,7 +35,7 @@ data_DATA = libgcj.jar ## For now, only on native systems. FIXME. if NATIVE -bin_PROGRAMS = jv-convert gij +bin_PROGRAMS = jv-convert gij rmic rmiregistry endif bin_SCRIPTS = addr2name.awk @@ -435,6 +435,38 @@ gij_LDADD = libgcj.la $(GCLIBS) $(THREADLIBS) $(ZLIBS) -L$(here)/.libs ## linking this program. gij_DEPENDENCIES = $(GCDEPS) $(THREADDEPS) $(ZDEPS) libgcj.la libgcj.spec +rmic_SOURCES = +## This is a dummy definition. +EXTRA_rmic_SOURCES = $(rmi_java_source_files) +rmic_LDFLAGS = --main=gnu.java.rmi.rmic.RMIC \ + -rpath $(toolexeclibdir) -shared-libgcc +rmic_LINK = $(GCJLINK) +## We explicitly link in the libraries we need. This way we don't +## need -nodefaultlibs, so we can still rely on gcj picking up the +## system libraries we need (via the specs file). +## We need the -L so that gcj can find libgcj with `-lgcj'. +## FIXME: should be _libs on some systems. +rmic_LDADD = libgcj.la $(GCLIBS) $(THREADLIBS) $(ZLIBS) -L$(here)/.libs +## Depend on the spec file to make sure it is up to date before +## linking this program. +rmic_DEPENDENCIES = $(GCDEPS) $(THREADDEPS) $(ZDEPS) libgcj.la libgcj.spec + +rmiregistry_SOURCES = +## This is a dummy definition. +EXTRA_rmiregistry_SOURCES = $(rmi_java_source_files) +rmiregistry_LDFLAGS = --main=gnu.java.rmi.registry.RegistryImpl \ + -rpath $(toolexeclibdir) -shared-libgcc +rmiregistry_LINK = $(GCJLINK) +## We explicitly link in the libraries we need. This way we don't +## need -nodefaultlibs, so we can still rely on gcj picking up the +## system libraries we need (via the specs file). +## We need the -L so that gcj can find libgcj with `-lgcj'. +## FIXME: should be _libs on some systems. +rmiregistry_LDADD = libgcj.la $(GCLIBS) $(THREADLIBS) $(ZLIBS) -L$(here)/.libs +## Depend on the spec file to make sure it is up to date before +## linking this program. +rmiregistry_DEPENDENCIES = $(GCDEPS) $(THREADDEPS) $(ZDEPS) libgcj.la libgcj.spec + # The Unicode consortium does not permit re-distributing the file JIS0201.TXT. # You can get it from ftp://ftp.unicode.org/Public/MAPPINGS/EASTASIA/JIS/. @@ -769,6 +801,93 @@ java/beans/VetoableChangeListener.java \ java/beans/VetoableChangeSupport.java \ java/beans/Visibility.java +rmi_java_source_files = \ +java/rmi/activation/Activatable.java \ +java/rmi/activation/ActivateFailedException.java \ +java/rmi/activation/ActivationDesc.java \ +java/rmi/activation/ActivationException.java \ +java/rmi/activation/ActivationGroup.java \ +java/rmi/activation/ActivationGroupDesc.java \ +java/rmi/activation/ActivationGroupID.java \ +java/rmi/activation/ActivationID.java \ +java/rmi/activation/ActivationInstantiator.java \ +java/rmi/activation/ActivationMonitor.java \ +java/rmi/activation/ActivationSystem.java \ +java/rmi/activation/Activator.java \ +java/rmi/activation/UnknownGroupException.java \ +java/rmi/activation/UnknownObjectException.java \ +java/rmi/AccessException.java \ +java/rmi/AlreadyBoundException.java \ +java/rmi/ConnectException.java \ +java/rmi/ConnectIOException.java \ +java/rmi/MarshalException.java \ +java/rmi/MarshalledObject.java \ +java/rmi/Naming.java \ +java/rmi/NoSuchObjectException.java \ +java/rmi/NotBoundException.java \ +java/rmi/RMISecurityException.java \ +java/rmi/RMISecurityManager.java \ +java/rmi/Remote.java \ +java/rmi/RemoteException.java \ +java/rmi/ServerError.java \ +java/rmi/ServerException.java \ +java/rmi/ServerRuntimeException.java \ +java/rmi/StubNotFoundException.java \ +java/rmi/UnexpectedException.java \ +java/rmi/UnknownHostException.java \ +java/rmi/UnmarshalException.java \ +java/rmi/dgc/DGC.java \ +java/rmi/dgc/Lease.java \ +java/rmi/dgc/VMID.java \ +java/rmi/registry/LocateRegistry.java \ +java/rmi/registry/Registry.java \ +java/rmi/registry/RegistryHandler.java \ +java/rmi/server/ExportException.java \ +java/rmi/server/LoaderHandler.java \ +java/rmi/server/LogStream.java \ +java/rmi/server/ObjID.java \ +java/rmi/server/Operation.java \ +java/rmi/server/RMIClassLoader.java \ +java/rmi/server/RMIClientSocketFactory.java \ +java/rmi/server/RMIFailureHandler.java \ +java/rmi/server/RMIServerSocketFactory.java \ +java/rmi/server/RMISocketFactory.java \ +java/rmi/server/RemoteCall.java \ +java/rmi/server/RemoteObject.java \ +java/rmi/server/RemoteRef.java \ +java/rmi/server/RemoteServer.java \ +java/rmi/server/RemoteStub.java \ +java/rmi/server/ServerCloneException.java \ +java/rmi/server/ServerNotActiveException.java \ +java/rmi/server/ServerRef.java \ +java/rmi/server/Skeleton.java \ +java/rmi/server/SkeletonMismatchException.java \ +java/rmi/server/SkeletonNotFoundException.java \ +java/rmi/server/SocketSecurityException.java \ +java/rmi/server/UID.java \ +java/rmi/server/UnicastRemoteObject.java \ +java/rmi/server/Unreferenced.java \ +gnu/java/rmi/dgc/DGCImpl.java \ +gnu/java/rmi/dgc/DGCImpl_Skel.java \ +gnu/java/rmi/dgc/DGCImpl_Stub.java \ +gnu/java/rmi/registry/RegistryImpl.java \ +gnu/java/rmi/registry/RegistryImpl_Skel.java \ +gnu/java/rmi/registry/RegistryImpl_Stub.java \ +gnu/java/rmi/rmic/RMIC.java \ +gnu/java/rmi/rmic/TabbedWriter.java \ +gnu/java/rmi/server/ProtocolConstants.java \ +gnu/java/rmi/server/RMIDefaultSocketFactory.java \ +gnu/java/rmi/server/RMIHashes.java \ +gnu/java/rmi/server/RMIObjectInputStream.java \ +gnu/java/rmi/server/RMIObjectOutputStream.java \ +gnu/java/rmi/server/UnicastConnection.java \ +gnu/java/rmi/server/UnicastConnectionManager.java \ +gnu/java/rmi/server/UnicastRef.java \ +gnu/java/rmi/server/UnicastRemoteCall.java \ +gnu/java/rmi/server/UnicastRemoteStub.java \ +gnu/java/rmi/server/UnicastServer.java \ +gnu/java/rmi/server/UnicastServerRef.java + ## Java files which are created by configure and thus are in the build ## directory. built_java_source_files = java/lang/ConcreteProcess.java \ @@ -1309,6 +1428,7 @@ org/xml/sax/SAXNotSupportedException.java \ org/xml/sax/SAXParseException.java \ org/xml/sax/XMLFilter.java \ org/xml/sax/XMLReader.java \ +$(rmi_java_source_files) \ $(awt_java_source_files) \ $(convert_source_files) diff --git a/libjava/Makefile.in b/libjava/Makefile.in index 3e976bf0d36..38aa7f12004 100644 --- a/libjava/Makefile.in +++ b/libjava/Makefile.in @@ -1,4 +1,4 @@ -# Makefile.in generated automatically by automake 1.4-p1 from Makefile.am +# Makefile.in generated automatically by automake 1.4 from Makefile.am # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation @@ -123,26 +123,38 @@ libgcj_basedir = @libgcj_basedir@ mkinstalldirs = @mkinstalldirs@ AUTOMAKE_OPTIONS = foreign -@TESTSUBDIR_TRUE@SUBDIRS = $(DIRLTDL) testsuite gcj include -@TESTSUBDIR_FALSE@SUBDIRS = $(DIRLTDL) gcj include -@USE_LIBDIR_TRUE@toolexeclibdir = $(libdir)$(MULTISUBDIR) -@USE_LIBDIR_FALSE@toolexeclibdir = $(toolexecdir)/lib$(MULTISUBDIR) -@USE_LIBDIR_FALSE@toolexecdir = $(exec_prefix)/$(target_alias) -@XLIB_AWT_TRUE@cond_x_ltlibrary = libgcjx.la -@XLIB_AWT_FALSE@cond_x_ltlibrary = +@TESTSUBDIR_TRUE@SUBDIRS = \ +@TESTSUBDIR_TRUE@$(DIRLTDL) testsuite gcj include +@TESTSUBDIR_FALSE@SUBDIRS = \ +@TESTSUBDIR_FALSE@$(DIRLTDL) gcj include +@USE_LIBDIR_TRUE@toolexeclibdir = \ +@USE_LIBDIR_TRUE@$(libdir)$(MULTISUBDIR) +@USE_LIBDIR_FALSE@toolexeclibdir = \ +@USE_LIBDIR_FALSE@$(toolexecdir)/lib$(MULTISUBDIR) +@USE_LIBDIR_FALSE@toolexecdir = \ +@USE_LIBDIR_FALSE@$(exec_prefix)/$(target_alias) +@XLIB_AWT_TRUE@cond_x_ltlibrary = \ +@XLIB_AWT_TRUE@libgcjx.la +@XLIB_AWT_FALSE@cond_x_ltlibrary = \ toolexeclib_LTLIBRARIES = libgcj.la $(cond_x_ltlibrary) toolexeclib_DATA = libgcj.spec data_DATA = libgcj.jar -@NATIVE_TRUE@bin_PROGRAMS = jv-convert gij +@NATIVE_TRUE@bin_PROGRAMS = \ +@NATIVE_TRUE@jv-convert gij rmic rmiregistry bin_SCRIPTS = addr2name.awk -@CANADIAN_TRUE@@NULL_TARGET_TRUE@ZIP = $(MULTIBUILDTOP)../$(COMPPATH)/fastjar/jar$(EXEEXT) -@CANADIAN_TRUE@@NULL_TARGET_FALSE@ZIP = jar -@CANADIAN_FALSE@ZIP = $(MULTIBUILDTOP)../$(COMPPATH)/fastjar/jar$(EXEEXT) -@CANADIAN_TRUE@GCJH = gcjh -@CANADIAN_FALSE@GCJH = $(MULTIBUILDTOP)../$(COMPPATH)/gcc/gcjh$(EXEEXT) +@CANADIAN_TRUE@@NULL_TARGET_TRUE@ZIP = \ +@CANADIAN_TRUE@@NULL_TARGET_TRUE@$(MULTIBUILDTOP)../$(COMPPATH)/fastjar/jar$(EXEEXT) +@CANADIAN_TRUE@@NULL_TARGET_FALSE@ZIP = \ +@CANADIAN_TRUE@@NULL_TARGET_FALSE@jar +@CANADIAN_FALSE@ZIP = \ +@CANADIAN_FALSE@$(MULTIBUILDTOP)../$(COMPPATH)/fastjar/jar$(EXEEXT) +@CANADIAN_TRUE@GCJH = \ +@CANADIAN_TRUE@gcjh +@CANADIAN_FALSE@GCJH = \ +@CANADIAN_FALSE@$(MULTIBUILDTOP)../$(COMPPATH)/gcc/gcjh$(EXEEXT) GCJ_WITH_FLAGS = $(GCJ) --encoding=UTF-8 @@ -157,38 +169,52 @@ JAVAC = $(GCJ_WITH_FLAGS) -C GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@ WARNINGS = -W -Wall -AM_CXXFLAGS = -fno-rtti -fnon-call-exceptions -fdollars-in-identifiers @LIBGCJ_CXXFLAGS@ @X_CFLAGS@ $(WARNINGS) -D_GNU_SOURCE -DPREFIX="\"$(prefix)\"" +AM_CXXFLAGS = -fno-rtti -fnon-call-exceptions \ + -fdollars-in-identifiers \ + @LIBGCJ_CXXFLAGS@ @X_CFLAGS@ $(WARNINGS) -D_GNU_SOURCE \ + -DPREFIX="\"$(prefix)\"" -@USING_GCC_TRUE@AM_CFLAGS = @LIBGCJ_CFLAGS@ $(WARNINGS) -@USING_GCC_FALSE@AM_CFLAGS = @LIBGCJ_CFLAGS@ +@USING_GCC_TRUE@AM_CFLAGS = \ +@USING_GCC_TRUE@@LIBGCJ_CFLAGS@ $(WARNINGS) +@USING_GCC_FALSE@AM_CFLAGS = \ +@USING_GCC_FALSE@@LIBGCJ_CFLAGS@ JCFLAGS = -g JC1FLAGS = @LIBGCJ_JAVAFLAGS@ $(GCJFLAGS) LIBFFIINCS = @LIBFFIINCS@ -INCLUDES = -I$(top_srcdir) -Iinclude -I$(top_srcdir)/include $(GCINCS) $(THREADINCS) $(INCLTDL) $(GCC_UNWIND_INCLUDE) $(ZINCS) $(LIBFFIINCS) +INCLUDES = -I$(top_srcdir) -Iinclude -I$(top_srcdir)/include \ + $(GCINCS) $(THREADINCS) $(INCLTDL) \ + $(GCC_UNWIND_INCLUDE) $(ZINCS) $(LIBFFIINCS) nat_files = $(nat_source_files:.cc=.lo) x_nat_files = $(x_nat_source_files:.cc=.lo) c_files = $(c_source_files:.c=.lo) -javao_files = $(java_source_files:.java=.lo) $(built_java_source_files:.java=.lo) +javao_files = $(java_source_files:.java=.lo) \ + $(built_java_source_files:.java=.lo) x_javao_files = $(x_java_source_files:.java=.lo) -libgcj_la_SOURCES = prims.cc posix.cc jni.cc exception.cc resolve.cc defineclass.cc interpret.cc name-finder.cc $(nat_source_files) +libgcj_la_SOURCES = prims.cc posix.cc jni.cc exception.cc \ + resolve.cc defineclass.cc interpret.cc name-finder.cc \ + $(nat_source_files) -EXTRA_libgcj_la_SOURCES = boehm.cc nogc.cc posix-threads.cc no-threads.cc $(c_source_files) $(java_source_files) $(built_java_source_files) +EXTRA_libgcj_la_SOURCES = boehm.cc nogc.cc posix-threads.cc no-threads.cc \ + $(c_source_files) $(java_source_files) $(built_java_source_files) -libgcj_la_DEPENDENCIES = libgcj.jar $(javao_files) $(c_files) $(GCOBJS) $(THREADOBJS) $(LIBLTDL) +libgcj_la_DEPENDENCIES = libgcj.jar $(javao_files) \ + $(c_files) $(GCOBJS) $(THREADOBJS) $(LIBLTDL) -libgcj_la_LIBADD = $(javao_files) $(c_files) $(GCOBJS) $(THREADOBJS) +libgcj_la_LIBADD = $(javao_files) $(c_files) $(GCOBJS) \ + $(THREADOBJS) # Include THREADLIBS here to ensure that the correct version of # certain linuxthread functions get linked: -libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) $(THREADLIBS) $(LIBLTDL) -version-info `grep -v '^\#' $(srcdir)/libtool-version` +libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) $(THREADLIBS) $(LIBLTDL) \ + -version-info `grep -v '^\#' $(srcdir)/libtool-version` libgcj_la_LINK = $(LIBLINK) @@ -196,7 +222,9 @@ libgcjx_la_SOURCES = $(x_nat_source_files) EXTRA_libgcjx_la_SOURCES = $(x_java_source_files) libgcjx_la_DEPENDENCIES = libgcj.jar $(x_javao_files) libgcjx_la_LIBADD = $(x_javao_files) -libgcjx_la_LDFLAGS = @X_PRE_LIBS@ @X_LIBS@ -lX11 @X_EXTRA_LIBS@ -rpath $(toolexeclibdir) -version-info `grep -v '^\#' $(srcdir)/libtool-version` +libgcjx_la_LDFLAGS = @X_PRE_LIBS@ @X_LIBS@ -lX11 @X_EXTRA_LIBS@ \ + -rpath $(toolexeclibdir) \ + -version-info `grep -v '^\#' $(srcdir)/libtool-version` libgcjx_la_LINK = $(LIBLINK) @@ -205,7 +233,10 @@ CLEANFILES = tmp-list libgcj.jar SUFFIXES = .class .java .h -nat_headers = $(ordinary_java_source_files:.java=.h) $(built_java_source_files:.java=.h) java/io/ObjectOutputStream$$PutField.h java/io/ObjectInputStream$$GetField.h +nat_headers = $(ordinary_java_source_files:.java=.h) \ + $(built_java_source_files:.java=.h) \ + java/io/ObjectOutputStream$$PutField.h \ + java/io/ObjectInputStream$$GetField.h x_nat_headers = $(x_java_source_files:.java=.h) @@ -214,18 +245,22 @@ extra_headers = java/lang/Object.h java/lang/Class.h NM = nm -@NATIVE_TRUE@@MAINTAINER_MODE_TRUE@noinst_PROGRAMS = gen-from-JIS +@NATIVE_TRUE@@MAINTAINER_MODE_TRUE@noinst_PROGRAMS = \ +@NATIVE_TRUE@@MAINTAINER_MODE_TRUE@gen-from-JIS CONVERT_DIR = gnu/gcj/convert jv_convert_SOURCES = EXTRA_jv_convert_SOURCES = $(convert_source_files) -jv_convert_LDFLAGS = --main=gnu.gcj.convert.Convert -rpath $(toolexeclibdir) -shared-libgcc +jv_convert_LDFLAGS = --main=gnu.gcj.convert.Convert \ + -rpath $(toolexeclibdir) -shared-libgcc jv_convert_LINK = $(GCJLINK) -jv_convert_LDADD = $(convert_source_files:.java=.lo) libgcj.la $(GCLIBS) $(THREADLIBS) $(ZLIBS) -L$(here)/.libs +jv_convert_LDADD = $(convert_source_files:.java=.lo) libgcj.la \ + $(GCLIBS) $(THREADLIBS) $(ZLIBS) -L$(here)/.libs -jv_convert_DEPENDENCIES = $(convert_source_files:.java=.lo) $(GCDEPS) $(THREADDEPS) $(ZDEPS) libgcj.la libgcj.spec +jv_convert_DEPENDENCIES = $(convert_source_files:.java=.lo) \ + $(GCDEPS) $(THREADDEPS) $(ZDEPS) libgcj.la libgcj.spec gij_SOURCES = gij.cc @@ -234,50 +269,1078 @@ gij_LINK = $(GCJLINK) gij_LDADD = libgcj.la $(GCLIBS) $(THREADLIBS) $(ZLIBS) -L$(here)/.libs gij_DEPENDENCIES = $(GCDEPS) $(THREADDEPS) $(ZDEPS) libgcj.la libgcj.spec -gen_from_JIS_SOURCES = -EXTRA_gen_from_JIS_SOURCES = $(srcdir)/$(CONVERT_DIR)/gen-from-JIS.c $(srcdir)/$(CONVERT_DIR)/make-trie.c $(srcdir)/$(CONVERT_DIR)/JIS0201.h $(srcdir)/$(CONVERT_DIR)/JIS0208.h $(srcdir)/$(CONVERT_DIR)/JIS0212.h - -gen_from_JIS_LDADD = $(CONVERT_DIR)/gen-from-JIS.o $(CONVERT_DIR)/make-trie.o -gen_from_JIS_DEPENDENCIES = $(CONVERT_DIR)/gen-from-JIS.o $(CONVERT_DIR)/make-trie.o - - -convert_source_files = gnu/gcj/convert/BytesToUnicode.java gnu/gcj/convert/Convert.java gnu/gcj/convert/Input_8859_1.java gnu/gcj/convert/Input_ASCII.java gnu/gcj/convert/Input_EUCJIS.java gnu/gcj/convert/Input_JavaSrc.java gnu/gcj/convert/Input_SJIS.java gnu/gcj/convert/Input_UTF8.java gnu/gcj/convert/Input_iconv.java gnu/gcj/convert/IOConverter.java gnu/gcj/convert/Output_8859_1.java gnu/gcj/convert/Output_ASCII.java gnu/gcj/convert/Output_EUCJIS.java gnu/gcj/convert/Output_JavaSrc.java gnu/gcj/convert/Output_SJIS.java gnu/gcj/convert/Output_UTF8.java gnu/gcj/convert/Output_iconv.java gnu/gcj/convert/UnicodeToBytes.java +rmic_SOURCES = +EXTRA_rmic_SOURCES = $(rmi_java_source_files) +rmic_LDFLAGS = --main=gnu.java.rmi.rmic.RMIC \ + -rpath $(toolexeclibdir) -shared-libgcc +rmic_LINK = $(GCJLINK) +rmic_LDADD = libgcj.la $(GCLIBS) $(THREADLIBS) $(ZLIBS) -L$(here)/.libs +rmic_DEPENDENCIES = $(GCDEPS) $(THREADDEPS) $(ZDEPS) libgcj.la libgcj.spec -special_java_source_files = java/lang/Class.java java/lang/Object.java - -awt_java_source_files = gnu/awt/LightweightRedirector.java gnu/awt/j2d/AbstractGraphicsState.java gnu/awt/j2d/DirectRasterGraphics.java gnu/awt/j2d/Graphics2DImpl.java gnu/awt/j2d/IntegerGraphicsState.java gnu/awt/j2d/MappedRaster.java gnu/gcj/awt/BitMaskExtent.java gnu/gcj/awt/Buffers.java gnu/gcj/awt/ComponentDataBlitOp.java gnu/gcj/awt/GLightweightPeer.java gnu/java/beans/editors/ColorEditor.java gnu/java/beans/editors/FontEditor.java gnu/java/beans/editors/NativeBooleanEditor.java gnu/java/beans/editors/NativeByteEditor.java gnu/java/beans/editors/NativeDoubleEditor.java gnu/java/beans/editors/NativeFloatEditor.java gnu/java/beans/editors/NativeIntEditor.java gnu/java/beans/editors/NativeLongEditor.java gnu/java/beans/editors/NativeShortEditor.java gnu/java/beans/editors/StringEditor.java gnu/java/beans/info/ComponentBeanInfo.java gnu/java/beans/BeanInfoEmbryo.java gnu/java/beans/EmptyBeanInfo.java gnu/java/beans/ExplicitBeanInfo.java gnu/java/beans/IntrospectionIncubator.java java/applet/Applet.java java/applet/AppletStub.java java/applet/AppletContext.java java/applet/AudioClip.java java/awt/AWTError.java java/awt/AWTEvent.java java/awt/AWTEventMulticaster.java java/awt/AWTException.java java/awt/AWTPermission.java java/awt/ActiveEvent.java java/awt/Adjustable.java java/awt/BorderLayout.java java/awt/Button.java java/awt/Canvas.java java/awt/CardLayout.java java/awt/Checkbox.java java/awt/CheckboxGroup.java java/awt/CheckboxMenuItem.java java/awt/Choice.java java/awt/Color.java java/awt/Component.java java/awt/ComponentOrientation.java java/awt/Container.java java/awt/Cursor.java java/awt/Dialog.java java/awt/Dimension.java java/awt/Event.java java/awt/EventDispatchThread.java java/awt/EventQueue.java java/awt/FileDialog.java java/awt/FlowLayout.java java/awt/Font.java java/awt/FontMetrics.java java/awt/Frame.java java/awt/Graphics.java java/awt/Graphics2D.java java/awt/GraphicsConfiguration.java java/awt/GridBagConstraints.java java/awt/GridLayout.java java/awt/IllegalComponentStateException.java java/awt/Image.java java/awt/Insets.java java/awt/ItemSelectable.java java/awt/Label.java java/awt/LayoutManager.java java/awt/LayoutManager2.java java/awt/List.java java/awt/Menu.java java/awt/MenuBar.java java/awt/MenuComponent.java java/awt/MenuContainer.java java/awt/MenuItem.java java/awt/MenuShortcut.java java/awt/Paint.java java/awt/PaintContext.java java/awt/Panel.java java/awt/Point.java java/awt/Polygon.java java/awt/PopupMenu.java java/awt/Rectangle.java java/awt/RenderingHints.java java/awt/ScrollPane.java java/awt/Scrollbar.java java/awt/Shape.java java/awt/SystemColor.java java/awt/TextArea.java java/awt/TextComponent.java java/awt/TextField.java java/awt/Toolkit.java java/awt/Transparency.java java/awt/Window.java java/awt/color/ColorSpace.java java/awt/color/ICC_ColorSpace.java java/awt/color/ICC_Profile.java java/awt/datatransfer/Clipboard.java java/awt/event/AWTEventListener.java java/awt/event/ActionEvent.java java/awt/event/ActionListener.java java/awt/event/AdjustmentEvent.java java/awt/event/AdjustmentListener.java java/awt/event/ComponentAdapter.java java/awt/event/ComponentEvent.java java/awt/event/ComponentListener.java java/awt/event/ContainerAdapter.java java/awt/event/ContainerEvent.java java/awt/event/ContainerListener.java java/awt/event/FocusAdapter.java java/awt/event/FocusEvent.java java/awt/event/FocusListener.java java/awt/event/HierarchyBoundsAdapter.java java/awt/event/HierarchyBoundsListener.java java/awt/event/HierarchyEvent.java java/awt/event/HierarchyListener.java java/awt/event/InputEvent.java java/awt/event/InputMethodEvent.java java/awt/event/InputMethodListener.java java/awt/event/InvocationEvent.java java/awt/event/ItemEvent.java java/awt/event/ItemListener.java java/awt/event/KeyAdapter.java java/awt/event/KeyEvent.java java/awt/event/KeyListener.java java/awt/event/MouseAdapter.java java/awt/event/MouseEvent.java java/awt/event/MouseListener.java java/awt/event/MouseMotionAdapter.java java/awt/event/MouseMotionListener.java java/awt/event/PaintEvent.java java/awt/event/TextEvent.java java/awt/event/TextListener.java java/awt/event/WindowAdapter.java java/awt/event/WindowEvent.java java/awt/event/WindowListener.java java/awt/geom/AffineTransform.java java/awt/geom/Dimension2D.java java/awt/geom/Ellipse2D.java java/awt/geom/IllegalPathStateException.java java/awt/geom/Line2D.java java/awt/geom/NoninvertibleTransformException.java java/awt/geom/PathIterator.java java/awt/geom/Point2D.java java/awt/geom/Rectangle2D.java java/awt/geom/RectangularShape.java java/awt/geom/RoundRectangle2D.java java/awt/image/BufferedImage.java java/awt/image/ColorModel.java java/awt/image/ComponentColorModel.java java/awt/image/ComponentSampleModel.java java/awt/image/DataBuffer.java java/awt/image/DataBufferByte.java java/awt/image/DataBufferInt.java java/awt/image/DataBufferUShort.java java/awt/image/DirectColorModel.java java/awt/image/ImageConsumer.java java/awt/image/ImageObserver.java java/awt/image/ImageProducer.java java/awt/image/IndexColorModel.java java/awt/image/PackedColorModel.java java/awt/image/Raster.java java/awt/image/RasterOp.java java/awt/image/SampleModel.java java/awt/image/SinglePixelPackedSampleModel.java java/awt/image/WritableRaster.java java/awt/peer/ButtonPeer.java java/awt/peer/CanvasPeer.java java/awt/peer/CheckboxMenuItemPeer.java java/awt/peer/CheckboxPeer.java java/awt/peer/ChoicePeer.java java/awt/peer/ComponentPeer.java java/awt/peer/ContainerPeer.java java/awt/peer/DialogPeer.java java/awt/peer/FileDialogPeer.java java/awt/peer/FontPeer.java java/awt/peer/FramePeer.java java/awt/peer/LabelPeer.java java/awt/peer/LightweightPeer.java java/awt/peer/ListPeer.java java/awt/peer/MenuBarPeer.java java/awt/peer/MenuComponentPeer.java java/awt/peer/MenuItemPeer.java java/awt/peer/MenuPeer.java java/awt/peer/PanelPeer.java java/awt/peer/PopupMenuPeer.java java/awt/peer/ScrollPanePeer.java java/awt/peer/ScrollbarPeer.java java/awt/peer/TextAreaPeer.java java/awt/peer/TextComponentPeer.java java/awt/peer/TextFieldPeer.java java/awt/peer/WindowPeer.java java/beans/beancontext/BeanContext.java java/beans/beancontext/BeanContextChild.java java/beans/beancontext/BeanContextChildComponentProxy.java java/beans/beancontext/BeanContextChildSupport.java java/beans/beancontext/BeanContextContainerProxy.java java/beans/beancontext/BeanContextEvent.java java/beans/beancontext/BeanContextMembershipEvent.java java/beans/beancontext/BeanContextMembershipListener.java java/beans/beancontext/BeanContextProxy.java java/beans/beancontext/BeanContextServiceAvailableEvent.java java/beans/beancontext/BeanContextServiceProvider.java java/beans/beancontext/BeanContextServiceProviderBeanInfo.java java/beans/beancontext/BeanContextServiceRevokedEvent.java java/beans/beancontext/BeanContextServiceRevokedListener.java java/beans/beancontext/BeanContextServices.java java/beans/beancontext/BeanContextServicesListener.java java/beans/BeanDescriptor.java java/beans/BeanInfo.java java/beans/Beans.java java/beans/Customizer.java java/beans/DesignMode.java java/beans/EventSetDescriptor.java java/beans/FeatureDescriptor.java java/beans/IndexedPropertyDescriptor.java java/beans/IntrospectionException.java java/beans/Introspector.java java/beans/MethodDescriptor.java java/beans/ParameterDescriptor.java java/beans/PropertyChangeEvent.java java/beans/PropertyChangeListener.java java/beans/PropertyChangeSupport.java java/beans/PropertyDescriptor.java java/beans/PropertyEditor.java java/beans/PropertyEditorManager.java java/beans/PropertyEditorSupport.java java/beans/PropertyVetoException.java java/beans/SimpleBeanInfo.java java/beans/VetoableChangeListener.java java/beans/VetoableChangeSupport.java java/beans/Visibility.java +rmiregistry_SOURCES = +EXTRA_rmiregistry_SOURCES = $(rmi_java_source_files) +rmiregistry_LDFLAGS = --main=gnu.java.rmi.registry.RegistryImpl \ + -rpath $(toolexeclibdir) -shared-libgcc +rmiregistry_LINK = $(GCJLINK) +rmiregistry_LDADD = libgcj.la $(GCLIBS) $(THREADLIBS) $(ZLIBS) -L$(here)/.libs +rmiregistry_DEPENDENCIES = $(GCDEPS) $(THREADDEPS) $(ZDEPS) libgcj.la libgcj.spec -built_java_source_files = java/lang/ConcreteProcess.java gnu/classpath/Configuration.java +gen_from_JIS_SOURCES = +EXTRA_gen_from_JIS_SOURCES = $(srcdir)/$(CONVERT_DIR)/gen-from-JIS.c \ + $(srcdir)/$(CONVERT_DIR)/make-trie.c \ + $(srcdir)/$(CONVERT_DIR)/JIS0201.h \ + $(srcdir)/$(CONVERT_DIR)/JIS0208.h \ + $(srcdir)/$(CONVERT_DIR)/JIS0212.h +gen_from_JIS_LDADD = $(CONVERT_DIR)/gen-from-JIS.o $(CONVERT_DIR)/make-trie.o +gen_from_JIS_DEPENDENCIES = $(CONVERT_DIR)/gen-from-JIS.o \ + $(CONVERT_DIR)/make-trie.o + + +convert_source_files = \ +gnu/gcj/convert/BytesToUnicode.java \ +gnu/gcj/convert/Convert.java \ +gnu/gcj/convert/Input_8859_1.java \ +gnu/gcj/convert/Input_ASCII.java \ +gnu/gcj/convert/Input_EUCJIS.java \ +gnu/gcj/convert/Input_JavaSrc.java \ +gnu/gcj/convert/Input_SJIS.java \ +gnu/gcj/convert/Input_UTF8.java \ +gnu/gcj/convert/Input_iconv.java \ +gnu/gcj/convert/IOConverter.java \ +gnu/gcj/convert/Output_8859_1.java \ +gnu/gcj/convert/Output_ASCII.java \ +gnu/gcj/convert/Output_EUCJIS.java \ +gnu/gcj/convert/Output_JavaSrc.java \ +gnu/gcj/convert/Output_SJIS.java \ +gnu/gcj/convert/Output_UTF8.java \ +gnu/gcj/convert/Output_iconv.java \ +gnu/gcj/convert/UnicodeToBytes.java -core_java_source_files = java/lang/AbstractMethodError.java java/lang/ArithmeticException.java java/lang/ArrayIndexOutOfBoundsException.java java/lang/ArrayStoreException.java java/lang/Boolean.java java/lang/Byte.java java/lang/Character.java java/lang/ClassCastException.java java/lang/ClassCircularityError.java java/lang/ClassFormatError.java java/lang/ClassLoader.java java/lang/ClassNotFoundException.java java/lang/CloneNotSupportedException.java java/lang/Cloneable.java java/lang/Comparable.java java/lang/Compiler.java java/lang/Double.java java/lang/Error.java java/lang/Exception.java java/lang/ExceptionInInitializerError.java java/lang/Float.java java/lang/IllegalAccessError.java java/lang/IllegalAccessException.java java/lang/IllegalArgumentException.java java/lang/IllegalMonitorStateException.java java/lang/IllegalStateException.java java/lang/IllegalThreadStateException.java java/lang/IncompatibleClassChangeError.java java/lang/IndexOutOfBoundsException.java java/lang/InstantiationError.java java/lang/InstantiationException.java java/lang/Integer.java java/lang/InternalError.java java/lang/InterruptedException.java java/lang/LinkageError.java java/lang/Long.java java/lang/Math.java java/lang/NegativeArraySizeException.java java/lang/NoClassDefFoundError.java java/lang/NoSuchFieldError.java java/lang/NoSuchFieldException.java java/lang/NoSuchMethodError.java java/lang/NoSuchMethodException.java java/lang/NullPointerException.java java/lang/Number.java java/lang/NumberFormatException.java java/lang/OutOfMemoryError.java java/lang/Package.java java/lang/Process.java java/lang/Runnable.java java/lang/Runtime.java java/lang/RuntimeException.java java/lang/RuntimePermission.java java/lang/SecurityException.java java/lang/SecurityManager.java java/lang/Short.java java/lang/StackOverflowError.java java/lang/String.java java/lang/StringBuffer.java java/lang/StringIndexOutOfBoundsException.java java/lang/System.java java/lang/Thread.java java/lang/ThreadDeath.java java/lang/ThreadGroup.java java/lang/ThreadLocal.java java/lang/Throwable.java java/lang/UnknownError.java java/lang/UnsatisfiedLinkError.java java/lang/UnsupportedOperationException.java java/lang/VerifyError.java java/lang/VirtualMachineError.java java/lang/VMClassLoader.java java/lang/Void.java java/io/BufferedInputStream.java java/io/BufferedOutputStream.java java/io/BufferedReader.java java/io/BufferedWriter.java java/io/ByteArrayInputStream.java java/io/ByteArrayOutputStream.java java/io/CharArrayReader.java java/io/CharArrayWriter.java java/io/CharConversionException.java java/io/DataInput.java java/io/DataInputStream.java java/io/DataOutput.java java/io/DataOutputStream.java java/io/EOFException.java java/io/Externalizable.java java/io/File.java java/io/FileDescriptor.java java/io/FileFilter.java java/io/FileInputStream.java java/io/FileNotFoundException.java java/io/FileOutputStream.java java/io/FilePermission.java java/io/FileReader.java java/io/FileWriter.java java/io/FilenameFilter.java java/io/FilterInputStream.java java/io/FilterOutputStream.java java/io/FilterReader.java java/io/FilterWriter.java java/io/IOException.java java/io/InputStream.java java/io/InputStreamReader.java java/io/InterruptedIOException.java java/io/InvalidClassException.java java/io/InvalidObjectException.java java/io/LineNumberInputStream.java java/io/LineNumberReader.java java/io/NotActiveException.java java/io/NotSerializableException.java java/io/ObjectInput.java java/io/ObjectInputStream.java java/io/ObjectInputValidation.java java/io/ObjectOutput.java java/io/ObjectOutputStream.java java/io/ObjectStreamClass.java java/io/ObjectStreamConstants.java java/io/ObjectStreamException.java java/io/ObjectStreamField.java java/io/OptionalDataException.java java/io/OutputStream.java java/io/OutputStreamWriter.java java/io/PipedInputStream.java java/io/PipedOutputStream.java java/io/PipedReader.java java/io/PipedWriter.java java/io/PrintStream.java java/io/PrintWriter.java java/io/PushbackInputStream.java java/io/PushbackReader.java java/io/RandomAccessFile.java java/io/Reader.java java/io/SequenceInputStream.java java/io/Serializable.java java/io/SerializablePermission.java java/io/StreamCorruptedException.java java/io/StreamTokenizer.java java/io/StringBufferInputStream.java java/io/StringReader.java java/io/StringWriter.java java/io/SyncFailedException.java java/io/UTFDataFormatException.java java/io/UnsupportedEncodingException.java java/io/WriteAbortedException.java java/io/Writer.java java/util/AbstractCollection.java java/util/AbstractList.java java/util/AbstractMap.java java/util/AbstractSequentialList.java java/util/AbstractSet.java java/util/ArrayList.java java/util/Arrays.java java/util/BasicMapEntry.java java/util/BitSet.java java/util/Calendar.java java/util/Collection.java java/util/Collections.java java/util/Comparator.java java/util/ConcurrentModificationException.java java/util/Date.java java/util/Dictionary.java java/util/EmptyStackException.java java/util/Enumeration.java java/util/EventListener.java java/util/EventObject.java java/util/GregorianCalendar.java java/util/HashMap.java java/util/HashSet.java java/util/Hashtable.java java/util/IdentityHashMap.java java/util/Iterator.java java/util/LinkedList.java java/util/List.java java/util/ListIterator.java java/util/ListResourceBundle.java java/util/Locale.java java/util/Map.java java/util/MissingResourceException.java java/util/NoSuchElementException.java java/util/Observable.java java/util/Observer.java java/util/Properties.java java/util/PropertyPermission.java java/util/PropertyResourceBundle.java java/util/Random.java java/util/ResourceBundle.java java/util/Set.java java/util/SimpleTimeZone.java java/util/SortedMap.java java/util/SortedSet.java java/util/Stack.java java/util/StringTokenizer.java java/util/TimeZone.java java/util/Timer.java java/util/TimerTask.java java/util/TreeMap.java java/util/TreeSet.java java/util/TooManyListenersException.java java/util/Vector.java java/util/WeakHashMap.java +special_java_source_files = java/lang/Class.java java/lang/Object.java -ordinary_java_source_files = $(core_java_source_files) gnu/gcj/RawData.java gnu/gcj/io/DefaultMimeTypes.java gnu/gcj/io/MimeTypes.java gnu/gcj/io/SimpleSHSStream.java gnu/gcj/math/MPN.java gnu/gcj/protocol/file/Connection.java gnu/gcj/protocol/file/Handler.java gnu/gcj/protocol/http/Connection.java gnu/gcj/protocol/http/Handler.java gnu/gcj/protocol/jar/Connection.java gnu/gcj/protocol/jar/Handler.java gnu/gcj/runtime/FileDeleter.java gnu/gcj/runtime/FirstThread.java gnu/gcj/runtime/VMClassLoader.java gnu/gcj/text/BaseBreakIterator.java gnu/gcj/text/CharacterBreakIterator.java gnu/gcj/text/LineBreakIterator.java gnu/gcj/text/LocaleData_en.java gnu/gcj/text/LocaleData_en_US.java gnu/gcj/text/SentenceBreakIterator.java gnu/gcj/text/WordBreakIterator.java gnu/gcj/util/EnumerationChain.java gnu/java/io/ClassLoaderObjectInputStream.java gnu/java/io/NullOutputStream.java gnu/java/io/ObjectIdentityWrapper.java gnu/java/lang/ArrayHelper.java gnu/java/lang/ClassHelper.java gnu/java/lang/reflect/TypeSignature.java gnu/java/locale/Calendar.java gnu/java/locale/Calendar_de.java gnu/java/locale/Calendar_en.java gnu/java/locale/Calendar_nl.java gnu/java/security/provider/DefaultPolicy.java gnu/java/security/provider/Gnu.java gnu/java/security/provider/SHA.java gnu/java/security/provider/SHA1PRNG.java java/lang/ref/PhantomReference.java java/lang/ref/Reference.java java/lang/ref/ReferenceQueue.java java/lang/ref/SoftReference.java java/lang/ref/WeakReference.java java/lang/reflect/AccessibleObject.java java/lang/reflect/Array.java java/lang/reflect/Constructor.java java/lang/reflect/Field.java java/lang/reflect/InvocationTargetException.java java/lang/reflect/Member.java java/lang/reflect/Method.java java/lang/reflect/Modifier.java java/lang/reflect/ReflectPermission.java java/math/BigDecimal.java java/math/BigInteger.java java/net/BindException.java java/net/ConnectException.java java/net/ContentHandler.java java/net/ContentHandlerFactory.java java/net/DatagramPacket.java java/net/DatagramSocket.java java/net/DatagramSocketImpl.java java/net/FileNameMap.java java/net/HttpURLConnection.java java/net/InetAddress.java java/net/JarURLConnection.java java/net/MalformedURLException.java java/net/MulticastSocket.java java/net/NetPermission.java java/net/NoRouteToHostException.java java/net/PlainDatagramSocketImpl.java java/net/PlainSocketImpl.java java/net/ProtocolException.java java/net/ServerSocket.java java/net/Socket.java java/net/SocketException.java java/net/SocketImpl.java java/net/SocketImplFactory.java java/net/SocketOptions.java java/net/SocketPermission.java java/net/URL.java java/net/URLClassLoader.java java/net/URLConnection.java java/net/URLDecoder.java java/net/URLEncoder.java java/net/URLStreamHandler.java java/net/URLStreamHandlerFactory.java java/net/UnknownHostException.java java/net/UnknownServiceException.java java/security/AccessControlContext.java java/security/AccessControlException.java java/security/AccessController.java java/security/AlgorithmParameterGenerator.java java/security/AlgorithmParameters.java java/security/AlgorithmParameterGeneratorSpi.java java/security/AlgorithmParametersSpi.java java/security/AllPermission.java java/security/BasicPermission.java java/security/Certificate.java java/security/CodeSource.java java/security/DigestException.java java/security/DigestOutputStream.java java/security/DummyKeyPairGenerator.java java/security/DummySignature.java java/security/DigestInputStream.java java/security/DomainCombiner.java java/security/DummyMessageDigest.java java/security/GeneralSecurityException.java java/security/Guard.java java/security/GuardedObject.java java/security/Identity.java java/security/IdentityScope.java java/security/InvalidAlgorithmParameterException.java java/security/InvalidKeyException.java java/security/InvalidParameterException.java java/security/Key.java java/security/KeyFactorySpi.java java/security/KeyPairGenerator.java java/security/KeyStoreException.java java/security/KeyException.java java/security/KeyManagementException.java java/security/KeyPairGeneratorSpi.java java/security/KeyStoreSpi.java java/security/KeyFactory.java java/security/KeyPair.java java/security/KeyStore.java java/security/MessageDigest.java java/security/MessageDigestSpi.java java/security/NoSuchAlgorithmException.java java/security/NoSuchProviderException.java java/security/Permission.java java/security/Principal.java java/security/PrivilegedExceptionAction.java java/security/PublicKey.java java/security/PermissionCollection.java java/security/PrivateKey.java java/security/ProtectionDomain.java java/security/Permissions.java java/security/PrivilegedAction.java java/security/Provider.java java/security/Policy.java java/security/PrivilegedActionException.java java/security/ProviderException.java java/security/SecureClassLoader.java java/security/SecureRandomSpi.java java/security/SecurityPermission.java java/security/SignatureException.java java/security/SignedObject.java java/security/SecureRandom.java java/security/Security.java java/security/Signature.java java/security/SignatureSpi.java java/security/Signer.java java/security/UnrecoverableKeyException.java java/security/UnresolvedPermission.java java/security/acl/Acl.java java/security/acl/AclNotFoundException.java java/security/acl/LastOwnerException.java java/security/acl/Owner.java java/security/acl/AclEntry.java java/security/acl/Group.java java/security/acl/NotOwnerException.java java/security/acl/Permission.java java/security/cert/CRL.java java/security/cert/CRLException.java java/security/cert/Certificate.java java/security/cert/CertificateEncodingException.java java/security/cert/CertificateException.java java/security/cert/CertificateExpiredException.java java/security/cert/CertificateFactory.java java/security/cert/CertificateFactorySpi.java java/security/cert/CertificateNotYetValidException.java java/security/cert/CertificateParsingException.java java/security/cert/X509CRL.java java/security/cert/X509CRLEntry.java java/security/cert/X509Certificate.java java/security/cert/X509Extension.java java/security/interfaces/DSAKey.java java/security/interfaces/DSAKeyPairGenerator.java java/security/interfaces/DSAParams.java java/security/interfaces/DSAPrivateKey.java java/security/interfaces/DSAPublicKey.java java/security/interfaces/RSAKey.java java/security/interfaces/RSAPrivateCrtKey.java java/security/interfaces/RSAPrivateKey.java java/security/interfaces/RSAPublicKey.java java/security/spec/AlgorithmParameterSpec.java java/security/spec/DSAParameterSpec.java java/security/spec/DSAPrivateKeySpec.java java/security/spec/DSAPublicKeySpec.java java/security/spec/EncodedKeySpec.java java/security/spec/InvalidKeySpecException.java java/security/spec/InvalidParameterSpecException.java java/security/spec/KeySpec.java java/security/spec/PKCS8EncodedKeySpec.java java/security/spec/RSAKeyGenParameterSpec.java java/security/spec/RSAPrivateCrtKeySpec.java java/security/spec/RSAPrivateKeySpec.java java/security/spec/RSAPublicKeySpec.java java/security/spec/X509EncodedKeySpec.java java/sql/Array.java java/sql/BatchUpdateException.java java/sql/Blob.java java/sql/CallableStatement.java java/sql/Clob.java java/sql/Connection.java java/sql/DataTruncation.java java/sql/DatabaseMetaData.java java/sql/Date.java java/sql/Driver.java java/sql/DriverManager.java java/sql/DriverPropertyInfo.java java/sql/PreparedStatement.java java/sql/Ref.java java/sql/ResultSet.java java/sql/ResultSetMetaData.java java/sql/SQLData.java java/sql/SQLException.java java/sql/SQLInput.java java/sql/SQLOutput.java java/sql/SQLWarning.java java/sql/Statement.java java/sql/Struct.java java/sql/Time.java java/sql/Timestamp.java java/sql/Types.java java/text/BreakIterator.java java/text/CharacterIterator.java java/text/ChoiceFormat.java java/text/CollationElementIterator.java java/text/CollationKey.java java/text/Collator.java java/text/DateFormat.java java/text/DateFormatSymbols.java java/text/DecimalFormat.java java/text/DecimalFormatSymbols.java java/text/FieldPosition.java java/text/Format.java java/text/MessageFormat.java java/text/NumberFormat.java java/text/ParseException.java java/text/ParsePosition.java java/text/RuleBasedCollator.java java/text/SimpleDateFormat.java java/text/StringCharacterIterator.java java/util/jar/Attributes.java java/util/jar/JarEntry.java java/util/jar/JarException.java java/util/jar/JarFile.java java/util/jar/JarInputStream.java java/util/jar/JarOutputStream.java java/util/jar/Manifest.java java/util/zip/Adler32.java java/util/zip/CRC32.java java/util/zip/CheckedInputStream.java java/util/zip/CheckedOutputStream.java java/util/zip/Checksum.java java/util/zip/DataFormatException.java java/util/zip/Deflater.java java/util/zip/DeflaterOutputStream.java java/util/zip/GZIPInputStream.java java/util/zip/GZIPOutputStream.java java/util/zip/Inflater.java java/util/zip/InflaterInputStream.java java/util/zip/ZipConstants.java java/util/zip/ZipEntry.java java/util/zip/ZipException.java java/util/zip/ZipFile.java java/util/zip/ZipInputStream.java java/util/zip/ZipOutputStream.java org/w3c/dom/Attr.java org/w3c/dom/CDATASection.java org/w3c/dom/CharacterData.java org/w3c/dom/Comment.java org/w3c/dom/DOMException.java org/w3c/dom/DOMImplementation.java org/w3c/dom/Document.java org/w3c/dom/DocumentFragment.java org/w3c/dom/DocumentType.java org/w3c/dom/Element.java org/w3c/dom/Entity.java org/w3c/dom/EntityReference.java org/w3c/dom/NamedNodeMap.java org/w3c/dom/Node.java org/w3c/dom/NodeList.java org/w3c/dom/Notation.java org/w3c/dom/ProcessingInstruction.java org/w3c/dom/Text.java org/w3c/dom/ranges/DocumentRange.java org/w3c/dom/ranges/Range.java org/w3c/dom/ranges/RangeException.java org/w3c/dom/traversal/DocumentTraversal.java org/w3c/dom/traversal/NodeFilter.java org/w3c/dom/traversal/NodeIterator.java org/w3c/dom/traversal/TreeWalker.java org/xml/sax/ext/DeclHandler.java org/xml/sax/ext/LexicalHandler.java org/xml/sax/helpers/AttributeListImpl.java org/xml/sax/helpers/AttributesImpl.java org/xml/sax/helpers/DefaultHandler.java org/xml/sax/helpers/LocatorImpl.java org/xml/sax/helpers/NamespaceSupport.java org/xml/sax/helpers/ParserAdapter.java org/xml/sax/helpers/ParserFactory.java org/xml/sax/helpers/XMLFilterImpl.java org/xml/sax/helpers/XMLReaderAdapter.java org/xml/sax/helpers/XMLReaderFactory.java org/xml/sax/AttributeList.java org/xml/sax/Attributes.java org/xml/sax/ContentHandler.java org/xml/sax/DTDHandler.java org/xml/sax/DocumentHandler.java org/xml/sax/EntityResolver.java org/xml/sax/ErrorHandler.java org/xml/sax/HandlerBase.java org/xml/sax/InputSource.java org/xml/sax/Locator.java org/xml/sax/Parser.java org/xml/sax/SAXException.java org/xml/sax/SAXNotRecognizedException.java org/xml/sax/SAXNotSupportedException.java org/xml/sax/SAXParseException.java org/xml/sax/XMLFilter.java org/xml/sax/XMLReader.java $(awt_java_source_files) $(convert_source_files) +awt_java_source_files = \ +gnu/awt/LightweightRedirector.java \ +gnu/awt/j2d/AbstractGraphicsState.java \ +gnu/awt/j2d/DirectRasterGraphics.java \ +gnu/awt/j2d/Graphics2DImpl.java \ +gnu/awt/j2d/IntegerGraphicsState.java \ +gnu/awt/j2d/MappedRaster.java \ +gnu/gcj/awt/BitMaskExtent.java \ +gnu/gcj/awt/Buffers.java \ +gnu/gcj/awt/ComponentDataBlitOp.java \ +gnu/gcj/awt/GLightweightPeer.java \ +gnu/java/beans/editors/ColorEditor.java \ +gnu/java/beans/editors/FontEditor.java \ +gnu/java/beans/editors/NativeBooleanEditor.java \ +gnu/java/beans/editors/NativeByteEditor.java \ +gnu/java/beans/editors/NativeDoubleEditor.java \ +gnu/java/beans/editors/NativeFloatEditor.java \ +gnu/java/beans/editors/NativeIntEditor.java \ +gnu/java/beans/editors/NativeLongEditor.java \ +gnu/java/beans/editors/NativeShortEditor.java \ +gnu/java/beans/editors/StringEditor.java \ +gnu/java/beans/info/ComponentBeanInfo.java \ +gnu/java/beans/BeanInfoEmbryo.java \ +gnu/java/beans/EmptyBeanInfo.java \ +gnu/java/beans/ExplicitBeanInfo.java \ +gnu/java/beans/IntrospectionIncubator.java \ +java/applet/Applet.java \ +java/applet/AppletStub.java \ +java/applet/AppletContext.java \ +java/applet/AudioClip.java \ +java/awt/AWTError.java \ +java/awt/AWTEvent.java \ +java/awt/AWTEventMulticaster.java \ +java/awt/AWTException.java \ +java/awt/AWTPermission.java \ +java/awt/ActiveEvent.java \ +java/awt/Adjustable.java \ +java/awt/BorderLayout.java \ +java/awt/Button.java \ +java/awt/Canvas.java \ +java/awt/CardLayout.java \ +java/awt/Checkbox.java \ +java/awt/CheckboxGroup.java \ +java/awt/CheckboxMenuItem.java \ +java/awt/Choice.java \ +java/awt/Color.java \ +java/awt/Component.java \ +java/awt/ComponentOrientation.java \ +java/awt/Container.java \ +java/awt/Cursor.java \ +java/awt/Dialog.java \ +java/awt/Dimension.java \ +java/awt/Event.java \ +java/awt/EventDispatchThread.java \ +java/awt/EventQueue.java \ +java/awt/FileDialog.java \ +java/awt/FlowLayout.java \ +java/awt/Font.java \ +java/awt/FontMetrics.java \ +java/awt/Frame.java \ +java/awt/Graphics.java \ +java/awt/Graphics2D.java \ +java/awt/GraphicsConfiguration.java \ +java/awt/GridBagConstraints.java \ +java/awt/GridLayout.java \ +java/awt/IllegalComponentStateException.java \ +java/awt/Image.java \ +java/awt/Insets.java \ +java/awt/ItemSelectable.java \ +java/awt/Label.java \ +java/awt/LayoutManager.java \ +java/awt/LayoutManager2.java \ +java/awt/List.java \ +java/awt/Menu.java \ +java/awt/MenuBar.java \ +java/awt/MenuComponent.java \ +java/awt/MenuContainer.java \ +java/awt/MenuItem.java \ +java/awt/MenuShortcut.java \ +java/awt/Paint.java \ +java/awt/PaintContext.java \ +java/awt/Panel.java \ +java/awt/Point.java \ +java/awt/Polygon.java \ +java/awt/PopupMenu.java \ +java/awt/Rectangle.java \ +java/awt/RenderingHints.java \ +java/awt/ScrollPane.java \ +java/awt/Scrollbar.java \ +java/awt/Shape.java \ +java/awt/SystemColor.java \ +java/awt/TextArea.java \ +java/awt/TextComponent.java \ +java/awt/TextField.java \ +java/awt/Toolkit.java \ +java/awt/Transparency.java \ +java/awt/Window.java \ +java/awt/color/ColorSpace.java \ +java/awt/color/ICC_ColorSpace.java \ +java/awt/color/ICC_Profile.java \ +java/awt/datatransfer/Clipboard.java \ +java/awt/event/AWTEventListener.java \ +java/awt/event/ActionEvent.java \ +java/awt/event/ActionListener.java \ +java/awt/event/AdjustmentEvent.java \ +java/awt/event/AdjustmentListener.java \ +java/awt/event/ComponentAdapter.java \ +java/awt/event/ComponentEvent.java \ +java/awt/event/ComponentListener.java \ +java/awt/event/ContainerAdapter.java \ +java/awt/event/ContainerEvent.java \ +java/awt/event/ContainerListener.java \ +java/awt/event/FocusAdapter.java \ +java/awt/event/FocusEvent.java \ +java/awt/event/FocusListener.java \ +java/awt/event/HierarchyBoundsAdapter.java \ +java/awt/event/HierarchyBoundsListener.java \ +java/awt/event/HierarchyEvent.java \ +java/awt/event/HierarchyListener.java \ +java/awt/event/InputEvent.java \ +java/awt/event/InputMethodEvent.java \ +java/awt/event/InputMethodListener.java \ +java/awt/event/InvocationEvent.java \ +java/awt/event/ItemEvent.java \ +java/awt/event/ItemListener.java \ +java/awt/event/KeyAdapter.java \ +java/awt/event/KeyEvent.java \ +java/awt/event/KeyListener.java \ +java/awt/event/MouseAdapter.java \ +java/awt/event/MouseEvent.java \ +java/awt/event/MouseListener.java \ +java/awt/event/MouseMotionAdapter.java \ +java/awt/event/MouseMotionListener.java \ +java/awt/event/PaintEvent.java \ +java/awt/event/TextEvent.java \ +java/awt/event/TextListener.java \ +java/awt/event/WindowAdapter.java \ +java/awt/event/WindowEvent.java \ +java/awt/event/WindowListener.java \ +java/awt/geom/AffineTransform.java \ +java/awt/geom/Dimension2D.java \ +java/awt/geom/Ellipse2D.java \ +java/awt/geom/IllegalPathStateException.java \ +java/awt/geom/Line2D.java \ +java/awt/geom/NoninvertibleTransformException.java \ +java/awt/geom/PathIterator.java \ +java/awt/geom/Point2D.java \ +java/awt/geom/Rectangle2D.java \ +java/awt/geom/RectangularShape.java \ +java/awt/geom/RoundRectangle2D.java \ +java/awt/image/BufferedImage.java \ +java/awt/image/ColorModel.java \ +java/awt/image/ComponentColorModel.java \ +java/awt/image/ComponentSampleModel.java \ +java/awt/image/DataBuffer.java \ +java/awt/image/DataBufferByte.java \ +java/awt/image/DataBufferInt.java \ +java/awt/image/DataBufferUShort.java \ +java/awt/image/DirectColorModel.java \ +java/awt/image/ImageConsumer.java \ +java/awt/image/ImageObserver.java \ +java/awt/image/ImageProducer.java \ +java/awt/image/IndexColorModel.java \ +java/awt/image/PackedColorModel.java \ +java/awt/image/Raster.java \ +java/awt/image/RasterOp.java \ +java/awt/image/SampleModel.java \ +java/awt/image/SinglePixelPackedSampleModel.java \ +java/awt/image/WritableRaster.java \ +java/awt/peer/ButtonPeer.java \ +java/awt/peer/CanvasPeer.java \ +java/awt/peer/CheckboxMenuItemPeer.java \ +java/awt/peer/CheckboxPeer.java \ +java/awt/peer/ChoicePeer.java \ +java/awt/peer/ComponentPeer.java \ +java/awt/peer/ContainerPeer.java \ +java/awt/peer/DialogPeer.java \ +java/awt/peer/FileDialogPeer.java \ +java/awt/peer/FontPeer.java \ +java/awt/peer/FramePeer.java \ +java/awt/peer/LabelPeer.java \ +java/awt/peer/LightweightPeer.java \ +java/awt/peer/ListPeer.java \ +java/awt/peer/MenuBarPeer.java \ +java/awt/peer/MenuComponentPeer.java \ +java/awt/peer/MenuItemPeer.java \ +java/awt/peer/MenuPeer.java \ +java/awt/peer/PanelPeer.java \ +java/awt/peer/PopupMenuPeer.java \ +java/awt/peer/ScrollPanePeer.java \ +java/awt/peer/ScrollbarPeer.java \ +java/awt/peer/TextAreaPeer.java \ +java/awt/peer/TextComponentPeer.java \ +java/awt/peer/TextFieldPeer.java \ +java/awt/peer/WindowPeer.java \ +java/beans/beancontext/BeanContext.java \ +java/beans/beancontext/BeanContextChild.java \ +java/beans/beancontext/BeanContextChildComponentProxy.java \ +java/beans/beancontext/BeanContextChildSupport.java \ +java/beans/beancontext/BeanContextContainerProxy.java \ +java/beans/beancontext/BeanContextEvent.java \ +java/beans/beancontext/BeanContextMembershipEvent.java \ +java/beans/beancontext/BeanContextMembershipListener.java \ +java/beans/beancontext/BeanContextProxy.java \ +java/beans/beancontext/BeanContextServiceAvailableEvent.java \ +java/beans/beancontext/BeanContextServiceProvider.java \ +java/beans/beancontext/BeanContextServiceProviderBeanInfo.java \ +java/beans/beancontext/BeanContextServiceRevokedEvent.java \ +java/beans/beancontext/BeanContextServiceRevokedListener.java \ +java/beans/beancontext/BeanContextServices.java \ +java/beans/beancontext/BeanContextServicesListener.java \ +java/beans/BeanDescriptor.java \ +java/beans/BeanInfo.java \ +java/beans/Beans.java \ +java/beans/Customizer.java \ +java/beans/DesignMode.java \ +java/beans/EventSetDescriptor.java \ +java/beans/FeatureDescriptor.java \ +java/beans/IndexedPropertyDescriptor.java \ +java/beans/IntrospectionException.java \ +java/beans/Introspector.java \ +java/beans/MethodDescriptor.java \ +java/beans/ParameterDescriptor.java \ +java/beans/PropertyChangeEvent.java \ +java/beans/PropertyChangeListener.java \ +java/beans/PropertyChangeSupport.java \ +java/beans/PropertyDescriptor.java \ +java/beans/PropertyEditor.java \ +java/beans/PropertyEditorManager.java \ +java/beans/PropertyEditorSupport.java \ +java/beans/PropertyVetoException.java \ +java/beans/SimpleBeanInfo.java \ +java/beans/VetoableChangeListener.java \ +java/beans/VetoableChangeSupport.java \ +java/beans/Visibility.java + + +rmi_java_source_files = \ +java/rmi/activation/Activatable.java \ +java/rmi/activation/ActivateFailedException.java \ +java/rmi/activation/ActivationDesc.java \ +java/rmi/activation/ActivationException.java \ +java/rmi/activation/ActivationGroup.java \ +java/rmi/activation/ActivationGroupDesc.java \ +java/rmi/activation/ActivationGroupID.java \ +java/rmi/activation/ActivationID.java \ +java/rmi/activation/ActivationInstantiator.java \ +java/rmi/activation/ActivationMonitor.java \ +java/rmi/activation/ActivationSystem.java \ +java/rmi/activation/Activator.java \ +java/rmi/activation/UnknownGroupException.java \ +java/rmi/activation/UnknownObjectException.java \ +java/rmi/AccessException.java \ +java/rmi/AlreadyBoundException.java \ +java/rmi/ConnectException.java \ +java/rmi/ConnectIOException.java \ +java/rmi/MarshalException.java \ +java/rmi/MarshalledObject.java \ +java/rmi/Naming.java \ +java/rmi/NoSuchObjectException.java \ +java/rmi/NotBoundException.java \ +java/rmi/RMISecurityException.java \ +java/rmi/RMISecurityManager.java \ +java/rmi/Remote.java \ +java/rmi/RemoteException.java \ +java/rmi/ServerError.java \ +java/rmi/ServerException.java \ +java/rmi/ServerRuntimeException.java \ +java/rmi/StubNotFoundException.java \ +java/rmi/UnexpectedException.java \ +java/rmi/UnknownHostException.java \ +java/rmi/UnmarshalException.java \ +java/rmi/dgc/DGC.java \ +java/rmi/dgc/Lease.java \ +java/rmi/dgc/VMID.java \ +java/rmi/registry/LocateRegistry.java \ +java/rmi/registry/Registry.java \ +java/rmi/registry/RegistryHandler.java \ +java/rmi/server/ExportException.java \ +java/rmi/server/LoaderHandler.java \ +java/rmi/server/LogStream.java \ +java/rmi/server/ObjID.java \ +java/rmi/server/Operation.java \ +java/rmi/server/RMIClassLoader.java \ +java/rmi/server/RMIClientSocketFactory.java \ +java/rmi/server/RMIFailureHandler.java \ +java/rmi/server/RMIServerSocketFactory.java \ +java/rmi/server/RMISocketFactory.java \ +java/rmi/server/RemoteCall.java \ +java/rmi/server/RemoteObject.java \ +java/rmi/server/RemoteRef.java \ +java/rmi/server/RemoteServer.java \ +java/rmi/server/RemoteStub.java \ +java/rmi/server/ServerCloneException.java \ +java/rmi/server/ServerNotActiveException.java \ +java/rmi/server/ServerRef.java \ +java/rmi/server/Skeleton.java \ +java/rmi/server/SkeletonMismatchException.java \ +java/rmi/server/SkeletonNotFoundException.java \ +java/rmi/server/SocketSecurityException.java \ +java/rmi/server/UID.java \ +java/rmi/server/UnicastRemoteObject.java \ +java/rmi/server/Unreferenced.java \ +gnu/java/rmi/dgc/DGCImpl.java \ +gnu/java/rmi/dgc/DGCImpl_Skel.java \ +gnu/java/rmi/dgc/DGCImpl_Stub.java \ +gnu/java/rmi/registry/RegistryImpl.java \ +gnu/java/rmi/registry/RegistryImpl_Skel.java \ +gnu/java/rmi/registry/RegistryImpl_Stub.java \ +gnu/java/rmi/rmic/RMIC.java \ +gnu/java/rmi/rmic/TabbedWriter.java \ +gnu/java/rmi/server/ProtocolConstants.java \ +gnu/java/rmi/server/RMIDefaultSocketFactory.java \ +gnu/java/rmi/server/RMIHashes.java \ +gnu/java/rmi/server/RMIObjectInputStream.java \ +gnu/java/rmi/server/RMIObjectOutputStream.java \ +gnu/java/rmi/server/UnicastConnection.java \ +gnu/java/rmi/server/UnicastConnectionManager.java \ +gnu/java/rmi/server/UnicastRef.java \ +gnu/java/rmi/server/UnicastRemoteCall.java \ +gnu/java/rmi/server/UnicastRemoteStub.java \ +gnu/java/rmi/server/UnicastServer.java \ +gnu/java/rmi/server/UnicastServerRef.java + + +built_java_source_files = java/lang/ConcreteProcess.java \ + gnu/classpath/Configuration.java + + +core_java_source_files = \ +java/lang/AbstractMethodError.java \ +java/lang/ArithmeticException.java \ +java/lang/ArrayIndexOutOfBoundsException.java \ +java/lang/ArrayStoreException.java \ +java/lang/Boolean.java \ +java/lang/Byte.java \ +java/lang/Character.java \ +java/lang/ClassCastException.java \ +java/lang/ClassCircularityError.java \ +java/lang/ClassFormatError.java \ +java/lang/ClassLoader.java \ +java/lang/ClassNotFoundException.java \ +java/lang/CloneNotSupportedException.java \ +java/lang/Cloneable.java \ +java/lang/Comparable.java \ +java/lang/Compiler.java \ +java/lang/Double.java \ +java/lang/Error.java \ +java/lang/Exception.java \ +java/lang/ExceptionInInitializerError.java \ +java/lang/Float.java \ +java/lang/IllegalAccessError.java \ +java/lang/IllegalAccessException.java \ +java/lang/IllegalArgumentException.java \ +java/lang/IllegalMonitorStateException.java \ +java/lang/IllegalStateException.java \ +java/lang/IllegalThreadStateException.java \ +java/lang/IncompatibleClassChangeError.java \ +java/lang/IndexOutOfBoundsException.java \ +java/lang/InstantiationError.java \ +java/lang/InstantiationException.java \ +java/lang/Integer.java \ +java/lang/InternalError.java \ +java/lang/InterruptedException.java \ +java/lang/LinkageError.java \ +java/lang/Long.java \ +java/lang/Math.java \ +java/lang/NegativeArraySizeException.java \ +java/lang/NoClassDefFoundError.java \ +java/lang/NoSuchFieldError.java \ +java/lang/NoSuchFieldException.java \ +java/lang/NoSuchMethodError.java \ +java/lang/NoSuchMethodException.java \ +java/lang/NullPointerException.java \ +java/lang/Number.java \ +java/lang/NumberFormatException.java \ +java/lang/OutOfMemoryError.java \ +java/lang/Package.java \ +java/lang/Process.java \ +java/lang/Runnable.java \ +java/lang/Runtime.java \ +java/lang/RuntimeException.java \ +java/lang/RuntimePermission.java \ +java/lang/SecurityException.java \ +java/lang/SecurityManager.java \ +java/lang/Short.java \ +java/lang/StackOverflowError.java \ +java/lang/String.java \ +java/lang/StringBuffer.java \ +java/lang/StringIndexOutOfBoundsException.java \ +java/lang/System.java \ +java/lang/Thread.java \ +java/lang/ThreadDeath.java \ +java/lang/ThreadGroup.java \ +java/lang/ThreadLocal.java \ +java/lang/Throwable.java \ +java/lang/UnknownError.java \ +java/lang/UnsatisfiedLinkError.java \ +java/lang/UnsupportedOperationException.java \ +java/lang/VerifyError.java \ +java/lang/VirtualMachineError.java \ +java/lang/VMClassLoader.java \ +java/lang/Void.java \ +java/io/BufferedInputStream.java \ +java/io/BufferedOutputStream.java \ +java/io/BufferedReader.java \ +java/io/BufferedWriter.java \ +java/io/ByteArrayInputStream.java \ +java/io/ByteArrayOutputStream.java \ +java/io/CharArrayReader.java \ +java/io/CharArrayWriter.java \ +java/io/CharConversionException.java \ +java/io/DataInput.java \ +java/io/DataInputStream.java \ +java/io/DataOutput.java \ +java/io/DataOutputStream.java \ +java/io/EOFException.java \ +java/io/Externalizable.java \ +java/io/File.java \ +java/io/FileDescriptor.java \ +java/io/FileFilter.java \ +java/io/FileInputStream.java \ +java/io/FileNotFoundException.java \ +java/io/FileOutputStream.java \ +java/io/FilePermission.java \ +java/io/FileReader.java \ +java/io/FileWriter.java \ +java/io/FilenameFilter.java \ +java/io/FilterInputStream.java \ +java/io/FilterOutputStream.java \ +java/io/FilterReader.java \ +java/io/FilterWriter.java \ +java/io/IOException.java \ +java/io/InputStream.java \ +java/io/InputStreamReader.java \ +java/io/InterruptedIOException.java \ +java/io/InvalidClassException.java \ +java/io/InvalidObjectException.java \ +java/io/LineNumberInputStream.java \ +java/io/LineNumberReader.java \ +java/io/NotActiveException.java \ +java/io/NotSerializableException.java \ +java/io/ObjectInput.java \ +java/io/ObjectInputStream.java \ +java/io/ObjectInputValidation.java \ +java/io/ObjectOutput.java \ +java/io/ObjectOutputStream.java \ +java/io/ObjectStreamClass.java \ +java/io/ObjectStreamConstants.java \ +java/io/ObjectStreamException.java \ +java/io/ObjectStreamField.java \ +java/io/OptionalDataException.java \ +java/io/OutputStream.java \ +java/io/OutputStreamWriter.java \ +java/io/PipedInputStream.java \ +java/io/PipedOutputStream.java \ +java/io/PipedReader.java \ +java/io/PipedWriter.java \ +java/io/PrintStream.java \ +java/io/PrintWriter.java \ +java/io/PushbackInputStream.java \ +java/io/PushbackReader.java \ +java/io/RandomAccessFile.java \ +java/io/Reader.java \ +java/io/SequenceInputStream.java \ +java/io/Serializable.java \ +java/io/SerializablePermission.java \ +java/io/StreamCorruptedException.java \ +java/io/StreamTokenizer.java \ +java/io/StringBufferInputStream.java \ +java/io/StringReader.java \ +java/io/StringWriter.java \ +java/io/SyncFailedException.java \ +java/io/UTFDataFormatException.java \ +java/io/UnsupportedEncodingException.java \ +java/io/WriteAbortedException.java \ +java/io/Writer.java \ +java/util/AbstractCollection.java \ +java/util/AbstractList.java \ +java/util/AbstractMap.java \ +java/util/AbstractSequentialList.java \ +java/util/AbstractSet.java \ +java/util/ArrayList.java \ +java/util/Arrays.java \ +java/util/BasicMapEntry.java \ +java/util/BitSet.java \ +java/util/Calendar.java \ +java/util/Collection.java \ +java/util/Collections.java \ +java/util/Comparator.java \ +java/util/ConcurrentModificationException.java \ +java/util/Date.java \ +java/util/Dictionary.java \ +java/util/EmptyStackException.java \ +java/util/Enumeration.java \ +java/util/EventListener.java \ +java/util/EventObject.java \ +java/util/GregorianCalendar.java \ +java/util/HashMap.java \ +java/util/HashSet.java \ +java/util/Hashtable.java \ +java/util/IdentityHashMap.java \ +java/util/Iterator.java \ +java/util/LinkedList.java \ +java/util/List.java \ +java/util/ListIterator.java \ +java/util/ListResourceBundle.java \ +java/util/Locale.java \ +java/util/Map.java \ +java/util/MissingResourceException.java \ +java/util/NoSuchElementException.java \ +java/util/Observable.java \ +java/util/Observer.java \ +java/util/Properties.java \ +java/util/PropertyPermission.java \ +java/util/PropertyResourceBundle.java \ +java/util/Random.java \ +java/util/ResourceBundle.java \ +java/util/Set.java \ +java/util/SimpleTimeZone.java \ +java/util/SortedMap.java \ +java/util/SortedSet.java \ +java/util/Stack.java \ +java/util/StringTokenizer.java \ +java/util/TimeZone.java \ +java/util/Timer.java \ +java/util/TimerTask.java \ +java/util/TreeMap.java \ +java/util/TreeSet.java \ +java/util/TooManyListenersException.java \ +java/util/Vector.java \ +java/util/WeakHashMap.java + + +ordinary_java_source_files = $(core_java_source_files) \ +gnu/gcj/RawData.java \ +gnu/gcj/io/DefaultMimeTypes.java \ +gnu/gcj/io/MimeTypes.java \ +gnu/gcj/io/SimpleSHSStream.java \ +gnu/gcj/math/MPN.java \ +gnu/gcj/protocol/file/Connection.java \ +gnu/gcj/protocol/file/Handler.java \ +gnu/gcj/protocol/http/Connection.java \ +gnu/gcj/protocol/http/Handler.java \ +gnu/gcj/protocol/jar/Connection.java \ +gnu/gcj/protocol/jar/Handler.java \ +gnu/gcj/runtime/FileDeleter.java \ +gnu/gcj/runtime/FirstThread.java \ +gnu/gcj/runtime/VMClassLoader.java \ +gnu/gcj/text/BaseBreakIterator.java \ +gnu/gcj/text/CharacterBreakIterator.java \ +gnu/gcj/text/LineBreakIterator.java \ +gnu/gcj/text/LocaleData_en.java \ +gnu/gcj/text/LocaleData_en_US.java \ +gnu/gcj/text/SentenceBreakIterator.java \ +gnu/gcj/text/WordBreakIterator.java \ +gnu/gcj/util/EnumerationChain.java \ +gnu/java/io/ClassLoaderObjectInputStream.java \ +gnu/java/io/NullOutputStream.java \ +gnu/java/io/ObjectIdentityWrapper.java \ +gnu/java/lang/ArrayHelper.java \ +gnu/java/lang/ClassHelper.java \ +gnu/java/lang/reflect/TypeSignature.java \ +gnu/java/locale/Calendar.java \ +gnu/java/locale/Calendar_de.java \ +gnu/java/locale/Calendar_en.java \ +gnu/java/locale/Calendar_nl.java \ +gnu/java/security/provider/DefaultPolicy.java \ +gnu/java/security/provider/Gnu.java \ +gnu/java/security/provider/SHA.java \ +gnu/java/security/provider/SHA1PRNG.java \ +java/lang/ref/PhantomReference.java \ +java/lang/ref/Reference.java \ +java/lang/ref/ReferenceQueue.java \ +java/lang/ref/SoftReference.java \ +java/lang/ref/WeakReference.java \ +java/lang/reflect/AccessibleObject.java \ +java/lang/reflect/Array.java \ +java/lang/reflect/Constructor.java \ +java/lang/reflect/Field.java \ +java/lang/reflect/InvocationTargetException.java \ +java/lang/reflect/Member.java \ +java/lang/reflect/Method.java \ +java/lang/reflect/Modifier.java \ +java/lang/reflect/ReflectPermission.java \ +java/math/BigDecimal.java \ +java/math/BigInteger.java \ +java/net/BindException.java \ +java/net/ConnectException.java \ +java/net/ContentHandler.java \ +java/net/ContentHandlerFactory.java \ +java/net/DatagramPacket.java \ +java/net/DatagramSocket.java \ +java/net/DatagramSocketImpl.java \ +java/net/FileNameMap.java \ +java/net/HttpURLConnection.java \ +java/net/InetAddress.java \ +java/net/JarURLConnection.java \ +java/net/MalformedURLException.java \ +java/net/MulticastSocket.java \ +java/net/NetPermission.java \ +java/net/NoRouteToHostException.java \ +java/net/PlainDatagramSocketImpl.java \ +java/net/PlainSocketImpl.java \ +java/net/ProtocolException.java \ +java/net/ServerSocket.java \ +java/net/Socket.java \ +java/net/SocketException.java \ +java/net/SocketImpl.java \ +java/net/SocketImplFactory.java \ +java/net/SocketOptions.java \ +java/net/SocketPermission.java \ +java/net/URL.java \ +java/net/URLClassLoader.java \ +java/net/URLConnection.java \ +java/net/URLDecoder.java \ +java/net/URLEncoder.java \ +java/net/URLStreamHandler.java \ +java/net/URLStreamHandlerFactory.java \ +java/net/UnknownHostException.java \ +java/net/UnknownServiceException.java \ +java/security/AccessControlContext.java \ +java/security/AccessControlException.java \ +java/security/AccessController.java \ +java/security/AlgorithmParameterGenerator.java \ +java/security/AlgorithmParameters.java \ +java/security/AlgorithmParameterGeneratorSpi.java \ +java/security/AlgorithmParametersSpi.java \ +java/security/AllPermission.java \ +java/security/BasicPermission.java \ +java/security/Certificate.java \ +java/security/CodeSource.java \ +java/security/DigestException.java \ +java/security/DigestOutputStream.java \ +java/security/DummyKeyPairGenerator.java \ +java/security/DummySignature.java \ +java/security/DigestInputStream.java \ +java/security/DomainCombiner.java \ +java/security/DummyMessageDigest.java \ +java/security/GeneralSecurityException.java \ +java/security/Guard.java \ +java/security/GuardedObject.java \ +java/security/Identity.java \ +java/security/IdentityScope.java \ +java/security/InvalidAlgorithmParameterException.java \ +java/security/InvalidKeyException.java \ +java/security/InvalidParameterException.java \ +java/security/Key.java \ +java/security/KeyFactorySpi.java \ +java/security/KeyPairGenerator.java \ +java/security/KeyStoreException.java \ +java/security/KeyException.java \ +java/security/KeyManagementException.java \ +java/security/KeyPairGeneratorSpi.java \ +java/security/KeyStoreSpi.java \ +java/security/KeyFactory.java \ +java/security/KeyPair.java \ +java/security/KeyStore.java \ +java/security/MessageDigest.java \ +java/security/MessageDigestSpi.java \ +java/security/NoSuchAlgorithmException.java \ +java/security/NoSuchProviderException.java \ +java/security/Permission.java \ +java/security/Principal.java \ +java/security/PrivilegedExceptionAction.java \ +java/security/PublicKey.java \ +java/security/PermissionCollection.java \ +java/security/PrivateKey.java \ +java/security/ProtectionDomain.java \ +java/security/Permissions.java \ +java/security/PrivilegedAction.java \ +java/security/Provider.java \ +java/security/Policy.java \ +java/security/PrivilegedActionException.java \ +java/security/ProviderException.java \ +java/security/SecureClassLoader.java \ +java/security/SecureRandomSpi.java \ +java/security/SecurityPermission.java \ +java/security/SignatureException.java \ +java/security/SignedObject.java \ +java/security/SecureRandom.java \ +java/security/Security.java \ +java/security/Signature.java \ +java/security/SignatureSpi.java \ +java/security/Signer.java \ +java/security/UnrecoverableKeyException.java \ +java/security/UnresolvedPermission.java \ +java/security/acl/Acl.java \ +java/security/acl/AclNotFoundException.java \ +java/security/acl/LastOwnerException.java \ +java/security/acl/Owner.java \ +java/security/acl/AclEntry.java \ +java/security/acl/Group.java \ +java/security/acl/NotOwnerException.java \ +java/security/acl/Permission.java \ +java/security/cert/CRL.java \ +java/security/cert/CRLException.java \ +java/security/cert/Certificate.java \ +java/security/cert/CertificateEncodingException.java \ +java/security/cert/CertificateException.java \ +java/security/cert/CertificateExpiredException.java \ +java/security/cert/CertificateFactory.java \ +java/security/cert/CertificateFactorySpi.java \ +java/security/cert/CertificateNotYetValidException.java \ +java/security/cert/CertificateParsingException.java \ +java/security/cert/X509CRL.java \ +java/security/cert/X509CRLEntry.java \ +java/security/cert/X509Certificate.java \ +java/security/cert/X509Extension.java \ +java/security/interfaces/DSAKey.java \ +java/security/interfaces/DSAKeyPairGenerator.java \ +java/security/interfaces/DSAParams.java \ +java/security/interfaces/DSAPrivateKey.java \ +java/security/interfaces/DSAPublicKey.java \ +java/security/interfaces/RSAKey.java \ +java/security/interfaces/RSAPrivateCrtKey.java \ +java/security/interfaces/RSAPrivateKey.java \ +java/security/interfaces/RSAPublicKey.java \ +java/security/spec/AlgorithmParameterSpec.java \ +java/security/spec/DSAParameterSpec.java \ +java/security/spec/DSAPrivateKeySpec.java \ +java/security/spec/DSAPublicKeySpec.java \ +java/security/spec/EncodedKeySpec.java \ +java/security/spec/InvalidKeySpecException.java \ +java/security/spec/InvalidParameterSpecException.java \ +java/security/spec/KeySpec.java \ +java/security/spec/PKCS8EncodedKeySpec.java \ +java/security/spec/RSAKeyGenParameterSpec.java \ +java/security/spec/RSAPrivateCrtKeySpec.java \ +java/security/spec/RSAPrivateKeySpec.java \ +java/security/spec/RSAPublicKeySpec.java \ +java/security/spec/X509EncodedKeySpec.java \ +java/sql/Array.java \ +java/sql/BatchUpdateException.java \ +java/sql/Blob.java \ +java/sql/CallableStatement.java \ +java/sql/Clob.java \ +java/sql/Connection.java \ +java/sql/DataTruncation.java \ +java/sql/DatabaseMetaData.java \ +java/sql/Date.java \ +java/sql/Driver.java \ +java/sql/DriverManager.java \ +java/sql/DriverPropertyInfo.java \ +java/sql/PreparedStatement.java \ +java/sql/Ref.java \ +java/sql/ResultSet.java \ +java/sql/ResultSetMetaData.java \ +java/sql/SQLData.java \ +java/sql/SQLException.java \ +java/sql/SQLInput.java \ +java/sql/SQLOutput.java \ +java/sql/SQLWarning.java \ +java/sql/Statement.java \ +java/sql/Struct.java \ +java/sql/Time.java \ +java/sql/Timestamp.java \ +java/sql/Types.java \ +java/text/BreakIterator.java \ +java/text/CharacterIterator.java \ +java/text/ChoiceFormat.java \ +java/text/CollationElementIterator.java \ +java/text/CollationKey.java \ +java/text/Collator.java \ +java/text/DateFormat.java \ +java/text/DateFormatSymbols.java \ +java/text/DecimalFormat.java \ +java/text/DecimalFormatSymbols.java \ +java/text/FieldPosition.java \ +java/text/Format.java \ +java/text/MessageFormat.java \ +java/text/NumberFormat.java \ +java/text/ParseException.java \ +java/text/ParsePosition.java \ +java/text/RuleBasedCollator.java \ +java/text/SimpleDateFormat.java \ +java/text/StringCharacterIterator.java \ +java/util/jar/Attributes.java \ +java/util/jar/JarEntry.java \ +java/util/jar/JarException.java \ +java/util/jar/JarFile.java \ +java/util/jar/JarInputStream.java \ +java/util/jar/JarOutputStream.java \ +java/util/jar/Manifest.java \ +java/util/zip/Adler32.java \ +java/util/zip/CRC32.java \ +java/util/zip/CheckedInputStream.java \ +java/util/zip/CheckedOutputStream.java \ +java/util/zip/Checksum.java \ +java/util/zip/DataFormatException.java \ +java/util/zip/Deflater.java \ +java/util/zip/DeflaterOutputStream.java \ +java/util/zip/GZIPInputStream.java \ +java/util/zip/GZIPOutputStream.java \ +java/util/zip/Inflater.java \ +java/util/zip/InflaterInputStream.java \ +java/util/zip/ZipConstants.java \ +java/util/zip/ZipEntry.java \ +java/util/zip/ZipException.java \ +java/util/zip/ZipFile.java \ +java/util/zip/ZipInputStream.java \ +java/util/zip/ZipOutputStream.java \ +org/w3c/dom/Attr.java \ +org/w3c/dom/CDATASection.java \ +org/w3c/dom/CharacterData.java \ +org/w3c/dom/Comment.java \ +org/w3c/dom/DOMException.java \ +org/w3c/dom/DOMImplementation.java \ +org/w3c/dom/Document.java \ +org/w3c/dom/DocumentFragment.java \ +org/w3c/dom/DocumentType.java \ +org/w3c/dom/Element.java \ +org/w3c/dom/Entity.java \ +org/w3c/dom/EntityReference.java \ +org/w3c/dom/NamedNodeMap.java \ +org/w3c/dom/Node.java \ +org/w3c/dom/NodeList.java \ +org/w3c/dom/Notation.java \ +org/w3c/dom/ProcessingInstruction.java \ +org/w3c/dom/Text.java \ +org/w3c/dom/ranges/DocumentRange.java \ +org/w3c/dom/ranges/Range.java \ +org/w3c/dom/ranges/RangeException.java \ +org/w3c/dom/traversal/DocumentTraversal.java \ +org/w3c/dom/traversal/NodeFilter.java \ +org/w3c/dom/traversal/NodeIterator.java \ +org/w3c/dom/traversal/TreeWalker.java \ +org/xml/sax/ext/DeclHandler.java \ +org/xml/sax/ext/LexicalHandler.java \ +org/xml/sax/helpers/AttributeListImpl.java \ +org/xml/sax/helpers/AttributesImpl.java \ +org/xml/sax/helpers/DefaultHandler.java \ +org/xml/sax/helpers/LocatorImpl.java \ +org/xml/sax/helpers/NamespaceSupport.java \ +org/xml/sax/helpers/ParserAdapter.java \ +org/xml/sax/helpers/ParserFactory.java \ +org/xml/sax/helpers/XMLFilterImpl.java \ +org/xml/sax/helpers/XMLReaderAdapter.java \ +org/xml/sax/helpers/XMLReaderFactory.java \ +org/xml/sax/AttributeList.java \ +org/xml/sax/Attributes.java \ +org/xml/sax/ContentHandler.java \ +org/xml/sax/DTDHandler.java \ +org/xml/sax/DocumentHandler.java \ +org/xml/sax/EntityResolver.java \ +org/xml/sax/ErrorHandler.java \ +org/xml/sax/HandlerBase.java \ +org/xml/sax/InputSource.java \ +org/xml/sax/Locator.java \ +org/xml/sax/Parser.java \ +org/xml/sax/SAXException.java \ +org/xml/sax/SAXNotRecognizedException.java \ +org/xml/sax/SAXNotSupportedException.java \ +org/xml/sax/SAXParseException.java \ +org/xml/sax/XMLFilter.java \ +org/xml/sax/XMLReader.java \ +$(rmi_java_source_files) \ +$(awt_java_source_files) \ +$(convert_source_files) java_source_files = $(special_java_source_files) $(ordinary_java_source_files) -c_source_files = java/lang/dtoa.c java/lang/k_rem_pio2.c java/lang/s_tan.c java/lang/e_acos.c java/lang/k_sin.c java/lang/strtod.c java/lang/e_asin.c java/lang/k_tan.c java/lang/w_acos.c java/lang/e_atan2.c java/lang/mprec.c java/lang/w_asin.c java/lang/e_exp.c java/lang/s_atan.c java/lang/w_atan2.c java/lang/e_fmod.c java/lang/s_ceil.c java/lang/w_exp.c java/lang/e_log.c java/lang/s_copysign.c java/lang/w_fmod.c java/lang/e_pow.c java/lang/s_cos.c java/lang/w_log.c java/lang/e_rem_pio2.c java/lang/s_fabs.c java/lang/w_pow.c java/lang/e_remainder.c java/lang/s_floor.c java/lang/w_remainder.c java/lang/e_scalb.c java/lang/s_rint.c java/lang/w_sqrt.c java/lang/e_sqrt.c java/lang/s_scalbn.c java/lang/sf_rint.c java/lang/k_cos.c java/lang/s_sin.c java/lang/sf_fabs.c +c_source_files = \ + java/lang/dtoa.c java/lang/k_rem_pio2.c java/lang/s_tan.c \ + java/lang/e_acos.c java/lang/k_sin.c java/lang/strtod.c \ + java/lang/e_asin.c java/lang/k_tan.c java/lang/w_acos.c \ + java/lang/e_atan2.c java/lang/mprec.c java/lang/w_asin.c \ + java/lang/e_exp.c java/lang/s_atan.c java/lang/w_atan2.c \ + java/lang/e_fmod.c java/lang/s_ceil.c java/lang/w_exp.c \ + java/lang/e_log.c java/lang/s_copysign.c java/lang/w_fmod.c \ + java/lang/e_pow.c java/lang/s_cos.c java/lang/w_log.c \ + java/lang/e_rem_pio2.c java/lang/s_fabs.c java/lang/w_pow.c \ + java/lang/e_remainder.c java/lang/s_floor.c java/lang/w_remainder.c \ + java/lang/e_scalb.c java/lang/s_rint.c java/lang/w_sqrt.c \ + java/lang/e_sqrt.c java/lang/s_scalbn.c java/lang/sf_rint.c \ + java/lang/k_cos.c java/lang/s_sin.c java/lang/sf_fabs.c #java/awt/natToolkit.cc -nat_source_files = gnu/gcj/convert/JIS0208_to_Unicode.cc gnu/gcj/convert/JIS0212_to_Unicode.cc gnu/gcj/convert/Unicode_to_JIS.cc gnu/gcj/convert/natIconv.cc gnu/gcj/convert/natInput_EUCJIS.cc gnu/gcj/convert/natInput_SJIS.cc gnu/gcj/convert/natOutput_EUCJIS.cc gnu/gcj/convert/natOutput_SJIS.cc gnu/gcj/io/natSimpleSHSStream.cc gnu/gcj/io/shs.cc gnu/gcj/runtime/natFirstThread.cc java/io/natFile.cc java/io/natFileDescriptor.cc java/io/natObjectInputStream.cc java/io/natObjectOutputStream.cc java/lang/natCharacter.cc java/lang/natClass.cc java/lang/natClassLoader.cc java/lang/natConcreteProcess.cc java/lang/natDouble.cc java/lang/natFloat.cc java/lang/natMath.cc java/lang/natObject.cc java/lang/natRuntime.cc java/lang/natString.cc java/lang/natStringBuffer.cc java/lang/natSystem.cc java/lang/natThread.cc java/lang/natThrowable.cc java/lang/reflect/natArray.cc java/lang/reflect/natConstructor.cc java/lang/reflect/natField.cc java/lang/reflect/natMethod.cc java/net/natInetAddress.cc java/net/natPlainDatagramSocketImpl.cc java/net/natPlainSocketImpl.cc java/text/natCollator.cc java/util/zip/natDeflater.cc java/util/zip/natInflater.cc - - -x_java_source_files = gnu/gcj/xlib/Clip.java gnu/gcj/xlib/Colormap.java gnu/gcj/xlib/Display.java gnu/gcj/xlib/Drawable.java gnu/gcj/xlib/Font.java gnu/gcj/xlib/GC.java gnu/gcj/xlib/Pixmap.java gnu/gcj/xlib/Screen.java gnu/gcj/xlib/Visual.java gnu/gcj/xlib/WMSizeHints.java gnu/gcj/xlib/Window.java gnu/gcj/xlib/WindowAttributes.java gnu/gcj/xlib/XAnyEvent.java gnu/gcj/xlib/XButtonEvent.java gnu/gcj/xlib/XColor.java gnu/gcj/xlib/XConfigureEvent.java gnu/gcj/xlib/XConnectException.java gnu/gcj/xlib/XEvent.java gnu/gcj/xlib/XException.java gnu/gcj/xlib/XExposeEvent.java gnu/gcj/xlib/XID.java gnu/gcj/xlib/XImage.java gnu/gcj/xlib/XUnmapEvent.java gnu/awt/xlib/XCanvasPeer.java gnu/awt/xlib/XEventLoop.java gnu/awt/xlib/XEventQueue.java gnu/awt/xlib/XFontMetrics.java gnu/awt/xlib/XFramePeer.java gnu/awt/xlib/XGraphics.java gnu/awt/xlib/XGraphicsConfiguration.java gnu/awt/xlib/XPanelPeer.java gnu/awt/xlib/XToolkit.java - - -x_nat_source_files = gnu/gcj/xlib/natClip.cc gnu/gcj/xlib/natColormap.cc gnu/gcj/xlib/natDisplay.cc gnu/gcj/xlib/natDrawable.cc gnu/gcj/xlib/natFont.cc gnu/gcj/xlib/natGC.cc gnu/gcj/xlib/natPixmap.cc gnu/gcj/xlib/natScreen.cc gnu/gcj/xlib/natVisual.cc gnu/gcj/xlib/natWMSizeHints.cc gnu/gcj/xlib/natWindow.cc gnu/gcj/xlib/natWindowAttributes.cc gnu/gcj/xlib/natXAnyEvent.cc gnu/gcj/xlib/natXButtonEvent.cc gnu/gcj/xlib/natXColor.cc gnu/gcj/xlib/natXConfigureEvent.cc gnu/gcj/xlib/natXException.cc gnu/gcj/xlib/natXExposeEvent.cc gnu/gcj/xlib/natXImage.cc gnu/gcj/xlib/natXUnmapEvent.cc +nat_source_files = \ +gnu/gcj/convert/JIS0208_to_Unicode.cc \ +gnu/gcj/convert/JIS0212_to_Unicode.cc \ +gnu/gcj/convert/Unicode_to_JIS.cc \ +gnu/gcj/convert/natIconv.cc \ +gnu/gcj/convert/natInput_EUCJIS.cc \ +gnu/gcj/convert/natInput_SJIS.cc \ +gnu/gcj/convert/natOutput_EUCJIS.cc \ +gnu/gcj/convert/natOutput_SJIS.cc \ +gnu/gcj/io/natSimpleSHSStream.cc \ +gnu/gcj/io/shs.cc \ +gnu/gcj/runtime/natFirstThread.cc \ +java/io/natFile.cc \ +java/io/natFileDescriptor.cc \ +java/io/natObjectInputStream.cc \ +java/io/natObjectOutputStream.cc \ +java/lang/natCharacter.cc \ +java/lang/natClass.cc \ +java/lang/natClassLoader.cc \ +java/lang/natConcreteProcess.cc \ +java/lang/natDouble.cc \ +java/lang/natFloat.cc \ +java/lang/natMath.cc \ +java/lang/natObject.cc \ +java/lang/natRuntime.cc \ +java/lang/natString.cc \ +java/lang/natStringBuffer.cc \ +java/lang/natSystem.cc \ +java/lang/natThread.cc \ +java/lang/natThrowable.cc \ +java/lang/reflect/natArray.cc \ +java/lang/reflect/natConstructor.cc \ +java/lang/reflect/natField.cc \ +java/lang/reflect/natMethod.cc \ +java/net/natInetAddress.cc \ +java/net/natPlainDatagramSocketImpl.cc \ +java/net/natPlainSocketImpl.cc \ +java/text/natCollator.cc \ +java/util/zip/natDeflater.cc \ +java/util/zip/natInflater.cc + + +x_java_source_files = \ +gnu/gcj/xlib/Clip.java \ +gnu/gcj/xlib/Colormap.java \ +gnu/gcj/xlib/Display.java \ +gnu/gcj/xlib/Drawable.java \ +gnu/gcj/xlib/Font.java \ +gnu/gcj/xlib/GC.java \ +gnu/gcj/xlib/Pixmap.java \ +gnu/gcj/xlib/Screen.java \ +gnu/gcj/xlib/Visual.java \ +gnu/gcj/xlib/WMSizeHints.java \ +gnu/gcj/xlib/Window.java \ +gnu/gcj/xlib/WindowAttributes.java \ +gnu/gcj/xlib/XAnyEvent.java \ +gnu/gcj/xlib/XButtonEvent.java \ +gnu/gcj/xlib/XColor.java \ +gnu/gcj/xlib/XConfigureEvent.java \ +gnu/gcj/xlib/XConnectException.java \ +gnu/gcj/xlib/XEvent.java \ +gnu/gcj/xlib/XException.java \ +gnu/gcj/xlib/XExposeEvent.java \ +gnu/gcj/xlib/XID.java \ +gnu/gcj/xlib/XImage.java \ +gnu/gcj/xlib/XUnmapEvent.java \ +gnu/awt/xlib/XCanvasPeer.java \ +gnu/awt/xlib/XEventLoop.java \ +gnu/awt/xlib/XEventQueue.java \ +gnu/awt/xlib/XFontMetrics.java \ +gnu/awt/xlib/XFramePeer.java \ +gnu/awt/xlib/XGraphics.java \ +gnu/awt/xlib/XGraphicsConfiguration.java \ +gnu/awt/xlib/XPanelPeer.java \ +gnu/awt/xlib/XToolkit.java + + +x_nat_source_files = \ +gnu/gcj/xlib/natClip.cc \ +gnu/gcj/xlib/natColormap.cc \ +gnu/gcj/xlib/natDisplay.cc \ +gnu/gcj/xlib/natDrawable.cc \ +gnu/gcj/xlib/natFont.cc \ +gnu/gcj/xlib/natGC.cc \ +gnu/gcj/xlib/natPixmap.cc \ +gnu/gcj/xlib/natScreen.cc \ +gnu/gcj/xlib/natVisual.cc \ +gnu/gcj/xlib/natWMSizeHints.cc \ +gnu/gcj/xlib/natWindow.cc \ +gnu/gcj/xlib/natWindowAttributes.cc \ +gnu/gcj/xlib/natXAnyEvent.cc \ +gnu/gcj/xlib/natXButtonEvent.cc \ +gnu/gcj/xlib/natXColor.cc \ +gnu/gcj/xlib/natXConfigureEvent.cc \ +gnu/gcj/xlib/natXException.cc \ +gnu/gcj/xlib/natXExposeEvent.cc \ +gnu/gcj/xlib/natXImage.cc \ +gnu/gcj/xlib/natXUnmapEvent.cc # Work around what appears to be a GNU make bug handling MAKEFLAGS # values defined in terms of make variables, as is the case for CC and # friends when we are called from the top level Makefile. -AM_MAKEFLAGS = "AR_FLAGS=$(AR_FLAGS)" "CC_FOR_BUILD=$(CC_FOR_BUILD)" "CFLAGS=$(CFLAGS)" "CXXFLAGS=$(CXXFLAGS)" "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" "INSTALL=$(INSTALL)" "INSTALL_DATA=$(INSTALL_DATA)" "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" "JC1FLAGS=$(JC1FLAGS)" "LDFLAGS=$(LDFLAGS)" "LIBCFLAGS=$(LIBCFLAGS)" "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" "MAKE=$(MAKE)" "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" "PICFLAG=$(PICFLAG)" "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" "SHELL=$(SHELL)" "RUNTESTFLAGS=$(RUNTESTFLAGS)" "exec_prefix=$(exec_prefix)" "infodir=$(infodir)" "libdir=$(libdir)" "prefix=$(prefix)" "AR=$(AR)" "AS=$(AS)" "CC=$(CC)" "CXX=$(CXX)" "LD=$(LD)" "LIBCFLAGS=$(LIBCFLAGS)" "NM=$(NM)" "PICFLAG=$(PICFLAG)" "RANLIB=$(RANLIB)" "DESTDIR=$(DESTDIR)" +AM_MAKEFLAGS = \ + "AR_FLAGS=$(AR_FLAGS)" \ + "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ + "CFLAGS=$(CFLAGS)" \ + "CXXFLAGS=$(CXXFLAGS)" \ + "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ + "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \ + "INSTALL=$(INSTALL)" \ + "INSTALL_DATA=$(INSTALL_DATA)" \ + "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ + "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \ + "JC1FLAGS=$(JC1FLAGS)" \ + "LDFLAGS=$(LDFLAGS)" \ + "LIBCFLAGS=$(LIBCFLAGS)" \ + "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \ + "MAKE=$(MAKE)" \ + "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \ + "PICFLAG=$(PICFLAG)" \ + "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \ + "SHELL=$(SHELL)" \ + "RUNTESTFLAGS=$(RUNTESTFLAGS)" \ + "exec_prefix=$(exec_prefix)" \ + "infodir=$(infodir)" \ + "libdir=$(libdir)" \ + "prefix=$(prefix)" \ + "AR=$(AR)" \ + "AS=$(AS)" \ + "CC=$(CC)" \ + "CXX=$(CXX)" \ + "LD=$(LD)" \ + "LIBCFLAGS=$(LIBCFLAGS)" \ + "NM=$(NM)" \ + "PICFLAG=$(PICFLAG)" \ + "RANLIB=$(RANLIB)" \ + "DESTDIR=$(DESTDIR)" CONFIG_STATUS_DEPENDENCIES = $(srcdir)/configure.host @@ -337,13 +1400,16 @@ gnu/gcj/xlib/natXButtonEvent.lo gnu/gcj/xlib/natXColor.lo \ gnu/gcj/xlib/natXConfigureEvent.lo gnu/gcj/xlib/natXException.lo \ gnu/gcj/xlib/natXExposeEvent.lo gnu/gcj/xlib/natXImage.lo \ gnu/gcj/xlib/natXUnmapEvent.lo -@NATIVE_TRUE@bin_PROGRAMS = jv-convert$(EXEEXT) gij$(EXEEXT) +@NATIVE_TRUE@bin_PROGRAMS = jv-convert$(EXEEXT) gij$(EXEEXT) \ +@NATIVE_TRUE@rmic$(EXEEXT) rmiregistry$(EXEEXT) @NATIVE_TRUE@@MAINTAINER_MODE_TRUE@noinst_PROGRAMS = \ @NATIVE_TRUE@@MAINTAINER_MODE_TRUE@gen-from-JIS$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) jv_convert_OBJECTS = gij_OBJECTS = gij.$(OBJEXT) +rmic_OBJECTS = +rmiregistry_OBJECTS = gen_from_JIS_OBJECTS = gen_from_JIS_LDFLAGS = SCRIPTS = $(bin_SCRIPTS) @@ -366,7 +1432,7 @@ libgcj-test.spec.in libgcj.spec.in DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) -TAR = gtar +TAR = tar GZIP_ENV = --best DIST_SUBDIRS = @DIRLTDL@ testsuite gcj include @DIRLTDL@ gcj include DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \ @@ -473,6 +1539,24 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \ .deps/gnu/java/lang/reflect/TypeSignature.P \ .deps/gnu/java/locale/Calendar.P .deps/gnu/java/locale/Calendar_de.P \ .deps/gnu/java/locale/Calendar_en.P .deps/gnu/java/locale/Calendar_nl.P \ +.deps/gnu/java/rmi/dgc/DGCImpl.P .deps/gnu/java/rmi/dgc/DGCImpl_Skel.P \ +.deps/gnu/java/rmi/dgc/DGCImpl_Stub.P \ +.deps/gnu/java/rmi/registry/RegistryImpl.P \ +.deps/gnu/java/rmi/registry/RegistryImpl_Skel.P \ +.deps/gnu/java/rmi/registry/RegistryImpl_Stub.P \ +.deps/gnu/java/rmi/rmic/RMIC.P .deps/gnu/java/rmi/rmic/TabbedWriter.P \ +.deps/gnu/java/rmi/server/ProtocolConstants.P \ +.deps/gnu/java/rmi/server/RMIDefaultSocketFactory.P \ +.deps/gnu/java/rmi/server/RMIHashes.P \ +.deps/gnu/java/rmi/server/RMIObjectInputStream.P \ +.deps/gnu/java/rmi/server/RMIObjectOutputStream.P \ +.deps/gnu/java/rmi/server/UnicastConnection.P \ +.deps/gnu/java/rmi/server/UnicastConnectionManager.P \ +.deps/gnu/java/rmi/server/UnicastRef.P \ +.deps/gnu/java/rmi/server/UnicastRemoteCall.P \ +.deps/gnu/java/rmi/server/UnicastRemoteStub.P \ +.deps/gnu/java/rmi/server/UnicastServer.P \ +.deps/gnu/java/rmi/server/UnicastServerRef.P \ .deps/gnu/java/security/provider/DefaultPolicy.P \ .deps/gnu/java/security/provider/Gnu.P \ .deps/gnu/java/security/provider/SHA.P \ @@ -777,7 +1861,58 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \ .deps/java/net/UnknownServiceException.P \ .deps/java/net/natInetAddress.P \ .deps/java/net/natPlainDatagramSocketImpl.P \ -.deps/java/net/natPlainSocketImpl.P \ +.deps/java/net/natPlainSocketImpl.P .deps/java/rmi/AccessException.P \ +.deps/java/rmi/AlreadyBoundException.P \ +.deps/java/rmi/ConnectException.P .deps/java/rmi/ConnectIOException.P \ +.deps/java/rmi/MarshalException.P .deps/java/rmi/MarshalledObject.P \ +.deps/java/rmi/Naming.P .deps/java/rmi/NoSuchObjectException.P \ +.deps/java/rmi/NotBoundException.P \ +.deps/java/rmi/RMISecurityException.P \ +.deps/java/rmi/RMISecurityManager.P .deps/java/rmi/Remote.P \ +.deps/java/rmi/RemoteException.P .deps/java/rmi/ServerError.P \ +.deps/java/rmi/ServerException.P \ +.deps/java/rmi/ServerRuntimeException.P \ +.deps/java/rmi/StubNotFoundException.P \ +.deps/java/rmi/UnexpectedException.P \ +.deps/java/rmi/UnknownHostException.P \ +.deps/java/rmi/UnmarshalException.P \ +.deps/java/rmi/activation/Activatable.P \ +.deps/java/rmi/activation/ActivateFailedException.P \ +.deps/java/rmi/activation/ActivationDesc.P \ +.deps/java/rmi/activation/ActivationException.P \ +.deps/java/rmi/activation/ActivationGroup.P \ +.deps/java/rmi/activation/ActivationGroupDesc.P \ +.deps/java/rmi/activation/ActivationGroupID.P \ +.deps/java/rmi/activation/ActivationID.P \ +.deps/java/rmi/activation/ActivationInstantiator.P \ +.deps/java/rmi/activation/ActivationMonitor.P \ +.deps/java/rmi/activation/ActivationSystem.P \ +.deps/java/rmi/activation/Activator.P \ +.deps/java/rmi/activation/UnknownGroupException.P \ +.deps/java/rmi/activation/UnknownObjectException.P \ +.deps/java/rmi/dgc/DGC.P .deps/java/rmi/dgc/Lease.P \ +.deps/java/rmi/dgc/VMID.P .deps/java/rmi/registry/LocateRegistry.P \ +.deps/java/rmi/registry/Registry.P \ +.deps/java/rmi/registry/RegistryHandler.P \ +.deps/java/rmi/server/ExportException.P \ +.deps/java/rmi/server/LoaderHandler.P .deps/java/rmi/server/LogStream.P \ +.deps/java/rmi/server/ObjID.P .deps/java/rmi/server/Operation.P \ +.deps/java/rmi/server/RMIClassLoader.P \ +.deps/java/rmi/server/RMIClientSocketFactory.P \ +.deps/java/rmi/server/RMIFailureHandler.P \ +.deps/java/rmi/server/RMIServerSocketFactory.P \ +.deps/java/rmi/server/RMISocketFactory.P \ +.deps/java/rmi/server/RemoteCall.P .deps/java/rmi/server/RemoteObject.P \ +.deps/java/rmi/server/RemoteRef.P .deps/java/rmi/server/RemoteServer.P \ +.deps/java/rmi/server/RemoteStub.P \ +.deps/java/rmi/server/ServerCloneException.P \ +.deps/java/rmi/server/ServerNotActiveException.P \ +.deps/java/rmi/server/ServerRef.P .deps/java/rmi/server/Skeleton.P \ +.deps/java/rmi/server/SkeletonMismatchException.P \ +.deps/java/rmi/server/SkeletonNotFoundException.P \ +.deps/java/rmi/server/SocketSecurityException.P \ +.deps/java/rmi/server/UID.P .deps/java/rmi/server/UnicastRemoteObject.P \ +.deps/java/rmi/server/Unreferenced.P \ .deps/java/security/AccessControlContext.P \ .deps/java/security/AccessControlException.P \ .deps/java/security/AccessController.P \ @@ -980,8 +2115,8 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \ .deps/org/xml/sax/helpers/XMLReaderAdapter.P \ .deps/org/xml/sax/helpers/XMLReaderFactory.P .deps/posix-threads.P \ .deps/posix.P .deps/prims.P .deps/resolve.P -SOURCES = $(libgcj_la_SOURCES) $(EXTRA_libgcj_la_SOURCES) $(libgcjx_la_SOURCES) $(EXTRA_libgcjx_la_SOURCES) $(jv_convert_SOURCES) $(EXTRA_jv_convert_SOURCES) $(gij_SOURCES) $(gen_from_JIS_SOURCES) $(EXTRA_gen_from_JIS_SOURCES) -OBJECTS = $(libgcj_la_OBJECTS) $(libgcjx_la_OBJECTS) $(jv_convert_OBJECTS) $(gij_OBJECTS) $(gen_from_JIS_OBJECTS) +SOURCES = $(libgcj_la_SOURCES) $(EXTRA_libgcj_la_SOURCES) $(libgcjx_la_SOURCES) $(EXTRA_libgcjx_la_SOURCES) $(jv_convert_SOURCES) $(EXTRA_jv_convert_SOURCES) $(gij_SOURCES) $(rmic_SOURCES) $(EXTRA_rmic_SOURCES) $(rmiregistry_SOURCES) $(EXTRA_rmiregistry_SOURCES) $(gen_from_JIS_SOURCES) $(EXTRA_gen_from_JIS_SOURCES) +OBJECTS = $(libgcj_la_OBJECTS) $(libgcjx_la_OBJECTS) $(jv_convert_OBJECTS) $(gij_OBJECTS) $(rmic_OBJECTS) $(rmiregistry_OBJECTS) $(gen_from_JIS_OBJECTS) all: all-redirect .SUFFIXES: @@ -1110,6 +2245,14 @@ gij$(EXEEXT): $(gij_OBJECTS) $(gij_DEPENDENCIES) @rm -f gij$(EXEEXT) $(gij_LINK) $(gij_LDFLAGS) $(gij_OBJECTS) $(gij_LDADD) $(LIBS) +rmic$(EXEEXT): $(rmic_OBJECTS) $(rmic_DEPENDENCIES) + @rm -f rmic$(EXEEXT) + $(rmic_LINK) $(rmic_LDFLAGS) $(rmic_OBJECTS) $(rmic_LDADD) $(LIBS) + +rmiregistry$(EXEEXT): $(rmiregistry_OBJECTS) $(rmiregistry_DEPENDENCIES) + @rm -f rmiregistry$(EXEEXT) + $(rmiregistry_LINK) $(rmiregistry_LDFLAGS) $(rmiregistry_OBJECTS) $(rmiregistry_LDADD) $(LIBS) + gen-from-JIS$(EXEEXT): $(gen_from_JIS_OBJECTS) $(gen_from_JIS_DEPENDENCIES) @rm -f gen-from-JIS$(EXEEXT) $(LINK) $(gen_from_JIS_LDFLAGS) $(gen_from_JIS_OBJECTS) $(gen_from_JIS_LDADD) $(LIBS) @@ -1312,7 +2455,7 @@ distdir: $(DISTFILES) @for file in $(DISTFILES); do \ d=$(srcdir); \ if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ + cp -pr $$/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ diff --git a/libjava/gnu/java/rmi/dgc/DGCImpl.java b/libjava/gnu/java/rmi/dgc/DGCImpl.java new file mode 100644 index 00000000000..2c07c143f55 --- /dev/null +++ b/libjava/gnu/java/rmi/dgc/DGCImpl.java @@ -0,0 +1,55 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package gnu.java.rmi.dgc; + +import java.rmi.dgc.DGC; +import java.rmi.dgc.Lease; +import java.rmi.dgc.VMID; +import java.rmi.server.ObjID; +import java.rmi.RemoteException; +import java.rmi.server.UnicastRemoteObject; +import java.rmi.server.RMISocketFactory; +import gnu.java.rmi.server.UnicastServerRef; + +public class DGCImpl + extends UnicastRemoteObject implements DGC { + +public DGCImpl() throws RemoteException { + super(new UnicastServerRef(new ObjID(ObjID.DGC_ID), 0, RMISocketFactory.getSocketFactory())); +} + +public Lease dirty(ObjID[] ids, long sequenceNum, Lease lease) throws RemoteException { + System.out.println("DGCImpl.dirty - not implemented"); + return (lease); +} + +public void clean(ObjID[] ids, long sequenceNum, VMID vmid, boolean strong) throws RemoteException { + System.out.println("DGCImpl.clean - not implemented"); +} + +} diff --git a/libjava/gnu/java/rmi/dgc/DGCImpl_Skel.java b/libjava/gnu/java/rmi/dgc/DGCImpl_Skel.java new file mode 100644 index 00000000000..fd0f2eec803 --- /dev/null +++ b/libjava/gnu/java/rmi/dgc/DGCImpl_Skel.java @@ -0,0 +1,106 @@ +// Skel class generated by rmic - DO NOT EDIT! + +package gnu.java.rmi.dgc; + +public final class DGCImpl_Skel + implements java.rmi.server.Skeleton +{ + private static final long interfaceHash = -669196253586618813L; + + private static final java.rmi.server.Operation[] operations = { + new java.rmi.server.Operation("void clean(java.rmi.server.ObjID[], long, java.rmi.dgc.VMID, boolean"), + new java.rmi.server.Operation("java.rmi.dgc.Lease dirty(java.rmi.server.ObjID[], long, java.rmi.dgc.Lease") + }; + + public java.rmi.server.Operation[] getOperations() { + return ((java.rmi.server.Operation[]) operations.clone()); + } + + public void dispatch(java.rmi.Remote obj, java.rmi.server.RemoteCall call, int opnum, long hash) throws java.lang.Exception { + if (opnum < 0) { + if (hash == -5803803475088455571L) { + opnum = 0; + } + else if (hash == -8139341527526761862L) { + opnum = 1; + } + else { + throw new java.rmi.server.SkeletonMismatchException("interface hash mismatch"); + } + } + else if (hash != interfaceHash) { + throw new java.rmi.server.SkeletonMismatchException("interface hash mismatch"); + } + + gnu.java.rmi.dgc.DGCImpl server = (gnu.java.rmi.dgc.DGCImpl)obj; + switch (opnum) { + case 0: + { + java.rmi.server.ObjID[] $param_0; + long $param_1; + java.rmi.dgc.VMID $param_2; + boolean $param_3; + try { + java.io.ObjectInput in = call.getInputStream(); + $param_0 = (java.rmi.server.ObjID[])in.readObject(); + $param_1 = (long)in.readLong(); + $param_2 = (java.rmi.dgc.VMID)in.readObject(); + $param_3 = (boolean)in.readBoolean(); + + } + catch (java.io.IOException e) { + throw new java.rmi.UnmarshalException("error unmarshalling arguments", e); + } + catch (java.lang.ClassCastException e) { + throw new java.rmi.UnmarshalException("error unmarshalling arguments", e); + } + finally { + call.releaseInputStream(); + } + server.clean($param_0, $param_1, $param_2, $param_3); + try { + java.io.ObjectOutput out = call.getResultStream(true); + } + catch (java.io.IOException e) { + throw new java.rmi.MarshalException("error marshalling return", e); + } + break; + } + + case 1: + { + java.rmi.server.ObjID[] $param_0; + long $param_1; + java.rmi.dgc.Lease $param_2; + try { + java.io.ObjectInput in = call.getInputStream(); + $param_0 = (java.rmi.server.ObjID[])in.readObject(); + $param_1 = (long)in.readLong(); + $param_2 = (java.rmi.dgc.Lease)in.readObject(); + + } + catch (java.io.IOException e) { + throw new java.rmi.UnmarshalException("error unmarshalling arguments", e); + } + catch (java.lang.ClassCastException e) { + throw new java.rmi.UnmarshalException("error unmarshalling arguments", e); + } + finally { + call.releaseInputStream(); + } + java.rmi.dgc.Lease $result = server.dirty($param_0, $param_1, $param_2); + try { + java.io.ObjectOutput out = call.getResultStream(true); + out.writeObject($result); + } + catch (java.io.IOException e) { + throw new java.rmi.MarshalException("error marshalling return", e); + } + break; + } + + default: + throw new java.rmi.UnmarshalException("invalid method number"); + } + } +} diff --git a/libjava/gnu/java/rmi/dgc/DGCImpl_Stub.java b/libjava/gnu/java/rmi/dgc/DGCImpl_Stub.java new file mode 100644 index 00000000000..e611fb227eb --- /dev/null +++ b/libjava/gnu/java/rmi/dgc/DGCImpl_Stub.java @@ -0,0 +1,120 @@ +// Stub class generated by rmic - DO NOT EDIT! + +package gnu.java.rmi.dgc; + +public final class DGCImpl_Stub + extends java.rmi.server.RemoteStub + implements java.rmi.dgc.DGC +{ + private static final long serialVersionUID = 2L; + + private static final long interfaceHash = -669196253586618813L; + + private static boolean useNewInvoke; + + private static final java.rmi.server.Operation[] operations = { + new java.rmi.server.Operation("void clean(java.rmi.server.ObjID[], long, java.rmi.dgc.VMID, boolean)"), + new java.rmi.server.Operation("java.rmi.dgc.Lease dirty(java.rmi.server.ObjID[], long, java.rmi.dgc.Lease)") + }; + + private static java.lang.reflect.Method $method_clean_0; + private static java.lang.reflect.Method $method_dirty_1; + + static { + try { + java.rmi.server.RemoteRef.class.getMethod("invoke", new java.lang.Class[] { java.rmi.Remote.class, java.lang.reflect.Method.class, java.lang.Object[].class, long.class }); + useNewInvoke = true; + $method_clean_0 = gnu.java.rmi.dgc.DGCImpl.class.getMethod("clean", new java.lang.Class[] {java.rmi.server.ObjID[].class, long.class, java.rmi.dgc.VMID.class, boolean.class}); + $method_dirty_1 = gnu.java.rmi.dgc.DGCImpl.class.getMethod("dirty", new java.lang.Class[] {java.rmi.server.ObjID[].class, long.class, java.rmi.dgc.Lease.class}); + + } + catch (java.lang.NoSuchMethodException e) { + useNewInvoke = false; + } + } + + public DGCImpl_Stub() { + super(); + } + public DGCImpl_Stub(java.rmi.server.RemoteRef ref) { + super(ref); + } + + public void clean(java.rmi.server.ObjID[] $param_0, long $param_1, java.rmi.dgc.VMID $param_2, boolean $param_3) throws java.rmi.RemoteException { + try { + if (useNewInvoke) { + ref.invoke(this, $method_clean_0, new java.lang.Object[] {$param_0, new java.lang.Long($param_1), $param_2, new java.lang.Boolean($param_3)}, -5803803475088455571L); + } + else { + java.rmi.server.RemoteCall call = ref.newCall((java.rmi.server.RemoteObject)this, operations, 0, interfaceHash); + try { + java.io.ObjectOutput out = call.getOutputStream(); + out.writeObject($param_0); + out.writeLong($param_1); + out.writeObject($param_2); + out.writeBoolean($param_3); + } + catch (java.io.IOException e) { + throw new java.rmi.MarshalException("error marshalling arguments", e); + } + ref.invoke(call); + try { + java.io.ObjectInput in = call.getInputStream(); + } + catch (java.io.IOException e) { + throw new java.rmi.UnmarshalException("error unmarshalling return", e); + } + finally { + ref.done(call); + } + } + } + catch (java.rmi.RemoteException e) { + throw e; + } + catch (java.lang.Exception e) { + throw new java.rmi.UnexpectedException("undeclared checked exception", e); + } + } + + public java.rmi.dgc.Lease dirty(java.rmi.server.ObjID[] $param_0, long $param_1, java.rmi.dgc.Lease $param_2) throws java.rmi.RemoteException { + try { + if (useNewInvoke) { + java.lang.Object $result = ref.invoke(this, $method_dirty_1, new java.lang.Object[] {$param_0, new java.lang.Long($param_1), $param_2}, -8139341527526761862L); + return ((java.rmi.dgc.Lease)$result); + } + else { + java.rmi.server.RemoteCall call = ref.newCall((java.rmi.server.RemoteObject)this, operations, 1, interfaceHash); + try { + java.io.ObjectOutput out = call.getOutputStream(); + out.writeObject($param_0); + out.writeLong($param_1); + out.writeObject($param_2); + } + catch (java.io.IOException e) { + throw new java.rmi.MarshalException("error marshalling arguments", e); + } + ref.invoke(call); + java.rmi.dgc.Lease $result; + try { + java.io.ObjectInput in = call.getInputStream(); + $result = (java.rmi.dgc.Lease)in.readObject(); + return ($result); + } + catch (java.io.IOException e) { + throw new java.rmi.UnmarshalException("error unmarshalling return", e); + } + finally { + ref.done(call); + } + } + } + catch (java.rmi.RemoteException e) { + throw e; + } + catch (java.lang.Exception e) { + throw new java.rmi.UnexpectedException("undeclared checked exception", e); + } + } + +} diff --git a/libjava/gnu/java/rmi/registry/RegistryImpl.java b/libjava/gnu/java/rmi/registry/RegistryImpl.java new file mode 100644 index 00000000000..1dab766b53c --- /dev/null +++ b/libjava/gnu/java/rmi/registry/RegistryImpl.java @@ -0,0 +1,115 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package gnu.java.rmi.registry; + +import java.rmi.registry.Registry; +import java.rmi.registry.LocateRegistry; +import java.rmi.RemoteException; +import java.rmi.NotBoundException; +import java.rmi.AccessException; +import java.rmi.AlreadyBoundException; +import java.rmi.Remote; +import java.rmi.server.UnicastRemoteObject; +import java.rmi.server.ObjID; +import java.util.Hashtable; +import java.util.Enumeration; +import java.rmi.server.RMISocketFactory; +import java.rmi.server.RMIClientSocketFactory; +import java.rmi.server.RMIServerSocketFactory; +import gnu.java.rmi.server.UnicastServerRef; + +public class RegistryImpl + extends UnicastRemoteObject implements Registry { + +private Hashtable bindings = new Hashtable(); + +public RegistryImpl(int port) throws RemoteException { + this(port, RMISocketFactory.getSocketFactory(), RMISocketFactory.getSocketFactory()); +} + +public RegistryImpl(int port, RMIClientSocketFactory cf, RMIServerSocketFactory sf) throws RemoteException { + super(new UnicastServerRef(new ObjID(ObjID.REGISTRY_ID), port, sf)); + ((UnicastServerRef)getRef()).exportObject(this); +} + +public Remote lookup(String name) throws RemoteException, NotBoundException, AccessException { + Object obj = bindings.get(name); + if (obj == null) { + throw new NotBoundException(name); + } + return ((Remote)obj); +} + +public void bind(String name, Remote obj) throws RemoteException, AlreadyBoundException, AccessException { + if (bindings.containsKey(name)) { + throw new AlreadyBoundException(name); + } + bindings.put(name, obj); +} + +public void unbind(String name) throws RemoteException, NotBoundException, AccessException { + Object obj = bindings.remove(name); + if (obj == null) { + throw new NotBoundException(name); + } +} + +public void rebind(String name, Remote obj) throws RemoteException, AccessException { + bindings.put(name, obj); +} + +public String[] list() throws RemoteException, AccessException { + int size = bindings.size(); + String[] strings = new String[size]; + Enumeration e = bindings.keys(); + for (int i = 0; i < size; i++) { + strings[i] = (String)e.nextElement(); + } + return (strings); +} + +public static void main(String[] args) { + int port = Registry.REGISTRY_PORT; + if (args.length > 0) { + try { + port = Integer.parseInt(args[0]); + } + catch (NumberFormatException _) { + System.err.println("Bad port number - using default"); + } + } + + try { + Registry impl = LocateRegistry.createRegistry(port); + } + catch (RemoteException _) { + System.err.println("Registry failed"); + } +} + +} diff --git a/libjava/gnu/java/rmi/registry/RegistryImpl_Skel.java b/libjava/gnu/java/rmi/registry/RegistryImpl_Skel.java new file mode 100644 index 00000000000..7ba41c389cb --- /dev/null +++ b/libjava/gnu/java/rmi/registry/RegistryImpl_Skel.java @@ -0,0 +1,189 @@ +// Skel class generated by rmic - DO NOT EDIT! + +package gnu.java.rmi.registry; + +public final class RegistryImpl_Skel + implements java.rmi.server.Skeleton +{ + private static final long interfaceHash = 4905912898345647071L; + + private static final java.rmi.server.Operation[] operations = { + new java.rmi.server.Operation("void bind(java.lang.String, java.rmi.Remote"), + new java.rmi.server.Operation("java.lang.String[] list("), + new java.rmi.server.Operation("java.rmi.Remote lookup(java.lang.String"), + new java.rmi.server.Operation("void rebind(java.lang.String, java.rmi.Remote"), + new java.rmi.server.Operation("void unbind(java.lang.String") + }; + + public java.rmi.server.Operation[] getOperations() { + return ((java.rmi.server.Operation[]) operations.clone()); + } + + public void dispatch(java.rmi.Remote obj, java.rmi.server.RemoteCall call, int opnum, long hash) throws java.lang.Exception { + if (opnum < 0) { + if (hash == 7583982177005850366L) { + opnum = 0; + } + else if (hash == 2571371476350237748L) { + opnum = 1; + } + else if (hash == -7538657168040752697L) { + opnum = 2; + } + else if (hash == -8381844669958460146L) { + opnum = 3; + } + else if (hash == 7305022919901907578L) { + opnum = 4; + } + else { + throw new java.rmi.server.SkeletonMismatchException("interface hash mismatch"); + } + } + else if (hash != interfaceHash) { + throw new java.rmi.server.SkeletonMismatchException("interface hash mismatch"); + } + + gnu.java.rmi.registry.RegistryImpl server = (gnu.java.rmi.registry.RegistryImpl)obj; + switch (opnum) { + case 0: + { + java.lang.String $param_0; + java.rmi.Remote $param_1; + try { + java.io.ObjectInput in = call.getInputStream(); + $param_0 = (java.lang.String)in.readObject(); + $param_1 = (java.rmi.Remote)in.readObject(); + + } + catch (java.io.IOException e) { + throw new java.rmi.UnmarshalException("error unmarshalling arguments", e); + } + catch (java.lang.ClassCastException e) { + throw new java.rmi.UnmarshalException("error unmarshalling arguments", e); + } + finally { + call.releaseInputStream(); + } + server.bind($param_0, $param_1); + try { + java.io.ObjectOutput out = call.getResultStream(true); + } + catch (java.io.IOException e) { + throw new java.rmi.MarshalException("error marshalling return", e); + } + break; + } + + case 1: + { + try { + java.io.ObjectInput in = call.getInputStream(); + + } + catch (java.io.IOException e) { + throw new java.rmi.UnmarshalException("error unmarshalling arguments", e); + } + finally { + call.releaseInputStream(); + } + java.lang.String[] $result = server.list(); + try { + java.io.ObjectOutput out = call.getResultStream(true); + out.writeObject($result); + } + catch (java.io.IOException e) { + throw new java.rmi.MarshalException("error marshalling return", e); + } + break; + } + + case 2: + { + java.lang.String $param_0; + try { + java.io.ObjectInput in = call.getInputStream(); + $param_0 = (java.lang.String)in.readObject(); + + } + catch (java.io.IOException e) { + throw new java.rmi.UnmarshalException("error unmarshalling arguments", e); + } + catch (java.lang.ClassCastException e) { + throw new java.rmi.UnmarshalException("error unmarshalling arguments", e); + } + finally { + call.releaseInputStream(); + } + java.rmi.Remote $result = server.lookup($param_0); + try { + java.io.ObjectOutput out = call.getResultStream(true); + out.writeObject($result); + } + catch (java.io.IOException e) { + throw new java.rmi.MarshalException("error marshalling return", e); + } + break; + } + + case 3: + { + java.lang.String $param_0; + java.rmi.Remote $param_1; + try { + java.io.ObjectInput in = call.getInputStream(); + $param_0 = (java.lang.String)in.readObject(); + $param_1 = (java.rmi.Remote)in.readObject(); + + } + catch (java.io.IOException e) { + throw new java.rmi.UnmarshalException("error unmarshalling arguments", e); + } + catch (java.lang.ClassCastException e) { + throw new java.rmi.UnmarshalException("error unmarshalling arguments", e); + } + finally { + call.releaseInputStream(); + } + server.rebind($param_0, $param_1); + try { + java.io.ObjectOutput out = call.getResultStream(true); + } + catch (java.io.IOException e) { + throw new java.rmi.MarshalException("error marshalling return", e); + } + break; + } + + case 4: + { + java.lang.String $param_0; + try { + java.io.ObjectInput in = call.getInputStream(); + $param_0 = (java.lang.String)in.readObject(); + + } + catch (java.io.IOException e) { + throw new java.rmi.UnmarshalException("error unmarshalling arguments", e); + } + catch (java.lang.ClassCastException e) { + throw new java.rmi.UnmarshalException("error unmarshalling arguments", e); + } + finally { + call.releaseInputStream(); + } + server.unbind($param_0); + try { + java.io.ObjectOutput out = call.getResultStream(true); + } + catch (java.io.IOException e) { + throw new java.rmi.MarshalException("error marshalling return", e); + } + break; + } + + default: + throw new java.rmi.UnmarshalException("invalid method number"); + } + } +} diff --git a/libjava/gnu/java/rmi/registry/RegistryImpl_Stub.java b/libjava/gnu/java/rmi/registry/RegistryImpl_Stub.java new file mode 100644 index 00000000000..bfa755c3fdb --- /dev/null +++ b/libjava/gnu/java/rmi/registry/RegistryImpl_Stub.java @@ -0,0 +1,255 @@ +// Stub class generated by rmic - DO NOT EDIT! + +package gnu.java.rmi.registry; + +public final class RegistryImpl_Stub + extends java.rmi.server.RemoteStub + implements java.rmi.registry.Registry +{ + private static final long serialVersionUID = 2L; + + private static final long interfaceHash = 4905912898345647071L; + + private static boolean useNewInvoke; + + private static final java.rmi.server.Operation[] operations = { + new java.rmi.server.Operation("void bind(java.lang.String, java.rmi.Remote)"), + new java.rmi.server.Operation("java.lang.String[] list()"), + new java.rmi.server.Operation("java.rmi.Remote lookup(java.lang.String)"), + new java.rmi.server.Operation("void rebind(java.lang.String, java.rmi.Remote)"), + new java.rmi.server.Operation("void unbind(java.lang.String)") + }; + + private static java.lang.reflect.Method $method_bind_0; + private static java.lang.reflect.Method $method_list_1; + private static java.lang.reflect.Method $method_lookup_2; + private static java.lang.reflect.Method $method_rebind_3; + private static java.lang.reflect.Method $method_unbind_4; + + static { + try { + java.rmi.server.RemoteRef.class.getMethod("invoke", new java.lang.Class[] { java.rmi.Remote.class, java.lang.reflect.Method.class, java.lang.Object[].class, long.class }); + useNewInvoke = true; + $method_bind_0 = gnu.java.rmi.registry.RegistryImpl.class.getMethod("bind", new java.lang.Class[] {java.lang.String.class, java.rmi.Remote.class}); + $method_list_1 = gnu.java.rmi.registry.RegistryImpl.class.getMethod("list", new java.lang.Class[] {}); + $method_lookup_2 = gnu.java.rmi.registry.RegistryImpl.class.getMethod("lookup", new java.lang.Class[] {java.lang.String.class}); + $method_rebind_3 = gnu.java.rmi.registry.RegistryImpl.class.getMethod("rebind", new java.lang.Class[] {java.lang.String.class, java.rmi.Remote.class}); + $method_unbind_4 = gnu.java.rmi.registry.RegistryImpl.class.getMethod("unbind", new java.lang.Class[] {java.lang.String.class}); + + } + catch (java.lang.NoSuchMethodException e) { + useNewInvoke = false; + } + } + + public RegistryImpl_Stub() { + super(); + } + public RegistryImpl_Stub(java.rmi.server.RemoteRef ref) { + super(ref); + } + + public void bind(java.lang.String $param_0, java.rmi.Remote $param_1) throws java.rmi.AccessException, java.rmi.AlreadyBoundException, java.rmi.RemoteException { + try { + if (useNewInvoke) { + ref.invoke(this, $method_bind_0, new java.lang.Object[] {$param_0, $param_1}, 7583982177005850366L); + } + else { + java.rmi.server.RemoteCall call = ref.newCall((java.rmi.server.RemoteObject)this, operations, 0, interfaceHash); + try { + java.io.ObjectOutput out = call.getOutputStream(); + out.writeObject($param_0); + out.writeObject($param_1); + } + catch (java.io.IOException e) { + throw new java.rmi.MarshalException("error marshalling arguments", e); + } + ref.invoke(call); + try { + java.io.ObjectInput in = call.getInputStream(); + } + catch (java.io.IOException e) { + throw new java.rmi.UnmarshalException("error unmarshalling return", e); + } + finally { + ref.done(call); + } + } + } + catch (java.rmi.AccessException e) { + throw e; + } + catch (java.rmi.AlreadyBoundException e) { + throw e; + } + catch (java.rmi.RemoteException e) { + throw e; + } + catch (java.lang.Exception e) { + throw new java.rmi.UnexpectedException("undeclared checked exception", e); + } + } + + public java.lang.String[] list() throws java.rmi.AccessException, java.rmi.RemoteException { + try { + if (useNewInvoke) { + java.lang.Object $result = ref.invoke(this, $method_list_1, null, 2571371476350237748L); + return ((java.lang.String[])$result); + } + else { + java.rmi.server.RemoteCall call = ref.newCall((java.rmi.server.RemoteObject)this, operations, 1, interfaceHash); + try { + java.io.ObjectOutput out = call.getOutputStream(); + } + catch (java.io.IOException e) { + throw new java.rmi.MarshalException("error marshalling arguments", e); + } + ref.invoke(call); + java.lang.String[] $result; + try { + java.io.ObjectInput in = call.getInputStream(); + $result = (java.lang.String[])in.readObject(); + return ($result); + } + catch (java.io.IOException e) { + throw new java.rmi.UnmarshalException("error unmarshalling return", e); + } + finally { + ref.done(call); + } + } + } + catch (java.rmi.AccessException e) { + throw e; + } + catch (java.rmi.RemoteException e) { + throw e; + } + catch (java.lang.Exception e) { + throw new java.rmi.UnexpectedException("undeclared checked exception", e); + } + } + + public java.rmi.Remote lookup(java.lang.String $param_0) throws java.rmi.AccessException, java.rmi.NotBoundException, java.rmi.RemoteException { + try { + if (useNewInvoke) { + java.lang.Object $result = ref.invoke(this, $method_lookup_2, new java.lang.Object[] {$param_0}, -7538657168040752697L); + return ((java.rmi.Remote)$result); + } + else { + java.rmi.server.RemoteCall call = ref.newCall((java.rmi.server.RemoteObject)this, operations, 2, interfaceHash); + try { + java.io.ObjectOutput out = call.getOutputStream(); + out.writeObject($param_0); + } + catch (java.io.IOException e) { + throw new java.rmi.MarshalException("error marshalling arguments", e); + } + ref.invoke(call); + java.rmi.Remote $result; + try { + java.io.ObjectInput in = call.getInputStream(); + $result = (java.rmi.Remote)in.readObject(); + return ($result); + } + catch (java.io.IOException e) { + throw new java.rmi.UnmarshalException("error unmarshalling return", e); + } + finally { + ref.done(call); + } + } + } + catch (java.rmi.AccessException e) { + throw e; + } + catch (java.rmi.NotBoundException e) { + throw e; + } + catch (java.rmi.RemoteException e) { + throw e; + } + catch (java.lang.Exception e) { + throw new java.rmi.UnexpectedException("undeclared checked exception", e); + } + } + + public void rebind(java.lang.String $param_0, java.rmi.Remote $param_1) throws java.rmi.AccessException, java.rmi.RemoteException { + try { + if (useNewInvoke) { + ref.invoke(this, $method_rebind_3, new java.lang.Object[] {$param_0, $param_1}, -8381844669958460146L); + } + else { + java.rmi.server.RemoteCall call = ref.newCall((java.rmi.server.RemoteObject)this, operations, 3, interfaceHash); + try { + java.io.ObjectOutput out = call.getOutputStream(); + out.writeObject($param_0); + out.writeObject($param_1); + } + catch (java.io.IOException e) { + throw new java.rmi.MarshalException("error marshalling arguments", e); + } + ref.invoke(call); + try { + java.io.ObjectInput in = call.getInputStream(); + } + catch (java.io.IOException e) { + throw new java.rmi.UnmarshalException("error unmarshalling return", e); + } + finally { + ref.done(call); + } + } + } + catch (java.rmi.AccessException e) { + throw e; + } + catch (java.rmi.RemoteException e) { + throw e; + } + catch (java.lang.Exception e) { + throw new java.rmi.UnexpectedException("undeclared checked exception", e); + } + } + + public void unbind(java.lang.String $param_0) throws java.rmi.AccessException, java.rmi.NotBoundException, java.rmi.RemoteException { + try { + if (useNewInvoke) { + ref.invoke(this, $method_unbind_4, new java.lang.Object[] {$param_0}, 7305022919901907578L); + } + else { + java.rmi.server.RemoteCall call = ref.newCall((java.rmi.server.RemoteObject)this, operations, 4, interfaceHash); + try { + java.io.ObjectOutput out = call.getOutputStream(); + out.writeObject($param_0); + } + catch (java.io.IOException e) { + throw new java.rmi.MarshalException("error marshalling arguments", e); + } + ref.invoke(call); + try { + java.io.ObjectInput in = call.getInputStream(); + } + catch (java.io.IOException e) { + throw new java.rmi.UnmarshalException("error unmarshalling return", e); + } + finally { + ref.done(call); + } + } + } + catch (java.rmi.AccessException e) { + throw e; + } + catch (java.rmi.NotBoundException e) { + throw e; + } + catch (java.rmi.RemoteException e) { + throw e; + } + catch (java.lang.Exception e) { + throw new java.rmi.UnexpectedException("undeclared checked exception", e); + } + } + +} diff --git a/libjava/gnu/java/rmi/rmic/RMIC.java b/libjava/gnu/java/rmi/rmic/RMIC.java new file mode 100644 index 00000000000..84681e24bca --- /dev/null +++ b/libjava/gnu/java/rmi/rmic/RMIC.java @@ -0,0 +1,982 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package gnu.java.rmi.rmic; + +import java.io.File; +import java.io.FileWriter; +import java.io.PrintWriter; +import java.io.IOException; +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Arrays; +import java.lang.Comparable; +import gnu.java.rmi.server.RMIHashes; +// import kaffe.tools.compiler.Compiler; + +public class RMIC { + +private String[] args; +private int next; +private Exception exception; + +private boolean keep = false; +private boolean need11Stubs = true; +private boolean need12Stubs = true; +private boolean compile = true; +private boolean verbose; +private String destination; + +private PrintWriter out; +private TabbedWriter ctrl; + +private Class clazz; +private String classname; +private String fullclassname; +private MethodRef[] remotemethods; +private String stubname; +private String skelname; + +public RMIC(String[] a) { + args = a; +} + +public static void main(String args[]) { + RMIC r = new RMIC(args); + if (r.run() == false) { + Exception exception = r.getException(); + if (exception != null) { + exception.printStackTrace(); + } + else { + usage(); + } + } +} + +public boolean run() { + parseOptions(); + if (next >= args.length) { + return (false); + } + for (int i = next; i < args.length; i++) { + try { + if (verbose) { + System.out.println("[Processing class " + args[i] + ".class]"); + } + processClass(args[i]); + } + catch (Exception e) { + exception = e; + return (false); + } + } + return (true); +} + +private boolean processClass(String classname) throws Exception { + analyzeClass(classname); + generateStub(); + if (need11Stubs) { + generateSkel(); + } + if (compile) { + compile(stubname + ".java"); + if (need11Stubs) { + compile(skelname + ".java"); + } + } + if (!keep) { + (new File(stubname + ".java")).delete(); + if (need11Stubs) { + (new File(skelname + ".java")).delete(); + } + } + return (true); +} + +private void analyzeClass(String cname) throws Exception { + int p = cname.lastIndexOf('.'); + if (p != -1) { + classname = cname.substring(p+1); + } + else { + classname = cname; + } + fullclassname = cname; + + HashSet rmeths = new HashSet(); + findClass(); + for (Class cls = clazz; cls != null; cls = cls.getSuperclass()) { + // Keep going down the inheritence tree until we hit the system + if (cls.getName().startsWith("java.")) { + break; + } + + Method[] meths = cls.getDeclaredMethods(); + for (int i = 0; i < meths.length; i++) { + // Only include public methods + int mods = meths[i].getModifiers(); + if (Modifier.isPublic(mods) && !Modifier.isStatic(mods)) { + // Should check exceptions here. - XXX + + // Add this one in. + rmeths.add(meths[i]); + } + } + } + + // Convert into a MethodRef array and sort them + remotemethods = new MethodRef[rmeths.size()]; + int c = 0; + for (Iterator i = rmeths.iterator(); i.hasNext(); ) { + remotemethods[c++] = new MethodRef((Method)i.next()); + } + Arrays.sort(remotemethods); +} + +public Exception getException() { + return (exception); +} + +private void findClass() throws ClassNotFoundException { + clazz = Class.forName(fullclassname); +} + +private void generateStub() throws IOException { + stubname = classname + "_Stub"; + ctrl = new TabbedWriter(new FileWriter(stubname + ".java")); + out = new PrintWriter(ctrl); + + if (verbose) { + System.out.println("[Generating class " + stubname + ".java]"); + } + + out.println("// Stub class generated by rmic - DO NOT EDIT!"); + out.println(); + if (fullclassname != classname) { + String pname = fullclassname.substring(0, fullclassname.lastIndexOf('.')); + out.println("package " + pname + ";"); + out.println(); + } + + out.print("public final class " + stubname); + ctrl.indent(); + out.println("extends java.rmi.server.RemoteStub"); + + // Output interfaces we implement + out.print("implements "); + Class[] ifaces = clazz.getInterfaces(); + for (int i = 0; i < ifaces.length; i++) { + out.print(ifaces[i].getName()); + if (i+1 < ifaces.length) { + out.print(", "); + } + } + + ctrl.unindent(); + out.print("{"); + ctrl.indent(); + + // UID + if (need12Stubs) { + out.println("private static final long serialVersionUID = 2L;"); + out.println(); + } + + // InterfaceHash - don't know how to calculate this - XXX + if (need11Stubs) { + out.println("private static final long interfaceHash = " + RMIHashes.getInterfaceHash(clazz) + "L;"); + out.println(); + if (need12Stubs) { + out.println("private static boolean useNewInvoke;"); + out.println(); + } + + // Operation table + out.print("private static final java.rmi.server.Operation[] operations = {"); + + ctrl.indent(); + for (int i = 0; i < remotemethods.length; i++) { + Method m = remotemethods[i].meth; + out.print("new java.rmi.server.Operation(\""); + out.print(getPrettyName(m.getReturnType()) + " "); + out.print(m.getName() + "("); + // Output signature + Class[] sig = m.getParameterTypes(); + for (int j = 0; j < sig.length; j++) { + out.print(getPrettyName(sig[j])); + if (j+1 < sig.length) { + out.print(", "); + } + } + out.print(")\")"); + if (i + 1 < remotemethods.length) { + out.println(","); + } + } + ctrl.unindent(); + out.println("};"); + out.println(); + } + + // Set of method references. + if (need12Stubs) { + for (int i = 0; i < remotemethods.length; i++) { + Method m = remotemethods[i].meth; + out.println("private static java.lang.reflect.Method $method_" + m.getName() + "_" + i + ";"); + } + + // Initialize the methods references. + out.println(); + out.print("static {"); + ctrl.indent(); + + out.print("try {"); + ctrl.indent(); + + if (need11Stubs) { + out.println("java.rmi.server.RemoteRef.class.getMethod(\"invoke\", new java.lang.Class[] { java.rmi.Remote.class, java.lang.reflect.Method.class, java.lang.Object[].class, long.class });"); + out.println("useNewInvoke = true;"); + } + + for (int i = 0; i < remotemethods.length; i++) { + Method m = remotemethods[i].meth; + out.print("$method_" + m.getName() + "_" + i + " = "); + out.print(fullclassname + ".class.getMethod(\"" + m.getName() + "\""); + out.print(", new java.lang.Class[] {"); + // Output signature + Class[] sig = m.getParameterTypes(); + for (int j = 0; j < sig.length; j++) { + out.print(getPrettyName(sig[j]) + ".class"); + if (j+1 < sig.length) { + out.print(", "); + } + } + out.println("});"); + } + ctrl.unindent(); + out.println("}"); + out.print("catch (java.lang.NoSuchMethodException e) {"); + ctrl.indent(); + if (need11Stubs) { + out.print("useNewInvoke = false;"); + } + else { + out.print("throw new java.lang.NoSuchMethodError(\"stub class initialization failed\");"); + } + + ctrl.unindent(); + out.print("}"); + + ctrl.unindent(); + out.println("}"); + out.println(); + } + + // Constructors + if (need11Stubs) { + out.print("public " + stubname + "() {"); + ctrl.indent(); + out.print("super();"); + ctrl.unindent(); + out.println("}"); + } + + if (need12Stubs) { + out.print("public " + stubname + "(java.rmi.server.RemoteRef ref) {"); + ctrl.indent(); + out.print("super(ref);"); + ctrl.unindent(); + out.println("}"); + } + + // Method implementations + for (int i = 0; i < remotemethods.length; i++) { + Method m = remotemethods[i].meth; + Class[] sig = m.getParameterTypes(); + Class returntype = m.getReturnType(); + Class[] except = sortExceptions(m.getExceptionTypes()); + + out.println(); + out.print("public " + getPrettyName(returntype) + " " + m.getName() + "("); + for (int j = 0; j < sig.length; j++) { + out.print(getPrettyName(sig[j])); + out.print(" $param_" + j); + if (j+1 < sig.length) { + out.print(", "); + } + } + out.print(") "); + out.print("throws "); + for (int j = 0; j < except.length; j++) { + out.print(getPrettyName(except[j])); + if (j+1 < except.length) { + out.print(", "); + } + } + out.print(" {"); + ctrl.indent(); + + out.print("try {"); + ctrl.indent(); + + if (need12Stubs) { + if (need11Stubs) { + out.print("if (useNewInvoke) {"); + ctrl.indent(); + } + if (returntype != Void.TYPE) { + out.print("java.lang.Object $result = "); + } + out.print("ref.invoke(this, $method_" + m.getName() + "_" + i + ", "); + if (sig.length == 0) { + out.print("null, "); + } + else { + out.print("new java.lang.Object[] {"); + for (int j = 0; j < sig.length; j++) { + if (sig[j] == Boolean.TYPE) { + out.print("new java.lang.Boolean($param_" + j + ")"); + } + else if (sig[j] == Byte.TYPE) { + out.print("new java.lang.Byte($param_" + j + ")"); + } + else if (sig[j] == Character.TYPE) { + out.print("new java.lang.Character($param_" + j + ")"); + } + else if (sig[j] == Short.TYPE) { + out.print("new java.lang.Short($param_" + j + ")"); + } + else if (sig[j] == Integer.TYPE) { + out.print("new java.lang.Integer($param_" + j + ")"); + } + else if (sig[j] == Long.TYPE) { + out.print("new java.lang.Long($param_" + j + ")"); + } + else if (sig[j] == Float.TYPE) { + out.print("new java.lang.Float($param_" + j + ")"); + } + else if (sig[j] == Double.TYPE) { + out.print("new java.lang.Double($param_" + j + ")"); + } + else { + out.print("$param_" + j); + } + if (j+1 < sig.length) { + out.print(", "); + } + } + out.print("}, "); + } + out.print(Long.toString(remotemethods[i].hash) + "L"); + out.print(");"); + + if (returntype != Void.TYPE) { + out.println(); + out.print("return ("); + if (returntype == Boolean.TYPE) { + out.print("((java.lang.Boolean)$result).booleanValue()"); + } + else if (returntype == Byte.TYPE) { + out.print("((java.lang.Byte)$result).byteValue()"); + } + else if (returntype == Character.TYPE) { + out.print("((java.lang.Character)$result).charValue()"); + } + else if (returntype == Short.TYPE) { + out.print("((java.lang.Short)$result).shortValue()"); + } + else if (returntype == Integer.TYPE) { + out.print("((java.lang.Integer)$result).intValue()"); + } + else if (returntype == Long.TYPE) { + out.print("((java.lang.Long)$result).longValue()"); + } + else if (returntype == Float.TYPE) { + out.print("((java.lang.Float)$result).floatValue()"); + } + else if (returntype == Double.TYPE) { + out.print("((java.lang.Double)$result).doubleValue()"); + } + else { + out.print("(" + getPrettyName(returntype) + ")$result"); + } + out.print(");"); + } + + if (need11Stubs) { + ctrl.unindent(); + out.println("}"); + out.print("else {"); + ctrl.indent(); + } + } + + if (need11Stubs) { + out.println("java.rmi.server.RemoteCall call = ref.newCall((java.rmi.server.RemoteObject)this, operations, " + i + ", interfaceHash);"); + out.print("try {"); + ctrl.indent(); + out.print("java.io.ObjectOutput out = call.getOutputStream();"); + for (int j = 0; j < sig.length; j++) { + out.println(); + if (sig[j] == Boolean.TYPE) { + out.print("out.writeBoolean("); + } + else if (sig[j] == Byte.TYPE) { + out.print("out.writeByte("); + } + else if (sig[j] == Character.TYPE) { + out.print("out.writeChar("); + } + else if (sig[j] == Short.TYPE) { + out.print("out.writeShort("); + } + else if (sig[j] == Integer.TYPE) { + out.print("out.writeInt("); + } + else if (sig[j] == Long.TYPE) { + out.print("out.writeLong("); + } + else if (sig[j] == Float.TYPE) { + out.print("out.writeFloat("); + } + else if (sig[j] == Double.TYPE) { + out.print("out.writeDouble("); + } + else { + out.print("out.writeObject("); + } + out.print("$param_" + j + ");"); + } + ctrl.unindent(); + out.println("}"); + out.print("catch (java.io.IOException e) {"); + ctrl.indent(); + out.print("throw new java.rmi.MarshalException(\"error marshalling arguments\", e);"); + ctrl.unindent(); + out.println("}"); + out.println("ref.invoke(call);"); + if (returntype != Void.TYPE) { + out.println(getPrettyName(returntype) + " $result;"); + } + out.print("try {"); + ctrl.indent(); + out.print("java.io.ObjectInput in = call.getInputStream();"); + boolean needcastcheck = false; + if (returntype != Void.TYPE) { + out.println(); + out.print("$result = "); + if (returntype == Boolean.TYPE) { + out.print("in.readBoolean();"); + } + else if (returntype == Byte.TYPE) { + out.print("in.readByte();"); + } + else if (returntype == Character.TYPE) { + out.print("in.readChar();"); + } + else if (returntype == Short.TYPE) { + out.print("in.readShort();"); + } + else if (returntype == Integer.TYPE) { + out.print("in.readInt();"); + } + else if (returntype == Long.TYPE) { + out.print("in.readLong();"); + } + else if (returntype == Float.TYPE) { + out.print("in.readFloat();"); + } + else if (returntype == Double.TYPE) { + out.print("in.readDouble();"); + } + else { + if (returntype != Object.class) { + out.print("(" + getPrettyName(returntype) + ")"); + } + else { + needcastcheck = true; + } + out.print("in.readObject();"); + } + out.println(); + out.print("return ($result);"); + } + ctrl.unindent(); + out.println("}"); + out.print("catch (java.io.IOException e) {"); + ctrl.indent(); + out.print("throw new java.rmi.UnmarshalException(\"error unmarshalling return\", e);"); + ctrl.unindent(); + out.println("}"); + if (needcastcheck) { + out.print("catch (java.lang.ClassNotFoundException e) {"); + ctrl.indent(); + out.print("throw new java.rmi.UnmarshalException(\"error unmarshalling return\", e);"); + ctrl.unindent(); + out.println("}"); + } + out.print("finally {"); + ctrl.indent(); + out.print("ref.done(call);"); + ctrl.unindent(); + out.print("}"); + + if (need12Stubs && need11Stubs) { + ctrl.unindent(); + out.print("}"); + } + } + + ctrl.unindent(); + out.print("}"); + + boolean needgeneral = true; + for (int j = 0; j < except.length; j++) { + out.println(); + out.print("catch (" + getPrettyName(except[j]) + " e) {"); + ctrl.indent(); + out.print("throw e;"); + ctrl.unindent(); + out.print("}"); + if (except[j] == Exception.class) { + needgeneral = false; + } + } + if (needgeneral) { + out.println(); + out.print("catch (java.lang.Exception e) {"); + ctrl.indent(); + out.print("throw new java.rmi.UnexpectedException(\"undeclared checked exception\", e);"); + ctrl.unindent(); + out.print("}"); + } + + ctrl.unindent(); + out.print("}"); + out.println(); + } + + ctrl.unindent(); + out.println("}"); + + out.close(); +} + +private void generateSkel() throws IOException { + skelname = classname + "_Skel"; + ctrl = new TabbedWriter(new FileWriter(skelname + ".java")); + out = new PrintWriter(ctrl); + + if (verbose) { + System.out.println("[Generating class " + skelname + ".java]"); + } + + out.println("// Skel class generated by rmic - DO NOT EDIT!"); + out.println(); + if (fullclassname != classname) { + String pname = fullclassname.substring(0, fullclassname.lastIndexOf('.')); + out.println("package " + pname + ";"); + out.println(); + } + + out.print("public final class " + skelname); + ctrl.indent(); + + // Output interfaces we implement + out.print("implements java.rmi.server.Skeleton"); + + ctrl.unindent(); + out.print("{"); + ctrl.indent(); + + // Interface hash - don't know how to calculate this - XXX + out.println("private static final long interfaceHash = " + RMIHashes.getInterfaceHash(clazz) + "L;"); + out.println(); + + // Operation table + out.print("private static final java.rmi.server.Operation[] operations = {"); + + ctrl.indent(); + for (int i = 0; i < remotemethods.length; i++) { + Method m = remotemethods[i].meth; + out.print("new java.rmi.server.Operation(\""); + out.print(getPrettyName(m.getReturnType()) + " "); + out.print(m.getName() + "("); + // Output signature + Class[] sig = m.getParameterTypes(); + for (int j = 0; j < sig.length; j++) { + out.print(getPrettyName(sig[j])); + if (j+1 < sig.length) { + out.print(", "); + } + } + out.print("\")"); + if (i + 1 < remotemethods.length) { + out.println(","); + } + } + ctrl.unindent(); + out.println("};"); + + out.println(); + + // getOpertions method + out.print("public java.rmi.server.Operation[] getOperations() {"); + ctrl.indent(); + out.print("return ((java.rmi.server.Operation[]) operations.clone());"); + ctrl.unindent(); + out.println("}"); + + out.println(); + + // Dispatch method + out.print("public void dispatch(java.rmi.Remote obj, java.rmi.server.RemoteCall call, int opnum, long hash) throws java.lang.Exception {"); + ctrl.indent(); + + out.print("if (opnum < 0) {"); + ctrl.indent(); + + for (int i = 0; i < remotemethods.length; i++) { + out.print("if (hash == " + Long.toString(remotemethods[i].hash) + "L) {"); + ctrl.indent(); + out.print("opnum = " + i + ";"); + ctrl.unindent(); + out.println("}"); + out.print("else "); + } + out.print("{"); + ctrl.indent(); + out.print("throw new java.rmi.server.SkeletonMismatchException(\"interface hash mismatch\");"); + ctrl.unindent(); + out.print("}"); + + ctrl.unindent(); + out.println("}"); + out.print("else if (hash != interfaceHash) {"); + ctrl.indent(); + out.print("throw new java.rmi.server.SkeletonMismatchException(\"interface hash mismatch\");"); + ctrl.unindent(); + out.println("}"); + + out.println(); + + out.println(fullclassname + " server = (" + fullclassname + ")obj;"); + out.println("switch (opnum) {"); + + // Method dispatch + for (int i = 0; i < remotemethods.length; i++) { + Method m = remotemethods[i].meth; + out.println("case " + i + ":"); + out.print("{"); + ctrl.indent(); + + Class[] sig = m.getParameterTypes(); + for (int j = 0; j < sig.length; j++) { + out.print(getPrettyName(sig[j])); + out.println(" $param_" + j + ";"); + } + + out.print("try {"); + boolean needcastcheck = false; + ctrl.indent(); + out.println("java.io.ObjectInput in = call.getInputStream();"); + for (int j = 0; j < sig.length; j++) { + out.print("$param_" + j + " = "); + if (sig[j] == Boolean.TYPE) { + out.print("in.readBoolean();"); + } + else if (sig[j] == Byte.TYPE) { + out.print("in.readByte();"); + } + else if (sig[j] == Character.TYPE) { + out.print("in.readChar();"); + } + else if (sig[j] == Short.TYPE) { + out.print("in.readShort();"); + } + else if (sig[j] == Integer.TYPE) { + out.print("in.readInt();"); + } + else if (sig[j] == Long.TYPE) { + out.print("in.readLong();"); + } + else if (sig[j] == Float.TYPE) { + out.print("in.readFloat();"); + } + else if (sig[j] == Double.TYPE) { + out.print("in.readDouble();"); + } + else { + if (sig[j] != Object.class) { + out.print("(" + getPrettyName(sig[j]) + ")"); + needcastcheck = true; + } + out.print("in.readObject();"); + } + out.println(); + } + ctrl.unindent(); + out.println("}"); + out.print("catch (java.io.IOException e) {"); + ctrl.indent(); + out.print("throw new java.rmi.UnmarshalException(\"error unmarshalling arguments\", e);"); + ctrl.unindent(); + out.println("}"); + if (needcastcheck) { + out.print("catch (java.lang.ClassCastException e) {"); + ctrl.indent(); + out.print("throw new java.rmi.UnmarshalException(\"error unmarshalling arguments\", e);"); + ctrl.unindent(); + out.println("}"); + } + out.print("finally {"); + ctrl.indent(); + out.print("call.releaseInputStream();"); + ctrl.unindent(); + out.println("}"); + + Class returntype = m.getReturnType(); + if (returntype != Void.TYPE) { + out.print(getPrettyName(returntype) + " $result = "); + } + out.print("server." + m.getName() + "("); + for (int j = 0; j < sig.length; j++) { + out.print("$param_" + j); + if (j + 1 < sig.length) { + out.print(", "); + } + } + out.println(");"); + + out.print("try {"); + ctrl.indent(); + out.print("java.io.ObjectOutput out = call.getResultStream(true);"); + if (returntype != Void.TYPE) { + out.println(); + if (returntype == Boolean.TYPE) { + out.print("out.writeBoolean($result);"); + } + else if (returntype == Byte.TYPE) { + out.print("out.writeByte($result);"); + } + else if (returntype == Character.TYPE) { + out.print("out.writeChar($result);"); + } + else if (returntype == Short.TYPE) { + out.print("out.writeShort($result);"); + } + else if (returntype == Integer.TYPE) { + out.print("out.writeInt($result);"); + } + else if (returntype == Long.TYPE) { + out.print("out.writeLong($result);"); + } + else if (returntype == Float.TYPE) { + out.print("out.writeFloat($result);"); + } + else if (returntype == Double.TYPE) { + out.print("out.writeDouble($result);"); + } + else { + out.print("out.writeObject($result);"); + } + } + ctrl.unindent(); + out.println("}"); + out.print("catch (java.io.IOException e) {"); + ctrl.indent(); + out.print("throw new java.rmi.MarshalException(\"error marshalling return\", e);"); + ctrl.unindent(); + out.println("}"); + out.print("break;"); + + ctrl.unindent(); + out.println("}"); + out.println(); + } + + out.print("default:"); + ctrl.indent(); + out.print("throw new java.rmi.UnmarshalException(\"invalid method number\");"); + ctrl.unindent(); + out.print("}"); + + ctrl.unindent(); + out.print("}"); + + ctrl.unindent(); + out.println("}"); + + out.close(); +} + +private void compile(String name) throws Exception { + throw new Error ("Not implemented"); +// Compiler comp = Compiler.getInstance(); +// if (verbose) { +// System.out.println("[Compiling class " + name + "]"); +// } +// comp.setDestination(destination); +// boolean result = comp.compile(name); +// if (result == false) { +// throw comp.getException(); +// } +} + +private static String getPrettyName(Class cls) { + StringBuffer str = new StringBuffer(); + for (int count = 0;; count++) { + if (!cls.isArray()) { + str.append(cls.getName()); + for (; count > 0; count--) { + str.append("[]"); + } + return (str.toString()); + } + cls = cls.getComponentType(); + } +} + +/** + * Sort exceptions so the most general go last. + */ +private Class[] sortExceptions(Class[] except) { + for (int i = 0; i < except.length; i++) { + for (int j = i+1; j < except.length; j++) { + if (except[i].isAssignableFrom(except[j])) { + Class tmp = except[i]; + except[i] = except[j]; + except[j] = tmp; + } + } + } + return (except); +} + +/** + * Process the options until we find the first argument. + */ +private void parseOptions() { + for (;;) { + if (next >= args.length || args[next].charAt(0) != '-') { + break; + } + String arg = args[next]; + next++; + + if (arg.equals("-keep")) { + keep = true; + } + else if (arg.equals("-keepgenerated")) { + keep = true; + } + else if (arg.equals("-v1.1")) { + need11Stubs = true; + need12Stubs = false; + } + else if (arg.equals("-vcompat")) { + need11Stubs = true; + need12Stubs = true; + } + else if (arg.equals("-v1.2")) { + need11Stubs = false; + need12Stubs = true; + } + else if (arg.equals("-g")) { + } + else if (arg.equals("-depend")) { + } + else if (arg.equals("-nowarn")) { + } + else if (arg.equals("-verbose")) { + verbose = true; + } + else if (arg.equals("-nocompile")) { + compile = false; + } + else if (arg.equals("-classpath")) { + next++; + } + else if (arg.equals("-d")) { + destination = args[next]; + next++; + } + else if (arg.charAt(1) == 'J') { + } + else { + System.err.println("Unknown option: " + arg); + } + } +} + +private static void usage() { + System.out.println( +"usage: rmic [-options] classes\n" + +"Options are:\n" + +" -keep Don't delete any intermediate files\n" + +" -keepgenerated Same as -keep\n" + +" -v1.1 Java 1.1 style stubs only\n" + +" -vcompat Java 1.1 & Java 1.2 stubs\n" + +" -v1.2 Java 1.2 style stubs only\n" + +" -g * Generated debugging information\n" + +" -depend * Recompile out-of-date files\n" + +" -nowarn * Suppress warning messages\n" + +" -nocompile Don't compile the generated files\n" + +" -verbose Output what's going on\n" + +" -classpath * Use given path as classpath\n" + +" -d Specify where to place generated classes\n" + +" -J * Pass flag to Java\n" + +" * Option currently ignored" + ); +} + +static class MethodRef + implements Comparable { + +Method meth; +String sig; +long hash; + +MethodRef(Method m) { + meth = m; + // We match on the name - but what about overloading? - XXX + sig = m.getName(); + hash = RMIHashes.getMethodHash(m); +} + +public int compareTo(Object obj) { + MethodRef that = (MethodRef)obj; + return (this.sig.compareTo(that.sig)); +} + +} + +} diff --git a/libjava/gnu/java/rmi/rmic/TabbedWriter.java b/libjava/gnu/java/rmi/rmic/TabbedWriter.java new file mode 100644 index 00000000000..c2e668ca5ea --- /dev/null +++ b/libjava/gnu/java/rmi/rmic/TabbedWriter.java @@ -0,0 +1,90 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package gnu.java.rmi.rmic; + +import java.io.FilterWriter; +import java.io.Writer; +import java.io.IOException; + +public class TabbedWriter + extends FilterWriter { + +private static final String defaultTabstring = " "; +private char[] tabstring; +private int tabs; + +public TabbedWriter(Writer o) { + this(o, defaultTabstring); +} + +public TabbedWriter(Writer o, String str) { + super(o); + tabs = 0; + tabstring = str.toCharArray(); +} + +public void write(int c) throws IOException { + out.write(c); + if (c == '\n') { + for (int i = 0; i < tabs; i++) { + out.write(tabstring, 0, tabstring.length); + } + } +} + +public void write(char cbuf[], int off, int len) throws IOException { + for (int i = 0; i < len; i++) { + write((int)cbuf[i+off]); + } +} + +public void write(String str, int off, int len) throws IOException { + write(str.toCharArray(), off, len); +} + +public void unindent() throws IOException { + unindent(1); +} + +public void unindent(int nr) throws IOException { + indent(-nr); +} + +public void indent() throws IOException { + indent(1); +} + +public void indent(int nr) throws IOException { + tabs += nr; + if (tabs < 0) { + tabs = 0; + } + write((int)'\n'); +} + +} diff --git a/libjava/gnu/java/rmi/server/ProtocolConstants.java b/libjava/gnu/java/rmi/server/ProtocolConstants.java new file mode 100644 index 00000000000..431a6999aab --- /dev/null +++ b/libjava/gnu/java/rmi/server/ProtocolConstants.java @@ -0,0 +1,53 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package gnu.java.rmi.server; + +public interface ProtocolConstants { + +final public static int PROTOCOL_HEADER = 0x4a524d49; // JRMI +final public static int PROTOCOL_VERSION = 2; + +final public static int STREAM_PROTOCOL = 0x4b; +final public static int SINGLE_OP_PROTOCOL = 0x4c; +final public static int MULTIPLEX_PROTOCOL = 0x4d; + +final public static int PROTOCOL_ACK = 0x4e; +final public static int PROTOCOL_NACK = 0x4f; + +final public static int MESSAGE_CALL = 0x50; +final public static int MESSAGE_CALL_ACK = 0x51; +final public static int MESSAGE_PING = 0x52; +final public static int MESSAGE_PING_ACK = 0x53; +final public static int MESSAGE_DGCACK = 0x54; + +final public static int RETURN_ACK = 0x01; +final public static int RETURN_NACK = 0x02; + +final public static int DEFAULT_PROTOCOL = STREAM_PROTOCOL; + +}; diff --git a/libjava/gnu/java/rmi/server/RMIDefaultSocketFactory.java b/libjava/gnu/java/rmi/server/RMIDefaultSocketFactory.java new file mode 100644 index 00000000000..610c3a73bfe --- /dev/null +++ b/libjava/gnu/java/rmi/server/RMIDefaultSocketFactory.java @@ -0,0 +1,49 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package gnu.java.rmi.server; + +import java.rmi.server.RMISocketFactory; +import java.io.IOException; +import java.net.Socket; +import java.net.ServerSocket; + +public class RMIDefaultSocketFactory + extends RMISocketFactory { + +public RMIDefaultSocketFactory() { +} + +public Socket createSocket(String host, int port) throws IOException { + return (new Socket(host, port)); +} + +public ServerSocket createServerSocket(int port) throws IOException { + return (new ServerSocket(port)); +} + +} diff --git a/libjava/gnu/java/rmi/server/RMIHashes.java b/libjava/gnu/java/rmi/server/RMIHashes.java new file mode 100644 index 00000000000..dc00276de7f --- /dev/null +++ b/libjava/gnu/java/rmi/server/RMIHashes.java @@ -0,0 +1,45 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package gnu.java.rmi.server; + +import java.lang.reflect.Method; +import java.lang.Class; +import gnu.java.security.provider.SHA; + +public class RMIHashes +{ + public static long getMethodHash(Method meth) + { + return meth.hashCode (); + } + + public static long getInterfaceHash(Class clazz) + { + return clazz.hashCode (); + } +} diff --git a/libjava/gnu/java/rmi/server/RMIObjectInputStream.java b/libjava/gnu/java/rmi/server/RMIObjectInputStream.java new file mode 100644 index 00000000000..b6efbf0b8d8 --- /dev/null +++ b/libjava/gnu/java/rmi/server/RMIObjectInputStream.java @@ -0,0 +1,65 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package gnu.java.rmi.server; + +import java.io.ObjectStreamClass; +import java.io.ObjectInputStream; +import java.io.InputStream; +import java.io.IOException; +import java.net.URL; +import java.net.MalformedURLException; +import java.rmi.server.RMIClassLoader; + +public class RMIObjectInputStream + extends ObjectInputStream { + +UnicastConnectionManager manager; + +public RMIObjectInputStream(InputStream strm, UnicastConnectionManager man) throws IOException { + super(strm); + manager = man; + enableResolveObject(true); +} + +protected Class resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException { +//System.out.println("Resolving class: " + desc.getName()); + String annotation = (String)readObject(); + if (annotation == null) { + return (super.resolveClass(desc)); + } + else { + try { + return (RMIClassLoader.loadClass(new URL(annotation), desc.getName())); + } + catch (MalformedURLException _) { + throw new ClassNotFoundException(desc.getName()); + } + } +} + +} diff --git a/libjava/gnu/java/rmi/server/RMIObjectOutputStream.java b/libjava/gnu/java/rmi/server/RMIObjectOutputStream.java new file mode 100644 index 00000000000..960252b6477 --- /dev/null +++ b/libjava/gnu/java/rmi/server/RMIObjectOutputStream.java @@ -0,0 +1,47 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package gnu.java.rmi.server; + +import java.io.ObjectOutputStream; +import java.io.OutputStream; +import java.io.IOException; +import java.rmi.server.RMIClassLoader; + +public class RMIObjectOutputStream + extends ObjectOutputStream { + +public RMIObjectOutputStream(OutputStream strm) throws IOException { + super(strm); +} + +protected void annotateClass(Class cls) throws IOException { +//System.out.println("Annotating class: " + cls); + writeObject(RMIClassLoader.getClassAnnotation(cls)); +} + +} diff --git a/libjava/gnu/java/rmi/server/UnicastConnection.java b/libjava/gnu/java/rmi/server/UnicastConnection.java new file mode 100644 index 00000000000..04d18bedc51 --- /dev/null +++ b/libjava/gnu/java/rmi/server/UnicastConnection.java @@ -0,0 +1,162 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package gnu.java.rmi.server; + +import java.lang.Runnable; +import java.net.Socket; +import java.net.ServerSocket; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.io.ObjectOutput; +import java.io.ObjectInput; +import java.io.IOException; +import java.rmi.RemoteException; + +public class UnicastConnection + implements Runnable, ProtocolConstants { + +UnicastConnectionManager manager; +Socket sock; +DataInputStream din; +DataOutputStream dout; +ObjectInputStream oin; +ObjectOutputStream oout; + +UnicastConnection(UnicastConnectionManager man, Socket sock) { + this.manager = man; + this.sock = sock; +} + +void acceptConnection() throws IOException { +//System.out.println("Accepting connection on " + lport); + din = new DataInputStream(sock.getInputStream()); + dout = new DataOutputStream(sock.getOutputStream()); + + int sig = din.readInt(); + if (sig != PROTOCOL_HEADER) { + throw new IOException("bad protocol header"); + } + short ver = din.readShort(); + if (ver != PROTOCOL_VERSION) { + throw new IOException("bad protocol version"); + } + int protocol = din.readUnsignedByte(); + if (protocol != SINGLE_OP_PROTOCOL) { + // Send an ACK + dout.writeByte(PROTOCOL_ACK); + + // Send my hostname and port + dout.writeUTF(manager.serverName); + dout.writeInt(manager.serverPort); + + // Read their hostname and port + String rhost = din.readUTF(); + int rport = din.readInt(); + } + // Okay, ready to roll ... +} + +void makeConnection(int protocol) throws IOException { + dout = new DataOutputStream(sock.getOutputStream()); + din = new DataInputStream(sock.getInputStream()); + + // Send header + dout.writeInt(PROTOCOL_HEADER); + dout.writeShort(PROTOCOL_VERSION); + dout.writeByte(protocol); + dout.flush(); + + if (protocol != SINGLE_OP_PROTOCOL) { + // Get back ack. + int ack = din.readUnsignedByte(); + if (ack != PROTOCOL_ACK) { + throw new RemoteException("Unsupported protocol"); + } + + // Read in host and port + String dicard_rhost = din.readUTF(); + int discard_rport = din.readInt(); + + // Send them my endpoint + dout.writeUTF(manager.serverName); + dout.writeInt(manager.serverPort); + } + // Okay, ready to roll ... +} + +DataInputStream getDataInputStream() throws IOException { + return (din); +} + +DataOutputStream getDataOutputStream() throws IOException { + return (dout); +} + +ObjectInputStream getObjectInputStream() throws IOException { + if (oin == null) { + oin = new RMIObjectInputStream(din, manager); + } + return (oin); +} + +ObjectOutputStream getObjectOutputStream() throws IOException { + if (oout == null) { + oout = new RMIObjectOutputStream(dout); + } + return (oout); +} + +void disconnect() { + oin = null; + oout = null; + try { + sock.close(); + } + catch (IOException _) { + } + din = null; + dout = null; + sock = null; +} + +/** + * We run connects on the server. Dispatch it then discard it. + */ +public void run() { + try { + UnicastServer.dispatch(this); + manager.discardConnection(this); + } + catch (Exception e) { + e.printStackTrace(); + } +} + +} diff --git a/libjava/gnu/java/rmi/server/UnicastConnectionManager.java b/libjava/gnu/java/rmi/server/UnicastConnectionManager.java new file mode 100644 index 00000000000..84152bd880b --- /dev/null +++ b/libjava/gnu/java/rmi/server/UnicastConnectionManager.java @@ -0,0 +1,262 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package gnu.java.rmi.server; + +import java.rmi.server.RMISocketFactory; +import java.rmi.server.RMIServerSocketFactory; +import java.rmi.server.RMIClientSocketFactory; +import java.rmi.RemoteException; +import gnu.java.rmi.server.UnicastConnection; +import java.util.Hashtable; +import java.net.Socket; +import java.net.ServerSocket; +import java.io.IOException; +import java.io.ObjectOutput; +import java.io.ObjectInput; +import java.lang.Thread; +import java.lang.Runnable; +import java.net.InetAddress; +import java.net.UnknownHostException; + +public class UnicastConnectionManager + implements Runnable, ProtocolConstants { + +private static String localhost; +private static Hashtable servers = new Hashtable(); + +private Thread serverThread; +private ServerSocket ssock; +String serverName; +int serverPort; +private RMIServerSocketFactory serverFactory; +private RMIClientSocketFactory clientFactory; + +static { + try { + localhost = InetAddress.getLocalHost().getHostName(); + } + catch (UnknownHostException _) { + localhost = "localhost"; + } +} + +private UnicastConnectionManager(String host, int port, RMIClientSocketFactory csf) { + ssock = null; + serverName = host; + serverPort = port; + serverFactory = null; + clientFactory = csf; +} + +private UnicastConnectionManager(int port, RMIServerSocketFactory ssf) { + try { + ssock = ssf.createServerSocket(port); + serverPort = ssock.getLocalPort(); + } + catch (IOException _) { + try { + ssock = ssf.createServerSocket(0); + serverPort = ssock.getLocalPort(); + } + catch (IOException __) { + ssock = null; + serverPort = 0; + } + } + serverName = localhost; + serverFactory = ssf; + clientFactory = null; +} + +/** + * Return a client connection manager which will connect to the given + * host/port. + */ +public static synchronized UnicastConnectionManager getInstance(String host, int port, RMIClientSocketFactory csf) { +//System.out.println("getInstance: " + host + "," + port + "," + csf); + if (csf == null) { + csf = RMISocketFactory.getSocketFactory(); + } + TripleKey key = new TripleKey(host, port, csf); + UnicastConnectionManager man = (UnicastConnectionManager)servers.get(key); + if (man == null) { + man = new UnicastConnectionManager(host, port, csf); + servers.put(key, man); + } + return (man); +} + +/** + * Return a server connection manager which will accept connection on the + * given port. + */ +public static synchronized UnicastConnectionManager getInstance(int port, RMIServerSocketFactory ssf) { +//System.out.println("getInstance: " + port + "," + ssf); + if (ssf == null) { + ssf = RMISocketFactory.getSocketFactory(); + } + TripleKey key = new TripleKey(localhost, port, ssf); + UnicastConnectionManager man = (UnicastConnectionManager)servers.get(key); + if (man == null) { + man = new UnicastConnectionManager(port, ssf); + // The provided port might not be the set port. + key.port = man.serverPort; + servers.put(key, man); + } + return (man); +} + +/** + * Get a connection from this manager. + */ +public UnicastConnection getConnection() throws IOException { + if (ssock == null) { + return (getClientConnection()); + } + else { + return (getServerConnection()); + } +} + +/** + * Accept a connection to this server. + */ +private UnicastConnection getServerConnection() throws IOException { + Socket sock = ssock.accept(); + UnicastConnection conn = new UnicastConnection(this, sock); + conn.acceptConnection(); +//System.out.println("Server connection " + conn); + return (conn); +} + +/** + * Make a conection from this client to the server. + */ +private UnicastConnection getClientConnection() throws IOException { + Socket sock = clientFactory.createSocket(serverName, serverPort); + UnicastConnection conn = new UnicastConnection(this, sock); + conn.makeConnection(DEFAULT_PROTOCOL); +//System.out.println("Client connection " + conn); + return (conn); +} + +/** + * Discard a connection when we're done with it - maybe it can be + * recycled. + */ +public void discardConnection(UnicastConnection conn) { +//System.out.println("Discarding connection " + conn); + conn.disconnect(); +} + +/** + * Start a server on this manager if it's a server socket and we've not + * already got one running. + */ +public void startServer() { + synchronized(this) { + if (ssock == null || serverThread != null) { + return; + } + serverThread = new Thread(this); + } + serverThread.start(); +} + +/** + * Server thread for connection manager. + */ +public void run() { + for (;;) { + try { +//System.out.println("Waiting for connection on " + serverPort); + UnicastConnection conn = getServerConnection(); + (new Thread(conn)).start(); + } + catch (Exception e) { + e.printStackTrace(); + } + } +} + +/** + * Serialization routine. + */ +void write(ObjectOutput out) throws IOException { + out.writeUTF(serverName); + out.writeInt(serverPort); +} + +/** + * Serialization routine. + */ +static UnicastConnectionManager read(ObjectInput in) throws IOException { + String host = in.readUTF(); + int port = in.readInt(); + RMIClientSocketFactory csf = ((RMIObjectInputStream)in).manager.clientFactory; + return (getInstance(host, port, csf)); +} + +} + +/** + * This is use as the hashkey for the client/server connections. + */ +class TripleKey { + +String host; +int port; +Object other; + +TripleKey(String host, int port, Object other) { + this.host = host; + this.port = port; + this.other = other; +} + +/** + * Hash code just include the host and other - we ignore the port since + * this has unusual matching behaviour. + */ +public int hashCode() { + return (host.hashCode() ^ other.hashCode()); +} + +public boolean equals(Object obj) { + if (obj instanceof TripleKey) { + TripleKey other = (TripleKey)obj; + if (this.host.equals(other.host) && + this.other == other.other && + (this.port == other.port || this.port == 0 || other.port == 0)) { + return (true); + } + } + return (false); +} + +} diff --git a/libjava/gnu/java/rmi/server/UnicastRef.java b/libjava/gnu/java/rmi/server/UnicastRef.java new file mode 100644 index 00000000000..837e6e4e975 --- /dev/null +++ b/libjava/gnu/java/rmi/server/UnicastRef.java @@ -0,0 +1,219 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package gnu.java.rmi.server; + +import java.rmi.Remote; +import java.rmi.RemoteException; +import java.rmi.server.RemoteRef; +import java.rmi.server.RMISocketFactory; +import java.rmi.server.RMIClientSocketFactory; +import java.rmi.server.RMIServerSocketFactory; +import java.rmi.server.RemoteObject; +import java.rmi.server.RemoteCall; +import java.rmi.server.UnicastRemoteObject; +import java.rmi.server.Operation; +import java.rmi.server.ObjID; +import java.rmi.server.UID; +import java.lang.reflect.Method; +import java.io.ObjectOutput; +import java.io.ObjectInput; +import java.io.IOException; +import java.net.Socket; +import java.net.InetAddress; +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.io.DataInputStream; +import java.io.DataOutputStream; + +public class UnicastRef + implements RemoteRef, ProtocolConstants { + +public ObjID objid; +UnicastConnectionManager manager; + +/** + * Used by serialization. + */ +private UnicastRef() { +} + +public UnicastRef(ObjID objid, String host, int port, RMIClientSocketFactory csf) { + this(objid); + manager = UnicastConnectionManager.getInstance(host, port, csf); +} + +public UnicastRef(ObjID objid) { + this.objid = objid; +} + +public Object invoke(Remote obj, Method method, Object[] params, long opnum) throws Exception { + return (invokeCommon(obj, method, params, -1, opnum)); +} + +private Object invokeCommon(Remote obj, Method method, Object[] params, int opnum, long hash) throws Exception { + UnicastConnection conn; + try { + conn = manager.getConnection(); + } + catch (IOException e1) { + throw new RemoteException("connection failed to host: " + manager.serverName, e1); + } + + ObjectOutputStream out; + DataOutputStream dout; + try { + dout = conn.getDataOutputStream(); + dout.writeByte(MESSAGE_CALL); + + out = conn.getObjectOutputStream(); + + objid.write(out); + out.writeInt(opnum); + out.writeLong(hash); + if (params != null) { + for (int i = 0; i < params.length; i++) { + if (params[i] instanceof UnicastRemoteObject) { + out.writeObject(UnicastRemoteObject.exportObject((UnicastRemoteObject)params[i])); + } + else { + out.writeObject(params[i]); + } + } + } + + out.flush(); + } + catch (IOException e2) { + throw new RemoteException("call failed: ", e2); + } + + int returncode; + Object returnval; + DataInputStream din; + ObjectInputStream in; + UID ack; + try { + din = conn.getDataInputStream(); + if (din.readUnsignedByte() != MESSAGE_CALL_ACK) { + throw new RemoteException("Call not acked"); + } + + in = conn.getObjectInputStream(); + + returncode = in.readUnsignedByte(); + ack = UID.read(in); + returnval = in.readObject(); + } + catch (IOException e3) { + throw new RemoteException("call return failed: ", e3); + } + + manager.discardConnection(conn); + + if (returncode != RETURN_ACK) { + throw (Exception)returnval; + } + + return (returnval); +} + +/** + * @deprecated + */ +public RemoteCall newCall(RemoteObject obj, Operation[] op, int opnum, long hash) throws RemoteException { + return (new UnicastRemoteCall(obj, opnum, hash)); +} + +/** + * @deprecated + */ +public void invoke(RemoteCall call) throws Exception { + UnicastRemoteCall c = (UnicastRemoteCall)call; + Object ret = invokeCommon((Remote)c.getObject(), (Method)null, c.getArguments(), c.getOpnum(), c.getHash()); + c.setReturnValue(ret); +} + +/** + * @deprecated + */ +public void done(RemoteCall call) throws RemoteException { + /* Does nothing */ +} + +public void writeExternal(ObjectOutput out) throws IOException { + if (manager == null) { + throw new IOException("no connection"); + } + manager.write(out); + objid.write(out); + out.writeByte(RETURN_ACK); +} + +public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { + manager = UnicastConnectionManager.read(in); + objid = ObjID.read(in); + if (in.readByte() != RETURN_ACK) { + throw new IOException("no ack found"); + } +} + +public boolean remoteEquals(RemoteRef ref) { + throw new Error("Not implemented"); +} + +public int remoteHashCode() { + throw new Error("Not implemented"); +} + +public String getRefClass(ObjectOutput out) { + return ("UnicastRef"); +} + +public String remoteToString() { + throw new Error("Not implemented"); +} + +public void dump(UnicastConnection conn) { + try { + DataInputStream din = conn.getDataInputStream(); + for (;;) { + int b = din.readUnsignedByte(); + System.out.print(Integer.toHexString(b)); + if (b >= 32 && b < 128) { + System.out.print(": " + (char)b); + } + System.out.println(); + } + } + catch (IOException _) { + } +} + +} diff --git a/libjava/gnu/java/rmi/server/UnicastRemoteCall.java b/libjava/gnu/java/rmi/server/UnicastRemoteCall.java new file mode 100644 index 00000000000..42759e70a67 --- /dev/null +++ b/libjava/gnu/java/rmi/server/UnicastRemoteCall.java @@ -0,0 +1,301 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package gnu.java.rmi.server; + +import java.lang.Exception; +import java.io.IOException; +import java.io.ObjectOutput; +import java.io.ObjectInput; +import java.io.StreamCorruptedException; +import java.rmi.server.RemoteCall; +import java.util.Vector; + +public class UnicastRemoteCall + implements RemoteCall { + +private UnicastConnection conn; +private Object result; +private Object object; +private int opnum; +private long hash; +private Vector vec; +private int ptr; + +/** + * Incoming call. + */ +UnicastRemoteCall(UnicastConnection conn) { + this.conn = conn; +} + +/** + * Outgoing call. + */ +UnicastRemoteCall(Object obj, int opnum, long hash) { + this.object = obj; + this.opnum = opnum; + this.hash = hash; +} + +public ObjectOutput getOutputStream() throws IOException { + vec = new Vector(); + return (new DummyObjectOutputStream()); +} + +public void releaseOutputStream() throws IOException { + // Does nothing. +} + +public ObjectInput getInputStream() throws IOException { + if (conn != null) { + return (conn.getObjectInputStream()); + } + else { + ptr = 0; + return (new DummyObjectInputStream()); + } +} + +public void releaseInputStream() throws IOException { + // Does nothing. +} + +public ObjectOutput getResultStream(boolean success) throws IOException, StreamCorruptedException { + vec = new Vector(); + return (new DummyObjectOutputStream()); +} + +public void executeCall() throws Exception { + throw new Error("Not implemented"); +} + +public void done() throws IOException { + /* Does nothing */ +} + +Object returnValue() { + return (vec.elementAt(0)); +} + +Object[] getArguments() { + return (vec.toArray()); +} + +Object getObject() { + return (object); +} + +int getOpnum() { + return (opnum); +} + +long getHash() { + return (hash); +} + +void setReturnValue(Object obj) { + vec.removeAllElements(); + vec.addElement(obj); +} + +/** + * Dummy object output class. + */ +private class DummyObjectOutputStream implements ObjectOutput { + +public void writeBoolean(boolean v) throws IOException { + vec.addElement(new Boolean(v)); +} + +public void writeByte(int v) throws IOException { + vec.addElement(new Byte((byte)v)); +} + +public void writeChar(int v) throws IOException { + vec.addElement(new Character((char)v)); +} + +public void writeDouble(double v) throws IOException { + vec.addElement(new Double(v)); +} + +public void writeFloat(float v) throws IOException { + vec.addElement(new Float(v)); +} + +public void writeInt(int v) throws IOException { + vec.addElement(new Integer(v)); +} + +public void writeLong(long v) throws IOException { + vec.addElement(new Long(v)); +} + +public void writeShort(int v) throws IOException { + vec.addElement(new Short((short)v)); +} + +public void writeObject(Object obj) throws IOException { + vec.addElement(obj); +} + +public void write(byte b[]) throws IOException { + throw new IOException("not required"); +} + +public void write(byte b[], int off, int len) throws IOException { + throw new IOException("not required"); +} + +public void write(int b) throws IOException { + throw new IOException("not required"); +} + +public void writeBytes(String s) throws IOException { + throw new IOException("not required"); +} + +public void writeChars(String s) throws IOException { + throw new IOException("not required"); +} + +public void writeUTF(String str) throws IOException { + throw new IOException("not required"); +} + +public void flush() throws IOException { +} + +public void close() throws IOException { +} + +} + +/** + * Dummy object input class. + */ +private class DummyObjectInputStream implements ObjectInput { + +public boolean readBoolean() throws IOException { + Object obj = vec.elementAt(ptr++); + return (((Boolean)obj).booleanValue()); +} + +public byte readByte() throws IOException { + Object obj = vec.elementAt(ptr++); + return (((Byte)obj).byteValue()); +} + +public char readChar() throws IOException { + Object obj = vec.elementAt(ptr++); + return (((Character)obj).charValue()); +} + +public double readDouble() throws IOException { + Object obj = vec.elementAt(ptr++); + return (((Double)obj).doubleValue()); +} + +public float readFloat() throws IOException { + Object obj = vec.elementAt(ptr++); + return (((Float)obj).floatValue()); +} + +public int readInt() throws IOException { + Object obj = vec.elementAt(ptr++); + return (((Integer)obj).intValue()); +} + +public long readLong() throws IOException { + Object obj = vec.elementAt(ptr++); + return (((Long)obj).longValue()); +} + +public short readShort() throws IOException { + Object obj = vec.elementAt(ptr++); + return (((Short)obj).shortValue()); +} + +public Object readObject() throws IOException { + return (vec.elementAt(ptr++)); +} + +public int read(byte b[]) throws IOException { + throw new IOException("not required"); +} + +public int read(byte b[], int off, int len) throws IOException { + throw new IOException("not required"); +} + +public int read() throws IOException { + throw new IOException("not required"); +} + +public long skip(long n) throws IOException { + throw new IOException("not required"); +} + +public int available() throws IOException { + throw new IOException("not required"); +} + +public void readFully(byte b[]) throws IOException { + throw new IOException("not required"); +} + +public void readFully(byte b[], int off, int len) throws IOException { + throw new IOException("not required"); +} + +public String readLine() throws IOException { + throw new IOException("not required"); +} + +public String readUTF() throws IOException { + throw new IOException("not required"); +} + +public int readUnsignedByte() throws IOException { + throw new IOException("not required"); +} + +public int readUnsignedShort() throws IOException { + throw new IOException("not required"); +} + +public int skipBytes(int n) throws IOException { + throw new IOException("not required"); +} + +public void close() throws IOException { +} + +} + +} diff --git a/libjava/gnu/java/rmi/server/UnicastRemoteStub.java b/libjava/gnu/java/rmi/server/UnicastRemoteStub.java new file mode 100644 index 00000000000..244e7a8aa5c --- /dev/null +++ b/libjava/gnu/java/rmi/server/UnicastRemoteStub.java @@ -0,0 +1,40 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package gnu.java.rmi.server; + +import java.rmi.server.RemoteStub; +import java.rmi.server.RemoteRef; + +public class UnicastRemoteStub + extends RemoteStub { + +public static void setStubRef(RemoteStub stub, RemoteRef ref) { + setRef(stub, ref); +} + +} diff --git a/libjava/gnu/java/rmi/server/UnicastServer.java b/libjava/gnu/java/rmi/server/UnicastServer.java new file mode 100644 index 00000000000..d2cc7dc40ce --- /dev/null +++ b/libjava/gnu/java/rmi/server/UnicastServer.java @@ -0,0 +1,119 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package gnu.java.rmi.server; + +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.io.IOException; +import java.net.InetAddress; +import java.util.Hashtable; +import java.net.UnknownHostException; +import java.rmi.server.ObjID; +import java.rmi.server.UnicastRemoteObject; +import java.rmi.server.UID; +import java.rmi.server.RemoteRef; +import java.rmi.RemoteException; +import java.rmi.NoSuchObjectException; +import gnu.java.rmi.dgc.DGCImpl; + +public class UnicastServer + implements ProtocolConstants { + +static private Hashtable objects = new Hashtable(); +static private DGCImpl dgc; + +public static void exportObject(UnicastServerRef obj) { + startDGC(); + objects.put(obj.objid, obj); + obj.manager.startServer(); +} + +private static synchronized void startDGC() { + if (dgc == null) { + try { + dgc = new DGCImpl(); + ((UnicastServerRef)dgc.getRef()).exportObject(dgc); + } + catch (RemoteException e) { + e.printStackTrace(); + } + } +} + +public static void dispatch(UnicastConnection conn) throws Exception { + switch (conn.getDataInputStream().readUnsignedByte()) { + case MESSAGE_CALL: + incomingMessageCall(conn); + break; + default: + throw new Exception("bad method type"); + } +} + +private static void incomingMessageCall(UnicastConnection conn) throws IOException { + ObjectInputStream in = conn.getObjectInputStream(); + + ObjID objid = ObjID.read(in); + int method = in.readInt(); + long hash = in.readLong(); + +//System.out.println("ObjID: " + objid + ", method: " + method + ", hash: " + hash); + + // Use the objid to locate the relevant UnicastServerRef + UnicastServerRef uref = (UnicastServerRef)objects.get(objid); + Object returnval; + int returncode = RETURN_ACK; + if (uref != null) { + try { + // Dispatch the call to it. + returnval = uref.incomingMessageCall(conn, method, hash); + } + catch (Exception e) { + returnval = e; + returncode = RETURN_NACK; + } + } + else { + returnval = new NoSuchObjectException(""); + returncode = RETURN_NACK; + } + + conn.getDataOutputStream().writeByte(MESSAGE_CALL_ACK); + + ObjectOutputStream out = conn.getObjectOutputStream(); + + out.writeByte(returncode); + (new UID()).write(out); + out.writeObject(returnval); + + out.flush(); +} + +} diff --git a/libjava/gnu/java/rmi/server/UnicastServerRef.java b/libjava/gnu/java/rmi/server/UnicastServerRef.java new file mode 100644 index 00000000000..290ea09e640 --- /dev/null +++ b/libjava/gnu/java/rmi/server/UnicastServerRef.java @@ -0,0 +1,198 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package gnu.java.rmi.server; + +import java.net.ServerSocket; +import java.net.Socket; +import java.net.InetAddress; +import java.net.UnknownHostException; +import java.rmi.Remote; +import java.rmi.RemoteException; +import java.rmi.server.RemoteStub; +import java.rmi.server.ObjID; +import java.rmi.server.ServerRef; +import java.rmi.server.RemoteRef; +import java.rmi.server.ServerNotActiveException; +import java.rmi.server.RMIClientSocketFactory; +import java.rmi.server.RMIServerSocketFactory; +import java.rmi.server.UID; +import java.rmi.server.Skeleton; +import java.rmi.server.RemoteCall; +import java.lang.reflect.Constructor; +import java.lang.reflect.Method; +import java.lang.reflect.InvocationTargetException; +import java.lang.Thread; +import java.lang.Exception; +import java.io.IOException; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.util.Hashtable; + +public class UnicastServerRef + extends UnicastRef { + +final static private Class[] stubprototype = new Class[] { RemoteRef.class }; + +Remote myself; +private Skeleton skel; +private RemoteStub stub; +private Hashtable methods; + +public UnicastServerRef(ObjID id, int port, RMIServerSocketFactory ssf) { + super(id); + manager = UnicastConnectionManager.getInstance(port, ssf); +} + +public RemoteStub exportObject(Remote obj) throws RemoteException { + if (myself == null) { + myself = obj; + + // Find and install the stub + Class cls = obj.getClass(); + stub = (RemoteStub)getHelperClass(cls, "_Stub"); + if (stub == null) { + throw new RemoteException("failed to export: " + cls); + } + + // Find and install the skeleton (if there is one) + skel = (Skeleton)getHelperClass(cls, "_Skel"); + + // Build hash of methods which may be called. + buildMethodHash(obj.getClass()); + + // Export it. + UnicastServer.exportObject(this); + } + + return (stub); +} + +private Object getHelperClass(Class cls, String type) { + try { + String classname = cls.getName(); + Class scls = Class.forName(classname + type); + if (type.equals("_Stub")) { + try { + // JDK 1.2 stubs + Constructor con = scls.getConstructor(stubprototype); + return (con.newInstance(new Object[]{this})); + } + catch (NoSuchMethodException e) { + } + catch (InstantiationException e) { + } + catch (IllegalAccessException e) { + } + catch (IllegalArgumentException e) { + } + catch (InvocationTargetException e) { + } + // JDK 1.1 stubs + RemoteStub stub = (RemoteStub)scls.newInstance(); + UnicastRemoteStub.setStubRef(stub, this); + return (stub); + } + else { + // JDK 1.1 skel + return (scls.newInstance()); + } + } + catch (ClassNotFoundException e) { + } + catch (InstantiationException e) { + } + catch (IllegalAccessException e) { + } + return (null); +} + +public String getClientHost() throws ServerNotActiveException { + throw new Error("Not implemented"); +} + +private void buildMethodHash(Class cls) { + methods = new Hashtable(); + Method[] meths = cls.getMethods(); + for (int i = 0; i < meths.length; i++) { + /* Don't need to include any java.xxx related stuff */ + if (meths[i].getDeclaringClass().getName().startsWith("java.")) { + continue; + } + long hash = RMIHashes.getMethodHash(meths[i]); + methods.put(new Long (hash), meths[i]); +//System.out.println("meth = " + meths[i] + ", hash = " + hash); + } +} + +public Object incomingMessageCall(UnicastConnection conn, int method, long hash) throws Exception { +//System.out.println("method = " + method + ", hash = " + hash); + // If method is -1 then this is JDK 1.2 RMI - so use the hash + // to locate the method + if (method == -1) { + Method meth = (Method)methods.get(new Long (hash)); +//System.out.println("class = " + myself.getClass() + ", meth = " + meth); + if (meth == null) { + throw new NoSuchMethodException(); + } + + ObjectInputStream in = conn.getObjectInputStream(); + int nrargs = meth.getParameterTypes().length; + Object[] args = new Object[nrargs]; + for (int i = 0; i < nrargs; i++) { + /** + * For debugging purposes - we don't handle CodeBases + * quite right so we don't always find the stubs. This + * lets us know that. + */ + try { + args[i] = in.readObject(); + } + catch (Exception t) { + t.printStackTrace(); + throw t; + } + } + return (meth.invoke(myself, args)); + } + // Otherwise this is JDK 1.1 style RMI - we find the skeleton + // and invoke it using the method number. We wrap up our + // connection system in a UnicastRemoteCall so it appears in a + // way the Skeleton can handle. + else { + if (skel == null) { + throw new NoSuchMethodException(); + } + UnicastRemoteCall call = new UnicastRemoteCall(conn); + skel.dispatch(myself, call, method, hash); + return (call.returnValue()); + } +} + +} diff --git a/libjava/java/rmi/AccessException.java b/libjava/java/rmi/AccessException.java new file mode 100644 index 00000000000..91d66b2187b --- /dev/null +++ b/libjava/java/rmi/AccessException.java @@ -0,0 +1,43 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi; + +public class AccessException + extends RemoteException { + +public static final long serialVersionUID = 6314925228044966088l; + +public AccessException(String s) { + super(s); +} + +public AccessException(String s, Exception e) { + super (s, e); +} + +} diff --git a/libjava/java/rmi/AlreadyBoundException.java b/libjava/java/rmi/AlreadyBoundException.java new file mode 100644 index 00000000000..ef0c166c5a2 --- /dev/null +++ b/libjava/java/rmi/AlreadyBoundException.java @@ -0,0 +1,41 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi; + +public class AlreadyBoundException + extends Exception { + +public AlreadyBoundException() { + super(); +} + +public AlreadyBoundException(String s) { + super (s); +} + +} diff --git a/libjava/java/rmi/ConnectException.java b/libjava/java/rmi/ConnectException.java new file mode 100644 index 00000000000..e55a274e8ee --- /dev/null +++ b/libjava/java/rmi/ConnectException.java @@ -0,0 +1,42 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi; + +public class ConnectException + extends RemoteException { + + +public ConnectException(String s) { + super(s); +} + +public ConnectException(String s, Exception e) { + super (s, e); +} + +} diff --git a/libjava/java/rmi/ConnectIOException.java b/libjava/java/rmi/ConnectIOException.java new file mode 100644 index 00000000000..bb7e298f004 --- /dev/null +++ b/libjava/java/rmi/ConnectIOException.java @@ -0,0 +1,42 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi; + +public class ConnectIOException + extends RemoteException { + + +public ConnectIOException(String s) { + super(s); +} + +public ConnectIOException(String s, Exception e) { + super (s, e); +} + +} diff --git a/libjava/java/rmi/MarshalException.java b/libjava/java/rmi/MarshalException.java new file mode 100644 index 00000000000..988ec479e0e --- /dev/null +++ b/libjava/java/rmi/MarshalException.java @@ -0,0 +1,42 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi; + +public class MarshalException + extends RemoteException { + + +public MarshalException(String s) { + super(s); +} + +public MarshalException(String s, Exception e) { + super (s, e); +} + +} diff --git a/libjava/java/rmi/MarshalledObject.java b/libjava/java/rmi/MarshalledObject.java new file mode 100644 index 00000000000..87e69633953 --- /dev/null +++ b/libjava/java/rmi/MarshalledObject.java @@ -0,0 +1,51 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi; + +import java.io.Serializable; + +public final class MarshalledObject + extends Object implements Serializable { + +public MarshalledObject(Object obj) { + throw new Error("Not implemented"); +} + +public boolean equals(Object obj) { + throw new Error("Not implemented"); +} + +public Object get() { + throw new Error("Not implemented"); +} + +public int hashCode() { + throw new Error("Not implemented"); +} + +} diff --git a/libjava/java/rmi/Naming.java b/libjava/java/rmi/Naming.java new file mode 100644 index 00000000000..76464773938 --- /dev/null +++ b/libjava/java/rmi/Naming.java @@ -0,0 +1,70 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi; + +import java.net.MalformedURLException; +import java.net.URL; +import java.rmi.registry.Registry; +import java.rmi.registry.LocateRegistry; + +public final class Naming { + +public static Remote lookup(String name) throws NotBoundException, MalformedURLException, RemoteException { + URL u = new URL("http:" + name); + return (getRegistry(u).lookup(u.getFile().substring(1))); +} + +public static void bind(String name, Remote obj) throws AlreadyBoundException, MalformedURLException, RemoteException { + URL u = new URL("http:" + name); + getRegistry(u).bind(u.getFile().substring(1), obj); +} + +public static void unbind(String name) throws RemoteException, NotBoundException, MalformedURLException { + URL u = new URL("http:" + name); + getRegistry(u).unbind(u.getFile().substring(1)); +} + +public static void rebind(String name, Remote obj) throws RemoteException, MalformedURLException { + URL u = new URL("http:" + name); + getRegistry(u).rebind(u.getFile().substring(1), obj); +} + +public static String[] list(String name) throws RemoteException, MalformedURLException { + return (getRegistry(new URL("http:" + name)).list()); +} + +private static Registry getRegistry(URL u) throws RemoteException { + if (u.getPort() == -1) { + return (LocateRegistry.getRegistry(u.getHost())); + } + else { + return (LocateRegistry.getRegistry(u.getHost(), u.getPort())); + } +} + +} diff --git a/libjava/java/rmi/NoSuchObjectException.java b/libjava/java/rmi/NoSuchObjectException.java new file mode 100644 index 00000000000..7608fd9a21c --- /dev/null +++ b/libjava/java/rmi/NoSuchObjectException.java @@ -0,0 +1,39 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi; + +public class NoSuchObjectException + extends RemoteException { + +public static final long serialVersionUID = 6619395951570472985L; + +public NoSuchObjectException(String s) { + super(s); +} + +} diff --git a/libjava/java/rmi/NotBoundException.java b/libjava/java/rmi/NotBoundException.java new file mode 100644 index 00000000000..f28ee6adff6 --- /dev/null +++ b/libjava/java/rmi/NotBoundException.java @@ -0,0 +1,43 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi; + +public class NotBoundException + extends Exception { + +public static final long serialVersionUID = -1857741824849069317l; + +public NotBoundException() { + super(); +} + +public NotBoundException(String s) { + super (s); +} + +} diff --git a/libjava/java/rmi/RMISecurityException.java b/libjava/java/rmi/RMISecurityException.java new file mode 100644 index 00000000000..cbfbed29fce --- /dev/null +++ b/libjava/java/rmi/RMISecurityException.java @@ -0,0 +1,43 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi; + +import java.lang.SecurityException; + +public class RMISecurityException + extends SecurityException { + +public RMISecurityException(String n) { + super(n); +} + +public RMISecurityException(String n, String a) { + super(n); +} + +} diff --git a/libjava/java/rmi/RMISecurityManager.java b/libjava/java/rmi/RMISecurityManager.java new file mode 100644 index 00000000000..d63d9698b08 --- /dev/null +++ b/libjava/java/rmi/RMISecurityManager.java @@ -0,0 +1,139 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi; + +import java.io.FileDescriptor; +import java.lang.Thread; +import java.lang.Class; +import java.lang.SecurityManager; +import java.net.InetAddress; +import java.security.Permission; + +public class RMISecurityManager extends SecurityManager { + +public RMISecurityManager() { +} + +public void checkAccept(String host, int port) { +} + +public void checkAccess(Thread g) { +} + +public void checkAccess(ThreadGroup g) { +} + +public void checkAwtEventQueueAccess() { +} + +public void checkConnect(String host, int port) { +} + +public void checkConnect(String host, int port, Object context) { +} + +public void checkCreateClassLoader() { +} + +public void checkDelete(String file) { +} + +public void checkExec(String cmd) { +} + +public void checkExit(int status) { +} + +public void checkLink(String lib) { +} + +public void checkListen(int port) { +} + +public void checkMemberAccess ( Class clazz, int which ) { +} + +public void checkMulticast(InetAddress maddr) { +} + +public void checkMulticast(InetAddress maddr, byte ttl) { +} + +public void checkPackageAccess(String pkg) { +} + +public void checkPackageDefinition(String pkg) { +} + +public void checkPermission(Permission perm) { +} + +public void checkPermission(Permission perm, Object context) { +} + +public void checkPrintJobAccess() { +} + +public void checkPropertiesAccess() { +} + +public void checkPropertyAccess(String key) { +} + +/* public void checkPropertyAccess(String key, String def) { +}*/ + +public void checkRead(FileDescriptor fd) { +} + +public void checkRead(String file) { +} + +public void checkRead(String file, Object context) { +} + +public void checkSecurityAccess(String action) { +} + +public void checkSetFactory() { +} + +public void checkSystemClipboardAccess() { +} + +public boolean checkTopLevelWindow(Object window) { + return (true); +} + +public void checkWrite(FileDescriptor fd) { +} + +public void checkWrite(String file) { +} + +} diff --git a/libjava/java/rmi/Remote.java b/libjava/java/rmi/Remote.java new file mode 100644 index 00000000000..f9aab0bf479 --- /dev/null +++ b/libjava/java/rmi/Remote.java @@ -0,0 +1,31 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi; + +public interface Remote { +} diff --git a/libjava/java/rmi/RemoteException.java b/libjava/java/rmi/RemoteException.java new file mode 100644 index 00000000000..5127a5a997f --- /dev/null +++ b/libjava/java/rmi/RemoteException.java @@ -0,0 +1,85 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi; + +import java.lang.Throwable; +import java.io.IOException; +import java.io.PrintStream; +import java.io.PrintWriter; + + +public class RemoteException + extends IOException { + +public static final long serialVersionUID = -5148567311918794206l; + +public Throwable detail; + +public RemoteException() { + super(); + detail = null; +} + +public RemoteException(String s) { + super(s); + detail = null; +} + +public RemoteException(String s, Throwable e) { + super(s); + detail = e; +} + +public String getMessage() { + if (detail == null) { + return (super.getMessage()); + } + else { + return (super.getMessage() + "; nested exception is: " + detail.getMessage()); + } +} + +public void printStackTrace(PrintStream s) { + if (detail != null) { + detail.printStackTrace(s); + } + super.printStackTrace(s); +} + +public void printStackTrace(PrintWriter s) { + if (detail != null) { + detail.printStackTrace(s); + } + super.printStackTrace(s); +} + +public void printStackTrace() { + printStackTrace(System.err); +} + +} diff --git a/libjava/java/rmi/ServerError.java b/libjava/java/rmi/ServerError.java new file mode 100644 index 00000000000..71e2d06e2e1 --- /dev/null +++ b/libjava/java/rmi/ServerError.java @@ -0,0 +1,37 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi; + +public class ServerError + extends RemoteException { + +public ServerError(String s, Error e) { + super(s, e); +} + +} diff --git a/libjava/java/rmi/ServerException.java b/libjava/java/rmi/ServerException.java new file mode 100644 index 00000000000..f7ec303d01b --- /dev/null +++ b/libjava/java/rmi/ServerException.java @@ -0,0 +1,43 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi; + +public class ServerException + extends RemoteException { + +public static final long serialVersionUID = -4775845313121906682l; + +public ServerException(String s) { + super(s); +} + +public ServerException(String s, Exception e) { + super(s, e); +} + +} diff --git a/libjava/java/rmi/ServerRuntimeException.java b/libjava/java/rmi/ServerRuntimeException.java new file mode 100644 index 00000000000..9f76f61aaea --- /dev/null +++ b/libjava/java/rmi/ServerRuntimeException.java @@ -0,0 +1,37 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi; + +public class ServerRuntimeException + extends RemoteException { + +public ServerRuntimeException(String s, Exception e) { + super(s, e); +} + +} diff --git a/libjava/java/rmi/StubNotFoundException.java b/libjava/java/rmi/StubNotFoundException.java new file mode 100644 index 00000000000..c6d70cfbbf1 --- /dev/null +++ b/libjava/java/rmi/StubNotFoundException.java @@ -0,0 +1,41 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi; + +public class StubNotFoundException + extends RemoteException { + +public StubNotFoundException(String s) { + super(s); +} + +public StubNotFoundException(String s, Exception e) { + super(s, e); +} + +} diff --git a/libjava/java/rmi/UnexpectedException.java b/libjava/java/rmi/UnexpectedException.java new file mode 100644 index 00000000000..b65d661459e --- /dev/null +++ b/libjava/java/rmi/UnexpectedException.java @@ -0,0 +1,41 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi; + +public class UnexpectedException + extends RemoteException { + +public UnexpectedException(String s) { + super(s); +} + +public UnexpectedException(String s, Exception e) { + super(s, e); +} + +} diff --git a/libjava/java/rmi/UnknownHostException.java b/libjava/java/rmi/UnknownHostException.java new file mode 100644 index 00000000000..06263b29a23 --- /dev/null +++ b/libjava/java/rmi/UnknownHostException.java @@ -0,0 +1,41 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi; + +public class UnknownHostException + extends RemoteException { + +public UnknownHostException(String s) { + super(s); +} + +public UnknownHostException(String s, Exception e) { + super(s, e); +} + +} diff --git a/libjava/java/rmi/UnmarshalException.java b/libjava/java/rmi/UnmarshalException.java new file mode 100644 index 00000000000..68adfdf48be --- /dev/null +++ b/libjava/java/rmi/UnmarshalException.java @@ -0,0 +1,43 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi; + +public class UnmarshalException + extends RemoteException { + +public static final long serialVersionUID = 594380845140740218l; + +public UnmarshalException(String s) { + super(s); +} + +public UnmarshalException(String s, Exception e) { + super(s, e); +} + +} diff --git a/libjava/java/rmi/activation/Activatable.java b/libjava/java/rmi/activation/Activatable.java new file mode 100644 index 00000000000..a3e712f4fd5 --- /dev/null +++ b/libjava/java/rmi/activation/Activatable.java @@ -0,0 +1,93 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.activation; + +import java.rmi.server.RemoteServer; +import java.rmi.server.RMIClientSocketFactory; +import java.rmi.server.RMIServerSocketFactory; +import java.rmi.RemoteException; +import java.rmi.Remote; +import java.rmi.NoSuchObjectException; +import java.rmi.MarshalledObject; + +public abstract class Activatable + extends RemoteServer { + +protected Activatable(String location, MarshalledObject data, boolean restart, int port) throws ActivationException, RemoteException { + throw new Error("Not implemented"); +} + +protected Activatable(String location, MarshalledObject data, boolean restart, int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf) throws ActivationException, RemoteException { + throw new Error("Not implemented"); +} + +protected Activatable(ActivationID id, int port) throws RemoteException { + throw new Error("Not implemented"); +} + +protected Activatable(ActivationID id, int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf) throws RemoteException { + throw new Error("Not implemented"); +} + +protected ActivationID getID() { + throw new Error("Not implemented"); +} + +public static Remote register(ActivationDesc desc) throws UnknownGroupException, ActivationException, RemoteException { + throw new Error("Not implemented"); +} + +public static boolean inactive(ActivationID id) throws UnknownObjectException, ActivationException, RemoteException { + throw new Error("Not implemented"); +} + +public static void unregister(ActivationID id) throws UnknownObjectException, ActivationException, RemoteException { + throw new Error("Not implemented"); +} + +public static ActivationID exportObject(Remote obj, String location, MarshalledObject data, boolean restart, int port) throws ActivationException, RemoteException { + throw new Error("Not implemented"); +} + +public static ActivationID exportObject(Remote obj, String location, MarshalledObject data, boolean restart, int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf) throws ActivationException, RemoteException { + throw new Error("Not implemented"); +} + +public static Remote exportObject(Remote obj, ActivationID id, int port) throws RemoteException { + throw new Error("Not implemented"); +} + +public static Remote exportObject(Remote obj, ActivationID id, int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf) throws RemoteException { + throw new Error("Not implemented"); +} + +public static boolean unexportObject(Remote obj, boolean force) throws NoSuchObjectException { + throw new Error("Not implemented"); +} + +} diff --git a/libjava/java/rmi/activation/ActivateFailedException.java b/libjava/java/rmi/activation/ActivateFailedException.java new file mode 100644 index 00000000000..035281784a9 --- /dev/null +++ b/libjava/java/rmi/activation/ActivateFailedException.java @@ -0,0 +1,43 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.activation; + +import java.rmi.RemoteException; + +public class ActivateFailedException + extends RemoteException { + +public ActivateFailedException(String s) { + super(s); +} + +public ActivateFailedException(String s, Exception ex) { + super(s, ex); +} + +} diff --git a/libjava/java/rmi/activation/ActivationDesc.java b/libjava/java/rmi/activation/ActivationDesc.java new file mode 100644 index 00000000000..192fb5cbdc0 --- /dev/null +++ b/libjava/java/rmi/activation/ActivationDesc.java @@ -0,0 +1,102 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.activation; + +import java.io.Serializable; +import java.rmi.MarshalledObject; + +public final class ActivationDesc + implements Serializable { + +private ActivationGroupID groupid; +private String classname; +private String location; +private MarshalledObject data; +private boolean restart; + +public ActivationDesc(String className, String location, MarshalledObject data) throws ActivationException { + this(ActivationGroup.currentGroupID(), className, location, data, false); +} + +public ActivationDesc(String className, String location, MarshalledObject data, boolean restart) throws ActivationException { + this(ActivationGroup.currentGroupID(), className, location, data, restart); +} + +public ActivationDesc(ActivationGroupID groupID, String className, String location, MarshalledObject data) { + this(groupID, className, location, data, false); +} + +public ActivationDesc(ActivationGroupID groupID, String className, String location, MarshalledObject data, boolean restart) { + this.groupid = groupID; + this.classname = className; + this.location = location; + this.data = data; + this.restart = restart; +} + +public ActivationGroupID getGroupID() { + return (groupid); +} + +public String getClassName() { + return (classname); +} + +public String getLocation() { + return (location); +} + +public MarshalledObject getData() { + return (data); +} + +public boolean getRestartMode() { + return (restart); +} + +public boolean equals(Object obj) { + if (!(obj instanceof ActivationDesc)) { + return (false); + } + ActivationDesc that = (ActivationDesc)obj; + + if (this.groupid.equals(that.groupid) && + this.classname.equals(that.classname) && + this.location.equals(that.location) && + this.data.equals(that.data) && + this.restart == that.restart) { + return (true); + } + return (false); +} + +public int hashCode() { + return (groupid.hashCode() ^ classname.hashCode() ^ location.hashCode() ^ data.hashCode()); +} + +} diff --git a/libjava/java/rmi/activation/ActivationException.java b/libjava/java/rmi/activation/ActivationException.java new file mode 100644 index 00000000000..d72e1a664ea --- /dev/null +++ b/libjava/java/rmi/activation/ActivationException.java @@ -0,0 +1,78 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.activation; + +import java.io.PrintStream; +import java.io.PrintWriter; + +public class ActivationException + extends Exception { + +public Throwable detail; + +public ActivationException() { + super(); +} + +public ActivationException(String s) { + super(s); +} + +public ActivationException(String s, Throwable ex) { + super(s); + detail = ex; +} + +public String getMessage() { + if (detail == null) { + return (super.getMessage()); + } + else { + return (super.getMessage() + ":" + detail.getMessage()); + } +} + +public void printStackTrace(PrintStream s) { + if (detail != null) { + detail.printStackTrace(s); + } + super.printStackTrace(s); +} + +public void printStackTrace() { + printStackTrace(System.err); +} + +public void printStackTrace(PrintWriter s) { + if (detail != null) { + detail.printStackTrace(s); + } + super.printStackTrace(s); +} + +} diff --git a/libjava/java/rmi/activation/ActivationGroup.java b/libjava/java/rmi/activation/ActivationGroup.java new file mode 100644 index 00000000000..40316c0690c --- /dev/null +++ b/libjava/java/rmi/activation/ActivationGroup.java @@ -0,0 +1,73 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.activation; + +import java.rmi.server.UnicastRemoteObject; +import java.rmi.RemoteException; +import java.rmi.Remote; +import java.rmi.MarshalledObject; + +public abstract class ActivationGroup + extends UnicastRemoteObject + implements ActivationInstantiator { + +protected ActivationGroup(ActivationGroupID groupID) throws RemoteException { + throw new Error("Not implemented"); +} + +public boolean inactiveObject(ActivationID id) throws ActivationException, UnknownObjectException, RemoteException { + throw new Error("Not implemented"); +} + +public abstract void activeObject(ActivationID id, Remote obj) throws ActivationException, UnknownObjectException, RemoteException; + +public static ActivationGroup createGroup(ActivationGroupID id, ActivationGroupDesc desc, long incarnation) throws ActivationException { + throw new Error("Not implemented"); +} + +public static ActivationGroupID currentGroupID() { + throw new Error("Not implemented"); +} + +public static void setSystem(ActivationSystem system) throws ActivationException { + throw new Error("Not implemented"); +} + +public static ActivationSystem getSystem() throws ActivationException { + throw new Error("Not implemented"); +} + +protected void activeObject(ActivationID id, MarshalledObject mobj) throws ActivationException, UnknownObjectException, RemoteException { + throw new Error("Not implemented"); +} + +protected void inactiveGroup() throws UnknownGroupException, RemoteException { + throw new Error("Not implemented"); +} + +} diff --git a/libjava/java/rmi/activation/ActivationGroupDesc.java b/libjava/java/rmi/activation/ActivationGroupDesc.java new file mode 100644 index 00000000000..1dd90e63636 --- /dev/null +++ b/libjava/java/rmi/activation/ActivationGroupDesc.java @@ -0,0 +1,120 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.activation; + +import java.io.Serializable; +import java.util.Properties; +import java.rmi.MarshalledObject; + +public final class ActivationGroupDesc + implements Serializable { + +public static class CommandEnvironment + implements Serializable { + +private String cmdpath; +private String[] argv; + +public CommandEnvironment(String cmdpath, String[] argv) { + this.cmdpath = cmdpath; + this.argv = argv; +} + +public String getCommandPath() { + return (cmdpath); +} + +public String[] getCommandOptions() { + return (argv); +} + +public boolean equals(Object obj) { + if (!(obj instanceof CommandEnvironment)) { + return (false); + } + CommandEnvironment that = (CommandEnvironment)obj; + + if (!this.cmdpath.equals(that.cmdpath)) { + return (false); + } + + int len = this.argv.length; + if (len != that.argv.length) { + return (false); + } + for (int i = 0; i < len; i++) { + if (!this.argv[i].equals(that.argv[i])) { + return (false); + } + } + return (true); +} + +public int hashCode() { + return (cmdpath.hashCode()); // Not a very good hash code. +} + +} + +public ActivationGroupDesc(Properties overrides, ActivationGroupDesc.CommandEnvironment cmd) { + throw new Error("Not implemented"); +} + +public ActivationGroupDesc(String className, String location, MarshalledObject data, Properties overrides, ActivationGroupDesc.CommandEnvironment cmd) { + throw new Error("Not implemented"); +} + +public String getClassName() { + throw new Error("Not implemented"); +} + +public String getLocation() { + throw new Error("Not implemented"); +} + +public MarshalledObject getData() { + throw new Error("Not implemented"); +} + +public Properties getPropertyOverrides() { + throw new Error("Not implemented"); +} + +public ActivationGroupDesc.CommandEnvironment getCommandEnvironment() { + throw new Error("Not implemented"); +} + +public boolean equals(Object obj) { + throw new Error("Not implemented"); +} + +public int hashCode() { + throw new Error("Not implemented"); +} + +} diff --git a/libjava/java/rmi/activation/ActivationGroupID.java b/libjava/java/rmi/activation/ActivationGroupID.java new file mode 100644 index 00000000000..e0e5592d9e3 --- /dev/null +++ b/libjava/java/rmi/activation/ActivationGroupID.java @@ -0,0 +1,59 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.activation; + +import java.io.Serializable; + +public class ActivationGroupID + implements Serializable { + +private ActivationSystem system; + +public ActivationGroupID(ActivationSystem system) { + this.system = system; +} + +public ActivationSystem getSystem() { + return (system); +} + +public int hashCode() { + return (system.hashCode()); +} + +public boolean equals(Object obj) { + if (obj instanceof ActivationGroupID) { + ActivationGroupID that = (ActivationGroupID)obj; + if (this.system.equals(that.system)) { + return (true); + } + } + return (false); +} + +} diff --git a/libjava/java/rmi/activation/ActivationID.java b/libjava/java/rmi/activation/ActivationID.java new file mode 100644 index 00000000000..750f6cb06bd --- /dev/null +++ b/libjava/java/rmi/activation/ActivationID.java @@ -0,0 +1,61 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.activation; + +import java.io.Serializable; +import java.rmi.Remote; +import java.rmi.RemoteException; + +public class ActivationID + implements Serializable { + +private Activator activator; + +public ActivationID(Activator activator) { + this.activator = activator; +} + +public Remote activate(boolean force) throws ActivationException, UnknownObjectException, RemoteException { + throw new Error("Not implemented"); +} + +public int hashCode() { + return (activator.hashCode()); +} + +public boolean equals(Object obj) { + if (obj instanceof ActivationID) { + ActivationID that = (ActivationID)obj; + if (this.activator.equals(that.activator)) { + return (true); + } + } + return (false); +} + +} diff --git a/libjava/java/rmi/activation/ActivationInstantiator.java b/libjava/java/rmi/activation/ActivationInstantiator.java new file mode 100644 index 00000000000..71cd7998f5e --- /dev/null +++ b/libjava/java/rmi/activation/ActivationInstantiator.java @@ -0,0 +1,39 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.activation; + +import java.rmi.Remote; +import java.rmi.RemoteException; +import java.rmi.MarshalledObject; + +public interface ActivationInstantiator + extends Remote { + +public MarshalledObject newInstance(ActivationID id, ActivationDesc desc) throws ActivationException, RemoteException; + +} diff --git a/libjava/java/rmi/activation/ActivationMonitor.java b/libjava/java/rmi/activation/ActivationMonitor.java new file mode 100644 index 00000000000..21d269ad301 --- /dev/null +++ b/libjava/java/rmi/activation/ActivationMonitor.java @@ -0,0 +1,41 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.activation; + +import java.rmi.Remote; +import java.rmi.RemoteException; +import java.rmi.MarshalledObject; + +public interface ActivationMonitor + extends Remote { + +public void inactiveObject(ActivationID id) throws UnknownObjectException, RemoteException; +public void activeObject(ActivationID id, MarshalledObject obj) throws UnknownObjectException, RemoteException; +public void inactiveGroup(ActivationGroupID id, long incarnation) throws UnknownGroupException, RemoteException; + +} diff --git a/libjava/java/rmi/activation/ActivationSystem.java b/libjava/java/rmi/activation/ActivationSystem.java new file mode 100644 index 00000000000..c937da4ed8a --- /dev/null +++ b/libjava/java/rmi/activation/ActivationSystem.java @@ -0,0 +1,49 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.activation; + +import java.rmi.Remote; +import java.rmi.RemoteException; + +public interface ActivationSystem + extends Remote { + +public static final int SYSTEM_PORT = 0; // XXX + +public ActivationID registerObject(ActivationDesc desc) throws ActivationException, UnknownGroupException, RemoteException; +public void unregisterObject(ActivationID id) throws ActivationException, UnknownObjectException, RemoteException; +public ActivationGroupID registerGroup(ActivationGroupDesc desc) throws ActivationException, RemoteException; +public ActivationMonitor activeGroup(ActivationGroupID id, ActivationInstantiator group, long incarnation) throws UnknownGroupException, ActivationException, RemoteException; +public void unregisterGroup(ActivationGroupID id) throws ActivationException, UnknownGroupException, RemoteException; +public void shutdown() throws RemoteException; +public ActivationDesc setActivationDesc(ActivationID id, ActivationDesc desc) throws ActivationException, UnknownObjectException, UnknownGroupException, RemoteException; +public ActivationGroupDesc setActivationGroupDesc(ActivationGroupID id, ActivationGroupDesc desc) throws ActivationException, UnknownGroupException, RemoteException; +public ActivationDesc getActivationDesc(ActivationID id) throws ActivationException, UnknownObjectException, RemoteException; +public ActivationGroupDesc getActivationGroupDesc(ActivationGroupID id) throws ActivationException, UnknownGroupException, RemoteException; + +} diff --git a/libjava/java/rmi/activation/Activator.java b/libjava/java/rmi/activation/Activator.java new file mode 100644 index 00000000000..82dbc6091ae --- /dev/null +++ b/libjava/java/rmi/activation/Activator.java @@ -0,0 +1,39 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.activation; + +import java.rmi.Remote; +import java.rmi.RemoteException; +import java.rmi.MarshalledObject; + +public interface Activator + extends Remote { + +public MarshalledObject activate(ActivationID id, boolean force) throws ActivationException, UnknownObjectException, RemoteException; + +} diff --git a/libjava/java/rmi/activation/UnknownGroupException.java b/libjava/java/rmi/activation/UnknownGroupException.java new file mode 100644 index 00000000000..655f2c61144 --- /dev/null +++ b/libjava/java/rmi/activation/UnknownGroupException.java @@ -0,0 +1,37 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.activation; + +public class UnknownGroupException + extends ActivationException { + +public UnknownGroupException(String s) { + super(s); +} + +} diff --git a/libjava/java/rmi/activation/UnknownObjectException.java b/libjava/java/rmi/activation/UnknownObjectException.java new file mode 100644 index 00000000000..b28bfaaddeb --- /dev/null +++ b/libjava/java/rmi/activation/UnknownObjectException.java @@ -0,0 +1,37 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.activation; + +public class UnknownObjectException + extends ActivationException { + +public UnknownObjectException(String s) { + super(s); +} + +} diff --git a/libjava/java/rmi/dgc/DGC.java b/libjava/java/rmi/dgc/DGC.java new file mode 100644 index 00000000000..3fd1bb6f15e --- /dev/null +++ b/libjava/java/rmi/dgc/DGC.java @@ -0,0 +1,41 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.dgc; + +import java.rmi.Remote; +import java.rmi.RemoteException; +import java.rmi.server.ObjID; + +public interface DGC + extends Remote { + +public Lease dirty(ObjID[] ids, long sequenceNum, Lease lease) throws RemoteException; + +public void clean(ObjID[] ids, long sequenceNum, VMID vmid, boolean strong) throws RemoteException; + +} diff --git a/libjava/java/rmi/dgc/Lease.java b/libjava/java/rmi/dgc/Lease.java new file mode 100644 index 00000000000..98dfb2dfffd --- /dev/null +++ b/libjava/java/rmi/dgc/Lease.java @@ -0,0 +1,58 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.dgc; + +import java.io.Serializable; +import java.rmi.dgc.VMID; + +public final class Lease + implements Serializable { + +static final long serialVersionUID = -5713411624328831948L; + +private VMID vmid; +private long value; + +public Lease(VMID id, long duration) { + vmid = id; + value = duration; +} + +public VMID getVMID() { + return (vmid); +} + +public long getValue() { + return (value); +} + +public String toString() { + return ("[" + vmid.toString() + ", " + Long.toString(value) + "]"); +} + +} diff --git a/libjava/java/rmi/dgc/VMID.java b/libjava/java/rmi/dgc/VMID.java new file mode 100644 index 00000000000..d264752ef2b --- /dev/null +++ b/libjava/java/rmi/dgc/VMID.java @@ -0,0 +1,106 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.dgc; + +import java.io.Serializable; +import java.rmi.server.UID; +import java.net.InetAddress; +import java.net.UnknownHostException; + +public final class VMID + implements Serializable { + +static final long serialVersionUID = -538642295484486218L; +static final boolean areWeUnique; +static byte[] localAddr; + +private byte[] addr; +private UID uid; + +static { + byte[] addr; + boolean awu = true; + try { + addr = InetAddress.getLocalHost().getAddress(); + if (addr[0] == 127 && addr[1] == 0 && addr[2] == 0 && addr[3] == 1) { + awu = false; + } + } + catch (UnknownHostException _) { + addr = new byte[]{ 127, 0, 0, 1 }; + awu = false; + } + localAddr = addr; + areWeUnique = awu; +} + +public VMID() { + addr = localAddr; + uid = new UID(); +} + +public static boolean isUnique() { + return (areWeUnique); +} + +public int hashCode() { + return (super.hashCode()); +} + +public boolean equals(Object obj) { + if (!(obj instanceof VMID)) { + return (false); + } + VMID other = (VMID)obj; + if (addr.length != other.addr.length) { + return (false); + } + for (int i = addr.length - 1; i >= 0; i--) { + if (addr[i] != other.addr[i]) { + return (false); + } + } + return (uid.equals(other.uid)); +} + +public String toString() { + StringBuffer buf = new StringBuffer("[VMID: "); + for (int i = 0; i < addr.length; i++) { + if (i > 0) { + buf.append("."); + } + buf.append(Integer.toString(addr[i])); + } + buf.append(" "); + buf.append(uid.toString()); + buf.append("]"); + + return (buf.toString()); +} + +} diff --git a/libjava/java/rmi/registry/LocateRegistry.java b/libjava/java/rmi/registry/LocateRegistry.java new file mode 100644 index 00000000000..269049d5972 --- /dev/null +++ b/libjava/java/rmi/registry/LocateRegistry.java @@ -0,0 +1,75 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.registry; + +import java.io.IOException; +import java.rmi.RemoteException; +import java.rmi.server.RMIClientSocketFactory; +import java.rmi.server.RMIServerSocketFactory; +import java.rmi.server.RMISocketFactory; +import java.rmi.server.RemoteRef; +import java.rmi.server.ObjID; +import java.net.Socket; + +import gnu.java.rmi.server.UnicastRef; +import gnu.java.rmi.server.UnicastServerRef; +import gnu.java.rmi.registry.RegistryImpl; +import gnu.java.rmi.registry.RegistryImpl_Stub; + +public final class LocateRegistry { + +public static Registry getRegistry() throws RemoteException { + return (getRegistry("localhost", Registry.REGISTRY_PORT)); +} + +public static Registry getRegistry(int port) throws RemoteException { + return (getRegistry("localhost", port)); +} + +public static Registry getRegistry(String host) throws RemoteException { + return (getRegistry(host, Registry.REGISTRY_PORT)); +} + +public static Registry getRegistry(String host, int port) throws RemoteException { + return (getRegistry(host, port, RMISocketFactory.getSocketFactory())); +} + +public static Registry getRegistry(String host, int port, RMIClientSocketFactory csf) throws RemoteException { + RemoteRef ref = new UnicastRef(new ObjID(ObjID.REGISTRY_ID), host, port, csf); + return (new RegistryImpl_Stub(ref)); +} + +public static Registry createRegistry(int port) throws RemoteException { + return (createRegistry(port, RMISocketFactory.getSocketFactory(), RMISocketFactory.getSocketFactory())); +} + +public static Registry createRegistry(int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf) throws RemoteException { + return (new RegistryImpl(port, csf, ssf)); +} + +} diff --git a/libjava/java/rmi/registry/Registry.java b/libjava/java/rmi/registry/Registry.java new file mode 100644 index 00000000000..2a67f35c582 --- /dev/null +++ b/libjava/java/rmi/registry/Registry.java @@ -0,0 +1,51 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.registry; + +import java.rmi.RemoteException; +import java.rmi.NotBoundException; +import java.rmi.AccessException; +import java.rmi.AlreadyBoundException; +import java.rmi.Remote; + +public interface Registry + extends Remote { + +public static int REGISTRY_PORT = 1099; + +public Remote lookup(String name) throws RemoteException, NotBoundException, AccessException; + +public void bind(String name, Remote obj) throws RemoteException, AlreadyBoundException, AccessException; + +public void unbind(String name) throws RemoteException, NotBoundException, AccessException; + +public void rebind(String name, Remote obj) throws RemoteException, AccessException; + +public String[] list() throws RemoteException, AccessException; + +} diff --git a/libjava/java/rmi/registry/RegistryHandler.java b/libjava/java/rmi/registry/RegistryHandler.java new file mode 100644 index 00000000000..d867a45b700 --- /dev/null +++ b/libjava/java/rmi/registry/RegistryHandler.java @@ -0,0 +1,39 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.registry; + +import java.rmi.RemoteException; +import java.rmi.UnknownHostException; + +public interface RegistryHandler { + +public Registry registryStub(String host, int port) throws RemoteException, UnknownHostException; + +public Registry registryImpl(int port) throws RemoteException; + +} diff --git a/libjava/java/rmi/server/ExportException.java b/libjava/java/rmi/server/ExportException.java new file mode 100644 index 00000000000..a3a2793e93e --- /dev/null +++ b/libjava/java/rmi/server/ExportException.java @@ -0,0 +1,43 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.server; + +import java.rmi.RemoteException; + +public class ExportException + extends RemoteException { + +public ExportException(String s) { + super(s); +} + +public ExportException(String s, Exception e) { + super(s, e); +} + +} diff --git a/libjava/java/rmi/server/LoaderHandler.java b/libjava/java/rmi/server/LoaderHandler.java new file mode 100644 index 00000000000..e96cf2c0c2c --- /dev/null +++ b/libjava/java/rmi/server/LoaderHandler.java @@ -0,0 +1,44 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.server; + +import java.net.MalformedURLException; +import java.net.URL; + + +public interface LoaderHandler { + +public static final String packagePrefix = ""; + +public Class loadClass(String name) throws MalformedURLException, ClassNotFoundException; + +public Class loadClass(URL codebase, String name) throws MalformedURLException, ClassNotFoundException; + +public Object getSecurityContext(ClassLoader loader); + +} diff --git a/libjava/java/rmi/server/LogStream.java b/libjava/java/rmi/server/LogStream.java new file mode 100644 index 00000000000..e5e11838a0a --- /dev/null +++ b/libjava/java/rmi/server/LogStream.java @@ -0,0 +1,92 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.server; + +import java.io.PrintStream; +import java.io.OutputStream; +import java.io.IOException; + +public class LogStream + extends PrintStream { + +public static final int SILENT = 0; +public static final int BRIEF = 1; +public static final int VERBOSE = 2; + +private static PrintStream defStream; + +private LogStream(OutputStream s) { + super(s); +} + +public static LogStream log(String name) { + throw new Error("Not implemented"); +} + +public static PrintStream getDefaultStream() { + return (defStream); +} + +public static void setDefaultStream(PrintStream s) { + defStream = s; +} + +public OutputStream getOutputStream() { + return (out); +} + +public void setOutputStream(OutputStream s) { + out = s; +} + +public void write(int b) { + super.write(b); +} + +public void write(byte[] b, int off, int len) { + super.write(b, off, len); +} + +public String toString() { + throw new Error("Not implemented"); +} + +public static int parseLevel(String s) { + if (s.equalsIgnoreCase("silent")) { + return (SILENT); + } + if (s.equalsIgnoreCase("brief")) { + return (BRIEF); + } + if (s.equalsIgnoreCase("verbose")) { + return (VERBOSE); + } + return (SILENT); +} + +} diff --git a/libjava/java/rmi/server/ObjID.java b/libjava/java/rmi/server/ObjID.java new file mode 100644 index 00000000000..038e3f96e56 --- /dev/null +++ b/libjava/java/rmi/server/ObjID.java @@ -0,0 +1,95 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.server; + +import java.io.Serializable; +import java.io.ObjectOutput; +import java.io.ObjectInput; +import java.io.IOException; +import java.lang.Math; +import java.io.DataInput; +import java.io.DataOutput; +import java.util.Random; + +public final class ObjID + implements Serializable { + +static final long serialVersionUID = -6386392263968365220L; + +private static long next = 0x8000000000000000L; +private static final Object lock = ObjID.class; + +public static final int REGISTRY_ID = 0; +public static final int ACTIVATOR_ID = 1; +public static final int DGC_ID = 2; + +private long objNum; +private UID space; + +public ObjID() { + synchronized (lock) { + objNum = next++; + } + space = new UID(); +} + +public ObjID(int num) { + objNum = (long)num; + space = new UID((short)0); +} + +public void write(ObjectOutput out) throws IOException { + DataOutput dout = (DataOutput)out; + dout.writeLong(objNum); + space.write(dout); +} + +public static ObjID read(ObjectInput in) throws IOException { + DataInput din = (DataInput)in; + ObjID id = new ObjID(); + id.objNum = din.readLong(); + id.space = UID.read(din); + return (id); +} + +public int hashCode() { + return ((int)objNum); +} + +public boolean equals(Object obj) { + if (obj instanceof ObjID && this.objNum == ((ObjID)obj).objNum) { + return (true); + } + return (false); +} + +public String toString() { + return ("[objNum: " + objNum + ", " + space + "]"); +} + +} diff --git a/libjava/java/rmi/server/Operation.java b/libjava/java/rmi/server/Operation.java new file mode 100644 index 00000000000..c75fec48c62 --- /dev/null +++ b/libjava/java/rmi/server/Operation.java @@ -0,0 +1,46 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.server; + +public class Operation { + +private String operation; + +public Operation(String op) { + operation = op; +} + +public String getOperation() { + return (operation); +} + +public String toString() { + return (operation); +} + +} diff --git a/libjava/java/rmi/server/RMIClassLoader.java b/libjava/java/rmi/server/RMIClassLoader.java new file mode 100644 index 00000000000..76b48b7ef66 --- /dev/null +++ b/libjava/java/rmi/server/RMIClassLoader.java @@ -0,0 +1,92 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.server; + +import java.net.URL; +import java.net.URLConnection; +import java.io.IOException; +import java.io.DataInputStream; +import java.net.MalformedURLException; +import java.util.StringTokenizer; + +public class RMIClassLoader { + +static private class MyClassLoader extends ClassLoader { + +Class defineClass(String name, byte[] data) { + return (defineClass(name, data, 0, data.length)); +} +} +static private MyClassLoader loader = new MyClassLoader(); + +/** + * @deprecated + */ +public static Class loadClass(String name) throws MalformedURLException, ClassNotFoundException { + return (loadClass(System.getProperty("java.rmi.server.codebase"), name)); +} + +public static Class loadClass(URL codebase, String name) throws MalformedURLException, ClassNotFoundException { + URL u = new URL(codebase, name + ".class"); + try { + URLConnection conn = u.openConnection(); + DataInputStream strm = new DataInputStream(conn.getInputStream()); + byte data[] = new byte[conn.getContentLength()]; + strm.readFully(data); + return (loader.defineClass(name, data)); + } + catch (IOException _) { + throw new ClassNotFoundException(name); + } +} + +public static Class loadClass(String codebase, String name) throws MalformedURLException, ClassNotFoundException { + StringTokenizer tok = new StringTokenizer(codebase, ":"); + while (tok.hasMoreTokens()) { + try { + return (loadClass(new URL(tok.nextToken()), name)); + } + catch (ClassNotFoundException _) { + // Ignore - try the next one. + } + } + throw new ClassNotFoundException(name); +} + +public static String getClassAnnotation(Class cl) { + return (null); // We don't yet do this. +} + +/** + * @deprecated + */ +public static Object getSecurityContext(ClassLoader loader) { + throw new Error("Not implemented"); +} + +} diff --git a/libjava/java/rmi/server/RMIClientSocketFactory.java b/libjava/java/rmi/server/RMIClientSocketFactory.java new file mode 100644 index 00000000000..1eda8da9e17 --- /dev/null +++ b/libjava/java/rmi/server/RMIClientSocketFactory.java @@ -0,0 +1,37 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.server; + +import java.net.Socket; +import java.io.IOException; + +public interface RMIClientSocketFactory { + +public Socket createSocket(String host, int port) throws IOException; + +} diff --git a/libjava/java/rmi/server/RMIFailureHandler.java b/libjava/java/rmi/server/RMIFailureHandler.java new file mode 100644 index 00000000000..e7295934c45 --- /dev/null +++ b/libjava/java/rmi/server/RMIFailureHandler.java @@ -0,0 +1,34 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.server; + +public interface RMIFailureHandler { + +public boolean failure(Exception ex); + +} diff --git a/libjava/java/rmi/server/RMIServerSocketFactory.java b/libjava/java/rmi/server/RMIServerSocketFactory.java new file mode 100644 index 00000000000..46245bd03c7 --- /dev/null +++ b/libjava/java/rmi/server/RMIServerSocketFactory.java @@ -0,0 +1,37 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.server; + +import java.net.ServerSocket; +import java.io.IOException; + +public interface RMIServerSocketFactory { + +public ServerSocket createServerSocket(int port) throws IOException; + +} diff --git a/libjava/java/rmi/server/RMISocketFactory.java b/libjava/java/rmi/server/RMISocketFactory.java new file mode 100644 index 00000000000..bc7f8c35f45 --- /dev/null +++ b/libjava/java/rmi/server/RMISocketFactory.java @@ -0,0 +1,74 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.server; + +import java.net.Socket; +import java.net.ServerSocket; +import java.io.IOException; +import gnu.java.rmi.server.RMIDefaultSocketFactory; + +public abstract class RMISocketFactory + implements RMIClientSocketFactory, RMIServerSocketFactory { + +static private RMISocketFactory defaultFactory; +static private RMISocketFactory currentFactory; +static private RMIFailureHandler currentHandler; + +static { + defaultFactory = new RMIDefaultSocketFactory(); + currentFactory = defaultFactory; +} + +public RMISocketFactory() { +} + +public abstract Socket createSocket(String host, int port) throws IOException; + +public abstract ServerSocket createServerSocket(int port) throws IOException; + +public static void setSocketFactory(RMISocketFactory fac) throws IOException { + currentFactory = fac; +} + +public static RMISocketFactory getSocketFactory() { + return (currentFactory); +} + +public static RMISocketFactory getDefaultSocketFactory() { + return (defaultFactory); +} + +public static void setFailureHandler(RMIFailureHandler fh) { + currentHandler = fh; +} + +public static RMIFailureHandler getFailureHandler() { + return (currentHandler); +} + +} diff --git a/libjava/java/rmi/server/RemoteCall.java b/libjava/java/rmi/server/RemoteCall.java new file mode 100644 index 00000000000..ceb8abe0faa --- /dev/null +++ b/libjava/java/rmi/server/RemoteCall.java @@ -0,0 +1,46 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.server; + +import java.lang.Exception; +import java.io.IOException; +import java.io.ObjectOutput; +import java.io.ObjectInput; +import java.io.StreamCorruptedException; + +public interface RemoteCall { + +public ObjectOutput getOutputStream() throws IOException; +public void releaseOutputStream() throws IOException; +public ObjectInput getInputStream() throws IOException; +public void releaseInputStream() throws IOException; +public ObjectOutput getResultStream(boolean success) throws IOException, StreamCorruptedException; +public void executeCall() throws Exception; +public void done() throws IOException; + +} diff --git a/libjava/java/rmi/server/RemoteObject.java b/libjava/java/rmi/server/RemoteObject.java new file mode 100644 index 00000000000..6f128669191 --- /dev/null +++ b/libjava/java/rmi/server/RemoteObject.java @@ -0,0 +1,119 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.server; + +import java.io.Serializable; +import java.rmi.Remote; +import java.rmi.NoSuchObjectException; +import java.rmi.UnmarshalException; +import java.rmi.server.RemoteRef; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.io.IOException; +import java.lang.ClassNotFoundException; +import java.lang.InstantiationException; +import java.lang.IllegalAccessException; + +public abstract class RemoteObject + implements Remote, Serializable { + +public static final long serialVersionUID = -3215090123894869218l; + +protected transient RemoteRef ref; + +protected RemoteObject() { + this(null); +} + +protected RemoteObject(RemoteRef newref) { + ref = newref; +} + +public RemoteRef getRef() { + return (ref); +} + +public static Remote toStub(Remote obj) throws NoSuchObjectException { + throw new Error("Not implemented"); +} + +public int hashCode() { + if (ref == null) { + return (0); + } + else { + return (ref.hashCode()); + } +} + +public boolean equals(Object obj) { + // We only compare references. + return (this == obj); +} + +public String toString() { + return (ref.toString()); +} + +private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { + String cname = in.readUTF(); + if (!cname.equals("")) { + cname = RemoteRef.packagePrefix + '.' + cname; + try { + Class cls = Class.forName(cname); + ref = (RemoteRef)cls.newInstance(); + } + catch (InstantiationException e1) { + throw new UnmarshalException("failed to create ref"); + } + catch (IllegalAccessException e2) { + throw new UnmarshalException("failed to create ref"); + } + ref.readExternal(in); + } + else { + ref = (RemoteRef)in.readObject(); + } +} + +private void writeObject(ObjectOutputStream out) throws IOException, ClassNotFoundException { + if (ref == null) { + throw new UnmarshalException("no ref to serialize"); + } + String cname = ref.getRefClass(out); + if (cname != null && cname.length() > 0) { + out.writeUTF(cname); + ref.writeExternal(out); + } + else { + out.writeUTF(""); + out.writeObject(ref); + } +} + +} diff --git a/libjava/java/rmi/server/RemoteRef.java b/libjava/java/rmi/server/RemoteRef.java new file mode 100644 index 00000000000..f9e57ceba76 --- /dev/null +++ b/libjava/java/rmi/server/RemoteRef.java @@ -0,0 +1,51 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.server; + +import java.lang.reflect.Method; +import java.io.Externalizable; +import java.rmi.Remote; +import java.rmi.RemoteException; +import java.io.ObjectOutput; + +public interface RemoteRef + extends Externalizable { + +public static final long serialVersionUID = 0; +public static final String packagePrefix = "gnu.java.rmi.server"; + +public void invoke(RemoteCall call) throws Exception; +public Object invoke(Remote obj, Method method, Object[] params, long opnum) throws Exception; +public RemoteCall newCall(RemoteObject obj, Operation[] op, int opnum, long hash) throws RemoteException; +public void done(RemoteCall call) throws RemoteException; +public boolean remoteEquals(RemoteRef ref); +public int remoteHashCode(); +public String getRefClass(ObjectOutput out); +public String remoteToString(); + +} diff --git a/libjava/java/rmi/server/RemoteServer.java b/libjava/java/rmi/server/RemoteServer.java new file mode 100644 index 00000000000..24a564a0583 --- /dev/null +++ b/libjava/java/rmi/server/RemoteServer.java @@ -0,0 +1,56 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.server; + +import java.io.OutputStream; +import java.io.PrintStream; + +public abstract class RemoteServer + extends RemoteObject { + +protected RemoteServer() { + super(); +} + +protected RemoteServer(RemoteRef ref) { + super(ref); +} + +public static String getClientHost() throws ServerNotActiveException { + throw new Error("Not implemented"); +} + +public static void setLog(OutputStream out) { + throw new Error("Not implemented"); +} + +public static PrintStream getLog() { + throw new Error("Not implemented"); +} + +} diff --git a/libjava/java/rmi/server/RemoteStub.java b/libjava/java/rmi/server/RemoteStub.java new file mode 100644 index 00000000000..c364cd871b5 --- /dev/null +++ b/libjava/java/rmi/server/RemoteStub.java @@ -0,0 +1,47 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.server; + +public abstract class RemoteStub + extends RemoteObject { + +public static final long serialVersionUID = -1585587260594494182l; + +protected RemoteStub() { + super(); +} + +protected RemoteStub(RemoteRef ref) { + super(ref); +} + +protected static void setRef(RemoteStub stub, RemoteRef ref) { + stub.ref = ref; +} + +} diff --git a/libjava/java/rmi/server/ServerCloneException.java b/libjava/java/rmi/server/ServerCloneException.java new file mode 100644 index 00000000000..3912168b56d --- /dev/null +++ b/libjava/java/rmi/server/ServerCloneException.java @@ -0,0 +1,76 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.server; + +import java.lang.CloneNotSupportedException; +import java.io.PrintStream; +import java.io.PrintWriter; + +public class ServerCloneException + extends CloneNotSupportedException { + +public Exception detail; + +public ServerCloneException(String s) { + super(s); + detail = null; +} + +public ServerCloneException(String s, Exception e) { + super(s); + detail = e; +} + +public String getMessage() { + if (detail != null) { + return (super.getMessage() + ":" + detail.getMessage()); + } + else { + return (super.getMessage()); + } +} + +public void printStackTrace(PrintStream s) { + if (detail != null) { + detail.printStackTrace(s); + } + super.printStackTrace(s); +} + +public void printStackTrace() { + printStackTrace(System.err); +} + +public void printStackTrace(PrintWriter s) { + if (detail != null) { + detail.printStackTrace(s); + } + super.printStackTrace(s); +} + +} diff --git a/libjava/java/rmi/server/ServerNotActiveException.java b/libjava/java/rmi/server/ServerNotActiveException.java new file mode 100644 index 00000000000..90747f79999 --- /dev/null +++ b/libjava/java/rmi/server/ServerNotActiveException.java @@ -0,0 +1,43 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.server; + +import java.lang.Exception; + +public class ServerNotActiveException + extends Exception { + +public ServerNotActiveException() { + super(); +} + +public ServerNotActiveException(String s) { + super(s); +} + +} diff --git a/libjava/java/rmi/server/ServerRef.java b/libjava/java/rmi/server/ServerRef.java new file mode 100644 index 00000000000..fc75669d30c --- /dev/null +++ b/libjava/java/rmi/server/ServerRef.java @@ -0,0 +1,43 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.server; + +import java.rmi.server.RemoteStub; +import java.rmi.Remote; +import java.rmi.RemoteException; +import java.rmi.server.ServerNotActiveException; + +public interface ServerRef + extends RemoteRef { + +public static final long serialVersionUID = 0; + +public RemoteStub exportObject(Remote obj, Object data) throws RemoteException; +public String getClientHost() throws ServerNotActiveException; + +} diff --git a/libjava/java/rmi/server/Skeleton.java b/libjava/java/rmi/server/Skeleton.java new file mode 100644 index 00000000000..99339d5c147 --- /dev/null +++ b/libjava/java/rmi/server/Skeleton.java @@ -0,0 +1,39 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.server; + +import java.rmi.Remote; +import java.lang.Exception; +import java.rmi.server.RemoteCall; + +public interface Skeleton { + +public void dispatch(Remote obj, RemoteCall theCall, int opnum, long hash) throws Exception; +public Operation[] getOperations(); + +} diff --git a/libjava/java/rmi/server/SkeletonMismatchException.java b/libjava/java/rmi/server/SkeletonMismatchException.java new file mode 100644 index 00000000000..e74ae515ab1 --- /dev/null +++ b/libjava/java/rmi/server/SkeletonMismatchException.java @@ -0,0 +1,41 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.server; + +import java.rmi.RemoteException; + +public class SkeletonMismatchException + extends RemoteException { + +public static final long serialVersionUID = -7780460454818859281l; + +public SkeletonMismatchException(String s) { + super(s); +} + +} diff --git a/libjava/java/rmi/server/SkeletonNotFoundException.java b/libjava/java/rmi/server/SkeletonNotFoundException.java new file mode 100644 index 00000000000..26dfe88e66c --- /dev/null +++ b/libjava/java/rmi/server/SkeletonNotFoundException.java @@ -0,0 +1,43 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.server; + +import java.rmi.RemoteException; + +public class SkeletonNotFoundException + extends RemoteException { + +public SkeletonNotFoundException(String s) { + super(s); +} + +public SkeletonNotFoundException(String s, Exception e) { + super(s, e); +} + +} diff --git a/libjava/java/rmi/server/SocketSecurityException.java b/libjava/java/rmi/server/SocketSecurityException.java new file mode 100644 index 00000000000..10b0b80546f --- /dev/null +++ b/libjava/java/rmi/server/SocketSecurityException.java @@ -0,0 +1,43 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.server; + +import java.rmi.server.ExportException; + +public class SocketSecurityException + extends ExportException { + +public SocketSecurityException(String s) { + super(s); +} + +public SocketSecurityException(String s, Exception e) { + super(s, e); +} + +} diff --git a/libjava/java/rmi/server/UID.java b/libjava/java/rmi/server/UID.java new file mode 100644 index 00000000000..49d256e0a8e --- /dev/null +++ b/libjava/java/rmi/server/UID.java @@ -0,0 +1,120 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.server; + +import java.io.Serializable; +import java.io.DataOutput; +import java.io.DataInput; +import java.io.IOException; +import java.util.Random; +import java.lang.Thread; +import java.lang.InterruptedException; + +public final class UID + implements Serializable { + +public static final long serialVersionUID = 1086053664494604050L; + +private static final Object lock = UID.class; +private static long baseTime = System.currentTimeMillis(); +private static short nextCount = Short.MIN_VALUE; +// This is sun's algorithm - don't ask me why ... +private static final int uniqueNr = (new Object()).hashCode(); + +private int unique; +private long time; +private short count; + +/** + * This is sun's algorithm - don't ask me why ... + */ +public UID() { + synchronized (lock) { + if (count == Short.MAX_VALUE) { + long newtime; + for (;;) { + newtime = System.currentTimeMillis(); + if (newtime - baseTime > 1000) { + break; + } + try { + Thread.sleep(1000); + } + catch (InterruptedException _) { + } + } + baseTime = newtime; + nextCount = Short.MIN_VALUE; + } + count = nextCount++; + unique = uniqueNr; + time = baseTime; + } +} + +public UID(short num) { + unique = (int)num; + time = 0; + count = 0; +} + +public int hashCode() { + return (unique); +} + +public boolean equals(Object obj) { + if (obj instanceof UID) { + UID uid = (UID)obj; + if (this.unique == uid.unique && + this.time == uid.time && + this.count == uid.count) { + return (true); + } + } + return (false); +} + +public String toString() { + return ("[UID: " + unique + "," + time + "," + count + "]"); +} + +public void write(DataOutput out) throws IOException { + out.writeInt(unique); + out.writeLong(time); + out.writeShort(count); +} + +public static UID read(DataInput in) throws IOException { + UID id = new UID(); + id.unique = in.readInt(); + id.time = in.readLong(); + id.count = in.readShort(); + return (id); +} + +} diff --git a/libjava/java/rmi/server/UnicastRemoteObject.java b/libjava/java/rmi/server/UnicastRemoteObject.java new file mode 100644 index 00000000000..3f78893c080 --- /dev/null +++ b/libjava/java/rmi/server/UnicastRemoteObject.java @@ -0,0 +1,76 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.server; + +import java.rmi.RemoteException; +import java.rmi.Remote; +import java.rmi.server.RemoteRef; +import java.rmi.NoSuchObjectException; +import gnu.java.rmi.server.UnicastServerRef; + +public class UnicastRemoteObject + extends RemoteServer { + +protected UnicastRemoteObject() throws RemoteException { + this(0); +} + +protected UnicastRemoteObject(int port) throws RemoteException { + this(port, RMISocketFactory.getSocketFactory(), RMISocketFactory.getSocketFactory()); +} + +protected UnicastRemoteObject(int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf) throws RemoteException { + super(new UnicastServerRef(new ObjID(), port, ssf)); +} + +protected UnicastRemoteObject(RemoteRef ref) throws RemoteException { + super((UnicastServerRef)ref); +} + +public Object clone() throws CloneNotSupportedException { + throw new Error("Not implemented"); +} + +public static RemoteStub exportObject(Remote obj) throws RemoteException { + UnicastServerRef sref = (UnicastServerRef)((RemoteObject)obj).getRef(); + return (sref.exportObject(obj)); +} + +public static Remote exportObject(Remote obj, int port) throws RemoteException { + return (exportObject(obj)); +} + +public static Remote exportObject(Remote obj, int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf) throws RemoteException { + return (exportObject(obj)); +} + +public static boolean unexportObject(Remote obj, boolean force) throws NoSuchObjectException { + throw new Error("Not implemented"); +} + +} diff --git a/libjava/java/rmi/server/Unreferenced.java b/libjava/java/rmi/server/Unreferenced.java new file mode 100644 index 00000000000..20678d18649 --- /dev/null +++ b/libjava/java/rmi/server/Unreferenced.java @@ -0,0 +1,34 @@ +/* + Copyright (c) 1996, 1997, 1998, 1999 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. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. + */ + +package java.rmi.server; + +public interface Unreferenced { + +public void unreferenced(); + +} -- 2.11.0