public interface Exporter
Details of the export and unexport behavior, including the communication protocols used for remote invocation and additional remote invocation semantics, are defined by the particular implementation of this interface.
Modifier and Type | Method and Description |
---|---|
Remote |
export(Remote impl)
Exports the specified remote object and returns a proxy that can
be used to invoke remote methods on the exported remote object.
|
boolean |
unexport(boolean force)
Unexports the remote object that was exported by this
Exporter such that it will no longer receive remote
method invocations that were made possible as a result of exporting
it with this Exporter . |
Remote export(Remote impl) throws ExportException
Exporter
instance.
The returned proxy implements an implementation-specific set of remote interfaces of the remote object and may also implement additional implementation-specific interfaces.
A remote interface is an interface that extends the interface
java.rmi.Remote
and whose methods each declare at least
one exception whose type is java.rmi.RemoteException
or one of its superclasses.
This method should not be called from within an object constructor, otherwise the object reference will escape during construction, leaving the remote object implementation in an undefined state.
impl
- a remote object to exportExportException
- if a problem occurs exporting the objectSecurityException
- if a SecurityException
occurs exporting the objectNullPointerException
- if impl
is null
IllegalStateException
- if an object has already been exported
with this Exporter
instanceStartable
boolean unexport(boolean force)
Exporter
such that it will no longer receive remote
method invocations that were made possible as a result of exporting
it with this Exporter
. The unexport operation may
not occur if the force
argument is false
.
This method must only be invoked after the export
method has been invoked on this Exporter
instance to
export a remote object successfully.
This method returns true
if upon return, the remote
object is no longer exported with this Exporter
, and
false
if the remote object remains exported with this
Exporter
. This method will always return
true
if it has returned true
previously.
The force
parameter serves to indicate whether or not
the caller desires the unexport to occur even if there are known
remote calls pending or in progress to the remote object that were
made possible by this Exporter
:
force
is true
, then the remote
object will be forcibly unexported even if there are remote calls
pending or in progress, and this method will return
true
.
force
is false
, then this acts as
a hint to the implementation that the remote object should not be
unexported if there are known remote calls pending or in progress,
and this method will either unexport the remote object and return
true
or not unexport the remote object and return
false
. If the implementation detects that there are
indeed remote calls pending or in progress, then it should return
false
; otherwise, it must return true
.
If the implementation does not support being able to unexport
conditionally based on knowledge of remote calls pending or in
progress, then it must implement this method as if
force
were always true
.
If the remote object is unexported as a result of this method, then the implementation may (and should, if possible) prevent remote calls in progress from being able to communicate their results successfully.
force
- if true
, the remote object will be
unexported even if there are remote calls pending or in progress;
if false
, the remote object may only be unexported if
there are no known remote calls pending or in progresstrue
if the remote object is unexported when
this method returns and false
otherwiseIllegalStateException
- if an object has not been exported
with this Exporter
instance