river-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From build...@apache.org
Subject svn commit: r781589 [2/3] - in /websites/staging/river/trunk/content/river/doc/api/com/sun/jini/fiddler: ./ FiddlerAdmin.html FiddlerPermission.html package-frame.html package-summary.html package-tree.html package-use.html
Date Fri, 24 Dec 2010 22:06:43 GMT
Added: websites/staging/river/trunk/content/river/doc/api/com/sun/jini/fiddler/package-summary.html
==============================================================================
--- websites/staging/river/trunk/content/river/doc/api/com/sun/jini/fiddler/package-summary.html (added)
+++ websites/staging/river/trunk/content/river/doc/api/com/sun/jini/fiddler/package-summary.html Fri Dec 24 22:06:43 2010
@@ -0,0 +1,2781 @@
+<!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:26 EST 2010 -->
+<TITLE>
+com.sun.jini.fiddler (Apache River v2.1.2-SNAPSHOT API Documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.sun.jini.fiddler package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.sun.jini.fiddler (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/example/browser/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/sun/jini/landlord/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/fiddler/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.fiddler
+</H2>
+Provides the server side of an implementation of the lookup discovery service
+(see <code><A HREF="../../../../net/jini/discovery/LookupDiscoveryService.html" title="interface in net.jini.discovery"><CODE>LookupDiscoveryService</CODE></A></code>).
+<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/fiddler/FiddlerAdmin.html" title="interface in com.sun.jini.fiddler">FiddlerAdmin</A></B></TD>
+<TD>An administrative interface for the Fiddler implementation of the
+ lookup discovery service (see <A HREF="../../../../com/sun/jini/fiddler/package-summary.html">Fiddler</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>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/sun/jini/fiddler/FiddlerPermission.html" title="class in com.sun.jini.fiddler">FiddlerPermission</A></B></TD>
+<TD>Special purpose permission class, specific to the
+ Fiddler implementation of the lookup discovery service, that can be used
+ to express the access control policy for that service's backend server
+ when it is 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>
+<A NAME="package_description"><!-- --></A><H2>
+Package com.sun.jini.fiddler Description
+</H2>
+
+<P>
+Provides the server side of an implementation of the lookup discovery service
+(see <code><A HREF="../../../../net/jini/discovery/LookupDiscoveryService.html" title="interface in net.jini.discovery"><CODE>LookupDiscoveryService</CODE></A></code>). 
+Multiple client-side proxy classes are used to interact and communicate 
+with the backend server defined in the class 
+<code><CODE>FiddlerImpl</CODE></code>. 
+Those proxy classes are:
+<ul><li> <code><CODE>FiddlerProxy</CODE></code> - the proxy
+         for the <code><A HREF="../../../../net/jini/discovery/LookupDiscoveryService.html" title="interface in net.jini.discovery"><CODE>LookupDiscoveryService</CODE></A></code>
+         interface, which defines how clients register with the lookup discovery
+         service
+    <li> <code><CODE>FiddlerAdminProxy</CODE></code> - the proxy
+         for the <code><A HREF="../../../../com/sun/jini/fiddler/FiddlerAdmin.html" title="interface in com.sun.jini.fiddler"><CODE>FiddlerAdmin</CODE></A></code> interface, 
+         which specifies the methods through which clients can perform administrative
+         duties such as joining, changing the policy for persisting the service's
+         state, and gracefully shutting down the service
+    <li> <code><CODE>FiddlerRegistration</CODE></code> - the proxy 
+         for the <code><A HREF="../../../../net/jini/discovery/LookupDiscoveryRegistration.html" title="interface in net.jini.discovery"><CODE>LookupDiscoveryRegistration</CODE></A></code> 
+         interface, which specifies the methods through which clients can perform
+         duties such as group and locator management, state retrieval, and discarding 
+         discovered but unavailable lookup services so they will be eligible for 
+         re-discovery
+</ul>
+<p>
+Clients interact with the <i>Fiddler</i> implementation of the lookup
+discovery service by communicating with the backend server through the 
+above proxies. When a client makes a remote method invocation on one of 
+the proxies, the proxy makes a call on the corresponding method which is 
+specified in the <code><CODE>Fiddler</CODE></code> interface, 
+is implemented in <code><CODE>FiddlerImpl</CODE></code>, 
+and ultimately executes on the backend server.
+<p>
+The Fiddler implementation of the lookup discovery service can be run
+in one of the following modes:
+<ul><li> <i>transient</i> - when run in this mode, Fiddler will not persist its
+         state, and it is not <i>activatable</i>; that is, it will not be 
+         restarted by the activation system upon a system crash or failure.
+         To run Fiddler in this mode, specify the wrapper class 
+         <code>com.sun.jini.fiddler.TransientFiddlerImpl</code>, to the
+         <A HREF="../../../../com/sun/jini/start/NonActivatableServiceDescriptor.html" title="class in com.sun.jini.start"><CODE>NonActivatableServiceDescriptor</CODE></A>, as
+         required by the <A HREF="../../../../com/sun/jini/start/package-summary.html"><CODE>Service Starter</CODE></A> framework.
+    <li> <i>nonactivatable</i> - when run in this mode, Fiddler <i>does</i> persist
+         its state, but is not activatable. To run Fiddler in this mode, specify the
+         wrapper class <code>com.sun.jini.fiddler.NonActivatableFiddlerImpl</code>,
+         to the <A HREF="../../../../com/sun/jini/start/NonActivatableServiceDescriptor.html" title="class in com.sun.jini.start"><CODE>NonActivatableServiceDescriptor</CODE></A>, as
+         required by the <A HREF="../../../../com/sun/jini/start/package-summary.html"><CODE>Service Starter</CODE></A> framework.
+    <li> <i>activatable</i> - when run in this mode, Fiddler both persists its 
+         state, and is activatable. To run Fiddler in this mode, specify the
+         wrapper class <code>com.sun.jini.fiddler.ActivatableFiddlerImpl</code>,
+         to the <A HREF="../../../../com/sun/jini/start/SharedActivatableServiceDescriptor.html" title="class in com.sun.jini.start"><CODE>SharedActivatableServiceDescriptor</CODE></A>, as
+         required by the <A HREF="../../../../com/sun/jini/start/package-summary.html"><CODE>Service Starter</CODE></A> framework.
+</ul>
+<p>
+This document provides the following information about Fiddler:
+<ul><li> <a href="#fiddlerConfigEntries">Configuring Fiddler</a>
+    <li> <a href="#fiddlerAccessControl">Access Control Permission Targets</a>
+    <li> <a href="#fiddlerLoggers">Logging</a>
+    <li> <a href="#fiddlerExamples">Examples for Running Fiddler</a>
+</ul>
+
+
+<a name="fiddlerConfigEntries">
+
+<H2>Configuring Fiddler</H2>
+
+The Fiddler implementation of the lookup discovery service supports the
+configuration entries described below; where each configuration entry name
+is associated with the component name <code>com.sun.jini.fiddler</code>.
+Note that the configuration entries specified here are specific to the
+Fiddler implementation of the service. Also note that each entry whose name 
+is prefixed with the string "initial" is retrieved only when the service
+is started for the first time. All other entries, unless otherwise stated,
+are retrieved from the configuration when the service is started
+or restarted.
+
+<a name="activationIdPreparer">
+<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> Preparer for the proxy to the activation ID that is 
+             generated by the activation system and associated with 
+             the instance of the lookup discovery service that the 
+             activation system constructs. The value of this entry 
+             should not be <code>null</code>, and is only used when
+             the service is run in activatable mode. 
+             <p>
+             This service does not invoke any methods on the prepared
+             <code>ActivationID</code> directly; however, the service
+             passes the prepared <code>ActivationID</code> to clients
+             which may call its
+            <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 if they need to reactivate this service.
+  </table>
+
+<a name="activationSystemPreparer">
+<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> Preparer for the proxy to the activation system. The value of
+             this entry should not be <code>null</code>, and is only used
+             when the service is run in activatable mode. 
+             <p>
+             The following methods of the proxy returned by this preparer
+             are invoked by this service:
+             <ul>
+              <li><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>
+             </ul>
+  </table>
+
+<a name="discoveryManager">
+<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> <code>new 
+      <A HREF="../../../../net/jini/discovery/LookupDiscoveryManager.html#LookupDiscoveryManager(java.lang.String[], net.jini.core.discovery.LookupLocator[], net.jini.discovery.DiscoveryListener, net.jini.config.Configuration)"><CODE>LookupDiscoveryManager</CODE></A>(
+          <A HREF="../../../../net/jini/discovery/DiscoveryGroupManagement.html#NO_GROUPS"><CODE>DiscoveryGroupManagement.NO_GROUPS</CODE></A>,
+           new <A HREF="../../../../net/jini/core/discovery/LookupLocator.html" title="class in net.jini.core.discovery"><CODE>LookupLocator</CODE></A>[0], null, config)</code>
+
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description:
+        <td> The discovery manager that is passed to the join manager
+             that is employed by this service to advertise itself to
+             clients through lookup services. This discovery manager
+             must satisfy the following requirements: it must not be
+             <code>null</code>, it must be an instance of both the interface
+             <A HREF="../../../../net/jini/discovery/DiscoveryGroupManagement.html" title="interface in net.jini.discovery"><CODE>DiscoveryGroupManagement</CODE></A> and the
+             interface <A HREF="../../../../net/jini/discovery/DiscoveryLocatorManagement.html" title="interface in net.jini.discovery"><CODE>DiscoveryLocatorManagement</CODE></A>,
+             and it must be initially configured to discover
+             <code>DiscoveryGroupManagement.NO_GROUPS</code> and no locators
+             (<code>new </code><A HREF="../../../../net/jini/core/discovery/LookupLocator.html" title="class in net.jini.core.discovery"><CODE>LookupLocator</CODE></A>[0]).
+  </table>
+
+<a name="initialLeaseBound">
+<table summary="Describes the initialLeaseBound 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>initialLeaseBound</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*60*30</code>
+
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description:
+        <td> The initial value of the least upper bound applied to the
+             duration of each lease granted by this service.
+             <p>
+             Once the service has completed startup processing, the 
+             value of this item can be modified through the 
+             <code><A HREF="../../../../com/sun/jini/fiddler/FiddlerAdmin.html" title="interface in com.sun.jini.fiddler"><CODE>FiddlerAdmin</CODE></A></code> interface.
+             During startup, and upon any change through 
+             <code>com.sun.jini.fiddler.FiddlerAdmin</code>, the
+             persistent version of the service stores the value of this
+             item. After any crash-and-restart of the service, that stored
+             value - rather than this configuration item - is always
+             consulted during recovery.
+  </table>
+
+<a name="initialLookupAttributes">
+<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> <A HREF="../../../../net/jini/core/entry/Entry.html" title="interface in net.jini.core.entry"><CODE>Entry[]</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> Additional set of attributes the service will associate 
+             itself with when initially joining each targeted lookup 
+             service at startup. To determine the full set of 
+             attributes to use when initially joining lookup services, 
+             this set is combined with the set of attributes the 
+             service itself supplies internally 
+             (<code><A HREF="../../../../net/jini/lookup/entry/ServiceInfo.html" title="class in net.jini.lookup.entry"><CODE>ServiceInfo</CODE></A></code> and 
+             <code><A HREF="../../../../com/sun/jini/lookup/entry/BasicServiceType.html" title="class in com.sun.jini.lookup.entry"><CODE>BasicServiceType</CODE></A></code>
+             for this implementation of the service). A <code>null</code> 
+             value is equivalent to
+             an empty <code><A HREF="../../../../net/jini/core/entry/Entry.html" title="interface in net.jini.core.entry"><CODE>Entry</CODE></A></code> array.
+             This item is consulted only when the service starts up for 
+             the first time. 
+             <p>
+             During initial startup, the service joins all discovered 
+             lookup services, registering itself with the combined set 
+             of attributes described above. Once the initial join 
+             process is complete, the set of attributes with which the 
+             service is currently registered (and with which it is to 
+             perform all future joins) can be modified through the 
+             <code><A HREF="../../../../net/jini/admin/JoinAdmin.html" title="interface in net.jini.admin"><CODE>JoinAdmin</CODE></A></code> interface. 
+             During startup, and upon any change through
+             <A HREF="../../../../net/jini/admin/JoinAdmin.html" title="interface in net.jini.admin"><CODE>JoinAdmin</CODE></A>, the service persists the set of
+             attributes with which it is to join the lookup services
+             of interest. After any crash-and-restart of the service,
+             those persisted attributes - rather than this configuration
+             item - are always consulted during recovery.
+  </table>
+
+<a name="initialLookupGroups">
+<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> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang"><CODE>String</CODE></A>[]
+
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> <code>new 
+               <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang"><CODE>String</CODE></A>[] { "" } /* the public group */</code>
+
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description:
+        <td> Initial groups this service should discover and join. 
+             <p>
+             During initial startup, the service will retrieve the 
+             value contained in this item and directly configure itself 
+             to discover and join lookup services belonging to the 
+             given groups.
+             <p>
+             Once the service has completed startup processing, the 
+             set of groups to join can be modified through the 
+             <A HREF="../../../../net/jini/admin/JoinAdmin.html" title="interface in net.jini.admin"><CODE>JoinAdmin</CODE></A> interface. During startup, 
+             and upon any change through <A HREF="../../../../net/jini/admin/JoinAdmin.html" title="interface in net.jini.admin"><CODE>JoinAdmin</CODE></A>,
+             the service persists the set of groups to join. After any 
+             crash-and-restart of the service, those persisted group 
+             names - rather than this configuration item - are always 
+             consulted during recovery.
+  </table>
+
+<a name="initialLookupLocators">
+<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> <A HREF="../../../../net/jini/core/discovery/LookupLocator.html" title="class in net.jini.core.discovery"><CODE>LookupLocator</CODE></A>[]
+
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> <code>new 
+               <A HREF="../../../../net/jini/core/discovery/LookupLocator.html" title="class in net.jini.core.discovery"><CODE>LookupLocator</CODE></A>[0]</code>
+
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description:
+        <td> Initial locators of lookup services this service should 
+             discover and join.
+             <p>
+             During initial startup, the service will retrieve the 
+             value contained in this item and directly configure 
+             itself to discover and join the lookup services 
+             corresponding to the given locators.
+             <p>
+             Once the service has completed startup processing, the set
+             of locators to join can be modified through the 
+             <A HREF="../../../../net/jini/admin/JoinAdmin.html" title="interface in net.jini.admin"><CODE>JoinAdmin</CODE></A> interface. During startup, and 
+             upon any change through <A HREF="../../../../net/jini/admin/JoinAdmin.html" title="interface in net.jini.admin"><CODE>JoinAdmin</CODE></A>, the 
+             service persists the set of locators to join. After 
+             any crash-and-restart of the service, those persisted 
+             locators - rather than this configuration item - are 
+             always consulted during recovery.
+  </table>
+
+<a name="initialPersistenceSnapshotThreshold">
+<table summary="Describes the initialPersistenceSnapshotThreshold
+               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>initialPersistenceSnapshotThreshold</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> The initial value for the threshold used by the persistent
+             versions of the service when deciding whether or not to take
+             a snapshot of the service's state. This value represents the
+             number of log records that must have been written since the
+             last snapshot and before a new snapshot is taken.
+             <p>
+             Once the service has completed startup processing, the 
+             value of this item can be modified through the 
+             <code><A HREF="../../../../com/sun/jini/fiddler/FiddlerAdmin.html" title="interface in com.sun.jini.fiddler"><CODE>FiddlerAdmin</CODE></A></code> interface.
+             During startup, and upon any change through 
+             <code>com.sun.jini.fiddler.FiddlerAdmin</code>, the
+             persistent version of the service stores the value of this
+             item. After any crash-and-restart of the service, that stored
+             value - rather than this configuration item - is always
+             consulted during recovery.
+  </table>
+
+<a name="initialPersistenceSnapshotWeight">
+<table summary="Describes the initialPersistenceSnapshotWeight 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>initialPersistenceSnapshotWeight</code></font>
+
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <code>float</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> The initial value for the weight factor the persistent versions
+             of the service each applies when deciding when to take a
+             snapshot of the service's state. This value represents the
+             ratio of the size of the snapshot record to the size of the
+             log update record.
+             <p>
+             Once the service has completed startup processing, the 
+             value of this item can be modified through the 
+             <code><A HREF="../../../../com/sun/jini/fiddler/FiddlerAdmin.html" title="interface in com.sun.jini.fiddler"><CODE>FiddlerAdmin</CODE></A></code> interface.
+             During startup, and upon any change through 
+             <code>com.sun.jini.fiddler.FiddlerAdmin</code>, the
+             persistent version of the service stores the value of this
+             item. After any crash-and-restart of the service, that stored
+             value - rather than this configuration item - is always
+             consulted during recovery.
+  </table>
+
+<a name="leaseMax">
+<table summary="Describes the leaseMax 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>leaseMax</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>1000L*60*60*24*365*1000</code>
+
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description:
+        <td> When re-setting the bound on lease durations, that bound 
+             cannot be set to a value larger than this value.
+  </table>
+
+<a name="listenerPreparer">
+<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 the proxies to the remote event listeners 
+             that are registered with this service. This preparer is
+             used to prepare those listeners only when they are initially
+             registered with this service. The value of this entry 
+             should not be <code>null</code>, and the preparer must return
+             a listener that is equal to the original listener as determined
+             by <code>Object.equals</code>. 
+             <p>
+             This preparer should perform all operations required to use a
+             newly received listener, typically including verifying trust
+             in the listener proxy, granting permissions, and setting
+             constraints. The prepared listener will be retained by the
+             service in its persistent store.
+             <p>
+             The following methods of the proxy returned by this preparer
+             are invoked by this service:
+             <ul>
+              <li><A HREF="../../../../net/jini/core/event/RemoteEventListener.html#notify(net.jini.core.event.RemoteEvent)"><CODE>notify</CODE></A>
+             </ul>
+  </table>
+
+<a name="locatorToDiscoverPreparer">
+<table summary="Describes the locatorToDiscoverPreparer 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>locatorToDiscoverPreparer</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 the lookup locators of the lookup services
+             this service is to discover on behalf of the clients that
+             register with it. This preparer is used to prepare those
+             locators only when they are initially input to this service;
+             either when a client first registers with this service, or
+             later, when the registration's locators-of-interest are
+             changed through the <code>LookupDiscoveryRegistration</code>.
+             The value of this entry should not be <code>null</code>.
+             <p>
+             This preparer should perform all operations required to use a
+             newly received lookup locator, typically including verifying
+             trust in the listener proxy, granting permissions, and setting
+             constraints. The prepared lookup locator will be retained by
+             the service in its persistent store.
+             <p>
+             Currently, none of the methods on the lookup locator returned
+             by this preparer are invoked by this implementation of the
+             service.
+  </table>
+
+<a name="locatorToJoinPreparer">
+<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> Preparer for the lookup locators of the lookup services
+             the service itself is to discover and join. This preparer is
+             used to prepare those locators only when they are initially
+             associated with this service; either when this service
+             is first started, or later, when the locators are changed
+             through the <A HREF="../../../../net/jini/admin/JoinAdmin.html" title="interface in net.jini.admin"><CODE>JoinAdmin</CODE></A> interface.
+             The value of this entry should not be <code>null</code>.
+             <p>
+             This preparer should perform all operations required to use a
+             newly received lookup locator, typically including verifying
+             trust in the listener proxy, granting permissions, 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
+             <i>not</i> be prepared by this preparer.
+             <p>
+             When joining any lookup service, this service may invoke
+             (or use the constraints assigned to) the following methods of
+             the <code>LookupLocator</code> instances returned by this
+             preparer:
+             <ul>
+              <li><A HREF="../../../../net/jini/core/discovery/LookupLocator.html#getRegistrar()"><CODE>getRegistrar</CODE></A>
+             </ul>
+  </table>
+
+<a name="loginContext">
+<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> no login context
+
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description:
+        <td> The JAAS login context to use for performing a JAAS 
+             login. This context also provides the <code>Subject</code> 
+             the service will run as after the service has successfully 
+             logged in. If the value of this entry is <code>null</code>,
+             no JAAS login is performed.
+  </table>
+
+<a name="persistenceDirectory">
+<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> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html" title="class or interface in java.lang"><CODE>String</CODE></A>
+
+    <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 path of the directory in which this service will store
+             its persistent state. This entry is required only for
+             persistent (activatable and nonactivatable) implementations
+             of this service; otherwise it is not used. The value of this
+             entry should not be <code>null</code>, and the associated 
+             directory should not already exist. That directory will be
+             deleted if the service is destroyed through the 
+             <code><A HREF="../../../../com/sun/jini/admin/DestroyAdmin.html" title="interface in com.sun.jini.admin"><CODE>DestroyAdmin</CODE></A></code> 
+             interface.
+  </table>
+
+<a name="recoveredListenerPreparer">
+<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 the proxies to the remote event listeners 
+             that are registered with this service. This preparer is
+             used to prepare those listeners only after they have been
+             previously prepared; for example, upon recovery of the
+             service's persisted state. The value of this entry should
+             not be <code>null</code>, and is only used by the persistent
+             versions of this service (activatable and nonactivatable
+             modes).
+             <p>
+             This preparer needs to perform only those operations whose
+             results are not retained in the listener proxy itself, but
+             which need need to be performed in the environment in which
+             the proxy is unmarshalled; typically the granting of permissions.
+             <p>
+             The following methods of the proxy returned by this preparer
+             are invoked by this service:
+             <ul>
+              <li><A HREF="../../../../net/jini/core/event/RemoteEventListener.html#notify(net.jini.core.event.RemoteEvent)"><CODE>notify</CODE></A>
+             </ul>
+  </table>
+
+<a name="recoveredLocatorToDiscoverPreparer">
+<table summary="Describes the recoveredLocatorToDiscoverPreparer 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>recoveredLocatorToDiscoverPreparer</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 the lookup locators of the lookup services
+             this service is to discover on behalf of the clients that
+             register with it. This preparer is used to prepare those
+             locators only after they have been previously prepared;
+             for example, upon recovery of the service's persisted state.
+             The value of this entry should not be <code>null</code>,
+             and is only used by the persistent versions of this service
+             (activatable and nonactivatable modes).
+             <p>
+             This preparer should perform only those operations whose
+             results are not retained in the lookup locator itself, but
+             which need to be performed in the environment in which the 
+             proxy is unmarshalled; typically the granting of permissions.
+  </table>
+
+<a name="recoveredLocatorToJoinPreparer">
+<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> Preparer for the lookup locators of the lookup services
+             the service itself is to discover and join. This preparer
+             is used to prepare those locators only after they have been
+             previously prepared; for example, upon recovery of the
+             service's persisted state. The value of this entry should
+             not be <code>null</code>, and is only used by the persistent
+             versions of this service (activatable and nonactivatable modes).
+             <p>
+             This preparer should perform only those operations whose
+             results are not retained in the lookup locator itself, but
+             which need to be performed in the environment in which the 
+             proxy is unmarshalled; typically the granting of permissions.
+             <p>
+             The <code>LookupLocator</code> instances obtained from the
+             <code>initialLookupLocators</code> are prepared by this 
+             preparer only during recovery.
+  </table>
+
+<a name="serverExporter">
+<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> Activatable case - <br>
+               <code> new 
+               <A HREF="../../../../net/jini/activation/ActivationExporter.html#ActivationExporter(java.rmi.activation.ActivationID, net.jini.export.Exporter)"><CODE>ActivationExporter</CODE></A>(<br>
+                             &nbsp &nbsp &nbsp activationID,<br>
+                             &nbsp &nbsp &nbsp new <A HREF="../../../../net/jini/jeri/BasicJeriExporter.html#BasicJeriExporter(net.jini.jeri.ServerEndpoint, net.jini.jeri.InvocationLayerFactory, boolean, boolean)"><CODE>BasicJeriExporter</CODE></A>(<br>
+                                                   &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp
+                                                   <A HREF="../../../../net/jini/jeri/tcp/TcpServerEndpoint.html#getInstance(int)"><CODE>TcpServerEndpoint.getInstance</CODE></A>(0),<br>
+                                                   &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp 
+                                                   new <A HREF="../../../../net/jini/jeri/BasicILFactory.html" title="class in net.jini.jeri"><CODE>BasicILFactory</CODE></A>(),<br>
+                                                   &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp 
+                                                   false,<br>
+                                                   &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp 
+                                                   true) )</code>
+               <p>Nonactivatable case - <br>
+               <code> new 
+                 <A HREF="../../../../net/jini/jeri/BasicJeriExporter.html#BasicJeriExporter(net.jini.jeri.ServerEndpoint, net.jini.jeri.InvocationLayerFactory, boolean, boolean)"><CODE>BasicJeriExporter</CODE></A>(<br>
+                    &nbsp &nbsp &nbsp <A HREF="../../../../net/jini/jeri/tcp/TcpServerEndpoint.html#getInstance(int)"><CODE>TcpServerEndpoint.getInstance</CODE></A>(0),<br>
+                    &nbsp &nbsp &nbsp new <A HREF="../../../../net/jini/jeri/BasicILFactory.html" title="class in net.jini.jeri"><CODE>BasicILFactory</CODE></A>(),<br>
+                    &nbsp &nbsp &nbsp false,<br>
+                    &nbsp &nbsp &nbsp true)</code>
+              <p>
+
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description:
+        <td> The object to use for exporting this service. The value of this
+             entry should not be <code>null</code>. When this service is run
+             in the activatable mode, the call to <code>getEntry</code> will
+             supply the activation ID in the <code>data</code> argument.
+  </table>
+
+<a name="taskManager">
+<table summary="Describes the taskManager 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>taskManager</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 
+              <A HREF="../../../../com/sun/jini/thread/TaskManager.html#TaskManager()"><CODE>TaskManager</CODE></A>(10, (15*1000), 1.0f)</code>
+
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description:
+        <td> The object that pools and manages the various threads 
+             executed by this implementation of the service. The 
+             default manager creates a maximum of 10 threads, waits 
+             15 seconds before removing idle threads, and uses a load 
+             factor of 1.0 when determining whether to create a new 
+             thread.
+  </table>
+<p>
+
+The configuration passed to Fiddler will be passed to one or more
+of the configurable classes listed below. Thus, the same configuration 
+used to configure Fiddler is also used to configure instances of the 
+classes used by Fiddler to perform that service's lookup discovery and 
+join management duties. For information on the configuration entries 
+supported by those classes, refer to the documentation associated with 
+each class.
+<p>
+<ul>
+  <li> <a href="../../../../net/jini/discovery/LookupDiscovery.html" title="class in net.jini.discovery"><code>LookupDiscovery</code></a>,
+       employed by the service to use the multicast discovery protocol to discover the group(s) of lookup services the service should
+       join, as specified through the <a href="#discoveryManager"><code>discoveryManager</code></a> configuration entry
+  <li> <a href="../../../../net/jini/discovery/LookupLocatorDiscovery.html" title="class in net.jini.discovery"><code>LookupLocatorDiscovery</code></a>,
+       employed by the service to use the unicast discovery protocol to discover the specific lookup service(s) the service
+       should join, as specified through the <a href="#discoveryManager"><code>discoveryManager</code></a> configuration entry
+  <li> <a href="../../../../net/jini/lookup/JoinManager.html" title="class in net.jini.lookup"><code>JoinManager</code></a>,
+       employed by the service to manage the service's <i>join state</i> related to the lookup service(s) discovered through
+       multicast and/or unicast discovery
+</ul>
+<p>
+
+<a name="fiddlerAccessControl">
+<h2>Access Control Permission Targets</h2>
+</a>
+
+The following table lists the names of the remote methods provided
+by the proxy objects to the Fiddler backend server, and each method's
+corresponding target name, which can be used to enforce access control
+using <A HREF="../../../../com/sun/jini/fiddler/FiddlerPermission.html" title="class in com.sun.jini.fiddler"><CODE>FiddlerPermission</CODE></A>:
+<p>
+<table border="1" cellpadding="5"
+       summary="The proxy methods and associated target names for
+       FiddlerPermission.">
+
+<tr> <th> Proxy Method <th> Target Name
+
+<!-- LookupDiscoveryService -->
+
+<tr> <td> <A HREF="../../../../net/jini/discovery/LookupDiscoveryService.html#register(java.lang.String[], net.jini.core.discovery.LookupLocator[], net.jini.core.event.RemoteEventListener, java.rmi.MarshalledObject, long)"><CODE>LookupDiscoveryService.register</CODE></A>
+     <td> register
+
+<!-- LookupDiscoveryRegistration -->
+
+<tr> <td> <A HREF="../../../../net/jini/discovery/LookupDiscoveryRegistration.html#getRegistrars()"><CODE>LookupDiscoveryRegistration.getRegistrars</CODE></A>
+     <td> getRegistrars
+<tr> <td> <A HREF="../../../../net/jini/discovery/LookupDiscoveryRegistration.html#getGroups()"><CODE>LookupDiscoveryRegistration.getGroups</CODE></A>
+     <td> getGroups
+<tr> <td> <A HREF="../../../../net/jini/discovery/LookupDiscoveryRegistration.html#getLocators()"><CODE>LookupDiscoveryRegistration.getLocators</CODE></A>
+     <td> getLocators
+<tr> <td> <A HREF="../../../../net/jini/discovery/LookupDiscoveryRegistration.html#addGroups(java.lang.String[])"><CODE>LookupDiscoveryRegistration.addGroups</CODE></A>
+     <td> addGroups
+<tr> <td> <A HREF="../../../../net/jini/discovery/LookupDiscoveryRegistration.html#setGroups(java.lang.String[])"><CODE>LookupDiscoveryRegistration.setGroups</CODE></A>
+     <td> setGroups
+<tr> <td> <A HREF="../../../../net/jini/discovery/LookupDiscoveryRegistration.html#removeGroups(java.lang.String[])"><CODE>LookupDiscoveryRegistration.removeGroups</CODE></A>
+     <td> removeGroups
+<tr> <td> <A HREF="../../../../net/jini/discovery/LookupDiscoveryRegistration.html#addLocators(net.jini.core.discovery.LookupLocator[])"><CODE>LookupDiscoveryRegistration.addLocators</CODE></A>
+     <td> addLocators
+<tr> <td> <A HREF="../../../../net/jini/discovery/LookupDiscoveryRegistration.html#setLocators(net.jini.core.discovery.LookupLocator[])"><CODE>LookupDiscoveryRegistration.setLocators</CODE></A>
+     <td> setLocators
+<tr> <td> <A HREF="../../../../net/jini/discovery/LookupDiscoveryRegistration.html#removeLocators(net.jini.core.discovery.LookupLocator[])"><CODE>LookupDiscoveryRegistration.removeLocators</CODE></A>
+     <td> removeLocators
+<tr> <td> <A HREF="../../../../net/jini/discovery/LookupDiscoveryRegistration.html#discard(net.jini.core.lookup.ServiceRegistrar)"><CODE>LookupDiscoveryRegistration.discard</CODE></A>
+     <td> discard
+
+<!-- Lease and LeaseMap -->
+
+<tr> <td> <A HREF="../../../../net/jini/core/lease/Lease.html#renew(long)"><CODE>Lease.renew</CODE></A>
+     <td> renewLease
+<tr> <td> <A HREF="../../../../net/jini/core/lease/Lease.html#cancel()"><CODE>Lease.cancel</CODE></A>
+     <td> cancelLease
+<tr> <td> <A HREF="../../../../net/jini/core/lease/LeaseMap.html#renewAll()"><CODE>LeaseMap.renewAll</CODE></A>
+     <td> renewLeases
+<tr> <td> <A HREF="../../../../net/jini/core/lease/LeaseMap.html#cancelAll()"><CODE>LeaseMap.cancelAll</CODE></A>
+     <td> cancelLeases
+
+<!-- Administrable -->
+
+<tr> <td> <A HREF="../../../../net/jini/admin/Administrable.html#getAdmin()"><CODE>Administrable.getAdmin</CODE></A>
+     <td> getAdmin
+
+<!-- FiddlerAdmin -->
+
+<tr> <td> <A HREF="../../../../com/sun/jini/fiddler/FiddlerAdmin.html#setLeaseBound(long)"><CODE>FiddlerAdmin.setLeaseBound</CODE></A>
+     <td> setLeaseBound
+<tr> <td> <A HREF="../../../../com/sun/jini/fiddler/FiddlerAdmin.html#getLeaseBound()"><CODE>FiddlerAdmin.getLeaseBound</CODE></A>
+     <td> getLeaseBound
+<tr> <td> <A HREF="../../../../com/sun/jini/fiddler/FiddlerAdmin.html#setPersistenceSnapshotWeight(float)"><CODE>FiddlerAdmin.setPersistenceSnapshotWeight</CODE></A>
+     <td> setPersistenceSnapshotWeight
+<tr> <td> <A HREF="../../../../com/sun/jini/fiddler/FiddlerAdmin.html#getPersistenceSnapshotWeight()"><CODE>FiddlerAdmin.getPersistenceSnapshotWeight</CODE></A>
+     <td> getPersistenceSnapshotWeight
+<tr> <td> <A HREF="../../../../com/sun/jini/fiddler/FiddlerAdmin.html#setPersistenceSnapshotThreshold(int)"><CODE>FiddlerAdmin.setPersistenceSnapshotThreshold</CODE></A>
+     <td> setPersistenceSnapshotThreshold
+<tr> <td> <A HREF="../../../../com/sun/jini/fiddler/FiddlerAdmin.html#getPersistenceSnapshotThreshold()"><CODE>FiddlerAdmin.getPersistenceSnapshotThreshold</CODE></A>
+     <td> getPersistenceSnapshotThreshold
+
+<!-- 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>
+
+<a name="fiddlerLoggers">
+
+<H2>Loggers Employed By Fiddler</H2>
+
+This implementation of the lookup discovery service (Fiddler) uses a separate
+<code><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></code> for each type of information 
+it logs. The name of each <code>Logger</code> is a dot-separated concatenation
+of the implementation package name, <code>com.sun.jini.fiddler</code>, with 
+a descriptive string. The list below identifies the descriptive part of 
+each <code>Logger</code> name, along with a brief description of the 
+information that will be sent to the associated Logger.
+<ul>
+  <li> <a href="#discardLogger"><code>discard</code></a> - trace information
+       related to lookup services that are discarded by this service
+  <li> <a href="#eventsLogger"><code>events</code></a> - trace information
+       related to events sent or received by this service
+
+  <li> <a href="#discardLogger"><code>groupsLogger</code></a> - trace 
+       information related to the groups this service is attempting to discover
+       on behalf of its clients
+
+  <li> <a href="#leaseLogger"><code>lease</code></a> - trace information
+       related to the leases granted or received by this service
+
+  <li> <a href="#locatorsLogger"><code>locators</code></a> - trace information
+       related to the locators this service is attempting to discover on
+       behalf of its clients
+
+  <li> <a href="#persistLogger"><code>persist</code></a> - trace information
+       related to the state persistence mechanism employed by the implementation
+       of this service
+
+  <li> <a href="#problemLogger"><code>problem</code></a> - serious, unexpected
+       problems that the user/deployer/administrator needs to know about
+
+  <li> <a href="#registrationLogger"><code>registration</code></a> - trace
+       information related to the registrations granted by or to this service
+
+  <li> <a href="#startupLogger"><code>startup</code></a> - one time trace
+       information such as startup/deactivation/shutdown notices
+
+  <li> <a href="#tasksLogger"><code>discard</code></a> - trace information
+       related to the tasks executed by this implementation of the service
+</ul>
+<p>
+For each <code>Logger</code> named above, the following tables describe the
+information that will be logged, and the levels at which that information
+will be logged:
+<p>
+<!-- discard logger -->
+<a name="discardLogger">
+   <table border="1" cellpadding="5"
+          summary="Describes the log levels for the information this 
+                  implementation of the lookup discovery service logs
+                  to the Logger named com.sun.jini.fiddler.discard">
+   <caption halign="center" valign="top"><b><code>com.sun.jini.fiddler.discard</code></b></caption>
+   <tr>
+     <th scope="col">Level</th> 
+     <th scope="col">Description</th>
+   </tr>
+   <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>
+     <td>
+       trace information related to lookup services that are discarded by this
+       service
+     </td>
+   </tr>
+   </table>
+
+<p>
+<!-- events logger -->
+<a name="eventsLogger">
+   <table border="1" cellpadding="5"
+          summary="Describes the log levels for the information this 
+                  implementation of the lookup discovery service logs
+                  to the Logger named com.sun.jini.fiddler.events">
+   <caption halign="center" valign="top"><b><code>com.sun.jini.fiddler.events</code></b></caption>
+   <tr>
+     <th scope="col">Level</th> 
+     <th scope="col">Description</th>
+   </tr>
+   <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>
+     <td>
+       trace information related to events sent or received by this service
+     </td>
+   </tr>
+   </table>
+
+<p>
+<!-- groups logger -->
+<a name="groupsLogger">
+   <table border="1" cellpadding="5"
+          summary="Describes the log levels for the information this 
+                  implementation of the lookup discovery service logs
+                  to the Logger named com.sun.jini.fiddler.groups">
+   <caption halign="center" valign="top"><b><code>com.sun.jini.fiddler.groups</code></b></caption>
+   <tr>
+     <th scope="col">Level</th> 
+     <th scope="col">Description</th>
+   </tr>
+   <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>
+     <td>
+       trace information related to the groups this service is attempting to
+       discover
+     </td>
+   </tr>
+   </table>
+
+<p>
+<!-- lease logger -->
+<a name="leaseLogger">
+   <table border="1" cellpadding="5"
+          summary="Describes the log levels for the information this 
+                  implementation of the lookup discovery service logs
+                  to the Logger named com.sun.jini.fiddler.lease">
+   <caption halign="center" valign="top"><b><code>com.sun.jini.fiddler.lease</code></b></caption>
+   <tr>
+     <th scope="col">Level</th> 
+     <th scope="col">Description</th>
+   </tr>
+   <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>
+     <td>
+       trace information related to the leases granted or received by this
+       service
+     </td>
+   </tr>
+   </table>
+
+<p>
+<!-- locators logger -->
+<a name="locatorsLogger">
+   <table border="1" cellpadding="5"
+          summary="Describes the log levels for the information this 
+                  implementation of the lookup discovery service logs
+                  to the Logger named com.sun.jini.fiddler.locators">
+   <caption halign="center" valign="top"><b><code>com.sun.jini.fiddler.locator</code></b></caption>
+   <tr>
+     <th scope="col">Level</th> 
+     <th scope="col">Description</th>
+   </tr>
+     <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>
+     <td>
+       trace information related to the locators this service is attempting to
+       discover on behalf of its clients
+     </td>
+   </tr>
+   </table>
+
+<p>
+<!-- persist logger -->
+<a name="persistLogger">
+   <table border="1" cellpadding="5"
+          summary="Describes the log levels for the information this 
+                  implementation of the lookup discovery service logs
+                  to the Logger named com.sun.jini.fiddler.persist">
+   <caption halign="center" valign="top"><b><code>com.sun.jini.fiddler.persist</code></b></caption>
+   <tr>
+     <th scope="col">Level</th> 
+     <th scope="col">Description</th>
+   </tr>
+   <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>
+     <td>
+       trace information related to the state persistence mechanism employed
+       by the implementation of this service
+     </td>
+   </tr>
+   </table>
+
+<p>
+<!-- problem logger -->
+<a name="problemLogger">
+   <table border="1" cellpadding="5"
+         summary="Describes the log levels for the information this 
+                 implementation of the lookup discovery service logs
+                 to the Logger named com.sun.jini.fiddler.problem">
+   <caption halign="center" valign="top"><b><code>com.sun.jini.fiddler.problem</code></b></caption>
+   <tr>
+     <th scope="col">Level</th> 
+     <th scope="col">Description</th>
+   </tr>
+   <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>
+     <td>
+       problems which prevent startup or cause shutdown of the service, or
+       which generally prevent the service from continuing with its 
+       processing
+     </td>
+   </tr>
+   <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>
+     <td>
+       problems that allow the service to continue with its processing,
+       but in a "crippled" state that might be serious enough to affect
+       other operations in the system
+     </td>
+   </tr>
+   <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>
+     <td>
+       serious, unexpected "problems" that occur during processing that the
+       user/deployer/administrator needs to know about, but which doesn't
+       necessarily indicate problems with other operations in the system
+     </td>
+   </tr>
+   <tr>
+     <td><A HREF="../../../../com/sun/jini/logging/Levels.html#FAILED"><CODE>FAILED</CODE></A></td>
+     <td>
+       exceptions that occur while retrieving the locator of a discovered
+       lookup service
+     </td>
+   </tr>
+   <tr>
+     <td><A HREF="../../../../com/sun/jini/logging/Levels.html#HANDLED"><CODE>HANDLED</CODE></A></td>
+     <td>
+       problems that occur while attempting to prepare locators or log
+       information about events the service sends
+     </td>
+   </tr>
+   </table>
+
+<p>
+<!-- registration logger -->
+<a name="registrationLogger">
+   <table border="1" cellpadding="5"
+          summary="Describes the log levels for the information this 
+                  implementation of the lookup discovery service logs
+                  to the Logger named com.sun.jini.fiddler.registration">
+   <caption halign="center" valign="top"><b><code>com.sun.jini.fiddler.registration</code></b></caption>
+   <tr>
+     <th scope="col">Level</th> 
+     <th scope="col">Description</th>   
+   </tr>
+   <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>
+     <td>
+       trace information related to the registrations granted by or to this
+       service
+     </td>
+   </tr>
+   </table>
+
+<p>
+<!-- startup logger -->
+<a name="startupLogger">
+   <table border="1" cellpadding="5"
+          summary="Describes the log levels for the information this 
+                  implementation of the lookup discovery service logs
+                  to the Logger named com.sun.jini.fiddler.startup">
+   <caption halign="center" valign="top"><b><code>com.sun.jini.fiddler.startup</code></b></caption>
+   <tr>
+     <th scope="col">Level</th> 
+     <th scope="col">Description</th>
+   </tr>
+   <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>
+     <td>
+       one time trace information, such as startup/deactivation/shutdown
+       notices
+     </td>
+   </tr>
+   </table>
+
+<p>
+<!-- tasks logger -->
+<a name="tasksLogger">
+   <table border="1" cellpadding="5"
+          summary="Describes the log levels for the information this 
+                  implementation of the lookup discovery service logs
+                  to the Logger named com.sun.jini.fiddler.tasks">
+   <caption halign="center" valign="top"><b><code>com.sun.jini.fiddler.tasks</code></b></caption>
+   <tr>
+     <th scope="col">Level</th> 
+     <th scope="col">Description</th>
+   </tr>
+   <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>
+     <td>
+       trace information related to the tasks executed by this implementation
+       of the service
+     </td>
+   </tr>
+   </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 logging levels <code>HANDLED</code> and <code>FAILED</code> in standard 
+logging configuration files.
+<p>
+<a name="fiddlerExamples">
+<h2>Examples for Running Fiddler</h2>
+</a>
+
+This section provides example command lines, configuration files, and
+security policy files for running Fiddler in several configurations.
+These examples make the following assumptions:
+
+<ul> <li> The examples are being run on UNIX platforms.
+     <li> The Java(TM) 2 Platform, Standard Edition, has been installed
+          in the directory <b><i>java_install_dir</i></b>
+     <li> The Apache River release has been
+          installed in the directory <b><i>jini_install_dir</i></b>
+     <li> The example configuration and policy files described below are
+          available in the directories <b><i>example_install_dir/config</i></b>
+          and <b><i>example_install_dir/policy</i></b> respectively
+     <li> The name of the host on which the service will run is <b><i>myHost</i></b>
+     <li> The name of the lookup group the service will discover and join 
+          is <b><i>myGroup.myCompany.com</i></b>
+     <li> The HTTP server for download JAR files will listen for requests
+          on port <b><i>8080</i></b>
+</ul>
+<p>
+To use these examples to start Fiddler on your system, you will need to
+make one or more modifications that are specific to your system. The list
+below describes the sort of modifications you may need to make in order
+for the examples to run on your system. 
+
+<ul> <li> Change all occurrences of <b><i>myHost</i></b> to the
+          actual name of the host on which the service is to run.
+     <li> Replace all occurrences of <b><i>java_install_dir</i></b>
+          with the path to the 1.4 version (or above) of the Java 2 
+          Platform installed on your system.
+     <li> Replace all occurrences of <b><i>jini_install_dir</i></b>
+          with the path to the desired version of the Apache River release.
+     <li> Replace all occurrences of <b><i>example_install_dir/config</i></b>
+          and <b><i>example_install_dir/policy</i></b> with the appropriate
+          path to the example configuration and policy files.
+     <li> With respect to the <i>command lines</i> provided below, 
+          if running on Windows, replace the UNIX file system separator
+          <b>'/'</b> with the Windows separator (<b>'\'</b>),
+          prepend the appropriate drive-letter-with-colon on all directory path
+          file specifications, and replace the various install directories if
+          appropriate.
+     <li> With respect to the configuration and policy files, if running
+          on Windows, prepend the appropriate drive-letter-with-colon on 
+          all directory path file specifications, and replace install
+          directories where appropriate.
+</ul>
+<p>
+Note that when running on Windows, unlike the command lines, it is 
+<i><b>not</b></i> necessary to replace the UNIX file system separator 
+with the Windows separator in the example configuration and policy files
+provided here. This is because those files specify directory paths using 
+the special token for the <code>file.separator</code> system property 
+(<b>'${/}'</b>); which provides for the automatic substitution of the 
+appropriate separator, depending on the OS.
+<p>
+<a name="httpServer">
+<h3>HTTP Server</h3>
+
+For each of the possible modes in which Fiddler executes, an HTTP server
+must be running that makes available the necessary download JAR files from
+the <b><i>jini_install_dir/lib-dl</i></b> directory. Note that <b><i>the same 
+HTTP server can be used for all of the examples</i></b> described below. 
+That is, once started, the HTTP server does <b><i>not</i></b> need to be 
+stopped and restarted for each mode in which the service runs.
+<p>
+If you choose to use the HTTP server supplied with the Apache River
+release, then the following command will start that daemon in <i>verbose</i>
+mode, listening for requests on port <code>8080</code>, and serving files 
+from the root directory, <b><i>jini_install_dir/lib-dl</i></b>:
+
+<blockquote>
+<pre>
+java_install_dir/bin/java -jar jini_install_dir/lib/classserver.jar \
+                               -dir jini_install_dir/lib-dl \
+                               -port 8080 \
+                               -verbose
+</pre>
+</blockquote>
+Note that rather than executing the HTTP server directly as shown above,
+it can also be run as a transient service using the
+<A HREF="../../../../com/sun/jini/start/package-summary.html"><CODE>Service Starter</CODE></A> framework. For details on
+how to do this, refer to the 
+<a href="../../../../com/sun/jini/tool/ClassServer.html" 
+title="class in com.sun.jini.tool"><code>ClassServer</code></a>
+documentation.
+<p>
+<a name="executionModes">
+<h3>The Execution Modes of the Service</h3>
+
+As stated above, Fiddler can be run in one of the following three modes:
+<ul><li>transient (not persistent and not activatable)
+    <li>nonactivatable (persistent but not activatable)
+    <li>activatable (persistent and activatable)
+</ul>
+<p>
+One of the significant features of Jini Network Technology is that it is 
+designed to allow for configuration and pluggability of the remote communication
+framework itself, as well as the transport employed by that framework.
+Because of this, the list of framework/transport combinations that Fiddler 
+can be configured to use for its remote communication, in conjunction with
+the mode in which Fiddler is configured to run, is essentially
+boundless. The flexibility inherent in the configuration mechanism allows 
+Fiddler not only to be configured to employ any <i>existing</i> remote 
+communication framework and transport, but also any <i>future</i> framework 
+or transport that may be defined. The current release of Apache River
+provides implementations for the following remote communication frameworks 
+and transports:
+<ul><li>JRMP over TCP/IP
+    <li>Jini Extensible Remote Invocation (<i>Jini ERI</i>) over TCP/IP (the default for all modes)
+    <li>Jini ERI over HTTP
+    <li>Jini ERI over HTTPS
+    <li>Jini ERI over SSL/TLS (JSSE)
+    <li>Jini ERI over Kerberos/GSS-API (JGSS)
+</ul>
+<p>
+So as not to exceed the scope of this document, the examples below
+are limited to the following combinations of mode and remote
+communication mechanism:
+<ul>
+  <li> <a href="#transientJRMP"><code>transient mode using JRMP over TCP/IP</code></a>
+  <li> <a href="#transientJERI"><code>transient mode using Jini ERI over TCP/IP</code></a>
+  <li> <a href="#nonactivatableJERI"><code>nonactivatable mode using Jini ERI over TCP/IP</code></a>
+  <li> <a href="#activatableJRMP"><code>activatable mode using JRMP over TCP/IP</code></a>
+  <li> <a href="#activatableJERI"><code>activatable mode using Jini ERI over TCP/IP</code></a>
+</ul>
+For detailed examples of the other combinations, see the
+<a href="../../../../../../source/src/com/sun/jini/example/hello/index.html">hello example</a>
+supplied with the Apache River release.
+<p>
+
+<a name="activation">
+<h3>Activation</h3>
+In order to run the activatable mode of this service, an activation
+system must be running on the same host as the service. For previous
+releases, RMID was used for this purpose. Although RMID 
+may still be used under certain circumstances, it is recommended that the 
+<a href="../../../../com/sun/jini/phoenix/package-summary.html"><code>com.sun.jini.phoenix</code></a>
+implementation supplied with the Apache River release now be used for all 
+activatable configurations of the service.
+<p>
+For the two activatable examples below, command lines for starting
+and stopping Phoenix, along with an associated set of example configuration 
+and policy files are presented. Note that, as with the HTTP server, Phoenix 
+may also be started using the <A HREF="../../../../com/sun/jini/start/package-summary.html"><CODE>Service Starter</CODE></A> 
+framework (as described 
+<a href="../../../../com/sun/jini/phoenix/package-summary.html"><code>here</code></a>).
+<p>
+<h3>Configuration and Security Policy Files</h3>
+In each of the examples below, the service requires a configuration file
+and a security policy file. Additionally, because the Service Starter 
+framework is used to start the service, a separate configuration and
+policy file - different than that provided for the service - are provided 
+for that framework. Finally, for the activatable mode of the service, not 
+only are configuration files and a security policy file required to run 
+Phoenix, but because the Service Starter framework executes the service in 
+an <code><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/activation/ActivationGroup.html" title="class or interface in java.rmi.activation"><CODE>ActivationGroup</CODE></A></code>
+(referred to as a <i>shared VM</i>) that may be shared with other services,
+a configuration and policy file are both required to be defined for the 
+shared VM as well.
+<p>
+The table below shows what is required for each example configuration of 
+Fiddler presented here:
+<p>
+<table border="1" cellpadding="5"
+         summary="Describes the various configuration files and security
+                  policy that must be provided to run the service">
+   <caption halign="center" valign="top"><b><code>Example Configuration Matrix</code></b></caption>
+
+   <tr>
+     <th><a href="#executionModes"><b>Mode<br>RMI</b></a></th>
+     <th>Daemons</th>
+     <th>Configuration</th>
+     <th>Security Policy</th>
+   </tr>
+
+   <tr>
+     <th><a href="#transientJRMP"><code>Transient<br>JRMP</code></a></th>
+     <td><a href="#httpServer"><code>HTTPD</code></a></td>
+     <td><a href="#jrmpStartTransientConfig"><code>jrmp-start-transient.config</code></a><br> 
+         <a href="#jrmpTransientFiddlerConfig"><code>jrmp-transient-fiddler.config</code></a>
+     </td>
+     <td><a href="#jrmpStartTransientPolicy"><code>jrmp-start-transient.policy</code></a><br> 
+         <a href="#jrmpTransientFiddlerPolicy"><code>jrmp-transient-fiddler.policy</code></a>
+     </td>
+   </tr>
+
+   <tr>
+     <th><a href="#transientJERI"><code>Transient<br>Jini ERI</code></a></th>
+     <td><a href="#httpServer"><code>HTTPD</code></a></td>
+     <td><a href="#jeriStartTransientConfig"><code>jeri-start-transient.config</code></a><br> 
+         <a href="#jeriTransientFiddlerConfig"><code>jeri-transient-fiddler.config</code></a>
+     </td>
+     <td><a href="#jeriStartTransientPolicy"><code>jeri-start-transient.policy</code></a><br> 
+         <a href="#jeriTransientFiddlerPolicy"><code>jeri-transient-fiddler.policy</code></a>
+     </td>
+   </tr>
+
+   <tr>
+     <th><a href="#nonactivatableJERI"><code>Non-<br>activatable<br>Jini ERI</code></a></th>
+     <td><a href="#httpServer"><code>HTTPD</code></a></td>
+     <td><a href="#jeriStartNonactivatableConfig"><code>jeri-start-nonactivatable.config</code></a><br> 
+         <a href="#jeriNonactivatableFiddlerConfig"><code>jeri-nonactivatable-fiddler.config</code></a>
+     </td>
+     <td><a href="#jeriStartNonactivatablePolicy"><code>jeri-start-nonactivatable.policy</code></a><br> 
+         <a href="#jeriNonactivatableFiddlerPolicy"><code>jeri-nonactivatable-fiddler.policy</code></a>
+     </td>
+   </tr>
+
+   <tr>
+     <th><a href="#activatableJRMP"><code>Activatable<br>JRMP</code></a></th>
+     <td><a href="#httpServer"><code>HTTPD</code></a><br>
+         <a href="#activation"><code>Phoenix</code></a>
+     </td>
+     <td><a href="#jrmpStartActivatableConfig"><code>jrmp-start-activatable.config</code></a><br> 
+         <a href="#jrmpActivatableFiddlerConfig"><code>jrmp-activatable-fiddler.config</code></a><br> 
+         <a href="#jrmpPhoenixConfig"><code>jrmp-phoenix.config</code></a><br> 
+         <a href="#jrmpPhoenixGroupConfig"><code>jrmp-phoenix-group.config</code></a><br> 
+         <a href="#jrmpDestroyGroupConfig"><code>jrmp-destroyGroup.config</code></a>
+     </td>
+     <td><a href="#jrmpStartActivatablePolicy"><code>jrmp-start-activatable.policy</code></a><br> 
+         <a href="#jrmpActivatableFiddlerPolicy"><code>jrmp-activatable-fiddler.policy</code></a><br> 
+         <a href="#jrmpPhoenixPolicy"><code>jrmp-phoenix.policy</code></a><br> 
+         <a href="#jrmpSharedvmPolicy"><code>jrmp-sharedvm.policy</code></a>
+     </td>
+   </tr>
+
+   <tr>
+     <th><a href="#activatableJERI"><code>Activatable<br>Jini ERI</code></a></th>
+     <td><a href="#httpServer"><code>HTTPD</code></a><br>
+         <a href="#activation"><code>Phoenix</code></a>
+     </td>
+
+     <td><a href="#jeriStartActivatableConfig"><code>jeri-start-activatable.config</code></a><br> 
+         <a href="#jeriActivatableFiddlerConfig"><code>jeri-activatable-fiddler.config</code></a><br> 
+         <a href="#jeriPhoenixConfig"><code>jeri-phoenix.config</code></a><br> 
+         <a href="#jeriPhoenixGroupConfig"><code>jeri-phoenix-group.config</code></a><br> 
+         <a href="#jeriDestroyGroupConfig"><code>jeri-destroyGroup.config</code></a>
+     </td>
+     <td><a href="#jeriStartActivatablePolicy"><code>jeri-start-activatable.policy</code></a><br> 
+         <a href="#jeriActivatableFiddlerPolicy"><code>jeri-activatable-fiddler.policy</code></a><br> 
+         <a href="#jeriPhoenixPolicy"><code>jeri-phoenix.policy</code></a><br> 
+         <a href="#jeriSharedvmPolicy"><code>jeri-sharedvm.policy</code></a>
+     </td>
+   </tr>
+</table>
+<p>
+What follows are the command lines used to start Fiddler in the
+configurations summarized in the table above, as well as example 
+content for the various configuration and policy files required 
+by each of those example configurations.
+<p>
+
+<!-- Transient-JRMP -->
+
+<a name="transientJRMP">
+<h3>Transient Mode using JRMP</h3>
+
+The following command will start Fiddler in <b><i>transient</i></b> mode using 
+<b><i>JRMP</i></b> for remote communication. This configuration of Fiddler will 
+not persist any state information, and it will not be restarted by the 
+activation system upon a system crash or failure.
+
+<h4>Command Line</h4>
+<blockquote>
+<pre>
+java_install_dir/bin/java \
+  -Djava.security.manager= \
+  -Djava.security.policy=example_install_dir/policy/jrmp-start-transient.policy \
+    -jar jini_install_dir/lib/start.jar \
+           example_install_dir/config/jrmp-start-transient.config
+</pre>
+</blockquote>
+<p>
+<a name="jrmpStartTransientConfig">
+<h4>Starter Configuration: example_install_dir/config/jrmp-start-transient.config</h4>
+<blockquote>
+<pre>
+import com.sun.jini.start.NonActivatableServiceDescriptor;
+import com.sun.jini.start.ServiceDescriptor;
+
+com.sun.jini.start {
+
+    private static serviceCodebase   = new String("http://myHost:8080/fiddler-dl.jar http://myHost:8080/jsk-dl.jar");
+    private static servicePolicyFile = new String("example_install_dir${/}policy${/}jrmp-transient-fiddler.policy");
+    private static serviceClasspath  = new String("jini_install_dir${/}lib${/}fiddler.jar");
+    private static serviceImplName   = new String("com.sun.jini.fiddler.TransientFiddlerImpl");
+    private static serviceConfig     = new String("example_install_dir${/}config${/}jrmp-transient-fiddler.config");
+    private static serviceArgsArray  = new String[] { serviceConfig };
+
+    private static nonActivatableServiceDescriptor =
+                   new NonActivatableServiceDescriptor(serviceCodebase,
+                                                       servicePolicyFile,
+                                                       serviceClasspath,
+                                                       serviceImplName,
+                                                       serviceArgsArray);
+    static serviceDescriptors = 
+                 new ServiceDescriptor[] { nonActivatableServiceDescriptor };
+
+}//end com.sun.jini.start
+</pre>
+</blockquote>
+<p>
+<a name="jrmpTransientFiddlerConfig">
+<h4>Service Configuration: example_install_dir/config/jrmp-transient-fiddler.config</h4>
+<blockquote>
+<pre>
+import net.jini.jrmp.JrmpExporter;
+
+com.sun.jini.fiddler {
+
+    serverExporter = new JrmpExporter();
+    initialLookupGroups = new String[] {"myGroup.myCompany.com"};
+
+}//end com.sun.jini.fiddler
+</pre>
+</blockquote>
+<p>
+<a name="jrmpStartTransientPolicy">
+<h4>Starter Security Policy: example_install_dir/policy/jrmp-start-transient.policy</h4>
+<blockquote>
+<pre>
+grant codebase "file:jini_install_dir/lib/jsk-platform.jar" {
+    permission java.security.AllPermission;
+};
+
+grant codebase "file:${java.class.path}" { 
+    permission java.security.AllPermission;
+};
+</pre>
+</blockquote>
+<p>
+<a name="jrmpTransientFiddlerPolicy">
+<h4>Service Security: example_install_dir/policy/jrmp-transient-fiddler.policy</h4>
+<blockquote>
+<pre>
+grant codebase "file:jini_install_dir/lib/jsk-lib.jar" {
+    permission java.security.AllPermission;
+};
+
+grant codeBase "file:jini_install_dir/lib/fiddler.jar" {
+    permission java.security.AllPermission;
+}; 
+</pre>
+</blockquote>
+<p>
+
+<!-- Transient-JERI -->
+
+<a name="transientJERI">
+<h3>Transient Mode using Jini ERI</h3>
+
+The following command will start Fiddler in <b><i>transient</i></b> mode using 
+Jini ERI for remote communication. As with the transient-JRMP
+configuration, this configuration of Fiddler will not persist any state 
+information, and it will not be restarted by the activation system upon 
+a system crash or failure.
+
+<h4>Command Line</h4>
+<blockquote>
+<pre>
+java_install_dir/bin/java \
+  -Djava.security.manager= \
+  -Djava.security.policy=example_install_dir/policy/jeri-start-transient.policy \
+    -jar jini_install_dir/lib/start.jar \
+           example_install_dir/config/jeri-start-transient.config
+</pre>
+</blockquote>
+<p>
+<a name="jeriStartTransientConfig">
+<h4>Starter Configuration: example_install_dir/config/jeri-start-transient.config</h4>
+<blockquote>
+<pre>
+import com.sun.jini.start.NonActivatableServiceDescriptor;
+import com.sun.jini.start.ServiceDescriptor;
+
+com.sun.jini.start {
+
+    private static serviceCodebase   = new String("http://myHost:8080/fiddler-dl.jar http://myHost:8080/jsk-dl.jar");
+    private static servicePolicyFile = new String("example_install_dir${/}policy${/}jeri-transient-fiddler.policy");
+    private static serviceClasspath  = new String("jini_install_dir${/}lib${/}fiddler.jar");
+    private static serviceImplName   = new String("com.sun.jini.fiddler.TransientFiddlerImpl");
+    private static serviceConfig     = new String("example_install_dir${/}config${/}jeri-transient-fiddler.config");
+    private static serviceArgsArray  = new String[] { serviceConfig };
+
+    private static nonActivatableServiceDescriptor =
+                   new NonActivatableServiceDescriptor(serviceCodebase,
+                                                       servicePolicyFile,
+                                                       serviceClasspath,

[... 1095 lines stripped ...]


Mime
View raw message