declare namespace java { namespace rmi { namespace server { /** * Used for exporting a remote object with JRMP and obtaining a stub * that communicates to the remote object. Stubs are either generated * at runtime using dynamic proxy objects, or they are generated statically * at build time, typically using the {@code rmic} tool. *

Deprecated: Static Stubs. Support for statically * generated stubs is deprecated. This includes the API in this class that * requires the use of static stubs, as well as the runtime support for * loading static stubs. Generating stubs dynamically is preferred, using one * of the five non-deprecated ways of exporting objects as listed below. Do * not run {@code rmic} to generate static stub classes. It is unnecessary, and * it is also deprecated. *

There are six ways to export remote objects: *

    *
  1. Subclassing {@code UnicastRemoteObject} and calling the * {@link #UnicastRemoteObject()} constructor. *
  2. Subclassing {@code UnicastRemoteObject} and calling the * {@link #UnicastRemoteObject(int) UnicastRemoteObject(port)} constructor. *
  3. Subclassing {@code UnicastRemoteObject} and calling the * {@link #UnicastRemoteObject(int, RMIClientSocketFactory, RMIServerSocketFactory) * UnicastRemoteObject(port, csf, ssf)} constructor. *
  4. Calling the * {@link #exportObject(Remote) exportObject(Remote)} method. * Deprecated. *
  5. Calling the * {@link #exportObject(Remote, int) exportObject(Remote, port)} method. *
  6. Calling the * {@link #exportObject(Remote, int, RMIClientSocketFactory, RMIServerSocketFactory) * exportObject(Remote, port, csf, ssf)} method. *
*

The fourth technique, {@link #exportObject(Remote)}, * always uses statically generated stubs and is deprecated. *

The other five techniques all use the following approach: if the * {@code java.rmi.server.ignoreStubClasses} property is {@code true} * (case insensitive) or if a static stub cannot be found, stubs are generated * dynamically using {@link java.lang.reflect.Proxy Proxy} objects. Otherwise, * static stubs are used. *

The default value of the * {@code java.rmi.server.ignoreStubClasses} property is {@code false}. *

Statically generated stubs are typically pregenerated from the * remote object's class using the {@code rmic} tool. A static stub is * loaded and an instance of that stub class is constructed as described * below. *

*

Stubs are dynamically generated by constructing an instance of * a {@link java.lang.reflect.Proxy Proxy} with the following characteristics: *

* @implNote Depending upon which constructor or static method is used for exporting an * object, {#link RMISocketFactory} may be used for creating sockets. * By default, server sockets created by {@link RMISocketFactory} * listen on all network interfaces. See the * {@link RMISocketFactory} class and the section * RMI Socket Factories * in the * Java RMI Specification. * @author Ann Wollrath * @author Peter Jones * @since JDK1.1 */ // @ts-ignore class UnicastRemoteObject extends java.rmi.server.RemoteServer { /** * Creates and exports a new UnicastRemoteObject object using an * anonymous port. *

The object is exported with a server socket * created using the {@link RMISocketFactory} class. * @throws RemoteException if failed to export object * @since JDK1.1 */ // @ts-ignore constructor() /** * Creates and exports a new UnicastRemoteObject object using the * particular supplied port. *

The object is exported with a server socket * created using the {@link RMISocketFactory} class. * @param port the port number on which the remote object receives calls * (if port is zero, an anonymous port is chosen) * @throws RemoteException if failed to export object * @since 1.2 */ // @ts-ignore constructor(port: number /*int*/) /** * Creates and exports a new UnicastRemoteObject object using the * particular supplied port and socket factories. *

Either socket factory may be {@code null}, in which case * the corresponding client or server socket creation method of * {@link RMISocketFactory} is used instead. * @param port the port number on which the remote object receives calls * (if port is zero, an anonymous port is chosen) * @param csf the client-side socket factory for making calls to the * remote object * @param ssf the server-side socket factory for receiving remote calls * @throws RemoteException if failed to export object * @since 1.2 */ // @ts-ignore constructor(port: number /*int*/, csf: java.rmi.server.RMIClientSocketFactory, ssf: java.rmi.server.RMIServerSocketFactory) /** * Returns a clone of the remote object that is distinct from * the original. * @exception CloneNotSupportedException if clone failed due to * a RemoteException. * @return the new remote object * @since JDK1.1 */ // @ts-ignore public clone(): any /** * Exports the remote object to make it available to receive incoming * calls using an anonymous port. This method will always return a * statically generated stub. *

The object is exported with a server socket * created using the {@link RMISocketFactory} class. * @param obj the remote object to be exported * @return remote object stub * @exception RemoteException if export fails * @since JDK1.1 * @deprecated This method is deprecated because it supports only static stubs. * Use {#link #exportObject(Remote, int) exportObject(Remote, port)} or * {@link #exportObject(Remote, int, RMIClientSocketFactory, RMIServerSocketFactory) * exportObject(Remote, port, csf, ssf)} * instead. */ // @ts-ignore public static exportObject(obj: java.rmi.Remote): java.rmi.server.RemoteStub /** * Exports the remote object to make it available to receive incoming * calls, using the particular supplied port. *

The object is exported with a server socket * created using the {@link RMISocketFactory} class. * @param obj the remote object to be exported * @param port the port to export the object on * @return remote object stub * @exception RemoteException if export fails * @since 1.2 */ // @ts-ignore public static exportObject(obj: java.rmi.Remote, port: number /*int*/): java.rmi.Remote /** * Exports the remote object to make it available to receive incoming * calls, using a transport specified by the given socket factory. *

Either socket factory may be {@code null}, in which case * the corresponding client or server socket creation method of * {@link RMISocketFactory} is used instead. * @param obj the remote object to be exported * @param port the port to export the object on * @param csf the client-side socket factory for making calls to the * remote object * @param ssf the server-side socket factory for receiving remote calls * @return remote object stub * @exception RemoteException if export fails * @since 1.2 */ // @ts-ignore public static exportObject(obj: java.rmi.Remote, port: number /*int*/, csf: java.rmi.server.RMIClientSocketFactory, ssf: java.rmi.server.RMIServerSocketFactory): java.rmi.Remote /** * Removes the remote object, obj, from the RMI runtime. If * successful, the object can no longer accept incoming RMI calls. * If the force parameter is true, the object is forcibly unexported * even if there are pending calls to the remote object or the * remote object still has calls in progress. If the force * parameter is false, the object is only unexported if there are * no pending or in progress calls to the object. * @param obj the remote object to be unexported * @param force if true, unexports the object even if there are * pending or in-progress calls; if false, only unexports the object * if there are no pending or in-progress calls * @return true if operation is successful, false otherwise * @exception NoSuchObjectException if the remote object is not * currently exported * @since 1.2 */ // @ts-ignore public static unexportObject(obj: java.rmi.Remote, force: boolean): boolean } } } }