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 21:18:00 UTC

svn commit: r1052579 [2/3] - in /incubator/river/site/trunk/content/river/doc/api/com/sun/jini/mercury: ./ class-use/

Added: incubator/river/site/trunk/content/river/doc/api/com/sun/jini/mercury/package-summary.html
URL: http://svn.apache.org/viewvc/incubator/river/site/trunk/content/river/doc/api/com/sun/jini/mercury/package-summary.html?rev=1052579&view=auto
==============================================================================
--- incubator/river/site/trunk/content/river/doc/api/com/sun/jini/mercury/package-summary.html (added)
+++ incubator/river/site/trunk/content/river/doc/api/com/sun/jini/mercury/package-summary.html Fri Dec 24 20:17:59 2010
@@ -0,0 +1,1610 @@
+<!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.mercury (Apache River v2.1.2-SNAPSHOT API Documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.sun.jini.mercury package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.sun.jini.mercury (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/mahalo/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/sun/jini/norm/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/mercury/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.mercury
+</H2>
+Provides implementations of the 
+<A HREF="../../../../net/jini/event/EventMailbox.html" title="interface in net.jini.event">EventMailbox</A> service.
+<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/mercury/MailboxAdmin.html" title="interface in com.sun.jini.mercury">MailboxAdmin</A></B></TD>
+<TD>An administrative interface for the mercury implementation
+ of the event mailbox service.</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/mercury/MercuryPermission.html" title="class in com.sun.jini.mercury">MercuryPermission</A></B></TD>
+<TD>Represents permissions that can be used to express the access control policy
+ for the Mercury server exported with a 
+ <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/mercury/InternalMailboxException.html" title="class in com.sun.jini.mercury">InternalMailboxException</A></B></TD>
+<TD>This exception denotes a problem with the local implementation of the
+ <code>EventMailbox</code> interface.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+<A NAME="package_description"><!-- --></A><H2>
+Package com.sun.jini.mercury Description
+</H2>
+
+<P>
+Provides implementations of the 
+<A HREF="../../../../net/jini/event/EventMailbox.html" title="interface in net.jini.event">EventMailbox</A> service.
+Three implementations are available for use with the 
+<A HREF="../../../../com/sun/jini/start/package-summary.html"><CODE>com.sun.jini.start</CODE></A> package:
+
+<ul>
+<li> <code>com.sun.jini.mercury.ActivatableMercuryImpl</code> - an
+     activatable, persistent implementation, suitable for use with
+     <A HREF="../../../../com/sun/jini/start/SharedActivatableServiceDescriptor.html" title="class in com.sun.jini.start"><CODE>SharedActivatableServiceDescriptor</CODE></A>
+<li> <code>com.sun.jini.mercury.NonActivatableMercuryImpl</code> - a
+     non-activatable, persistent implementation, suitable for use with
+     <A HREF="../../../../com/sun/jini/start/NonActivatableServiceDescriptor.html" title="class in com.sun.jini.start"><CODE>NonActivatableServiceDescriptor</CODE></A>
+<li> <code>com.sun.jini.mercury.TransientMercuryImpl</code> - a
+     transient implementation, also suitable for use with
+     <A HREF="../../../../com/sun/jini/start/NonActivatableServiceDescriptor.html" title="class in com.sun.jini.start"><CODE>NonActivatableServiceDescriptor</CODE></A>
+</ul>
+
+<p>
+The JAR file <code>mercury.jar</code>, included in the <code>lib</code>
+subdirectory of the Apache River release installation,
+contains the classes for the three Mercury service
+implementations. The <code>mercury-dl.jar</code> 
+and <code>jsk-dl.jar</code> files in the <code>lib-dl</code> subdirectory
+contain
+the classes needed in the codebase for its downloaded proxies. None of the
+JAR files include classes from <code>jsk-platform.jar</code>, which are
+included by the service starter's <code>start.jar</code> JAR file, and
+need to be included in the codebase of clients.
+<p>
+
+The object returned by the <A HREF="../../../../net/jini/admin/Administrable.html#getAdmin()"><CODE>Administrable.getAdmin</CODE></A> method on a Mercury service proxy implements <A HREF="../../../../net/jini/admin/JoinAdmin.html" title="interface in net.jini.admin"><CODE>JoinAdmin</CODE></A> and <A HREF="../../../../com/sun/jini/admin/DestroyAdmin.html" title="interface in com.sun.jini.admin"><CODE>DestroyAdmin</CODE></A>. 
+<p>
+
+This document provides the following information about Mercury: 
+<ul>
+<li> <a href="#configuration">Configuring Mercury</a>
+<li> <a href="#access_control">Access Control Permission Targets</a>
+<li> <a href="#logging">Logging</a>
+<li> <a href="#examples">Examples for Running Mercury</a>
+</ul> 
+<p>
+
+<a name="configuration">
+<h2>Configuring Mercury</h2>
+</a>
+
+The Mercury service implementation obtains its configuration by calling
+<A HREF="../../../../net/jini/config/ConfigurationProvider.html#getInstance(java.lang.String[], java.lang.ClassLoader)"><CODE>ConfigurationProvider.getInstance</CODE></A> with the specified
+<i>configOptions</i> and the class loader for the implementation
+class.
+<p>
+
+The implementation supports the following configuration entries, with
+component <code>com.sun.jini.mercury</code>: <p>
+
+  <table summary="Describes the activationIdPreparer 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>
+      activationIdPreparer</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <A HREF="../../../../net/jini/security/ProxyPreparer.html" title="interface in net.jini.security"><CODE>ProxyPreparer</CODE></A>
+    <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> The proxy preparer for the service's activation
+      ID. The value should not be <code>null</code>. This entry is
+      obtained at service start and restart. This entry is only used by
+      the activatable implementation. <p>
+
+      Clients call the <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/activation/ActivationID.html#activate(boolean)" title="class or interface in java.rmi.activation"><CODE>activate</CODE></A> method on instances of <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/activation/ActivationID.html" title="class or interface in java.rmi.activation"><CODE>ActivationID</CODE></A> when they need to reactivate the
+      service.
+  </table>
+
+  <table summary="Describes the activationSystemPreparer 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>
+      activationSystemPreparer</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <A HREF="../../../../net/jini/security/ProxyPreparer.html" title="interface in net.jini.security"><CODE>ProxyPreparer</CODE></A>
+    <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> The proxy preparer for the proxy for the
+      activation system. The value should not be <code>null</code>. This
+      entry is obtained at service start and restart. This entry is only
+      used by the activatable implementation. <p>
+
+      The service calls the <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/activation/ActivationSystem.html#unregisterObject(java.rmi.activation.ActivationID)" title="class or interface in java.rmi.activation"><CODE>unregisterObject</CODE></A> method on 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> when the service is
+      destroyed.
+  </table>
+
+  <a name="discoveryManager"></a>
+  <table summary="Describes the discoveryManager 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>
+      discoveryManager</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <A HREF="../../../../net/jini/discovery/DiscoveryManagement.html" title="interface in net.jini.discovery"><CODE>DiscoveryManagement</CODE></A>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td>
+<pre>
+new <A HREF="../../../../net/jini/discovery/LookupDiscoveryManager.html" title="class in net.jini.discovery"><CODE>LookupDiscoveryManager</CODE></A>(
+    groups,   // current group set
+    locators, // current locator set
+    null,     // listener
+    this)     // config
+</pre>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> Supplies an object used to discover the lookup
+      services with which this service should register. The value should
+      not be <code>null</code>. The object returned must also implement
+      <A HREF="../../../../net/jini/discovery/DiscoveryGroupManagement.html" title="interface in net.jini.discovery"><CODE>DiscoveryGroupManagement</CODE></A> and <A HREF="../../../../net/jini/discovery/DiscoveryLocatorManagement.html" title="interface in net.jini.discovery"><CODE>DiscoveryLocatorManagement</CODE></A>, and should be
+      configured initially to discover no groups or specific lookup
+      services. This entry is obtained at service start and restart.
+  </table>
+  
+  <table summary="Describes the initialLookupAttributes 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>
+      initialLookupAttributes</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <code><A HREF="../../../../net/jini/core/entry/Entry.html" title="interface in net.jini.core.entry"><CODE>Entry</CODE></A>[]</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> <code>new Entry[0]</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> Entries to include in the set of attributes the
+      service supplies when registering with lookup services, in
+      addition to <A HREF="../../../../net/jini/lookup/entry/ServiceInfo.html" title="class in net.jini.lookup.entry"><CODE>ServiceInfo</CODE></A> and <A HREF="../../../../com/sun/jini/lookup/entry/BasicServiceType.html" title="class in com.sun.jini.lookup.entry"><CODE>BasicServiceType</CODE></A> instances provided by
+      the service. An empty array or <code>null</code> specifies that
+      only the service-provided attributes should be added. The array
+      must not contain <code>null</code> elements. This entry is
+      obtained and used when the service is first started. Following
+      initial startup, the set of attributes is controlled though the
+      service's <A HREF="../../../../net/jini/admin/JoinAdmin.html" title="interface in net.jini.admin"><CODE>JoinAdmin</CODE></A> administrable
+      interface.
+  </table>
+
+  <table summary="Describes the initialLookupGroups 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>
+      initialLookupGroups</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[] { "" } /* public group */</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> The names of the lookup groups that the service
+      should discover and join. An empty array specifies that no groups
+      should be joined. A <code>null</code> value specifies that all
+      groups should be joined. Otherwise, the value specifies the names
+      of the groups to join. The array must not contain
+      <code>null</code> elements. This entry is obtained and used when
+      the service is first started. Following initial startup, the set
+      of lookup groups is controlled through the service's <A HREF="../../../../net/jini/admin/JoinAdmin.html" title="interface in net.jini.admin"><CODE>JoinAdmin</CODE></A> administrable interface.
+  </table>
+
+  <table summary="Describes the initialLookupLocators 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>
+      initialLookupLocators</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <code><A HREF="../../../../net/jini/core/discovery/LookupLocator.html" title="class in net.jini.core.discovery"><CODE>LookupLocator</CODE></A>[]</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> <code>new LookupLocator[0]</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> The locations of specific lookup services that
+      the service should discover and join. An empty array or
+      <code>null</code> specifies that no specific lookup services
+      should be joined. The array must not contain <code>null</code>
+      elements. This entry is obtained and used when the service is
+      first started. Following initial startup, the set of specific
+      lookup services is controlled through the service's <A HREF="../../../../net/jini/admin/JoinAdmin.html" title="interface in net.jini.admin"><CODE>JoinAdmin</CODE></A> administrable interface. <p>
+
+      The <code>LookupLocator</code> instances specified in this entry
+      will not be prepared by the proxy preparer specified in the
+      <code>locatorPreparer</code> entry, and will only be prepared by
+      the preparer in the <code>recoveredLocatorPreparer</code> entry
+      when they are being recovered.
+  </table>
+
+  <table summary="Describes the leasePeriodPolicy 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>
+      leasePeriodPolicy</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <A HREF="../../../../com/sun/jini/landlord/LeasePeriodPolicy.html" title="interface in com.sun.jini.landlord"><CODE>LeasePeriodPolicy</CODE></A>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td>
+<pre>
+new <A HREF="../../../../com/sun/jini/landlord/FixedLeasePeriodPolicy.html" title="class in com.sun.jini.landlord"><CODE>FixedLeasePeriodPolicy</CODE></A>(
+    3 * 60 * 60 * 1000L,  // max = 3 hours
+    60 * 60 * 1000L)      // default = 1 hour
+</pre>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> The policy for calculating lease grants and
+      renewals. The value should not be <code>null</code>. The default
+      grants leases with a maximum duration of 3 hours and a default
+      duration of 1 hour. This entry is obtained at service start and
+      restart.
+  </table>
+  
+  <table summary="Describes the listenerPreparer 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>listenerPreparer</code></font>
+
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <A HREF="../../../../net/jini/security/ProxyPreparer.html" title="interface in net.jini.security"><CODE>ProxyPreparer</CODE></A>
+
+    <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> Preparer for 
+             <A HREF="../../../../net/jini/core/event/RemoteEventListener.html" title="interface in net.jini.core.event"><CODE>RemoteEventListener</CODE></A>
+             proxies that have registered with 
+             this service 
+             via the <A HREF="../../../../net/jini/event/MailboxRegistration.html#enableDelivery(net.jini.core.event.RemoteEventListener)"><CODE>enableDelivery</CODE></A>
+             method. 
+             This preparer is
+             used to prepare proxies only when they initially
+             join with this service. 
+             The value should not
+             be <code>null</code>. The preparer must return a listener 
+             which is equal to the original listener as determined by 
+             <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang"><CODE>Object.equals</CODE></A>. 
+             This entry is obtained at service start and restart. <p>
+             
+             This preparer needs to perform all operations needed to use a
+             newly received listener, 
+             typically including verifying trust in
+             the participant proxy, granting permissions, and setting
+             constraints. The prepared participant will be retained 
+             by the service in its persistent store. <p>
+             
+             The service (potentially) calls the 
+             <A HREF="../../../../net/jini/core/event/RemoteEventListener.html#notify(net.jini.core.event.RemoteEvent)"><CODE>notify</CODE></A>
+             method on these proxies.
+   </table>
+   
+  <table summary="Describes the locatorToJoinPreparer 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>
+      locatorToJoinPreparer</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <A HREF="../../../../net/jini/security/ProxyPreparer.html" title="interface in net.jini.security"><CODE>ProxyPreparer</CODE></A>
+    <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> Prepares <A HREF="../../../../net/jini/core/discovery/LookupLocator.html" title="class in net.jini.core.discovery"><CODE>LookupLocator</CODE></A> instances 
+      passed to <A HREF="../../../../net/jini/admin/JoinAdmin.html" title="interface in net.jini.admin"><CODE>JoinAdmin</CODE></A> methods. The value
+      should not be <code>null</code>. When registering with lookup
+      services, this service may call or use the constraints assigned to
+      the <A HREF="../../../../net/jini/core/discovery/LookupLocator.html#getRegistrar()"><CODE>getRegistrar</CODE></A> methods of <code>LookupLocator</code> instances
+      returned from this preparer. This entry is obtained at service
+      start and restart. <p>
+
+      This preparer needs to perform all operations needed to use a
+      newly received lookup locator, typically including verifying trust
+      in the lookup locator and setting constraints. The prepared lookup
+      locator will be retained by the service in its persistent
+      store. <p>
+
+      The <code>LookupLocator</code> instances obtained from the
+      <code>initialLookupLocators</code> configuration entry will not be
+      prepared by this preparer.
+  </table>
+  
+
+  <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> <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>
+    <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> If not <code>null</code>, specifies the JAAS
+      login context to use for performing a JAAS login and supplying the
+      <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> to use when running the
+      service. If <code>null</code>, no JAAS login is performed. This
+      entry is obtained at service start and restart.
+  </table>
+
+  <table summary="Describes the logToSnapshotThreshold
+         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>
+      logToSnapshotThreshold</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>50</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> The threshold used to determine whether or not
+      to take a snapshot of the server's state. The value should not be
+      negative. The service will delay making new snapshots until the
+      number of log updates is greater than this value. This entry is
+      obtained at service start and restart. This entry is only used by
+      persistent implementations.
+  </table>
+  
+<a name="maxUnexportDelay"></a>
+<table summary="Describes the maxUnexportDelay 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>maxUnexportDelay</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <code>long</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> <code>120000</code> (2 minutes)
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+
+      Description: <td> How long to retry &#147nice&#148 unexport attempts before
+      forcing the unexport. Part of destroying a Mercury server includes
+      calling <A HREF="../../../../net/jini/export/Exporter.html#unexport(boolean)"><CODE>Exporter.unexport(boolean force)</CODE></A> on the <code>Exporter</code> used
+      to export the server (see
+      <a href="#serverExporter"><code>serverExporter</code></a>). The initial
+      <code>unexport</code> call passes <code>false</code> for the value of
+      the <code>force</code> parameter. This is done in order to allow the
+      destroy call to return cleanly to the client. If the initial
+      <code>unexport</code> call fails, Mercury will retry calling
+      <code>unexport(false)</code> for up to <code>maxUnexportDelay</code>
+      milliseconds before giving up and calling
+      <code>unexport(true)</code>.  <code>maxUnexportDelay</code> must be a
+      non-negative long value. If <code>maxUnexportDelay</code> is zero
+      then the very first call to <code>unexport</code> passes
+      <code>true</code> for the value of the <code>force</code> parameter,
+      no nice unexport attempt is made. Obtained at service start and
+      restart. Note, the delay between attempted <code>unexport</code>
+      calls is controlled by the <a
+      href="#unexportRetryDelay"><code>unexportRetryDelay</code></a>
+      configuration entry.
+</table>
+
+<a name="notificationsTaskManager"></a>
+<table summary="Describes the notificationsTaskManager 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>notificationsTaskManager</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <A HREF="../../../../com/sun/jini/thread/TaskManager.html" title="class in com.sun.jini.thread"><CODE>TaskManager</CODE></A>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> <code>new </code><A HREF="../../../../com/sun/jini/thread/TaskManager.html#TaskManager()"><CODE>TaskManager()</CODE></A>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+
+      Description: <td> The pool of threads used to make event delivery
+      attempts. 
+      The <A HREF="../../../../com/sun/jini/thread/TaskManager.html#terminate()"><CODE>terminate</CODE></A>
+      method of this object will be called when the service is
+      destroyed. This entry is obtained at service start and restart.
+  </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> <em>Required for persistent implementations: no
+      default</em>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> The directory where the service's persistent
+      state is recorded. The value should not be <code>null</code>. This
+      entry is obtained at service start and restart. This entry is
+      required for persistent implementations and is otherwise not used.
+  </table>
+
+  <table summary="Describes the recoveredListenerPreparer 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>recoveredListenerPreparer</code></font>
+
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <A HREF="../../../../net/jini/security/ProxyPreparer.html" title="interface in net.jini.security"><CODE>ProxyPreparer</CODE></A>
+
+    <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> Preparer for recovered 
+             <A HREF="../../../../net/jini/core/event/RemoteEventListener.html" title="interface in net.jini.core.event"><CODE>RemoteEventListener</CODE></A>
+             proxies that have been previously registered and prepared
+             with this service (via the <A HREF="../../../../net/jini/event/MailboxRegistration.html#enableDelivery(net.jini.core.event.RemoteEventListener)"><CODE>enableDelivery</CODE></A>
+             method). <P>
+             This preparer needs to perform only those operations whose results are 
+             not retained in the participant itself, but need to be performed in 
+             the environment in which the participant is unmarshalled,
+             typically just granting permissions. <P>
+             The service (potentially) calls the 
+             <A HREF="../../../../net/jini/core/event/RemoteEventListener.html#notify(net.jini.core.event.RemoteEvent)"><CODE>notify</CODE></A>
+             method on these proxies.
+  </table>
+    
+    
+  <table summary="Describes the recoveredLocatorToJoinPreparer 
+         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>
+      recoveredLocatorToJoinPreparer</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <A HREF="../../../../net/jini/security/ProxyPreparer.html" title="interface in net.jini.security"><CODE>ProxyPreparer</CODE></A>
+    <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> Prepares <A HREF="../../../../net/jini/core/discovery/LookupLocator.html" title="class in net.jini.core.discovery"><CODE>LookupLocator</CODE></A> instances for use when they
+      are recovered from persistent storage. The value should not be
+      <code>null</code>. When registering with lookup services, this
+      service may call or use the constraints assigned to the <A HREF="../../../../net/jini/core/discovery/LookupLocator.html#getRegistrar()"><CODE>getRegistrar</CODE></A>
+      methods of <code>LookupLocator</code> instances returned from this
+      preparer. This entry is obtained at service start and
+      restart. This entry is only used by persistent
+      implementations. <p>
+
+      This preparer needs to perform only those operations whose results
+      are not retained in the lookup locator itself, but need to be
+      performed in the environment in which the lookup locator is
+      unmarshalled. Typically no operations are needed. <p>
+
+      The <code>LookupLocator</code> instances obtained from the
+      <code>initialLookupLocators</code> configuration entry will not be
+      prepared by this preparer until they are being recovered.
+  </table>
+
+<a name="serverExporter"></a>
+  <table summary="Describes the serverExporter 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>
+      serverExporter</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <A HREF="../../../../net/jini/export/Exporter.html" title="interface in net.jini.export"><CODE>Exporter</CODE></A>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td>
+<pre>
+// Activatable implementation
+new <A HREF="../../../../net/jini/activation/ActivationExporter.html" title="class in net.jini.activation"><CODE>ActivationExporter</CODE></A>(
+    <i>activationID</i>,
+    new <A HREF="../../../../net/jini/jeri/BasicJeriExporter.html" title="class in net.jini.jeri"><CODE>BasicJeriExporter</CODE></A>(
+        <A HREF="../../../../net/jini/jeri/tcp/TcpServerEndpoint.html#getInstance(int)"><CODE>TcpServerEndpoint.getInstance</CODE></A>(0),
+        new <A HREF="../../../../net/jini/jeri/BasicILFactory.html" title="class in net.jini.jeri"><CODE>BasicILFactory</CODE></A>(), false, true))
+// Non-activatable implementations
+new <A HREF="../../../../net/jini/jeri/BasicJeriExporter.html" title="class in net.jini.jeri"><CODE>BasicJeriExporter</CODE></A>(
+    <A HREF="../../../../net/jini/jeri/tcp/TcpServerEndpoint.html#getInstance(int)"><CODE>TcpServerEndpoint.getInstance</CODE></A>(0),
+    new <A HREF="../../../../net/jini/jeri/BasicILFactory.html" title="class in net.jini.jeri"><CODE>BasicILFactory</CODE></A>(),false, true)
+</pre>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> The object to use for exporting the service. The
+      value should not be <code>null</code>. In the activatable case,
+      the call to <code>getEntry</code> will supply the activation ID in
+      the <code>data</code> argument. This entry is obtained at service
+      start and restart.
+  </table>
+  
+<a name="unexportRetryDelay"></a>
+<table summary="Describes the unexportRetryDelay 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>unexportRetryDelay</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <code>long</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> <code>1000</code> (1 second)
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+
+      Description: <td> When destroying a Mercury server how long to
+      wait between unexport attempts. <code>unexportRetryDelay</code> must
+      be a positive long value. When destroying itself Mercury will sleep
+      for <code>unexportRetryDelay</code> milliseconds between <A HREF="../../../../net/jini/export/Exporter.html#unexport(boolean)"><CODE>Exporter.unexport</CODE></A> calls. Obtained
+      at service start and restart. See <a
+      href="#maxUnexportDelay"><code>maxUnexportDelay</code></a> for
+      additional details.
+  </table> <P>
+
+<a name="access_control">
+<h2>Access Control Permission Targets</h2>
+</a>
+
+The following table lists the remote methods on Mercury's proxy objects and
+the associated target names for enforcing access control using <A HREF="../../../../com/sun/jini/mercury/MercuryPermission.html" title="class in com.sun.jini.mercury"><CODE>MercuryPermission</CODE></A>: <p>
+
+<table border="1" cellpadding="5"
+       summary="The proxy methods and associated target names for
+       MercuryPermission.">
+
+<tr> <th scope="col"> Proxy Method <th scope="col"> Target Name
+
+<!-- EventMailbox -->
+
+<tr> <td> <A HREF="../../../../net/jini/event/EventMailbox.html#register(long)"><CODE>EventMailbox.register</CODE></A>
+     <td> register
+<tr> <td> <A HREF="../../../../net/jini/event/MailboxRegistration.html#enableDelivery(net.jini.core.event.RemoteEventListener)"><CODE>MailboxRegistration.enableDelivery</CODE></A>
+     <td> enableDelivery
+<tr> <td> <A HREF="../../../../net/jini/event/MailboxRegistration.html#disableDelivery()"><CODE>MailboxRegistration.disableDelivery</CODE></A>
+     <td> disableDelivery
+<tr> <td> <A HREF="../../../../net/jini/core/event/RemoteEventListener.html#notify(net.jini.core.event.RemoteEvent)"><CODE>RemoteEventListener.notify</CODE></A>
+     <td> notify
+
+<!-- Lease and LeaseMap -->
+
+<tr> <td> <A HREF="../../../../net/jini/core/lease/Lease.html#renew(long)"><CODE>Lease.renew</CODE></A>
+     <td> renew
+<tr> <td> <A HREF="../../../../net/jini/core/lease/Lease.html#cancel()"><CODE>Lease.cancel</CODE></A>
+     <td> cancel
+<tr> <td> <A HREF="../../../../net/jini/core/lease/LeaseMap.html#renewAll()"><CODE>LeaseMap.renewAll</CODE></A>
+     <td> renewAll
+<tr> <td> <A HREF="../../../../net/jini/core/lease/LeaseMap.html#cancelAll()"><CODE>LeaseMap.cancelAll</CODE></A>
+     <td> cancelAll
+
+<!-- Administrable -->
+
+<tr> <td> <A HREF="../../../../net/jini/admin/Administrable.html#getAdmin()"><CODE>Administrable.getAdmin</CODE></A>
+     <td> getAdmin
+
+<!-- JoinAdmin -->
+
+<tr> <td> <A HREF="../../../../net/jini/admin/JoinAdmin.html#getLookupAttributes()"><CODE>JoinAdmin.getLookupAttributes</CODE></A>
+     <td> getLookupAttributes
+<tr> <td> <A HREF="../../../../net/jini/admin/JoinAdmin.html#addLookupAttributes(net.jini.core.entry.Entry[])"><CODE>JoinAdmin.addLookupAttributes</CODE></A>
+     <td> addLookupAttributes
+<tr> <td> <A HREF="../../../../net/jini/admin/JoinAdmin.html#modifyLookupAttributes(net.jini.core.entry.Entry[], net.jini.core.entry.Entry[])"><CODE>JoinAdmin.modifyLookupAttributes</CODE></A>
+     <td> modifyLookupAttributes
+
+<tr> <td> <A HREF="../../../../net/jini/admin/JoinAdmin.html#getLookupGroups()"><CODE>JoinAdmin.getLookupGroups</CODE></A>
+     <td> getLookupGroups
+<tr> <td> <A HREF="../../../../net/jini/admin/JoinAdmin.html#addLookupGroups(java.lang.String[])"><CODE>JoinAdmin.addLookupGroups</CODE></A>
+     <td> addLookupGroups
+<tr> <td> <A HREF="../../../../net/jini/admin/JoinAdmin.html#removeLookupGroups(java.lang.String[])"><CODE>JoinAdmin.removeLookupGroups</CODE></A>
+     <td> removeLookupGroups
+<tr> <td> <A HREF="../../../../net/jini/admin/JoinAdmin.html#setLookupGroups(java.lang.String[])"><CODE>JoinAdmin.setLookupGroups</CODE></A>
+     <td> setLookupGroups
+
+<tr> <td> <A HREF="../../../../net/jini/admin/JoinAdmin.html#getLookupLocators()"><CODE>JoinAdmin.getLookupLocators</CODE></A>
+     <td> getLookupLocators
+<tr> <td> <A HREF="../../../../net/jini/admin/JoinAdmin.html#addLookupLocators(net.jini.core.discovery.LookupLocator[])"><CODE>JoinAdmin.addLookupLocators</CODE></A>
+     <td> addLookupLocators
+<tr> <td> <A HREF="../../../../net/jini/admin/JoinAdmin.html#removeLookupLocators(net.jini.core.discovery.LookupLocator[])"><CODE>JoinAdmin.removeLookupLocators</CODE></A>
+     <td> removeLookupLocators
+<tr> <td> <A HREF="../../../../net/jini/admin/JoinAdmin.html#setLookupLocators(net.jini.core.discovery.LookupLocator[])"><CODE>JoinAdmin.setLookupLocators</CODE></A>
+     <td> setLookupLocators
+
+<!-- DestroyAdmin -->
+
+<tr> <td> <A HREF="../../../../com/sun/jini/admin/DestroyAdmin.html#destroy()"><CODE>DestroyAdmin.destroy</CODE></A>
+     <td> destroy
+
+<!-- ProxyTrust -->
+
+<tr> <td> <A HREF="../../../../net/jini/security/proxytrust/ProxyTrust.html#getProxyVerifier()"><CODE>ProxyTrust.getProxyVerifier</CODE></A>
+     <td> getProxyVerifier
+
+<!-- ServiceProxyAccessor -->
+
+<tr> <td> <A HREF="../../../../com/sun/jini/start/ServiceProxyAccessor.html#getServiceProxy()"><CODE>ServiceProxyAccessor.getServiceProxy</CODE></A>
+     <td> getServiceProxy
+
+</table> <p>
+
+<a name="logging">
+<h2>Loggers and Logging Levels</h2>
+</a>
+
+The Mercury service implementation uses separate <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>s, prefixed by <code>com.sun.jini.mercury</code>, 
+for each type of information it logs. The following tables describe the
+type of information logged as well as the levels of information logged.
+<p>
+
+  <table border="1" cellpadding="5"
+         summary="Describes logging performed by adminLogger at different
+         logging levels">
+
+  <caption halign="center" valign="top"><b><code>
+           com.sun.jini.mercury.admin</code></b></caption>
+
+  <tr> <th scope="col"> Level <th scope="col"> Description
+
+  <tr> <td> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html#FINEST" title="class or interface in java.util.logging"><CODE>FINEST</CODE></A> <td> 
+  for low level
+  service destruction operation tracing
+
+  </table> <p>
+
+  <table border="1" cellpadding="5"
+         summary="Describes logging performed by deliveryLogger at different
+         logging levels">
+
+  <caption halign="center" valign="top"><b><code>
+           com.sun.jini.mercury.delivery</code></b></caption>
+
+  <tr> <th scope="col"> Level <th scope="col"> Description
+  
+  <tr> <td> <A HREF="../../../../com/sun/jini/logging/Levels.html#HANDLED"><CODE>HANDLED</CODE></A> <td>
+  for exceptions handled during failed event delivery attempts
+
+  <tr> <td> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html#FINEST" title="class or interface in java.util.logging"><CODE>FINEST</CODE></A> <td> 
+  for low level
+  event delivery operation tracing
+
+  </table> <p>
+
+  <table border="1" cellpadding="5"
+         summary="Describes logging performed by expirationLogger at different
+         logging levels">
+
+  <caption halign="center" valign="top"><b><code>
+           com.sun.jini.mercury.expiration</code></b></caption>
+
+  <tr> <th scope="col"> Level <th scope="col"> Description
+
+  <tr> <td> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html#FINEST" title="class or interface in java.util.logging"><CODE>FINEST</CODE></A> <td> 
+  for low level
+  lease expiration operation tracing
+
+  </table> <p>
+
+ <table border="1" cellpadding="5"
+         summary="Describes logging performed by initLogger at different
+         logging levels">
+
+  <caption halign="center" valign="top"><b><code>
+           com.sun.jini.mercury.init</code></b></caption>
+
+  <tr> <th scope="col"> Level <th scope="col"> 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>
+  for problems that prevent service startup
+
+  <tr> <td> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html#CONFIG" title="class or interface in java.util.logging"><CODE>CONFIG</CODE></A> <td> 
+  for configuration access during service initialization
+
+  <tr> <td> <A HREF="../../../../com/sun/jini/logging/Levels.html#HANDLED"><CODE>HANDLED</CODE></A> <td>
+  for exceptions handled during service initialization
+
+  <tr> <td> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html#FINEST" title="class or interface in java.util.logging"><CODE>FINEST</CODE></A> <td> for low level
+  operation tracing during service initialization
+
+  </table> <p>
+
+  <table border="1" cellpadding="5"
+         summary="Describes logging performed by leaseLogger at different
+         logging levels">
+
+  <caption halign="center" valign="top"><b><code>
+           com.sun.jini.mercury.lease</code></b></caption>
+
+  <tr> <th scope="col"> Level <th scope="col"> Description
+
+  <tr> <td> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html#FINEST" title="class or interface in java.util.logging"><CODE>FINEST</CODE></A> <td> 
+  for low level
+  leasing operation tracing (creation, renewal, etc.)
+
+  </table> <p>
+
+  <table border="1" cellpadding="5"
+         summary="Describes logging performed by operationsLogger at different
+         logging levels">
+
+  <caption halign="center" valign="top"><b><code>
+           com.sun.jini.mercury.operations</code></b></caption>
+
+  <tr> <th scope="col"> Level <th scope="col"> Description
+
+  <tr> <td> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html#FINER" title="class or interface in java.util.logging"><CODE>FINER</CODE></A> <td> 
+  for method level
+  tracing during service operation
+
+  </table> <p>
+
+  <table border="1" cellpadding="5"
+         summary="Describes logging performed by persistenceLogger at different
+         logging levels">
+
+  <caption halign="center" valign="top"><b><code>
+           com.sun.jini.mercury.persistence</code></b></caption>
+
+  <tr> <th scope="col"> Level <th scope="col"> Description
+  
+  <tr> <td> <A HREF="../../../../com/sun/jini/logging/Levels.html#HANDLED"><CODE>HANDLED</CODE></A> <td>
+  for exceptions handled during service persistence attempts
+
+  <tr> <td> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html#FINEST" title="class or interface in java.util.logging"><CODE>FINEST</CODE></A> <td> 
+  for low level
+  service persistence operation tracing
+
+  </table> <p>
+  
+  <table border="1" cellpadding="5"
+         summary="Describes logging performed by receiveLogger at different
+         logging levels">
+
+  <caption halign="center" valign="top"><b><code>
+           com.sun.jini.mercury.receive</code></b></caption>
+
+  <tr> <th scope="col"> Level <th scope="col"> Description
+
+  <tr> <td> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html#FINEST" title="class or interface in java.util.logging"><CODE>FINEST</CODE></A> <td> 
+  for low level
+  event reception tracing
+
+  </table> <p>
+
+  <table border="1" cellpadding="5"
+         summary="Describes logging performed by recoveryLogger at different
+         logging levels">
+
+  <caption halign="center" valign="top"><b><code>
+           com.sun.jini.mercury.recovery</code></b></caption>
+
+  <tr> <th scope="col"> Level <th scope="col"> Description
+  
+  <tr> <td> <A HREF="../../../../com/sun/jini/logging/Levels.html#HANDLED"><CODE>HANDLED</CODE></A> <td>
+  for exceptions handled during service recovery attempts
+
+  <tr> <td> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html#FINEST" title="class or interface in java.util.logging"><CODE>FINEST</CODE></A> <td> 
+  for low level
+  service recovery operation tracing
+
+  </table> <p>
+
+    <table border="1" cellpadding="5"
+         summary="Describes logging performed by startupLogger 
+                  at different logging levels">
+
+  <caption halign="center" valign="top"><b><code>
+           com.sun.jini.mercury.startup</code></b></caption>
+
+  <tr> <th scope="col"> Level <th scope="col"> Description
+
+  <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> 
+  for successful
+  service creation message.
+  
+  </table> <p>
+
+See the <A HREF="../../../../com/sun/jini/logging/LogManager.html" title="class in com.sun.jini.logging"><CODE>LogManager</CODE></A> class for one way to use
+the <code>HANDLED</code> logging level in standard logging configuration
+files. <p>
+
+<a name="examples">
+<h2>Examples for Running Mercury</h2>
+</a>
+
+This section provides examples of running Mercury in various configurations.
+
+<ul>
+<li> <a href="#assumptions">Assumptions for running the examples</a>
+<li> JRMP configurations
+     <ul>
+     <li> <a href="#transient_jrmp">Transient</a>
+     <li> <a href="#persistent_jrmp">Persistent</a>
+     <li> <a href="#activatable_jrmp">Activatable</a>
+     </ul>
+<li> Jini extensible remote invocation (Jini ERI) configurations
+     <ul>
+     <li> <a href="#transient">Transient</a>
+     <li> <a href="#persistent">Persistent</a>
+     <li> <a href="#activatable">Activatable</a>
+     </ul>
+<li> <a href="#stop_activatable">Stopping activatable configurations</a>
+</ul> <p>
+
+<a name="assumptions">
+<h3>Assumptions for Running the Examples</h3>
+</a>
+
+The examples below make the following assumptions: <p>
+
+<ul>
+<li> The Java(TM) 2 Platform, Standard Edition, (J2SE(TM)) has been
+     installed, and its commands are available in the current path
+<li> The Apache River release has been installed in the
+     <var><b>install_dir</b></var> directory
+<li> The example configuration and policy files described below are
+     available in the <var><b>config_dir</b></var> directory
+<li> The local host name is <var><b>your_host</b></var>
+<li> The local lookup group name is <var><b>your.group</b></var>
+<li> The HTTP server for download JAR files is running on
+     <var><b>your_host</b></var> and is available on port
+     <var><b>http_port</b></var>. This HTTP server is serving files located
+     in the <var><b>install_dir</b></var>/lib-dl directory. You can use the
+     <A HREF="../../../../com/sun/jini/tool/ClassServer.html" title="class in com.sun.jini.tool"><CODE>ClassServer</CODE></A> class for this purpose.
+<li> The examples are being run on UNIX platforms
+<li> The examples are being run on a secure network where access control
+     and authentication are not needed. See the <a
+     href="../../../../../../source/src/com/sun/jini/example/hello/index.html">hello example</a> for some 
+     client and service configurations that enforce security.
+<li> For activatable services, an activation system is running on
+     <var><b>your_host</b></var>. You can use the <A HREF="../../../../com/sun/jini/phoenix/package-summary.html"><CODE>com.sun.jini.phoenix</CODE></A> implementation for this purpose.
+</ul> <p>
+
+Throughout the example, items in <var><b>bold</b></var> need to be
+customized for your local environment.
+
+<a name="transient_jrmp">
+<h3>Starting Transient Mercury using JRMP</h3>
+</a>
+
+To run a transient Mercury, which does not store any information
+persistently or use the activation system to restart itself, using JRMP
+for remote communication, run the following command. <p>
+
+<blockquote>
+<pre>
+<!-- cut_begin=start-transient-jrmp-mercury.sh -->
+java -Djava.security.policy=<a href="#jsk_all_policy"><var><b>config_dir</b></var>/jsk-all.policy</a> \
+     -jar <var><b>install_dir</b></var>/lib/start.jar \
+     <a href="#start_transient_jrmp_config"><var><b>config_dir</b></var>/start-transient-jrmp-mercury.config</a>
+<!-- cut_end -->
+</pre>
+</blockquote> <p>
+
+This configuration uses the following files.
+
+<a name="jsk_all_policy">
+<h4>File <var><b>config_dir</b></var>/jsk-all.policy</h4>
+</a>
+
+Use this security policy file for starting and running all Mercury
+configurations. This file grants all permissions to local code included
+in the <code>lib</code> subdirectory of the Apache River release installation.<p>
+
+<blockquote>
+<pre>
+<!-- cut_begin=config_dir/jsk-all.policy -->
+grant codebase "file:<var><b>install_dir</b></var>/lib/*" {
+    permission java.security.AllPermission;
+};
+<!-- cut_end -->
+</pre>
+</blockquote>
+
+<a name="start_transient_jrmp_config">
+<h4>File <var><b>config_dir</b></var>/start-transient-jrmp-mercury.config</h4>
+</a>
+
+Use this configuration source file to start transient Mercury using
+JRMP. <p>
+
+<blockquote>
+<pre>
+<!-- cut_begin=config_dir/start-transient-jrmp-mercury.config -->
+import com.sun.jini.start.NonActivatableServiceDescriptor;
+import com.sun.jini.start.ServiceDescriptor;
+
+com.sun.jini.start {
+    private static codebase = "http://<var><b>your_host</b></var>:<var><b>http_port</b></var>/mercury-dl.jar"
+       + " http://<var><b>your_host</b></var>:<var><b>http_port</b></var>/jsk-dl.jar";
+    private static policy = "<a href="#jsk_all_policy"><var><b>config_dir</b></var>/jsk-all.policy</a>";
+    private static classpath = "<var><b>install_dir</b></var>/lib/mercury.jar";
+    private static config = "<a href="#transient_jrmp_config"><var><b>config_dir</b></var>/transient-jrmp-mercury.config</a>";
+
+    static serviceDescriptors = new ServiceDescriptor[] {
+        new NonActivatableServiceDescriptor(
+            codebase, policy, classpath,
+            "com.sun.jini.mercury.TransientMercuryImpl",
+            new String[] { config })
+    };
+}
+<!-- cut_end -->
+</pre>
+</blockquote>
+
+<a name="transient_jrmp_config">
+<h4>File <var><b>config_dir</b></var>/transient-jrmp-mercury.config</h4>
+</a>
+
+Use this configuration source file to run transient Mercury using JRMP. <p>
+
+<blockquote>
+<pre>
+<!-- cut_begin=config_dir/transient-jrmp-mercury.config -->
+import net.jini.jrmp.JrmpExporter;
+
+com.sun.jini.mercury {
+    initialLookupGroups = new String[] { "<var><b>your.group</b></var>" };
+    serverExporter = new JrmpExporter();
+}
+<!-- cut_end -->
+</pre>
+</blockquote>
+
+<a name="persistent_jrmp">
+<h3>Starting Persistent Mercury using JRMP</h3>
+</a>
+
+To run a persistent Mercury, which stores information persistently but does
+not use the activation system to restart itself, using JRMP for remote
+communication, run the following command. <p>
+
+<blockquote>
+<pre>
+<!-- cut_begin=start-persistent-jrmp-mercury.sh -->
+java -Djava.security.policy=<a href="#jsk_all_policy"><var><b>config_dir</b></var>/jsk-all.policy</a> \
+     -jar <var><b>install_dir</b></var>/lib/start.jar \
+     <a href="#start_persistent_jrmp_config"><var><b>config_dir</b></var>/start-persistent-jrmp-mercury.config</a>
+<!-- cut_end -->
+</pre>
+</blockquote> <p>
+
+<b>Note:</b> Because JRMP does not provide a convenient way to specify
+the same object ID each time a given object is exported, this
+configuration is only useful for debugging -- an existing service proxy
+cannot be used after the service is restarted. <p>
+
+This configuration uses the following additional files.
+
+<a name="start_persistent_jrmp_config">
+<h4>File <var><b>config_dir</b></var>/start-persistent-jrmp-mercury.config</h4>
+</a>
+
+Use this configuration source file to start persistent Mercury using
+JRMP. <p>
+
+<blockquote>
+<pre>
+<!-- cut_begin=config_dir/start-persistent-jrmp-mercury.config -->
+import com.sun.jini.start.NonActivatableServiceDescriptor;
+import com.sun.jini.start.ServiceDescriptor;
+
+com.sun.jini.start {
+    private static codebase = "http://<var><b>your_host</b></var>:<var><b>http_port</b></var>/mercury-dl.jar"
+       + " http://<var><b>your_host</b></var>:<var><b>http_port</b></var>/jsk-dl.jar";
+    private static policy = "<a href="#jsk_all_policy"><var><b>config_dir</b></var>/jsk-all.policy</a>";
+    private static classpath = "<var><b>install_dir</b></var>/lib/mercury.jar";
+    private static config = "<a href="#persistent_jrmp_config"><var><b>config_dir</b></var>/persistent-jrmp-mercury.config</a>";
+
+    static serviceDescriptors = new ServiceDescriptor[] {
+        new NonActivatableServiceDescriptor(
+            codebase, policy, classpath,
+            "com.sun.jini.mercury.NonActivatableMercuryImpl",
+            new String[] { config })
+    };
+}
+<!-- cut_end -->
+</pre>
+</blockquote>
+
+<a name="persistent_jrmp_config">
+<h4>File <var><b>config_dir</b></var>/persistent-jrmp-mercury.config</h4>
+</a>
+
+Use this configuration source file to run persistent Mercury using
+JRMP. <p>
+
+<blockquote>
+<pre>
+<!-- cut_begin=config_dir/persistent-jrmp-mercury.config -->
+import net.jini.jrmp.JrmpExporter;
+
+com.sun.jini.mercury {
+    initialLookupGroups = new String[] { "<var><b>your.group</b></var>" };
+    persistenceDirectory = "<var><b>config_dir</b></var>/mercury.log";
+    serverExporter = new JrmpExporter();
+}
+<!-- cut_end -->
+</pre>
+</blockquote>
+
+<a name="activatable_jrmp">
+<h3>Starting Activatable Mercury using JRMP</h3>
+</a>
+
+To run an activatable Mercury, which stores information persistently and
+uses the activation system to restart itself, using JRMP for remote
+communication, run the following command. <p>
+
+<blockquote>
+<pre>
+<!-- cut_begin=start-activatable-jrmp-mercury.sh -->
+java -Djava.security.policy=<a href="#jsk_all_policy"><var><b>config_dir</b></var>/jsk-all.policy</a> \
+     -jar <var><b>install_dir</b></var>/lib/start.jar \
+     <a href="#start_activatable_jrmp_config"><var><b>config_dir</b></var>/start-activatable-jrmp-mercury.config</a>
+<!-- cut_end -->
+</pre>
+</blockquote> <p>
+
+You should remove the <var><b>config_dir</b></var>/group.log directory
+before running this command. Note that the activation system will
+restart the activatable Mercury service as needed until Mercury is
+shutdown. <p>
+
+Remember to remove the <var><b>config_dir</b></var>/mercury.log directory
+before running this command if you want Mercury to forget registrations and
+settings made in previous invocations. <p>
+
+This configuration uses the following additional files.
+
+<a name="start_activatable_jrmp_config">
+<h4>File <var><b>config_dir</b></var>/start-activatable-jrmp-mercury.config</h4>
+</a>
+
+Use this configuration source file to start activatable Mercury using
+JRMP. <p>
+
+<blockquote>
+<pre>
+<!-- cut_begin=config_dir/start-activatable-jrmp-mercury.config -->
+import com.sun.jini.start.ServiceDescriptor;
+import com.sun.jini.start.SharedActivatableServiceDescriptor;
+import com.sun.jini.start.SharedActivationGroupDescriptor;
+
+com.sun.jini.start {
+    private static mercuryCodebase = "http://<var><b>your_host</b></var>:<var><b>http_port</b></var>/mercury-dl.jar"
+       + " http://<var><b>your_host</b></var>:<var><b>http_port</b></var>/jsk-dl.jar";
+    private static mercuryPolicy = "<a href="#jsk_all_policy"><var><b>config_dir</b></var>/jsk-all.policy</a>";
+    private static mercuryClasspath = "<var><b>install_dir</b></var>/lib/mercury.jar";
+    private static mercuryConfig = "<a href="#activatable_jrmp_config"><var><b>config_dir</b></var>/activatable-jrmp-mercury.config</a>";
+
+    private static groupPolicy = "<a href="#jsk_all_policy"><var><b>config_dir</b></var>/jsk-all.policy</a>";
+    private static groupClasspath = "<var><b>install_dir</b></var>/lib/sharedvm.jar";
+    private static groupPersistenceDirectory = "<var><b>config_dir</b></var>/group.log";
+
+    static serviceDescriptors = new ServiceDescriptor[] {
+        new SharedActivationGroupDescriptor(
+            groupPolicy, groupClasspath, groupPersistenceDirectory,
+            null /* serverCommand */,
+            null /* serverOptions */,
+            null /* serverProperties */),
+        new SharedActivatableServiceDescriptor(
+            mercuryCodebase, mercuryPolicy, mercuryClasspath,
+            "com.sun.jini.mercury.ActivatableMercuryImpl",
+            groupPersistenceDirectory,
+            new String[] { mercuryConfig },
+            true /* restart */)
+    };
+}
+<!-- cut_end -->
+</pre>
+</blockquote>
+
+<a name="activatable_jrmp_config">
+<h4>File <var><b>config_dir</b></var>/activatable-jrmp-mercury.config</h4>
+</a>
+
+Use this configuration source file to run activatable Mercury using
+JRMP. <p>
+
+<blockquote>
+<pre>
+<!-- cut_begin=config_dir/activatable-jrmp-mercury.config -->
+import java.rmi.activation.ActivationID;
+import net.jini.jrmp.JrmpExporter;
+
+com.sun.jini.mercury {
+    initialLookupGroups = new String[] { "<var><b>your.group</b></var>" };
+    persistenceDirectory = "<var><b>config_dir</b></var>/mercury.log";
+    serverExporter = new JrmpExporter((ActivationID) $data, 0);
+}
+<!-- cut_end -->
+</pre>
+</blockquote>
+
+<a name="stop_activatable">
+<h3>Stopping Activatable Mercury</h3>
+</a>
+
+To destroy the activation group running an activatable Mercury, under a
+a JRMP or Jini ERI configuration, run the following command. <p>
+
+<blockquote>
+<pre>
+<!-- cut_begin=stop-activatable-mercury.sh -->
+java -Djava.security.policy=<a href="#jsk_all_policy"><var><b>config_dir</b></var>/jsk-all.policy</a> \
+     -jar <var><b>install_dir</b></var>/lib/destroy.jar \
+     <a href="#stop_activatable_config"><var><b>config_dir</b></var>/stop-activatable-mercury.config</a>
+<!-- cut_end -->
+</pre>
+</blockquote> <p>
+
+Running this command will remove the
+<var><b>config_dir</b></var>/group.log directory. <p>
+
+Note that this command does not actually destroy the service itself, but
+just destroys the activation group the service is running in. You may
+want to first destroy the service using Mercury's administrable interface,
+or to remove the <var><b>config_dir</b></var>/mercury.log directory after
+destroying the activation group. <p>
+
+This command uses the following additional file.
+
+<a name="stop_activatable_config">
+<h4>File <var><b>config_dir</b></var>/stop-activatable-mercury.config</h4>
+</a>
+
+Use this configuration source file to destroy the activation group for
+an activatable Mercury. <p>
+
+<blockquote>
+<pre>
+<!-- cut_begin=config_dir/stop-activatable-mercury.config -->
+import com.sun.jini.start.ServiceDescriptor;
+import com.sun.jini.start.SharedActivatableServiceDescriptor;
+
+com.sun.jini.start {
+    private static codebase = "http://<var><b>your_host</b></var>:<var><b>http_port</b></var>/group-dl.jar";
+    private static policy = "<a href="#jsk_all_policy"><var><b>config_dir</b></var>/jsk-all.policy</a>";
+    private static classpath = "<var><b>install_dir</b></var>/lib/group.jar";
+    private static persistenceDirectory = "<var><b>config_dir</b></var>/group.log";
+
+    static serviceDestructors = new ServiceDescriptor[] {
+        new SharedActivatableServiceDescriptor(
+            codebase, policy, classpath,
+            "com.sun.jini.start.SharedGroupImpl",
+            persistenceDirectory,
+            null /* config */,
+            false /* restart */)
+    };
+}
+<!-- cut_end -->
+</pre>
+</blockquote>
+
+<a name="transient">
+<h3>Starting Transient Mercury using Jini ERI</h3>
+</a>
+
+To run a transient Mercury, which does not store any information
+persistently or use the activation system to restart itself, using Jini
+ERI for remote communication, run the following command. <p>
+
+<blockquote>
+<pre>
+<!-- cut_begin=start-transient-mercury.sh -->
+java -Djava.security.policy=<a href="#jsk_all_policy"><var><b>config_dir</b></var>/jsk-all.policy</a> \
+     -jar <var><b>install_dir</b></var>/lib/start.jar \
+     <a href="#start_transient_config"><var><b>config_dir</b></var>/start-transient-mercury.config</a>
+<!-- cut_end -->
+</pre>
+</blockquote> <p>
+
+This configuration uses the following additional files.
+
+<a name="start_transient_config">
+<h4>File <var><b>config_dir</b></var>/start-transient-mercury.config</h4>
+</a>
+
+Use this configuration source file to start transient Mercury using
+Jini ERI. <p>
+
+<blockquote>
+<pre>
+<!-- cut_begin=config_dir/start-transient-mercury.config -->
+import com.sun.jini.start.NonActivatableServiceDescriptor;
+import com.sun.jini.start.ServiceDescriptor;
+
+com.sun.jini.start {
+    private static codebase = "http://<var><b>your_host</b></var>:<var><b>http_port</b></var>/mercury-dl.jar"
+       + " http://<var><b>your_host</b></var>:<var><b>http_port</b></var>/jsk-dl.jar";
+    private static policy = "<a href="#jsk_all_policy"><var><b>config_dir</b></var>/jsk-all.policy</a>";
+    private static classpath = "<var><b>install_dir</b></var>/lib/mercury.jar";
+    private static config = "<a href="#transient_config"><var><b>config_dir</b></var>/transient-mercury.config</a>";
+
+    static serviceDescriptors = new ServiceDescriptor[] {
+        new NonActivatableServiceDescriptor(
+            codebase, policy, classpath,
+            "com.sun.jini.mercury.TransientMercuryImpl",
+            new String[] { config })
+    };
+}
+<!-- cut_end -->
+</pre>
+</blockquote>
+
+<a name="transient_config">
+<h4>File <var><b>config_dir</b></var>/transient-mercury.config</h4>
+</a>
+
+Use this configuration source file to run transient Mercury using Jini
+ERI. <p>
+
+<blockquote>
+<pre>
+<!-- cut_begin=config_dir/transient-mercury.config -->
+com.sun.jini.mercury {
+    initialLookupGroups = new String[] { "<var><b>your.group</b></var>" };
+}
+<!-- cut_end -->
+</pre>
+</blockquote>
+
+<a name="persistent">
+<h3>Starting Persistent Mercury using Jini ERI</h3>
+</a>
+
+To run a persistent Mercury, which stores information persistently but does
+not use the activation system to restart itself, using Jini ERI for
+remote communication, run the following command. <p>
+
+<blockquote>
+<pre>
+<!-- cut_begin=start-persistent-mercury.sh -->
+java -Djava.security.policy=<a href="#jsk_all_policy"><var><b>config_dir</b></var>/jsk-all.policy</a> \
+     -jar <var><b>install_dir</b></var>/lib/start.jar \
+     <a href="#start_persistent_config"><var><b>config_dir</b></var>/start-persistent-mercury.config</a>
+<!-- cut_end -->
+</pre>
+</blockquote> <p>
+
+This configuration uses the following additional files.
+
+<a name="start_persistent_config">
+<h4>File <var><b>config_dir</b></var>/start-persistent-mercury.config</h4>
+</a>
+
+Use this configuration source file to start persistent Mercury using Jini
+ERI. <p>
+
+<blockquote>
+<pre>
+<!-- cut_begin=config_dir/start-persistent-mercury.config -->
+import com.sun.jini.start.NonActivatableServiceDescriptor;
+import com.sun.jini.start.ServiceDescriptor;
+
+com.sun.jini.start {
+    private static codebase = "http://<var><b>your_host</b></var>:<var><b>http_port</b></var>/mercury-dl.jar"
+       + " http://<var><b>your_host</b></var>:<var><b>http_port</b></var>/jsk-dl.jar";
+    private static policy = "<a href="#jsk_all_policy"><var><b>config_dir</b></var>/jsk-all.policy</a>";
+    private static classpath = "<var><b>install_dir</b></var>/lib/mercury.jar";
+    private static config = "<a href="#persistent_config"><var><b>config_dir</b></var>/persistent-mercury.config</a>";
+
+    static serviceDescriptors = new ServiceDescriptor[] {
+        new NonActivatableServiceDescriptor(
+            codebase, policy, classpath,
+            "com.sun.jini.mercury.NonActivatableMercuryImpl",
+            new String[] { config })
+    };
+}
+<!-- cut_end -->
+</pre>
+</blockquote>
+
+<a name="persistent_config">
+<h4>File <var><b>config_dir</b></var>/persistent-mercury.config</h4>
+</a>
+
+Use this configuration source file to run persistent Mercury using Jini
+ERI. <p>
+
+<blockquote>
+<pre>
+<!-- cut_begin=config_dir/persistent-mercury.config -->
+import net.jini.id.UuidFactory;
+import net.jini.jeri.BasicILFactory;
+import net.jini.jeri.BasicJeriExporter;
+import net.jini.jeri.tcp.TcpServerEndpoint;
+
+com.sun.jini.mercury {
+    initialLookupGroups = new String[] { "<var><b>your.group</b></var>" };
+    persistenceDirectory = "<var><b>config_dir</b></var>/mercury.log";
+    serverExporter = new BasicJeriExporter(
+        TcpServerEndpoint.getInstance(<var><b>obj_port</b></var>),
+        new BasicILFactory(),
+        false,
+        true,
+        UuidFactory.create("<var><b>obj_UUID_string</b></var>"));
+}
+<!-- cut_end -->
+</pre>
+</blockquote>
+
+The <var><b>obj_port</b></var> is the fixed TCP port to use for
+listening for requests for this object. The
+<var><b>obj_UUID_string</b></var> is the <A HREF="../../../../net/jini/id/Uuid.html" title="class in net.jini.id">universally unique ID</A> for the exported object. These IDs have the form
+<code>"01234567-89ab-cdef-0123-456789abcdef"</code>. <p>
+
+Remember to remove the <var><b>config_dir</b></var>/mercury.log directory
+before restarting persistent Mercury if you want it to forget registrations
+and settings made in previous invocations.
+
+<a name="activatable">
+<h3>Starting Activatable Mercury using Jini ERI</h3>
+</a>
+
+To run an activatable Mercury, which stores information persistently and
+uses the activation system to restart itself, using Jini ERI for remote
+communication, run the following command. <p>
+
+<blockquote>
+<pre>
+<!-- cut_begin=start-activatable-mercury.sh -->
+java -Djava.security.policy=<a href="#jsk_all_policy"><var><b>config_dir</b></var>/jsk-all.policy</a> \
+     -jar <var><b>install_dir</b></var>/lib/start.jar \
+     <a href="#start_activatable_config"><var><b>config_dir</b></var>/start-activatable-mercury.config</a>
+<!-- cut_end -->
+</pre>
+</blockquote> <p>
+
+You should remove the <var><b>config_dir</b></var>/group.log directory
+before running this command. Note that the activation system will
+restart the activatable Mercury service as needed until Mercury is
+shutdown. <p>
+
+Remember to remove the <var><b>config_dir</b></var>/mercury.log directory
+before running this command if you want Mercury to forget registrations and
+settings made in previous invocations. <p>
+
+This configuration uses the following additional files.
+
+<a name="start_activatable_config">
+<h4>File <var><b>config_dir</b></var>/start-activatable-mercury.config</h4>
+</a>
+
+Use this configuration source file to start activatable Mercury using Jini
+ERI. <p>
+
+<blockquote>
+<pre>
+<!-- cut_begin=config_dir/start-activatable-mercury.config -->
+import com.sun.jini.start.ServiceDescriptor;
+import com.sun.jini.start.SharedActivatableServiceDescriptor;
+import com.sun.jini.start.SharedActivationGroupDescriptor;
+
+com.sun.jini.start {
+    private static mercuryCodebase = "http://<var><b>your_host</b></var>:<var><b>http_port</b></var>/mercury-dl.jar"
+       + " http://<var><b>your_host</b></var>:<var><b>http_port</b></var>/jsk-dl.jar";
+    private static mercuryPolicy = "<a href="#jsk_all_policy"><var><b>config_dir</b></var>/jsk-all.policy</a>";
+    private static mercuryClasspath = "<var><b>install_dir</b></var>/lib/mercury.jar";
+    private static mercuryConfig = "<a href="#activatable_config"><var><b>config_dir</b></var>/activatable-mercury.config</a>";
+
+    private static groupPolicy = "<a href="#jsk_all_policy"><var><b>config_dir</b></var>/jsk-all.policy</a>";
+    private static groupClasspath = "<var><b>install_dir</b></var>/lib/sharedvm.jar";
+    private static groupPersistenceDirectory = "<var><b>config_dir</b></var>/group.log";
+
+    static serviceDescriptors = new ServiceDescriptor[] {
+        new SharedActivationGroupDescriptor(
+            groupPolicy, groupClasspath, groupPersistenceDirectory,
+            null /* serverCommand */,
+            null /* serverOptions */,
+            null /* serverProperties */),
+        new SharedActivatableServiceDescriptor(
+            mercuryCodebase, mercuryPolicy, mercuryClasspath,
+            "com.sun.jini.mercury.ActivatableMercuryImpl",
+            groupPersistenceDirectory,
+            new String[] { mercuryConfig },
+            true /* restart */)
+    };
+}
+<!-- cut_end -->
+</pre>
+</blockquote>
+
+<a name="activatable_config">
+<h4>File <var><b>config_dir</b></var>/activatable-mercury.config</h4>
+</a>
+
+Use this configuration source file to run activatable Mercury using Jini
+ERI. <p>
+
+<blockquote>
+<pre>
+<!-- cut_begin=config_dir/activatable-mercury.config -->
+com.sun.jini.mercury {
+    initialLookupGroups = new String[] { "<var><b>your.group</b></var>" };
+    persistenceDirectory = "<var><b>config_dir</b></var>/mercury.log";
+}
+<!-- cut_end -->
+</pre>
+</blockquote>
+<P>
+
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../net/jini/event/EventMailbox.html" title="interface in net.jini.event"><CODE>EventMailbox</CODE></A></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/mahalo/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/sun/jini/norm/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/mercury/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>

Added: incubator/river/site/trunk/content/river/doc/api/com/sun/jini/mercury/package-tree.html
URL: http://svn.apache.org/viewvc/incubator/river/site/trunk/content/river/doc/api/com/sun/jini/mercury/package-tree.html?rev=1052579&view=auto
==============================================================================
--- incubator/river/site/trunk/content/river/doc/api/com/sun/jini/mercury/package-tree.html (added)
+++ incubator/river/site/trunk/content/river/doc/api/com/sun/jini/mercury/package-tree.html Fri Dec 24 20:17:59 2010
@@ -0,0 +1,172 @@
+<!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.mercury Class Hierarchy (Apache River v2.1.2-SNAPSHOT API Documentation)
+</TITLE>
+
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.sun.jini.mercury Class Hierarchy (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="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&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/mahalo/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/sun/jini/norm/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/sun/jini/mercury/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.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>
+<CENTER>
+<H2>
+Hierarchy For Package com.sun.jini.mercury
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang"><B>Object</B></A><UL>
+<LI TYPE="circle">java.security.<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/Permission.html" title="class or interface in java.security"><B>Permission</B></A> (implements java.security.<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/security/Guard.html" title="class or interface in java.security">Guard</A>, java.io.<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/Serializable.html" title="class or interface in java.io">Serializable</A>)
+<UL>
+<LI TYPE="circle">net.jini.security.<A HREF="../../../../net/jini/security/AccessPermission.html" title="class in net.jini.security"><B>AccessPermission</B></A><UL>
+<LI TYPE="circle">com.sun.jini.mercury.<A HREF="../../../../com/sun/jini/mercury/MercuryPermission.html" title="class in com.sun.jini.mercury"><B>MercuryPermission</B></A></UL>
+</UL>
+<LI TYPE="circle">java.lang.<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Throwable.html" title="class or interface in java.lang"><B>Throwable</B></A> (implements java.io.<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/Serializable.html" title="class or interface in java.io">Serializable</A>)
+<UL>
+<LI TYPE="circle">java.lang.<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Exception.html" title="class or interface in java.lang"><B>Exception</B></A><UL>
+<LI TYPE="circle">java.lang.<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/RuntimeException.html" title="class or interface in java.lang"><B>RuntimeException</B></A><UL>
+<LI TYPE="circle">com.sun.jini.mercury.<A HREF="../../../../com/sun/jini/mercury/InternalMailboxException.html" title="class in com.sun.jini.mercury"><B>InternalMailboxException</B></A></UL>
+</UL>
+</UL>
+</UL>
+</UL>
+<H2>
+Interface Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">com.sun.jini.admin.<A HREF="../../../../com/sun/jini/admin/DestroyAdmin.html" title="interface in com.sun.jini.admin"><B>DestroyAdmin</B></A><UL>
+<LI TYPE="circle">com.sun.jini.mercury.<A HREF="../../../../com/sun/jini/mercury/MailboxAdmin.html" title="interface in com.sun.jini.mercury"><B>MailboxAdmin</B></A> (also extends net.jini.admin.<A HREF="../../../../net/jini/admin/JoinAdmin.html" title="interface in net.jini.admin">JoinAdmin</A>)
+</UL>
+<LI TYPE="circle">net.jini.admin.<A HREF="../../../../net/jini/admin/JoinAdmin.html" title="interface in net.jini.admin"><B>JoinAdmin</B></A><UL>
+<LI TYPE="circle">com.sun.jini.mercury.<A HREF="../../../../com/sun/jini/mercury/MailboxAdmin.html" title="interface in com.sun.jini.mercury"><B>MailboxAdmin</B></A> (also extends com.sun.jini.admin.<A HREF="../../../../com/sun/jini/admin/DestroyAdmin.html" title="interface in com.sun.jini.admin">DestroyAdmin</A>)
+</UL>
+</UL>
+<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="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&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/mahalo/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/sun/jini/norm/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/sun/jini/mercury/package-tree.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="package-tree.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>