com.sun.jini.phoenix
Class SystemAccessExporter

java.lang.Object
  extended by 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
Author:
Sun Microsystems, Inc.

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 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


Copyright 2007, multiple authors.
Licensed under the Apache License, Version 2.0, see the NOTICE file for attributions.