Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.sun.jini.phoenix
Class SystemAccessExporter

    java.lang.Object
      com.sun.jini.phoenix.SystemAccessExporter

All Implemented Interfaces:
  Exporter

public class SystemAccessExporter
extends Object
implements Exporter

Exporter that wraps an `ActivationSystem` instance so that it only accepts calls from the local host and optionally enforces a `GroupPolicy` on calls to `registerGroup` and `setActivationGroupDesc`.

Since:
  2.0

Constructor Summary
`SystemAccessExporter()` Creates an exporter with an underlying `SunJrmpExporter` that exports using a well-known object identifier (4) on the standard activation port (1098), and a `DefaultGroupPolicy` instance.
`SystemAccessExporter(Exporter exporter)` Creates an exporter with the specified underlying exporter and a `DefaultGroupPolicy` instance.
`SystemAccessExporter(Exporter exporter, GroupPolicy policy)` Creates an exporter with the specified underlying exporter and the specified group policy, if any.
`SystemAccessExporter(GroupPolicy policy)` Creates an exporter with an underlying `SunJrmpExporter` that exports using a well-known object identifier (4) on the standard activation port (1098), and the specified group policy, if any.
`SystemAccessExporter(int port)` Creates an exporter with an underlying `SunJrmpExporter` that exports using a well-known object identifier (4) on the specified port, and a `DefaultGroupPolicy` instance.
`SystemAccessExporter(int port, GroupPolicy policy)` Creates an exporter with an underlying `SunJrmpExporter` that exports using a well-known object identifier (4) on the specified port, and the specified group policy, if any.

Method Summary
`Remote` | `export(Remote impl)` Wraps the specified remote object in an `ActivationSystem` implementation that only accepts calls from the local host and enforces the group policy (if any) before delegating to the specified remote object, exports the wrapper with the underlying exporter, and returns the resulting proxy.
`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`.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### SystemAccessExporter

    public SystemAccessExporter()

  Creates an exporter with an underlying `SunJrmpExporter` that exports using a well-known object identifier (4) on the standard activation port (1098), and a `DefaultGroupPolicy` instance.

### SystemAccessExporter

    public SystemAccessExporter(GroupPolicy policy)

  Creates an exporter with an underlying `SunJrmpExporter` that exports using a well-known object identifier (4) on the standard activation port (1098), and the specified group policy, if any.

Parameters:
  `policy` - the group policy, or `null`

### SystemAccessExporter

    public SystemAccessExporter(int port)

  Creates an exporter with an underlying `SunJrmpExporter` that exports using a well-known object identifier (4) on the specified port, and a `DefaultGroupPolicy` instance.

Parameters:
  `port` - the port on which to receive calls (if zero, an anonymous port will be chosen)

### SystemAccessExporter

    public SystemAccessExporter(int port,
                                GroupPolicy policy)

  Creates an exporter with an underlying `SunJrmpExporter` that exports using a well-known object identifier (4) on the specified port, and the specified group policy, if any.

Parameters:
  `port` - the port on which to receive calls (if zero, an anonymous port will be chosen)
  `policy` - the group policy, or `null`

### SystemAccessExporter

    public SystemAccessExporter(Exporter exporter)

  Creates an exporter with the specified underlying exporter and a `DefaultGroupPolicy` instance.

Parameters:
  `exporter` - the underlying exporter

### SystemAccessExporter

    public SystemAccessExporter(Exporter exporter,
                                GroupPolicy policy)

  Creates an exporter with the specified underlying exporter and the specified group policy, if any.

Parameters:
  `exporter` - the underlying exporter
  `policy` - the group policy, or `null`

Method Detail

### export

    public Remote export(Remote impl)
                  throws ExportException

  Wraps the specified remote object in an `ActivationSystem` implementation that only accepts calls from the local host and enforces the group policy (if any) before delegating to the specified remote object, exports the wrapper with the underlying exporter, and returns the resulting proxy. The wrapper is strongly referenced by this exporter. For all `ActivationSystem` and `ActivationAdmin` methods, the wrapper throws an `AccessControlException` if the client is not calling from the local host. For the `registerGroup` and `setActivationGroupDesc` methods, the policy (if any) is checked by calling its `checkGroup` method with the `ActivationGroupDesc` argument.

  Specified by:
    `export` in interface `Exporter`
  Parameters:
    `impl` - a remote object to export
  Returns:
    a proxy for the remote object
  Throws:
    `IllegalArgumentException` - if `impl` does not implement `ActivationSystem` or `ActivationAdmin`
    `NullPointerException` - if `impl` is `null`
    `IllegalStateException` - if an object has already been exported with this `Exporter` instance
    `ExportException` - if a problem occurs exporting the object

### unexport

    public boolean unexport(boolean force)

  Description copied from interface: `Exporter`
  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`. 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`:

  - If `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`.
  - If `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.

  Specified by:
    `unexport` in interface `Exporter`
  Parameters:
    `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 progress
  Returns:
    `true` if the remote object is unexported when this method returns and `false` otherwise
  Throws:
    `IllegalStateException` - if an object has not been exported with this `Exporter` instance

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2004 Sun Microsystems, Inc. All rights reserved