You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@river.apache.org by si...@apache.org on 2010/12/24 22:41:58 UTC

svn commit: r1052689 [8/9] - in /incubator/river/site/trunk/content/river/doc/api/com/sun/jini/phoenix: ./ class-use/

Added: incubator/river/site/trunk/content/river/doc/api/com/sun/jini/phoenix/package-frame.html
URL: http://svn.apache.org/viewvc/incubator/river/site/trunk/content/river/doc/api/com/sun/jini/phoenix/package-frame.html?rev=1052689&view=auto
==============================================================================
--- incubator/river/site/trunk/content/river/doc/api/com/sun/jini/phoenix/package-frame.html (added)
+++ incubator/river/site/trunk/content/river/doc/api/com/sun/jini/phoenix/package-frame.html Fri Dec 24 21:41:57 2010
@@ -0,0 +1,98 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_15) on Mon Mar 08 17:46:27 EST 2010 -->
+<TITLE>
+com.sun.jini.phoenix (Apache River v2.1.2-SNAPSHOT API Documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.sun.jini.phoenix package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../com/sun/jini/phoenix/package-summary.html" target="classFrame">com.sun.jini.phoenix</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Interfaces</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="ActivationAdmin.html" title="interface in com.sun.jini.phoenix" target="classFrame"><I>ActivationAdmin</I></A>
+<BR>
+<A HREF="GroupOutputHandler.html" title="interface in com.sun.jini.phoenix" target="classFrame"><I>GroupOutputHandler</I></A>
+<BR>
+<A HREF="GroupPolicy.html" title="interface in com.sun.jini.phoenix" target="classFrame"><I>GroupPolicy</I></A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="AccessILFactory.html" title="class in com.sun.jini.phoenix" target="classFrame">AccessILFactory</A>
+<BR>
+<A HREF="AccessILFactory.AccessDispatcher.html" title="class in com.sun.jini.phoenix" target="classFrame">AccessILFactory.AccessDispatcher</A>
+<BR>
+<A HREF="ActivationGroupData.html" title="class in com.sun.jini.phoenix" target="classFrame">ActivationGroupData</A>
+<BR>
+<A HREF="ActivationGroupImpl.html" title="class in com.sun.jini.phoenix" target="classFrame">ActivationGroupImpl</A>
+<BR>
+<A HREF="ActivatorPermission.html" title="class in com.sun.jini.phoenix" target="classFrame">ActivatorPermission</A>
+<BR>
+<A HREF="ActivatorSunJrmpExporter.html" title="class in com.sun.jini.phoenix" target="classFrame">ActivatorSunJrmpExporter</A>
+<BR>
+<A HREF="DefaultGroupPolicy.html" title="class in com.sun.jini.phoenix" target="classFrame">DefaultGroupPolicy</A>
+<BR>
+<A HREF="ExecOptionPermission.html" title="class in com.sun.jini.phoenix" target="classFrame">ExecOptionPermission</A>
+<BR>
+<A HREF="ExecPermission.html" title="class in com.sun.jini.phoenix" target="classFrame">ExecPermission</A>
+<BR>
+<A HREF="InstantiatorAccessExporter.html" title="class in com.sun.jini.phoenix" target="classFrame">InstantiatorAccessExporter</A>
+<BR>
+<A HREF="InstantiatorPermission.html" title="class in com.sun.jini.phoenix" target="classFrame">InstantiatorPermission</A>
+<BR>
+<A HREF="MonitorAccessExporter.html" title="class in com.sun.jini.phoenix" target="classFrame">MonitorAccessExporter</A>
+<BR>
+<A HREF="MonitorPermission.html" title="class in com.sun.jini.phoenix" target="classFrame">MonitorPermission</A>
+<BR>
+<A HREF="PhoenixConstants.html" title="class in com.sun.jini.phoenix" target="classFrame">PhoenixConstants</A>
+<BR>
+<A HREF="RegistrySunExporter.html" title="class in com.sun.jini.phoenix" target="classFrame">RegistrySunExporter</A>
+<BR>
+<A HREF="SunJrmpExporter.html" title="class in com.sun.jini.phoenix" target="classFrame">SunJrmpExporter</A>
+<BR>
+<A HREF="SystemAccessExporter.html" title="class in com.sun.jini.phoenix" target="classFrame">SystemAccessExporter</A>
+<BR>
+<A HREF="SystemAccessILFactory.html" title="class in com.sun.jini.phoenix" target="classFrame">SystemAccessILFactory</A>
+<BR>
+<A HREF="SystemAccessILFactory.SystemDispatcher.html" title="class in com.sun.jini.phoenix" target="classFrame">SystemAccessILFactory.SystemDispatcher</A>
+<BR>
+<A HREF="SystemAccessProxyTrustILFactory.html" title="class in com.sun.jini.phoenix" target="classFrame">SystemAccessProxyTrustILFactory</A>
+<BR>
+<A HREF="SystemPermission.html" title="class in com.sun.jini.phoenix" target="classFrame">SystemPermission</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Exceptions</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="InactiveGroupException.html" title="class in com.sun.jini.phoenix" target="classFrame">InactiveGroupException</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>

Added: incubator/river/site/trunk/content/river/doc/api/com/sun/jini/phoenix/package-summary.html
URL: http://svn.apache.org/viewvc/incubator/river/site/trunk/content/river/doc/api/com/sun/jini/phoenix/package-summary.html?rev=1052689&view=auto
==============================================================================
--- incubator/river/site/trunk/content/river/doc/api/com/sun/jini/phoenix/package-summary.html (added)
+++ incubator/river/site/trunk/content/river/doc/api/com/sun/jini/phoenix/package-summary.html Fri Dec 24 21:41:57 2010
@@ -0,0 +1,1371 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_15) on Mon Mar 08 17:46:27 EST 2010 -->
+<TITLE>
+com.sun.jini.phoenix (Apache River v2.1.2-SNAPSHOT API Documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.sun.jini.phoenix package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.sun.jini.phoenix (Apache River v2.1.2-SNAPSHOT API Documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/sun/jini/outrigger/snaplogstore/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/sun/jini/proxy/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/sun/jini/phoenix/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.sun.jini.phoenix
+</H2>
+A configurable Java(TM) Remote Method Invocation (Java RMI) activation
+system daemon implementation.
+<P>
+<B>See:</B>
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#package_description"><B>Description</B></A>
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Interface Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/sun/jini/phoenix/ActivationAdmin.html" title="interface in com.sun.jini.phoenix">ActivationAdmin</A></B></TD>
+<TD>An administrative interface for the activation system daemon.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/sun/jini/phoenix/GroupOutputHandler.html" title="interface in com.sun.jini.phoenix">GroupOutputHandler</A></B></TD>
+<TD>Defines the interface for handlers of the output of activation group
+ processes.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/sun/jini/phoenix/GroupPolicy.html" title="interface in com.sun.jini.phoenix">GroupPolicy</A></B></TD>
+<TD>Interface for policy objects to control what <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/activation/ActivationGroupDesc.html" title="class or interface in java.rmi.activation"><CODE>ActivationGroupDesc</CODE></A>
+ instances can be used.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/sun/jini/phoenix/AccessILFactory.html" title="class in com.sun.jini.phoenix">AccessILFactory</A></B></TD>
+<TD>A basic invocation layer factory, used in exporting an
+ <code>ActivationMonitor</code> or <code>ActivationInstantiator</code> to
+ use Jini extensible remote invocation (Jini ERI), that is similar to
+ <A HREF="../../../../net/jini/jeri/BasicILFactory.html" title="class in net.jini.jeri"><CODE>BasicILFactory</CODE></A> except the returned invocation dispatcher only
+ accepts calls from the local host.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/sun/jini/phoenix/AccessILFactory.AccessDispatcher.html" title="class in com.sun.jini.phoenix">AccessILFactory.AccessDispatcher</A></B></TD>
+<TD>A subclass of <A HREF="../../../../net/jini/jeri/BasicInvocationDispatcher.html" title="class in net.jini.jeri"><CODE>BasicInvocationDispatcher</CODE></A> that only accepts
+ calls from the local host.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/sun/jini/phoenix/ActivationGroupData.html" title="class in com.sun.jini.phoenix">ActivationGroupData</A></B></TD>
+<TD>Initialization data for <A HREF="../../../../com/sun/jini/phoenix/ActivationGroupImpl.html" title="class in com.sun.jini.phoenix"><CODE>ActivationGroupImpl</CODE></A>, to control the
+ activation group's configuration.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/sun/jini/phoenix/ActivationGroupImpl.html" title="class in com.sun.jini.phoenix">ActivationGroupImpl</A></B></TD>
+<TD>The default activation group implementation for phoenix.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/sun/jini/phoenix/ActivatorPermission.html" title="class in com.sun.jini.phoenix">ActivatorPermission</A></B></TD>
+<TD>Represents permissions that can be used to express the access control
+ policy for the activator, the remote object handling object activation,
+ if that remote object is exported with <A HREF="../../../../net/jini/jeri/BasicJeriExporter.html" title="class in net.jini.jeri"><CODE>BasicJeriExporter</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/sun/jini/phoenix/ActivatorSunJrmpExporter.html" title="class in com.sun.jini.phoenix">ActivatorSunJrmpExporter</A></B></TD>
+<TD>JRMP exporter to export an <code>Activator</code> using the well-known
+ activator object identifier.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/sun/jini/phoenix/DefaultGroupPolicy.html" title="class in com.sun.jini.phoenix">DefaultGroupPolicy</A></B></TD>
+<TD>Group policy that requires the appropriate <A HREF="../../../../com/sun/jini/phoenix/ExecPermission.html" title="class in com.sun.jini.phoenix"><CODE>ExecPermission</CODE></A> and
+ set of <A HREF="../../../../com/sun/jini/phoenix/ExecOptionPermission.html" title="class in com.sun.jini.phoenix"><CODE>ExecOptionPermission</CODE></A> have been granted to the client
+ subject or the empty protection domain (a domain with all
+ <code>null</code> elements) if there is no client subject.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/sun/jini/phoenix/ExecOptionPermission.html" title="class in com.sun.jini.phoenix">ExecOptionPermission</A></B></TD>
+<TD>Represents permission to use a specific option or options in the command
+ for creating an activation group.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/sun/jini/phoenix/ExecPermission.html" title="class in com.sun.jini.phoenix">ExecPermission</A></B></TD>
+<TD>Represents permission to execute a command to create an activation group.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/sun/jini/phoenix/InstantiatorAccessExporter.html" title="class in com.sun.jini.phoenix">InstantiatorAccessExporter</A></B></TD>
+<TD>Exporter that wraps an <code>ActivationInstantiator</code> instance so that
+ it only accepts calls from the local host.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/sun/jini/phoenix/InstantiatorPermission.html" title="class in com.sun.jini.phoenix">InstantiatorPermission</A></B></TD>
+<TD>Represents permissions that can be used to express the access control
+ policy for the <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/activation/ActivationInstantiator.html" title="class or interface in java.rmi.activation"><CODE>ActivationInstantiator</CODE></A> remote
+ object exported with
+ <A HREF="../../../../net/jini/jeri/BasicJeriExporter.html" title="class in net.jini.jeri"><CODE>BasicJeriExporter</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/sun/jini/phoenix/MonitorAccessExporter.html" title="class in com.sun.jini.phoenix">MonitorAccessExporter</A></B></TD>
+<TD>Exporter that wraps an <code>ActivationMonitor</code> instance so that it
+ only accepts calls from the local host.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/sun/jini/phoenix/MonitorPermission.html" title="class in com.sun.jini.phoenix">MonitorPermission</A></B></TD>
+<TD>Represents permissions that can be used to express the access control
+ policy for the <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/activation/ActivationMonitor.html" title="class or interface in java.rmi.activation"><CODE>ActivationMonitor</CODE></A> remote object exported with
+ <A HREF="../../../../net/jini/jeri/BasicJeriExporter.html" title="class in net.jini.jeri"><CODE>BasicJeriExporter</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/sun/jini/phoenix/PhoenixConstants.html" title="class in com.sun.jini.phoenix">PhoenixConstants</A></B></TD>
+<TD>Provides constants for Phoenix.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/sun/jini/phoenix/RegistrySunExporter.html" title="class in com.sun.jini.phoenix">RegistrySunExporter</A></B></TD>
+<TD>JRMP exporter to export a <code>Registry</code> using the well-known
+ registry object identifier, and preventing remote code downloading for
+ incoming remote calls.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/sun/jini/phoenix/SunJrmpExporter.html" title="class in com.sun.jini.phoenix">SunJrmpExporter</A></B></TD>
+<TD>JRMP exporter to export an object using a well-known object identifier.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/sun/jini/phoenix/SystemAccessExporter.html" title="class in com.sun.jini.phoenix">SystemAccessExporter</A></B></TD>
+<TD>Exporter that wraps an <code>ActivationSystem</code> instance so that it
+ only accepts calls from the local host and optionally enforces a
+ <A HREF="../../../../com/sun/jini/phoenix/GroupPolicy.html" title="interface in com.sun.jini.phoenix"><CODE>GroupPolicy</CODE></A> on calls to <code>registerGroup</code> and
+ <code>setActivationGroupDesc</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/sun/jini/phoenix/SystemAccessILFactory.html" title="class in com.sun.jini.phoenix">SystemAccessILFactory</A></B></TD>
+<TD>Invocation layer factory for exporting an <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/activation/ActivationSystem.html" title="class or interface in java.rmi.activation"><CODE>ActivationSystem</CODE></A>
+ to use Jini extensible remote invocation (Jini ERI), that is similar
+ to <A HREF="../../../../net/jini/jeri/BasicILFactory.html" title="class in net.jini.jeri"><CODE>BasicILFactory</CODE></A> except the remote object must be an
+ <code>ActivationSystem</code> instance and the returned dispatcher
+ optionally accepts calls from the local host and optionally enforces a
+ <A HREF="../../../../com/sun/jini/phoenix/GroupPolicy.html" title="interface in com.sun.jini.phoenix"><CODE>GroupPolicy</CODE></A> on calls to <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/activation/ActivationSystem.html#registerGroup(java.rmi.activation.ActivationGroupDesc)" title="class or interface in java.rmi.activation"><CODE>registerGroup</CODE></A> and <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/activation/ActivationSystem.html#setActivationGroupDesc(java.rmi.activation.ActivationGroupID, java.rmi.activation.ActivationGroupDesc)" title="class or interface in java.rmi.activation"><CODE>setActivationGroupDesc</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/sun/jini/phoenix/SystemAccessILFactory.SystemDispatcher.html" title="class in com.sun.jini.phoenix">SystemAccessILFactory.SystemDispatcher</A></B></TD>
+<TD>A subclass of <A HREF="../../../../net/jini/jeri/BasicInvocationDispatcher.html" title="class in net.jini.jeri"><CODE>BasicInvocationDispatcher</CODE></A> for
+ <code>ActivationSystem</code> instances that optionally enforces a
+ <A HREF="../../../../com/sun/jini/phoenix/GroupPolicy.html" title="interface in com.sun.jini.phoenix"><CODE>GroupPolicy</CODE></A> on calls to <code>registerGroup</code> and
+ <code>setActivationGroupDesc</code>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/sun/jini/phoenix/SystemAccessProxyTrustILFactory.html" title="class in com.sun.jini.phoenix">SystemAccessProxyTrustILFactory</A></B></TD>
+<TD>Invocation layer factory for exporting an <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/activation/ActivationSystem.html" title="class or interface in java.rmi.activation"><CODE>ActivationSystem</CODE></A>
+ to use Jini extensible remote invocation (Jini ERI), that is similar
+ to <A HREF="../../../../net/jini/jeri/ProxyTrustILFactory.html" title="class in net.jini.jeri"><CODE>ProxyTrustILFactory</CODE></A> except the remote object must be an
+ <code>ActivationSystem</code> instance and the returned dispatcher
+ optionally accepts calls from the local host and optionally enforces a
+ <A HREF="../../../../com/sun/jini/phoenix/GroupPolicy.html" title="interface in com.sun.jini.phoenix"><CODE>GroupPolicy</CODE></A> on calls to <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/activation/ActivationSystem.html#registerGroup(java.rmi.activation.ActivationGroupDesc)" title="class or interface in java.rmi.activation"><CODE>registerGroup</CODE></A> and <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/activation/ActivationSystem.html#setActivationGroupDesc(java.rmi.activation.ActivationGroupID, java.rmi.activation.ActivationGroupDesc)" title="class or interface in java.rmi.activation"><CODE>setActivationGroupDesc</CODE></A>.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/sun/jini/phoenix/SystemPermission.html" title="class in com.sun.jini.phoenix">SystemPermission</A></B></TD>
+<TD>Represents permissions that can be used to express the access control
+ policy for the <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/activation/ActivationSystem.html" title="class or interface in java.rmi.activation"><CODE>ActivationSystem</CODE></A> remote
+ object exported with
+ <A HREF="../../../../net/jini/jeri/BasicJeriExporter.html" title="class in net.jini.jeri"><CODE>BasicJeriExporter</CODE></A>.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Exception Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/sun/jini/phoenix/InactiveGroupException.html" title="class in com.sun.jini.phoenix">InactiveGroupException</A></B></TD>
+<TD>Thrown if a local or remote call is made on a group implementation
+ instance that is inactive.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+<A NAME="package_description"><!-- --></A><H2>
+Package com.sun.jini.phoenix Description
+</H2>
+
+<P>
+A configurable Java(TM) Remote Method Invocation (Java RMI) activation
+system daemon implementation. Phoenix is a configurable alternative to
+<code>rmid</code>; it implements and supports all of the same
+activation interfaces and semantics as <code>rmid</code>, but it also
+implements and supports <A HREF="../../../../net/jini/security/package-summary.html">network
+security</A>. Like <code>rmid</code>, Phoenix also provides a simple
+command line interface for stopping an activation system daemon on the
+same host.
+
+<h2>Starting Phoenix</h2>
+
+Phoenix can be started by command line, or it can be launched by the
+<A HREF="../../../../com/sun/jini/start/ServiceStarter.html" title="class in com.sun.jini.start">ServiceStarter</A>.  In either case, its
+configuration options must be specified as described in <a
+href="#phoenixConfig">Phoenix Configuration</a>.
+
+<ol>
+<li>Starting Phoenix by command line
+<p>The standard command line for running Phoenix is:
+<pre>
+java [<i>options</i>] -jar <var><b>install_dir</b></var>/lib/phoenix.jar <i>configOptions</i>
+</pre>
+
+where <i>options</i> are standard options for the <code>java</code>
+command, <var><b>install_dir</b></var> is the directory where the Apache River release
+is installed, and <i>configOptions</i> are the options (typically starting
+with a filename or URL) of a <a href="#phoenixConfig">Phoenix
+configuration</a>.
+
+<p>Phoenix has code that must be downloadable to clients, so one of
+the options should set the <code>java.rmi.server.codebase</code>
+system property to a codebase path (space-separated list of URLS) that
+serves up <var><b>install_dir</b></var><code>/lib-dl/phoenix-dl.jar</code> and
+<var><b>install_dir</b></var><code>/lib-dl/jsk-dl.jar</code> (in that order).
+Phoenix also runs with a security manager, so one of the options should
+set the <code>java.security.policy</code> system property to a security
+policy file.  The Phoenix configuration must supply at least a
+<code>persistenceDirectory</code> entry for the component named
+<code>com.sun.jini.phoenix</code>.
+<p>
+<li>Starting Phoenix via Service Starter
+<p>Phoenix supports being started via a <A HREF="../../../../com/sun/jini/start/NonActivatableServiceDescriptor.html" title="class in com.sun.jini.start"><CODE>NonActivatableServiceDescriptor</CODE></A>.  An example
+service descriptor for starting Phoenix is:
+
+<pre>
+new NonActivatableServiceDescriptor(
+    <i>codebase</i>,
+    <i>policy</i>,
+    "<var><b>install_dir</b></var>/lib/phoenix.jar",    // classpath
+    "com.sun.jini.phoenix.PhoenixStarter",  // implClassName
+    <i>serverConfigArgs</i>)
+</pre>
+
+where <i>codebase</i> is the codebase path, <i>policy</i> is the name
+of the security policy file,
+<var><b>install_dir</b></var> is the directory where the Apache River release
+is installed,
+<var><b>install_dir</b></var><code>/lib/phoenix.jar</code> is the class path for
+Phoenix, <code>com.sun.jini.phoenix.PhoenixStarter</code> is the class
+name of the instance to construct to start Phoenix, and
+<i>serverConfigArgs</i> are the options (typically starting with a
+filename or URL) of a <a href="#phoenixConfig">Phoenix
+configuration</a>.
+
+<p>Phoenix has code that must be downloadable to clients, so 
+the codebase path specified by <i>codebase</i> should be two URLs that
+serve up <var><b>install_dir</b></var><code>/lib-dl/phoenix-dl.jar</code> and
+<var><b>install_dir</b></var><code>/lib-dl/jsk-dl.jar</code> (in that order).
+The Phoenix configuration must supply at least a
+<code>persistenceDirectory</code> entry for the component named
+<code>com.sun.jini.phoenix</code>.
+
+<p>The <code>PhoenixStarter</code> instance implements the <A HREF="../../../../com/sun/jini/start/ServiceProxyAccessor.html" title="interface in com.sun.jini.start"><CODE>ServiceProxyAccessor</CODE></A> interface, and implements the
+<A HREF="../../../../com/sun/jini/start/ServiceProxyAccessor.html#getServiceProxy()"><CODE>getServiceProxy</CODE></A> method to return Phoenix's
+<code>ActivationSystem</code> proxy.  When Phoenix's
+<code>ActivationSystem</code> is shutdown, the activation system
+implementation will invoke the <code>unregister</code> method of the
+<A HREF="../../../../com/sun/jini/start/LifeCycle.html" title="interface in com.sun.jini.start"><CODE>LifeCycle</CODE></A> instance passed to the
+<code>PhoenixStarter</code> constructor.
+
+<p>See the <a href="../start/package-summary.html">com.sun.jini.start
+package documentation</a> for details on configuring service
+descriptors.
+
+</ol>
+
+<a name="phoenixConfig">
+<h2>Phoenix configuration</h2></a>
+
+<p>Phoenix obtains its configuration by calling
+<A HREF="../../../../net/jini/config/ConfigurationProvider.html#getInstance(java.lang.String[])"><CODE>ConfigurationProvider.getInstance</CODE></A> with the specified <i>configOptions</i>.
+
+<p>The following entries are obtained from the configuration, all for the
+component named <code>com.sun.jini.phoenix</code>:
+<p>
+  <table summary="Describes the loginContext configuration entry"
+         border="0" cellpadding="2">
+    <tr valign="top">
+      <th scope="col" summary="layout"> <font size="+1">&#X2022;</font>
+      <th scope="col" align="left" colspan="2"> <font size="+1"><code>
+      loginContext</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <code><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/security/auth/login/LoginContext.html" title="class or interface in javax.security.auth.login"><CODE>LoginContext</CODE></A></code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> <code>null</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> JAAS login context
+  </table>
+
+  <table summary="Describes the persistenceDirectory configuration entry"
+         border="0" cellpadding="2">
+    <tr valign="top">
+      <th scope="col" summary="layout"> <font size="+1">&#X2022;</font>
+      <th scope="col" align="left" colspan="2"> <font size="+1"><code>
+      persistenceDirectory</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <code>String</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> no default
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> log directory
+  </table>
+
+  <table summary="Describes the activatorExporter configuration entry"
+         border="0" cellpadding="2">
+    <tr valign="top">
+      <th scope="col" summary="layout"> <font size="+1">&#X2022;</font>
+      <th scope="col" align="left" colspan="2"> <font size="+1"><code>
+      activatorExporter</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <code><A HREF="../../../../net/jini/export/Exporter.html" title="interface in net.jini.export"><CODE>Exporter</CODE></A></code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> <code>
+<pre>
+new <A HREF="../../../../net/jini/jeri/BasicJeriExporter.html" title="class in net.jini.jeri"><CODE>BasicJeriExporter</CODE></A>(
+    new <A HREF="../../../../net/jini/jeri/tcp/TcpServerEndpoint.html#getInstance(int)"><CODE>TcpServerEndpoint.getInstance</CODE></A>(1198),
+    new <A HREF="../../../../net/jini/jeri/BasicILFactory.html" title="class in net.jini.jeri"><CODE>BasicILFactory</CODE></A>(),
+    false, true,
+    <A HREF="../../../../com/sun/jini/phoenix/PhoenixConstants.html#ACTIVATOR_UUID"><CODE>PhoenixConstants.ACTIVATOR_UUID</CODE></A>)</pre></code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> activator exporter
+  </table>
+
+  <table summary="Describes the systemExporter configuration entry"
+         border="0" cellpadding="2">
+    <tr valign="top">
+      <th scope="col" summary="layout"> <font size="+1">&#X2022;</font>
+      <th scope="col" align="left" colspan="2"> <font size="+1"><code>
+      systemExporter</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <code><A HREF="../../../../net/jini/export/Exporter.html" title="interface in net.jini.export"><CODE>Exporter</CODE></A></code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> <code>
+<pre>
+new <A HREF="../../../../net/jini/jeri/BasicJeriExporter.html" title="class in net.jini.jeri"><CODE>BasicJeriExporter</CODE></A>(
+    new <A HREF="../../../../net/jini/jeri/tcp/TcpServerEndpoint.html#getInstance(int)"><CODE>TcpServerEndpoint.getInstance</CODE></A>(1198),
+    new <A HREF="../../../../com/sun/jini/phoenix/SystemAccessILFactory.html" title="class in com.sun.jini.phoenix"><CODE>SystemAccessILFactory</CODE></A>(),
+    false, true,
+    <A HREF="../../../../com/sun/jini/phoenix/PhoenixConstants.html#ACTIVATION_SYSTEM_UUID"><CODE>PhoenixConstants.ACTIVATION_SYSTEM_UUID</CODE></A>)</pre></code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/activation/ActivationSystem.html" title="class or interface in java.rmi.activation"><CODE>ActivationSystem</CODE></A> exporter
+  </table>
+
+  <table summary="Describes the monitorExporter configuration entry"
+         border="0" cellpadding="2">
+    <tr valign="top">
+      <th scope="col" summary="layout"> <font size="+1">&#X2022;</font>
+      <th scope="col" align="left" colspan="2"> <font size="+1"><code>
+      monitorExporter</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <code><A HREF="../../../../net/jini/export/Exporter.html" title="interface in net.jini.export"><CODE>Exporter</CODE></A></code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> <code>
+<pre>new <A HREF="../../../../net/jini/jeri/BasicJeriExporter.html" title="class in net.jini.jeri"><CODE>BasicJeriExporter</CODE></A>(
+    new <A HREF="../../../../net/jini/jeri/tcp/TcpServerEndpoint.html#getInstance(int)"><CODE>TcpServerEndpoint.getInstance</CODE></A>(1198),
+    new <A HREF="../../../../com/sun/jini/phoenix/AccessILFactory.html" title="class in com.sun.jini.phoenix"><CODE>AccessILFactory</CODE></A>())</pre></code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/activation/ActivationMonitor.html" title="class or interface in java.rmi.activation"><CODE>ActivationMonitor</CODE></A> exporter
+  </table>
+
+  <table summary="Describes the registryExporter configuration entry"
+         border="0" cellpadding="2">
+    <tr valign="top">
+      <th scope="col" summary="layout"> <font size="+1">&#X2022;</font>
+      <th scope="col" align="left" colspan="2"> <font size="+1"><code>
+      registryExporter</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <code><A HREF="../../../../net/jini/export/Exporter.html" title="interface in net.jini.export"><CODE>Exporter</CODE></A></code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> <code>new <A HREF="../../../../com/sun/jini/phoenix/RegistrySunExporter.html" title="class in com.sun.jini.phoenix"><CODE>RegistrySunExporter</CODE></A>()</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/registry/Registry.html" title="class or interface in java.rmi.registry"><CODE>Registry</CODE></A> exporter
+  </table>
+
+  <table summary="Describes the instantiatorPreparer configuration entry"
+         border="0" cellpadding="2">
+    <tr valign="top">
+      <th scope="col" summary="layout"> <font size="+1">&#X2022;</font>
+      <th scope="col" align="left" colspan="2"> <font size="+1"><code>
+      instantiatorPreparer</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <code><A HREF="../../../../net/jini/security/ProxyPreparer.html" title="interface in net.jini.security"><CODE>ProxyPreparer</CODE></A></code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> <code>new <A HREF="../../../../net/jini/security/BasicProxyPreparer.html" title="class in net.jini.security"><CODE>BasicProxyPreparer</CODE></A>()</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/activation/ActivationInstantiator.html" title="class or interface in java.rmi.activation"><CODE>ActivationInstantiator</CODE></A> proxy preparer
+  </table>
+
+  <table summary="Describes the groupConfig configuration entry"
+         border="0" cellpadding="2">
+    <tr valign="top">
+      <th scope="col" summary="layout"> <font size="+1">&#X2022;</font>
+      <th scope="col" align="left" colspan="2"> <font size="+1"><code>
+      groupConfig</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <code>String[]</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> same configuration options as Phoenix
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> default activation group configuration options
+  </table>
+
+  <table summary="Describes the groupLocation configuration entry"
+         border="0" cellpadding="2">
+    <tr valign="top">
+      <th scope="col" summary="layout"> <font size="+1">&#X2022;</font>
+      <th scope="col" align="left" colspan="2"> <font size="+1"><code>
+      groupLocation</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <code>String</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> obtain the location (a URL) from the code source
+of the protection domain of Phoenix's implementation class; if the URL
+ends in ".jar", then the default value for this
+entry is that URL except that ".jar" is replaced with "-group.jar",
+otherwise the default value is <code>null</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> codebase for <A HREF="../../../../com/sun/jini/phoenix/ActivationGroupImpl.html" title="class in com.sun.jini.phoenix"><CODE>ActivationGroupImpl</CODE></A>
+  </table>
+
+  <table summary="Describes the groupOptions configuration entry"
+         border="0" cellpadding="2">
+    <tr valign="top">
+      <th scope="col" summary="layout"> <font size="+1">&#X2022;</font>
+      <th scope="col" align="left" colspan="2"> <font size="+1"><code>
+      groupOptions</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <code>String[]</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> <code>new String[0]</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> extra options for all activation group commands
+  </table>
+
+  <table summary="Describes the groupTimeout configuration entry"
+         border="0" cellpadding="2">
+    <tr valign="top">
+      <th scope="col" summary="layout"> <font size="+1">&#X2022;</font>
+      <th scope="col" align="left" colspan="2"> <font size="+1"><code>
+      groupTimeout</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <code>int</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> <code>60000</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> maximum time in milliseconds to wait for group activation or termination
+  </table>
+
+  <table summary="Describes the groupThrottle configuration entry"
+         border="0" cellpadding="2">
+    <tr valign="top">
+      <th scope="col" summary="layout"> <font size="+1">&#X2022;</font>
+      <th scope="col" align="left" colspan="2"> <font size="+1"><code>
+      groupThrottle</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <code>int</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> <code>3</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> maximum concurrent activation group execs
+  </table>
+
+  <table summary="Describes the groupOutputHandler configuration entry"
+         border="0" cellpadding="2">
+    <tr valign="top">
+      <th scope="col" summary="layout"> <font size="+1">&#X2022;</font>
+      <th scope="col" align="left" colspan="2"> <font size="+1"><code>
+      groupOutputHandler</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <code><A HREF="../../../../com/sun/jini/phoenix/GroupOutputHandler.html" title="interface in com.sun.jini.phoenix"><CODE>GroupOutputHandler</CODE></A></code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> a handler that sends the group standard output to the standard output stream of Phoenix and sends the group error output to the error output stream of Phoenix
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> handler for the output of activation group processes
+  </table>
+
+  <table summary="Describes the unexportTimeout configuration entry"
+         border="0" cellpadding="2">
+    <tr valign="top">
+      <th scope="col" summary="layout"> <font size="+1">&#X2022;</font>
+      <th scope="col" align="left" colspan="2"> <font size="+1"><code>
+      unexportTimeout</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <code>int</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> <code>60000</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> maximum time in milliseconds to wait for in-progress calls to finish during shutdown before forcibly unexporting remote objects
+  </table>
+
+  <table summary="Describes the unexportWait configuration entry"
+         border="0" cellpadding="2">
+    <tr valign="top">
+      <th scope="col" summary="layout"> <font size="+1">&#X2022;</font>
+      <th scope="col" align="left" colspan="2"> <font size="+1"><code>
+      unexportWait</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <code>int</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> <code>10</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> milliseconds to wait between unexport attempts during shutdown
+  </table>
+
+  <table summary="Describes the persistenceSnapshotThreshold configuration entry"
+         border="0" cellpadding="2">
+    <tr valign="top">
+      <th scope="col" summary="layout"> <font size="+1">&#X2022;</font>
+      <th scope="col" align="left" colspan="2"> <font size="+1"><code>
+      persistenceSnapshotThreshold</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <code>int</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> <code>200</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> number of log updates between snapshots
+  </table>
+
+<p>
+If no default is listed for an entry and the configuration cannot provide
+that entry, Phoenix will not start.
+<p>
+If a non-<code>null</code> <code>loginContext</code> entry is provided,
+a login is performed on that context, and Phoenix executes under the resulting
+<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/security/auth/Subject.html" title="class or interface in javax.security.auth"><CODE>Subject</CODE></A> (via
+<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/security/auth/Subject.html#doAsPrivileged(javax.security.auth.Subject, java.security.PrivilegedAction, java.security.AccessControlContext)" title="class or interface in javax.security.auth"><CODE>Subject.doAsPrivileged</CODE></A>).
+<p>
+The <code>persistenceDirectory</code> entry specifies the name of the
+directory Phoenix uses to write its persistent database. If the named
+directory does not exist, Phoenix will create it. Only the directory itself
+will be created; the parent directory must already exist.
+<p>
+Phoenix exports four remote objects: activator, activation system, activation
+monitor, and registry. Each object is exported using an <code>Exporter</code>
+obtained from the configuration. Phoenix provides various classes to
+facilitate the configuration of these exporters, as described further below.
+None of the remote objects implement any access control directly; any desired
+access control must be implemented through the exporters. The exported
+registry is always read-only, with a single binding of the name
+<code>java.rmi.activation.ActivationSystem</code> to the activation system
+proxy; this proxy also implements <A HREF="../../../../com/sun/jini/phoenix/ActivationAdmin.html" title="interface in com.sun.jini.phoenix"><CODE>ActivationAdmin</CODE></A>.
+For compatibility with <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/activation/ActivationGroup.html#getSystem()" title="class or interface in java.rmi.activation"><CODE>ActivationGroup.getSystem</CODE></A>, the registry must be exported to the JRMP runtime,
+using the registry well-known object identifier. To support persistent
+references, the exporters for the activator and the activation system must
+produce proxies that are reusable across restarts of Phoenix. For JRMP and
+Jini extensible remote invocation (Jini ERI), this means using fixed object
+identifiers and fixed ports.
+<p>
+If the activator supports constraints (meaning the activator proxy implements
+<A HREF="../../../../net/jini/core/constraint/RemoteMethodControl.html" title="interface in net.jini.core.constraint"><CODE>RemoteMethodControl</CODE></A>), then the
+activation identifiers handed out by Phoenix will also implement
+<code>RemoteMethodControl</code>, otherwise they will not. The activator
+implements <A HREF="../../../../net/jini/security/proxytrust/ServerProxyTrust.html" title="interface in net.jini.security.proxytrust"><CODE>ServerProxyTrust</CODE></A>
+and its
+<A HREF="../../../../net/jini/security/proxytrust/ServerProxyTrust.html#getProxyVerifier()"><CODE>getProxyVerifier</CODE></A> method returns a verifier for the activation
+identifiers used by Phoenix. The activation identifier class implements
+the <code>getProxyTrustIterator</code> method required by
+<A HREF="../../../../net/jini/security/proxytrust/ProxyTrustVerifier.html" title="class in net.jini.security.proxytrust"><CODE>ProxyTrustVerifier</CODE></A>,
+providing an iterator that produces the activator proxy. To support trust
+verification of activation identifiers, the activator proxy must implement
+<A HREF="../../../../net/jini/security/proxytrust/TrustEquivalence.html" title="interface in net.jini.security.proxytrust"><CODE>TrustEquivalence</CODE></A> and
+must either be a bootstrap proxy that implements
+<A HREF="../../../../net/jini/security/proxytrust/ProxyTrust.html" title="interface in net.jini.security.proxytrust"><CODE>ProxyTrust</CODE></A> or be able
+to produce one through its own <code>getProxyTrustIterator</code> method.
+<p>
+Whenever an <code>ActivationInstantiator</code> proxy is received from an
+activation group, Phoenix passes it to the
+<A HREF="../../../../net/jini/security/ProxyPreparer.html" title="interface in net.jini.security"><CODE>ProxyPreparer</CODE></A> given by the
+<code>instantiatorPreparer</code> entry, if any. The resulting proxy is used
+whenever Phoenix makes a remote call to that activation group.
+<p>
+
+When Phoenix starts an activation group, it relies on
+<code>phoenix-init.jar</code> being in the class path of the group VM,
+therefore this JAR file must be included directly or indirectly in the class
+path specified in the <code>CommandEnvironment</code> of the
+<code>ActivationGroupDesc</code>.  Phoenix starts an activation group as
+follows: <ul>
+<li>If the activation group class has a
+public <code>createGroup</code> method that has three parameters of type
+<code>ActivationGroupID</code>, <code>ActivationGroupDesc</code>, and
+<code>long</code>, Phoenix calls that method with the activation group
+identifier, the activation group descriptor, and the current group
+incarnation.  Normally it should in turn call <A HREF="../../../../net/jini/activation/ActivationGroup.html#createGroup(java.rmi.activation.ActivationGroupID, java.rmi.activation.ActivationGroupDesc, long)"><CODE>ActivationGroup.createGroup</CODE></A>, to allow exporter-based remote objects to go
+inactive.
+<li>If the activation group class has no such method, by default the
+<A HREF="../../../../net/jini/activation/ActivationGroup.html#createGroup(java.rmi.activation.ActivationGroupID, java.rmi.activation.ActivationGroupDesc, long)"><CODE>ActivationGroup.createGroup</CODE></A> method is called.
+</ul>
+
+<p>
+The class <A HREF="../../../../com/sun/jini/phoenix/ActivationGroupImpl.html" title="class in com.sun.jini.phoenix"><CODE>ActivationGroupImpl</CODE></A> is used by Phoenix
+when an activation group descriptor does not specify a group class name. This
+group implementation is also configurable. The <code>groupConfig</code> entry
+specifies the configuration options that should be used when the group
+descriptor does not specify a group class and does not provide any explicit
+initialization data for the group. The configuration entries used by
+<code>ActivationGroupImpl</code> are described further below.
+<p>
+The <code>groupLocation</code> entry specifies the codebase, if any, that
+should be used to load the class
+<A HREF="../../../../com/sun/jini/phoenix/ActivationGroupImpl.html" title="class in com.sun.jini.phoenix"><CODE>ActivationGroupImpl</CODE></A>. This codebase is used when
+an activation group descriptor does not specify a group class name and does
+not specify a group location.
+<p>
+The <code>groupOptions</code> entry specifies extra command line options to
+pass for every activation group process created by Phoenix. These options are
+always placed <i>after</i> any properties and command line options specified
+in the activation group descriptor, in the final command line used to create
+the process. The most common use of this feature is to temporarily set system
+properties for debugging.
+<p>
+The <code>groupTimeout</code> entry specifies the maximum time in milliseconds
+to wait after an activation group process is created before an
+<code>activeGroup</code> remote call must be received from that group. If the
+remote call is not received within that period, the attempt to activate an
+object within that group will terminate with an
+<code>ActivationException</code>. If an activation group process subsequently
+must be destroyed (so that a new process for the same group can be created),
+this entry also specifies the maximum time to wait for the process to actually
+terminate (after being destroyed) before giving up and proceeding to create
+a new process.
+<p>
+The <code>groupThrottle</code> entry specifies the maximum number of group
+processes Phoenix will create concurrently, to avoid system thrashing
+(particularly when Phoenix is restarting). If too many group processes need
+to be created at one time, creation of some will temporarily be deferred until
+existing creations complete.
+<p>
+The <code>groupOutputHandler</code> entry specifies the
+<A HREF="../../../../com/sun/jini/phoenix/GroupOutputHandler.html" title="interface in com.sun.jini.phoenix"><CODE>GroupOutputHandler</CODE></A> for the output of activation
+group processes. The handler is called each time a group process is created.
+<p>
+The <code>unexportTimeout</code> entry specifies the maximum time in
+milliseconds to wait for in-progress inbound remote calls to finish during
+shutdown before forcibly unexporting all remote objects. The
+<code>exportWait</code> entry specifies the time in milliseconds to wait
+between unsuccessful export attempts.
+<p>
+Phoenix writes information about registered groups and objects to a
+persistent database, so that Phoenix can be restarted after a crash
+without losing state. As registrations are changed, incremental update
+records are written out, until a threshold is reached, and then a
+consolidated snapshot of the entire state is written out (to speed up
+recovery after a crash). The <code>persistenceSnapshotThreshold</code>
+entry specifies the the number of incremental updates to write between
+snapshots.
+<p>
+Phoenix uses the <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Logger.html" title="class or interface in java.util.logging"><CODE>Logger</CODE></A> named
+<code>com.sun.jini.phoenix</code> to log information at the following
+levels:
+<p>
+
+<table summary="Describes what is logged by Phoenix at various logging levels"
+       border=1 cellpadding=5>
+<tr> <th> Level   <th> Description
+<tr> <td> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html#SEVERE" title="class or interface in java.util.logging"><CODE>SEVERE</CODE></A>
+                  <td> persistent database snapshot failures 
+<tr> <td> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html#WARNING" title="class or interface in java.util.logging"><CODE>WARNING</CODE></A>
+                  <td> failure to restart an activatable object that
+                       has been registered to auto-restart
+<tr> <td> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html#WARNING" title="class or interface in java.util.logging"><CODE>WARNING</CODE></A>
+                  <td> failure to recover from the persistent database
+<tr> <td> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html#INFO" title="class or interface in java.util.logging"><CODE>INFO</CODE></A>
+                  <td> startup of Phoenix
+<tr> <td> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html#INFO" title="class or interface in java.util.logging"><CODE>INFO</CODE></A>
+                  <td> shutdown of Phoenix
+<tr> <td> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html#FINE" title="class or interface in java.util.logging"><CODE>FINE</CODE></A>
+                  <td> process command line when an activation group
+                       is created
+</table>
+
+<h2>Exporter classes</h2>
+
+The following class is useful for exporting the registry:
+<ul>
+<li><A HREF="../../../../com/sun/jini/phoenix/RegistrySunExporter.html" title="class in com.sun.jini.phoenix"><CODE>RegistrySunExporter</CODE></A>
+</ul>
+A custom exporter class will be needed for Java 2 Standard Edition
+implementations from vendors other than Sun Microsystems(TM), Inc.
+<p>
+The following classes are useful in conjunction with Jini ERI:
+<ul>
+<li><A HREF="../../../../com/sun/jini/phoenix/AccessILFactory.html" title="class in com.sun.jini.phoenix"><CODE>AccessILFactory</CODE></A>
+<li><A HREF="../../../../com/sun/jini/phoenix/PhoenixConstants.html" title="class in com.sun.jini.phoenix"><CODE>PhoenixConstants</CODE></A>
+<li><A HREF="../../../../com/sun/jini/phoenix/SystemAccessILFactory.html" title="class in com.sun.jini.phoenix"><CODE>SystemAccessILFactory</CODE></A>
+<li><A HREF="../../../../com/sun/jini/phoenix/SystemAccessProxyTrustILFactory.html" title="class in com.sun.jini.phoenix"><CODE>SystemAccessProxyTrustILFactory</CODE></A>
+</ul>
+<p>
+The following classes are useful in conjunction with JRMP:
+<ul>
+<li><A HREF="../../../../com/sun/jini/phoenix/ActivatorSunJrmpExporter.html" title="class in com.sun.jini.phoenix"><CODE>ActivatorSunJrmpExporter</CODE></A>
+<li><A HREF="../../../../com/sun/jini/phoenix/InstantiatorAccessExporter.html" title="class in com.sun.jini.phoenix"><CODE>InstantiatorAccessExporter</CODE></A>
+<li><A HREF="../../../../com/sun/jini/phoenix/MonitorAccessExporter.html" title="class in com.sun.jini.phoenix"><CODE>MonitorAccessExporter</CODE></A>
+<li><A HREF="../../../../com/sun/jini/phoenix/SystemAccessExporter.html" title="class in com.sun.jini.phoenix"><CODE>SystemAccessExporter</CODE></A>
+<li><A HREF="../../../../com/sun/jini/phoenix/SunJrmpExporter.html" title="class in com.sun.jini.phoenix"><CODE>SunJrmpExporter</CODE></A>
+</ul>
+
+<h2>Activation group configuration</h2>
+
+<code>ActivationGroupImpl</code> obtains the following entries from its
+configuration, all for the component named <code>com.sun.jini.phoenix</code>:
+<p>
+  <table summary="Describes the loginContext configuration entry"
+         border="0" cellpadding="2">
+    <tr valign="top">
+      <th scope="col" summary="layout"> <font size="+1">&#X2022;</font>
+      <th scope="col" align="left" colspan="2"> <font size="+1"><code>
+      loginContext</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <code><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/security/auth/login/LoginContext.html" title="class or interface in javax.security.auth.login"><CODE>LoginContext</CODE></A></code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> <code>null</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> JAAS login context
+  </table>
+
+  <table summary="Describes the inheritGroupSubject configuration entry"
+         border="0" cellpadding="2">
+    <tr valign="top">
+      <th scope="col" summary="layout"> <font size="+1">&#X2022;</font>
+      <th scope="col" align="left" colspan="2"> <font size="+1"><code>
+      inheritGroupSubject</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <code>boolean</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> <code>false</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> if <code>true</code>, group subject is inherited when an activatable object is created
+  </table>
+
+  <table summary="Describes the instantiatorExporter configuration entry"
+         border="0" cellpadding="2">
+    <tr valign="top">
+      <th scope="col" summary="layout"> <font size="+1">&#X2022;</font>
+      <th scope="col" align="left" colspan="2"> <font size="+1"><code>
+      instantiatorExporter</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <code><A HREF="../../../../net/jini/export/Exporter.html" title="interface in net.jini.export"><CODE>Exporter</CODE></A></code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> retains existing JRMP export of instantiator
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/activation/ActivationInstantiator.html" title="class or interface in java.rmi.activation"><CODE>ActivationInstantiator</CODE></A> exporter
+  </table>
+
+  <table summary="Describes the monitorPreparer configuration entry"
+         border="0" cellpadding="2">
+    <tr valign="top">
+      <th scope="col" summary="layout"> <font size="+1">&#X2022;</font>
+      <th scope="col" align="left" colspan="2"> <font size="+1"><code>
+      monitorPreparer</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <code><A HREF="../../../../net/jini/security/ProxyPreparer.html" title="interface in net.jini.security"><CODE>ProxyPreparer</CODE></A></code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> <code>new <A HREF="../../../../net/jini/security/BasicProxyPreparer.html" title="class in net.jini.security"><CODE>BasicProxyPreparer</CODE></A>()</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/activation/ActivationMonitor.html" title="class or interface in java.rmi.activation"><CODE>ActivationMonitor</CODE></A> proxy preparer
+  </table>
+
+  <table summary="Describes the systemPreparer configuration entry"
+         border="0" cellpadding="2">
+    <tr valign="top">
+      <th scope="col" summary="layout"> <font size="+1">&#X2022;</font>
+      <th scope="col" align="left" colspan="2"> <font size="+1"><code>
+      systemPreparer</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <code><A HREF="../../../../net/jini/security/ProxyPreparer.html" title="interface in net.jini.security"><CODE>ProxyPreparer</CODE></A></code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> <code>new <A HREF="../../../../net/jini/security/BasicProxyPreparer.html" title="class in net.jini.security"><CODE>BasicProxyPreparer</CODE></A>()</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/activation/ActivationSystem.html" title="class or interface in java.rmi.activation"><CODE>ActivationSystem</CODE></A> proxy preparer
+  </table>
+
+  <table summary="Describes the unexportTimeout configuration entry"
+         border="0" cellpadding="2">
+    <tr valign="top">
+      <th scope="col" summary="layout"> <font size="+1">&#X2022;</font>
+      <th scope="col" align="left" colspan="2"> <font size="+1"><code>
+      unexportTimeout</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <code>int</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> <code>60000</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> maximum time in milliseconds to wait for in-progress calls to finish before forcibly unexporting the group when going inactive
+  </table>
+
+  <table summary="Describes the unexportWait configuration entry"
+         border="0" cellpadding="2">
+    <tr valign="top">
+      <th scope="col" summary="layout"> <font size="+1">&#X2022;</font>
+      <th scope="col" align="left" colspan="2"> <font size="+1"><code>
+      unexportWait</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <code>int</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> <code>10</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> milliseconds to wait between unexport attempts when going inactive
+  </table>
+
+<p>
+If a non-<code>null</code> <code>loginContext</code> entry is provided,
+a login is performed on that context, the group is created under the resulting
+<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/security/auth/Subject.html" title="class or interface in javax.security.auth"><CODE>Subject</CODE></A> (set to be read-only), and all subsequent
+remote calls by the group to Phoenix are executed under that subject.
+<p>
+By default, the activation group automatically exports itself as a JRMP
+unicast remote object. (This is a limitation of the existing activation
+system design.) If an <code>instantiatorExporter</code> entry is provided, the
+group is unexported from the JRMP runtime and then re-exported with the
+provided exporter.
+<p>
+When the group is initially created, it passes the
+<code>ActivationSystem</code> proxy (obtained from the
+<code>ActivationGroupID</code>) to the
+<A HREF="../../../../net/jini/security/ProxyPreparer.html" title="interface in net.jini.security"><CODE>ProxyPreparer</CODE></A> given by the
+<code>systemPreparer</code> entry, if any. A new
+<code>ActivationGroupID</code> is constructed with the resulting proxy,
+and is used to create the group. A remote call through the prepared
+<code>ActivationSystem</code> proxy is made to report the group as active, and
+the <code>ActivationMonitor</code> proxy returned by that call is passed to
+the <A HREF="../../../../net/jini/security/ProxyPreparer.html" title="interface in net.jini.security"><CODE>ProxyPreparer</CODE></A> given by the
+<code>monitorPreparer</code> entry, if any. The prepared
+<code>ActivationMonitor</code> proxy will be used for all subsequent remote
+calls to Phoenix.
+<p>
+The <code>unexportTimeout</code> entry specifies the maximum time in
+milliseconds to wait for in-progress inbound remote calls to finish before
+forcibly unexporting the group when it goes inactive. The
+<code>exportWait</code> entry specifies the time in milliseconds to wait
+between unsuccessful export attempts.
+<p>
+The <code>inheritGroupSubject</code> entry if <code>true</code>
+indicates that the activation group's subject should be inherited by the
+access control context in which the group creates an activatable object.
+If the entry is <code>false</code>, then the group's subject is
+not inherited by that context.  The default is <code>false</code>.
+
+<h2>Access control</h2>
+
+Access control mechanisms for incoming remote calls should be configured into
+the exporters used to export the various remote objects.
+<p>
+For JRMP and Jini ERI, a local-host-based access control policy (equivalent to
+that enforced by <code>rmid</code>) can be obtained by using the exporters
+provided in this package.
+<p>
+<A HREF="../../../../com/sun/jini/phoenix/SystemPermission.html" title="class in com.sun.jini.phoenix"><CODE>SystemPermission</CODE></A>,
+<A HREF="../../../../com/sun/jini/phoenix/ActivatorPermission.html" title="class in com.sun.jini.phoenix"><CODE>ActivatorPermission</CODE></A>,
+<A HREF="../../../../com/sun/jini/phoenix/MonitorPermission.html" title="class in com.sun.jini.phoenix"><CODE>MonitorPermission</CODE></A>, and
+<A HREF="../../../../com/sun/jini/phoenix/InstantiatorPermission.html" title="class in com.sun.jini.phoenix"><CODE>InstantiatorPermission</CODE></A>
+can be used to express access control policies for remote objects
+exported with <A HREF="../../../../net/jini/jeri/BasicJeriExporter.html" title="class in net.jini.jeri"><CODE>BasicJeriExporter</CODE></A>,
+by passing one of those classes to
+<A HREF="../../../../net/jini/jeri/ProxyTrustILFactory.html" title="class in net.jini.jeri"><CODE>ProxyTrustILFactory</CODE></A> or
+<A HREF="../../../../com/sun/jini/phoenix/SystemAccessProxyTrustILFactory.html" title="class in com.sun.jini.phoenix"><CODE>SystemAccessProxyTrustILFactory</CODE></A>.
+<p>
+<A HREF="../../../../com/sun/jini/phoenix/ExecPermission.html" title="class in com.sun.jini.phoenix"><CODE>ExecPermission</CODE></A> and
+<A HREF="../../../../com/sun/jini/phoenix/ExecOptionPermission.html" title="class in com.sun.jini.phoenix"><CODE>ExecOptionPermission</CODE></A> can be used to express the
+access control policy for what activation group descriptors can be registered.
+These permissions are checked by
+<A HREF="../../../../com/sun/jini/phoenix/DefaultGroupPolicy.html" title="class in com.sun.jini.phoenix"><CODE>DefaultGroupPolicy</CODE></A>, which is used by
+<A HREF="../../../../com/sun/jini/phoenix/SystemAccessExporter.html" title="class in com.sun.jini.phoenix"><CODE>SystemAccessExporter</CODE></A>,
+<A HREF="../../../../com/sun/jini/phoenix/SystemAccessILFactory.html" title="class in com.sun.jini.phoenix"><CODE>SystemAccessILFactory</CODE></A>, and
+<A HREF="../../../../com/sun/jini/phoenix/SystemAccessProxyTrustILFactory.html" title="class in com.sun.jini.phoenix"><CODE>SystemAccessProxyTrustILFactory</CODE></A>.
+
+<h2>Compatibility with rmid</h2>
+
+Activatable remote object implementations that work under <code>rmid</code>
+should work under Phoenix.
+
+<p>Activation group implementations that work under <code>rmid</code>
+should work under Phoenix, provided the Phoenix
+<code>ActivationSystem</code> is exported using a JRMP exporter. An
+unmodified JRMP-based group implementation will not work under Phoenix
+if the Phoenix <code>ActivationSystem</code> is exported using a Jini
+ERI exporter, because Jini ERI does not support stub replacement for
+JRMP implementation objects and the existing activation group design
+relies on such stub replacement. However, JRMP-based group
+implementations can be made compatible with activation systems based
+on Jini ERI, and still work under <code>rmid</code>, by adding a
+<code>writeReplace</code> method to the group implementation class
+that returns the stub.
+
+<p>Activation group implementations and activatable remote object
+implementations that depend on <A HREF="../../../../net/jini/activation/package-summary.html">activation extensions</A> supported by Phoenix will not work under
+<code>rmid</code>.
+
+<p>The persistent databases used by <code>rmid</code> and Phoenix are not
+compatible.
+
+<h2>Stopping a daemon</h2>
+
+A running activation system daemon (not necessarily an instance of Phoenix)
+can be shut down gracefully with the command:
+<pre>
+java [<i>options</i>] -jar <var><b>install_dir</b></var>/lib/phoenix.jar -stop <i>configOptions</i>
+</pre>
+<p>
+In this case, the following entries are obtained from the configuration, all
+for the component named <code>com.sun.jini.phoenix</code>:
+<p>
+  <table summary="Describes the loginContext configuration entry"
+         border="0" cellpadding="2">
+    <tr valign="top">
+      <th scope="col" summary="layout"> <font size="+1">&#X2022;</font>
+      <th scope="col" align="left" colspan="2"> <font size="+1"><code>
+      loginContext</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <code><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/security/auth/login/LoginContext.html" title="class or interface in javax.security.auth.login"><CODE>LoginContext</CODE></A></code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> <code>null</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> JAAS login context
+  </table>
+
+  <table summary="Describes the systemPreparer configuration entry"
+         border="0" cellpadding="2">
+    <tr valign="top">
+      <th scope="col" summary="layout"> <font size="+1">&#X2022;</font>
+      <th scope="col" align="left" colspan="2"> <font size="+1"><code>
+      systemPreparer</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <code><A HREF="../../../../net/jini/security/ProxyPreparer.html" title="interface in net.jini.security"><CODE>ProxyPreparer</CODE></A></code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> <code>new <A HREF="../../../../net/jini/security/BasicProxyPreparer.html" title="class in net.jini.security"><CODE>BasicProxyPreparer</CODE></A>()</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/activation/ActivationSystem.html" title="class or interface in java.rmi.activation"><CODE>ActivationSystem</CODE></A> proxy preparer
+  </table>
+
+  <table summary="Describes the registryHost configuration entry"
+         border="0" cellpadding="2">
+    <tr valign="top">
+      <th scope="col" summary="layout"> <font size="+1">&#X2022;</font>
+      <th scope="col" align="left" colspan="2"> <font size="+1"><code>
+      registryHost</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <code>String</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> <code>null</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> registry host
+  </table>
+
+  <table summary="Describes the registryPort configuration entry"
+         border="0" cellpadding="2">
+    <tr valign="top">
+      <th scope="col" summary="layout"> <font size="+1">&#X2022;</font>
+      <th scope="col" align="left" colspan="2"> <font size="+1"><code>
+      registryPort</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <code>int</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> <code>1098</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> registry port
+  </table>
+<p>
+If a non-<code>null</code> <code>loginContext</code> entry is provided,
+a login is performed on that context, and the <code>shutdown</code> remote call
+is executed under the resulting <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/security/auth/Subject.html" title="class or interface in javax.security.auth"><CODE>Subject</CODE></A> (via
+<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/javax/security/auth/Subject.html#doAsPrivileged(javax.security.auth.Subject, java.security.PrivilegedAction, java.security.AccessControlContext)" title="class or interface in javax.security.auth"><CODE>Subject.doAsPrivileged</CODE></A>).
+<p>
+The activation system daemon to shut down is obtained by looking up the name
+<code>java.rmi.activation.ActivationSystem</code> in the registry at the host
+given by the <code>registryHost</code> configuration entry (defaulting to the
+local host) and the port given by the <code>registryPort</code> configuration
+entry (defaulting to port 1098).
+<p>
+The <code>ActivationSystem</code> proxy obtained from the registry is
+passed to the <A HREF="../../../../net/jini/security/ProxyPreparer.html" title="interface in net.jini.security"><CODE>ProxyPreparer</CODE></A> given by
+the <code>systemPreparer</code> entry, if any. The resulting proxy is used for
+the <code>shutdown</code> remote call.
+
+<h2>Example configurations</h2>
+
+The following are example Phoenix configurations, written using the
+syntax supported by <A HREF="../../../../net/jini/config/ConfigurationFile.html" title="class in net.jini.config"><CODE>ConfigurationFile</CODE></A>.  For
+simplicity, each configuration example combines both entries used by
+Phoenix and entries used by Phoenix's default group implementation.
+By default, the configuration options for Phoenix will be used as the
+configuration options for an activation group if either the <A HREF="../../../../com/sun/jini/phoenix/ActivationGroupData.html" title="class in com.sun.jini.phoenix"><CODE>ActivationGroupData</CODE></A> in the group's <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/activation/ActivationGroupDesc.html" title="class or interface in java.rmi.activation"><CODE>ActivationGroupDesc</CODE></A> does not specify
+configuration options or the Phoenix configuration file does not
+specify a <code>groupConfig</code> entry.  If a configuration file is
+shared by both Phoenix and activation groups, some
+type-import-on-demand declarations (i.e., wildcard imports) may be
+required.  If fully-qualified class names are imported, a
+<code>ConfigurationException</code> will be thrown if an import is
+encountered for a class that is not found.  This may happen if a class
+is available to Phoenix, but is not available to the activation group,
+or vice versa.
+
+<hr>
+<pre>
+// a Jini ERI configuration specifying constraints
+import com.sun.jini.config.KeyStores;
+import com.sun.jini.phoenix.*;
+import net.jini.constraint.*;
+import net.jini.core.constraint.*;
+import net.jini.jeri.*;
+import net.jini.jeri.ssl.SslServerEndpoint;
+import net.jini.security.*;
+import javax.security.auth.login.LoginContext;
+
+com.sun.jini.phoenix {
+    registryExporter = new RegistrySunExporter();
+    private sslPort = 2000; // pick one, cannot be 1098
+    private daemonEndpoint = SslServerEndpoint.getInstance(sslPort);
+    private integrity = new BasicMethodConstraints(
+        new InvocationConstraints(Integrity.YES, null));
+    systemExporter =
+        new BasicJeriExporter(daemonEndpoint,
+                              new SystemAccessProxyTrustILFactory(integrity),
+                              false, true,
+                              PhoenixConstants.ACTIVATION_SYSTEM_UUID);
+    activatorExporter =
+        new BasicJeriExporter(daemonEndpoint,
+                              new ProxyTrustILFactory(integrity, null),
+                              false, true,
+                              PhoenixConstants.ACTIVATOR_UUID);
+    monitorExporter =
+        new BasicJeriExporter(daemonEndpoint,
+                              new ProxyTrustILFactory(
+                                     integrity, MonitorPermission.class));
+    private groupEndpoint = SslServerEndpoint.getInstance(0);
+    instantiatorExporter =
+        new BasicJeriExporter(groupEndpoint,
+                              new ProxyTrustILFactory(
+                                     integrity, InstantiatorPermission.class));
+    private static keystore = KeyStores.getKeyStore(
+                                    "${user.home}${/}.keystore", null);
+    private mutualAuth =
+        new BasicMethodConstraints(new InvocationConstraints(
+            new InvocationConstraint[]{
+                Integrity.YES,
+                ClientAuthentication.YES,
+                ServerAuthentication.YES,
+                new ServerMinPrincipal(
+                    KeyStores.getX500Principal("phoenix", keystore))},
+            null));
+    instantiatorPreparer = new BasicProxyPreparer(true, mutualAuth, null);
+    monitorPreparer = instantiatorPreparer;
+    systemPreparer = instantiatorPreparer;
+    loginContext = new LoginContext("phoenix");
+    persistenceDirectory = "log";
+}
+</pre>
+<hr>
+<pre>
+// a Jini ERI configuration
+
+com.sun.jini.phoenix {
+    persistenceDirectory = "log";
+}
+</pre>
+<hr>
+<pre>
+// a JRMP configuration
+import com.sun.jini.phoenix.*;
+
+com.sun.jini.phoenix {
+    activatorExporter = new ActivatorSunJrmpExporter();
+    systemExporter = new SystemAccessExporter();
+    monitorExporter = new MonitorAccessExporter();
+    instantiatorExporter = new InstantiatorAccessExporter();
+    persistenceDirectory = "log";
+}
+</pre>
+<hr>
+<pre>
+// a JRMP configuration with no access control
+import com.sun.jini.phoenix.*;
+import net.jini.jrmp.JrmpExporter;
+import java.rmi.activation.ActivationSystem;
+
+com.sun.jini.phoenix {
+    registryPort = ActivationSystem.SYSTEM_PORT;
+    registryExporter = new RegistrySunExporter(registryPort);
+    activatorExporter = new ActivatorSunJrmpExporter(registryPort);
+    systemExporter = new SunJrmpExporter(4, registryPort);
+    monitorExporter = new JrmpExporter(registryPort);
+    instantiatorExporter = null;
+    persistenceDirectory = "log";
+}
+</pre>
+
+<h2>Example security policies</h2>
+
+The following are example Phoenix security policies, written using the syntax
+supported by the default security policy provider.
+<hr>
+<pre>
+// a secure Jini ERI Phoenix policy
+keystore "file://${user.home}/.keystore";
+
+grant codebase "file:<var><b>install_dir</b></var>/lib/jsk-platform.jar" {
+  permission java.security.AllPermission;
+};
+
+grant codebase "file:<var><b>install_dir</b></var>/lib/jsk-lib.jar" {
+  permission java.security.AllPermission;
+};
+
+grant codebase "file:<var><b>install_dir</b></var>/lib/phoenix.jar" {
+  permission java.io.FilePermission "${user.home}${/}phoenix.config", "read";
+  // next two used in configuration file
+  permission java.util.PropertyPermission "user.home", "read";
+  permission javax.security.auth.AuthPermission "createLoginContext.phoenix";
+  permission javax.security.auth.AuthPermission "doAsPrivileged";
+  // next two needed by RegistrySunExporter
+  permission java.lang.RuntimePermission
+        "accessClassInPackage.sun.rmi.server";
+  permission java.lang.RuntimePermission
+        "accessClassInPackage.sun.rmi.transport";
+};
+
+grant principal "phoenix" codebase "file:<var><b>install_dir</b></var>/lib/phoenix.jar" {
+  permission javax.security.auth.AuthPermission "getSubject";
+  // next two needed by RegistrySunExporter
+  permission java.lang.RuntimePermission "accessDeclaredMembers";
+  permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
+  permission java.io.FilePermission "log", "read,write";
+  permission java.io.FilePermission "log/-", "read,write,delete";
+  // needed to default group location to phoenix-group.jar
+  permission java.lang.RuntimePermission "getProtectionDomain";
+  // next two needed for default java program for groups
+  permission java.util.PropertyPermission "java.home", "read";
+  permission java.io.FilePermission "${java.home}${/}bin${/}java", "execute";
+  permission java.lang.RuntimePermission "shutdownHooks";
+  // used in configuration file
+  permission java.io.FilePermission "${user.home}${/}.keystore", "read";
+  // next two needed to export remote objects
+  permission java.lang.RuntimePermission "getClassLoader";
+  permission net.jini.export.ExportPermission "exportRemoteInterface.com.sun.jini.phoenix.Activator";
+  // next two for outgoing newInstance calls to groups
+  // connect to just local host (but not "localhost") would be sufficient
+  permission java.net.SocketPermission "*:1024-", "connect";
+  permission net.jini.security.AuthenticationPermission
+        "${{self}} peer ${{self}}", "connect";
+  // next two for incoming remote calls
+  permission java.net.SocketPermission "*:1024-", "accept";
+  permission net.jini.security.AuthenticationPermission
+        "${{self}}", "accept";
+};
+
+// grant administrator permission to do most things
+grant principal "admin" {
+  permission com.sun.jini.phoenix.SystemPermission "register*";
+  permission com.sun.jini.phoenix.SystemPermission "get*";
+  permission com.sun.jini.phoenix.SystemPermission "set*";
+  permission com.sun.jini.phoenix.SystemPermission "shutdown";
+  permission com.sun.jini.phoenix.ExecOptionPermission
+        "-Djava.security.auth.login.config=${user.home}${/}login";
+  permission com.sun.jini.phoenix.ExecOptionPermission
+        "-Djavax.net.ssl.trustStore=${user.home}${/}.keystore";
+  permission com.sun.jini.phoenix.ExecOptionPermission
+        "-Djava.security.policy=${user.home}${/}group.security.policy";
+};
+
+// typical service needs to verify trust, unregister, and change its descriptor
+grant principal "service" {
+  permission com.sun.jini.phoenix.SystemPermission "getProxyVerifier";
+  permission com.sun.jini.phoenix.SystemPermission "unregister*";
+  permission com.sun.jini.phoenix.SystemPermission "*ActivationDesc";
+};
+
+// for callbacks from activation groups
+grant principal "phoenix" {
+  permission com.sun.jini.phoenix.SystemPermission "getProxyVerifier";
+  permission com.sun.jini.phoenix.SystemPermission "activeGroup";
+  permission com.sun.jini.phoenix.MonitorPermission "*";
+};
+</pre>
+<hr>
+<pre>
+// part of a secure Jini ERI group policy
+keystore "file://${user.home}/.keystore";
+
+grant codebase "file:<var><b>install_dir</b></var>/lib/jsk-platform.jar" {
+  permission java.security.AllPermission;
+};
+
+grant codebase "file:<var><b>install_dir</b></var>/lib/phoenix-init.jar" {
+  permission java.security.AllPermission;
+};
+
+grant codebase "file:<var><b>install_dir</b></var>/lib/phoenix-group.jar" {
+  permission java.lang.RuntimePermission "setContextClassLoader";
+  permission java.lang.RuntimePermission "getClassLoader";
+  // needed to set the ActivationGroup instance
+  permission java.lang.RuntimePermission "setFactory";
+  permission java.lang.RuntimePermission "modifyThreadGroup";
+  permission javax.security.auth.AuthPermission "createLoginContext.phoenix";
+  permission javax.security.auth.AuthPermission "getSubject";
+  permission javax.security.auth.AuthPermission "doAsPrivileged";
+  // next two need to call non-public constructors and activate methods
+  permission java.lang.RuntimePermission "accessDeclaredMembers";
+  permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
+  // accept from just local host (but not "localhost") would be sufficient
+  permission java.net.SocketPermission "*:1024-", "accept";
+  // need to connect to local host and codebases of all activatable objects
+  permission java.net.SocketPermission "*:1024-", "connect";
+  permission net.jini.security.AuthenticationPermission
+    "${{alias:phoenix}} peer ${{alias:phoenix}}", "connect,accept";
+  permission java.io.FilePermission "${user.home}${/}phoenix.config", "read";
+  // used in configuration file
+  permission java.io.FilePermission "${user.home}${/}.keystore", "read";
+
+  /* Because ActivationGroupImpl creates the activatable objects, either
+   * this codebase also needs whatever permissions are needed by those
+   * objects, or the objects must use AccessController.doPrivileged or
+   * equivalent to avoid the need for such grants.
+   */
+};
+
+// for remote calls from Phoenix
+grant principal "phoenix" {
+  permission com.sun.jini.phoenix.InstantiatorPermission "*";
+};
+</pre>
+<P>
+
+<P>
+<DL>
+<DT><B>Since:</B></DT>
+  <DD>2.0</DD>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../../com/sun/jini/outrigger/snaplogstore/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/sun/jini/proxy/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/sun/jini/phoenix/package-summary.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright 2007, multiple authors.<br>Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0" target="child" >Apache License, Version 2.0</a>, see the <a href="../../../../doc-files/NOTICE" target="child" >NOTICE</a> file for attributions.
+</BODY>
+</HTML>