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

svn commit: r781584 [2/3] - in /websites/staging/river/trunk/content/river/doc/api/com/sun/jini/norm: ./ InternalNormException.html NormPermission.html package-frame.html package-summary.html package-tree.html package-use.html

Added: websites/staging/river/trunk/content/river/doc/api/com/sun/jini/norm/package-summary.html
==============================================================================
--- websites/staging/river/trunk/content/river/doc/api/com/sun/jini/norm/package-summary.html (added)
+++ websites/staging/river/trunk/content/river/doc/api/com/sun/jini/norm/package-summary.html Fri Dec 24 22:02:55 2010
@@ -0,0 +1,1477 @@
+<!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.norm (Apache River v2.1.2-SNAPSHOT API Documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="com.sun.jini.norm package">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="com.sun.jini.norm (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/mercury/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/sun/jini/outrigger/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/norm/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.norm
+</H2>
+Provides implementations of <A HREF="../../../../net/jini/lease/LeaseRenewalService.html" title="interface in net.jini.lease"><CODE>LeaseRenewalService</CODE></A>.
+<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>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/sun/jini/norm/NormPermission.html" title="class in com.sun.jini.norm">NormPermission</A></B></TD>
+<TD>Represents permissions that can be used to express the access control policy
+ for the a Norm 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/norm/InternalNormException.html" title="class in com.sun.jini.norm">InternalNormException</A></B></TD>
+<TD>This exception denotes a problem with the local implementation of a
+ Norm server.</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+<A NAME="package_description"><!-- --></A><H2>
+Package com.sun.jini.norm Description
+</H2>
+
+<P>
+Provides implementations of <A HREF="../../../../net/jini/lease/LeaseRenewalService.html" title="interface in net.jini.lease"><CODE>LeaseRenewalService</CODE></A>.
+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.norm.ActivatableNormServerImpl</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.norm.PersistentNormServerImpl</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.norm.TransientNormServerImpl</code> - a
+     transient implementation, also suitable for use with
+     <code>NonActivatableServiceDescriptor</code>
+
+</ul> <p>
+
+The JAR file <code>norm.jar</code>, included in the <code>lib</code>
+subdirectory of the Apache River release installation,
+contains the classes for the three Norm service implementations. The
+<code>norm-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 these 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 Norm 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 Norm: <ul>
+
+<li> <a href="#configuration">Configuring Norm</a>
+<li> <a href="#access_control">Access Control Permission Targets</a>
+<li> <a href="#logging">Logging</a>
+<li> <a href="#examples">Examples for Running Norm</a>
+
+</ul> <p>
+
+<a name="configuration">
+<h2>Configuring Norm</h2>
+</a>
+
+The Norm 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.norm</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>(
+    <A HREF="../../../../net/jini/discovery/DiscoveryGroupManagement.html#NO_GROUPS"><CODE>DiscoveryGroupManagement.NO_GROUPS</CODE></A>,
+    null,  // locators
+    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>null</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>null /* no locators */</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 isolateSets 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>
+      isolateSets</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <code>boolean</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> <code>false</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> Whether to isolate leases in their own renewal
+      sets rather than batching leases in different sets. This entry is
+      obtained at service start and restart. <p>
+
+      Setting this entry to <code>false</code> (the default) makes it
+      more likely that the service can achieve better performance by
+      batching leases, because it permits leases in different lease sets
+      to be batched together. Note that batching leases across sets
+      introduces the risk that mutually mistrustful leases in different
+      sets will "capture" each other when they are batched, allowing an
+      untrustworthy lease to gain access to leases in other sets.
+  </table>
+
+  <a name="leaseManager"></a>
+  <table summary="Describes the leaseManager 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>
+      leaseManager</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <A HREF="../../../../net/jini/lease/LeaseRenewalManager.html" title="class in net.jini.lease"><CODE>LeaseRenewalManager</CODE></A>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> <code>new LeaseRenewalManager(this /* config */)</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> Supplies the lease renewal manager that Norm
+      both uses to renew client leases and passes to the constructor
+      when creating its <A HREF="../../../../net/jini/lookup/JoinManager.html" title="class in net.jini.lookup"><CODE>JoinManager</CODE></A>. The value
+      should not be <code>null</code>. This entry is obtained at service
+      start and restart.
+  </table>
+
+  <table summary="Describes the leasePolicy 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>
+      leasePolicy</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>(
+    2 * 60 * 60 * 1000L,  // max = 2 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 2 hours and a default
+      duration of 1 hour. This entry is obtained at service start and
+      restart.
+  </table>
+
+  <table summary="Describes the leasePreparer 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>
+      leasePreparer</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 client leases for use when they are
+      supplied in calls to <A HREF="../../../../net/jini/lease/LeaseRenewalSet.html#renewFor(net.jini.core.lease.Lease, long, long)"><CODE>LeaseRenewalSet.renewFor</CODE></A>
+      or <A HREF="../../../../net/jini/lease/LeaseRenewalSet.html#remove(net.jini.core.lease.Lease)"><CODE>LeaseRenewalSet.remove</CODE></A>. The value should not be
+      <code>null</code>. The preparer must return a lease which is equal
+      to the original lease 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 lease, typically including verifying trust in the
+      lease proxy, granting permissions, and setting constraints. The
+      prepared lease will be retained by the service in its persistent
+      store. <p>
+
+      The service calls the <A HREF="../../../../net/jini/core/lease/Lease.html#renew(long)"><CODE>renew</CODE></A> method on <A HREF="../../../../net/jini/core/lease/Lease.html" title="interface in net.jini.core.lease"><CODE>Lease</CODE></A> instances, and
+      the <A HREF="../../../../net/jini/core/lease/LeaseMap.html#renewAll()"><CODE>renewAll</CODE></A> method
+      on lease maps it creates (via the <A HREF="../../../../net/jini/lease/LeaseRenewalManager.html" title="class in net.jini.lease"><CODE>LeaseRenewalManager</CODE></A>) from the leases.
+  </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> Prepares expiration warning and renewal failure
+      listeners for use when they are supplied in calls to <A HREF="../../../../net/jini/lease/LeaseRenewalSet.html#setExpirationWarningListener(net.jini.core.event.RemoteEventListener, long, java.rmi.MarshalledObject)"><CODE>LeaseRenewalSet.setExpirationWarningListener</CODE></A> and <A HREF="../../../../net/jini/lease/LeaseRenewalSet.html#setRenewalFailureListener(net.jini.core.event.RemoteEventListener, java.rmi.MarshalledObject)"><CODE>LeaseRenewalSet.setRenewalFailureListener</CODE></A>. 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 listener proxy, granting permissions, and setting
+      constraints. The prepared listener will be retained by the service
+      in its persistent store. <p>
+
+      The service calls the <A HREF="../../../../net/jini/core/event/RemoteEventListener.html#notify(net.jini.core.event.RemoteEvent)"><CODE>notify</CODE></A> method on
+      <A HREF="../../../../net/jini/core/event/RemoteEventListener.html" title="interface in net.jini.core.event"><CODE>RemoteEventListener</CODE></A> objects.
+  </table>
+
+  <table summary="Describes the locatorPreparer 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>
+      locatorPreparer</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 that are
+      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 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 persistenceSnapshotThreshold
+         configuration entry"
+         border="0" cellpadding="2">
+    <tr valign="top">
+      <th scope="col" summary="layout"> <font size="+1">&#X2022;</font>
+      <th scope="col" align="left" colspan="2"> <font size="+1"><code>
+      persistenceSnapshotThreshold</code></font>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Type: <td> <code>int</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Default: <td> <code>200</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> 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>
+
+  <table summary="Describes the persistenceSnapshotWeight 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>
+      persistenceSnapshotWeight</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.0f</code>
+    <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+      Description: <td> The weight factor used to determine whether or
+      not to take a snapshot of the server's state. The value should not
+      be negative. The value represents the ratio of the size of an item
+      in a snapshot versus the size of a log update. This entry is
+      obtained at service start and restart. This entry is only used by
+      persistent implementations.
+  </table>
+
+  <table summary="Describes the recoveredLeasePreparer 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>
+      recoveredLeasePreparer</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 client leases for use when they are
+      recovered from persistent storage. The value should not be
+      <code>null</code>. The preparer must return a lease which is equal
+      to the original lease 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. This entry is only used by persistent
+      implementations. <p>
+
+      This preparer needs to perform only those operations whose results
+      are not retained in the lease proxy itself, but need to be
+      performed in the environment in which the proxy is unmarshalled,
+      typically just granting permissions. <p>
+
+      The service calls the <A HREF="../../../../net/jini/core/lease/Lease.html#renew(long)"><CODE>renew</CODE></A> method on <A HREF="../../../../net/jini/core/lease/Lease.html" title="interface in net.jini.core.lease"><CODE>Lease</CODE></A> instances, and
+      the <A HREF="../../../../net/jini/core/lease/LeaseMap.html#renewAll()"><CODE>renewAll</CODE></A> method
+      on lease maps it creates (via the <A HREF="../../../../net/jini/lease/LeaseRenewalManager.html" title="class in net.jini.lease"><CODE>LeaseRenewalManager</CODE></A>) from the leases.
+  </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> Prepares expiration warning and renewal failure
+      listeners for use when they are recovered from persistent
+      storage. 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. This entry is only
+      used by persistent implementations. <p>
+
+      This preparer needs to perform only those operations whose results
+      are not retained in the listener proxy itself, but need to be
+      performed in the environment in which the proxy is unmarshalled,
+      typically just granting permissions. <p>
+
+      The service calls the <A HREF="../../../../net/jini/core/event/RemoteEventListener.html#notify(net.jini.core.event.RemoteEvent)"><CODE>notify</CODE></A> method on
+      <A HREF="../../../../net/jini/core/event/RemoteEventListener.html" title="interface in net.jini.core.event"><CODE>RemoteEventListener</CODE></A> objects.
+  </table>
+
+  <table summary="Describes the recoveredLocatorPreparer 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>
+      recoveredLocatorPreparer</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>
+
+  <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>()))
+// 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>())
+</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> <p>
+
+Norm passes its configuration when creating instances of the following
+configurable classes, which may support additional configuration
+entries: <p>
+
+<ul>
+<li> <A HREF="../../../../net/jini/lease/LeaseRenewalManager.html" title="class in net.jini.lease"><CODE>LeaseRenewalManager</CODE></A>, used to renew leases,
+     as specified by the <a href="#leaseManager">
+     <code>leaseManager</code></a> configuration entry
+<li> <A HREF="../../../../net/jini/discovery/LookupDiscoveryManager.html" title="class in net.jini.discovery"><CODE>LookupDiscoveryManager</CODE></A>, used to discover
+     lookup services, as specified by 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>, used to manage lookup service
+     registrations
+</ul> <p>
+
+<a name="access_control">
+<h2>Access Control Permission Targets</h2>
+</a>
+
+The following table lists the remote methods on Norm's proxy objects and
+the associated target names for enforcing access control using <A HREF="../../../../com/sun/jini/norm/NormPermission.html" title="class in com.sun.jini.norm"><CODE>NormPermission</CODE></A>: <p>
+
+<table border="1" cellpadding="5"
+       summary="The proxy methods and associated target names for
+       NormPermission.">
+
+<tr> <th> Proxy Method <th> Target Name
+
+<!-- LeaseRenewalService -->
+
+<tr> <td> <A HREF="../../../../net/jini/lease/LeaseRenewalService.html#createLeaseRenewalSet(long)"><CODE>LeaseRenewalService.createLeaseRenewalSet</CODE></A>
+     <td> createLeaseRenewalSet
+
+<!-- LeaseRenewalSet -->
+
+<tr> <td> <A HREF="../../../../net/jini/lease/LeaseRenewalSet.html#renewFor(net.jini.core.lease.Lease, long)"><CODE>LeaseRenewalSet.renewFor(Lease, long)</CODE></A>, 
+          <A HREF="../../../../net/jini/lease/LeaseRenewalSet.html#renewFor(net.jini.core.lease.Lease, long, long)"><CODE>LeaseRenewalSet.renewFor(Lease, long, long)</CODE></A>
+     <td> renewFor
+<tr> <td> <A HREF="../../../../net/jini/lease/LeaseRenewalSet.html#remove(net.jini.core.lease.Lease)"><CODE>LeaseRenewalSet.remove</CODE></A>
+     <td> remove
+<tr> <td> <A HREF="../../../../net/jini/lease/LeaseRenewalSet.html#getLeases()"><CODE>LeaseRenewalSet.getLeases</CODE></A>
+     <td> getLeases
+<tr> <td> <A HREF="../../../../net/jini/lease/LeaseRenewalSet.html#setExpirationWarningListener(net.jini.core.event.RemoteEventListener, long, java.rmi.MarshalledObject)"><CODE>LeaseRenewalSet.setExpirationWarningListener</CODE></A>,
+          <A HREF="../../../../net/jini/lease/LeaseRenewalSet.html#clearExpirationWarningListener()"><CODE>LeaseRenewalSet.clearExpirationWarningListener</CODE></A>
+     <td> setExpirationWarningListener
+<tr> <td> <A HREF="../../../../net/jini/lease/LeaseRenewalSet.html#setRenewalFailureListener(net.jini.core.event.RemoteEventListener, java.rmi.MarshalledObject)"><CODE>LeaseRenewalSet.setRenewalFailureListener</CODE></A>,
+          <A HREF="../../../../net/jini/lease/LeaseRenewalSet.html#clearRenewalFailureListener()"><CODE>LeaseRenewalSet.clearRenewalFailureListener</CODE></A>
+     <td> setRenewalFailureListener
+
+<!-- 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 Norm service implementation uses the <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Logger.html" title="class or interface in java.util.logging"><CODE>Logger</CODE></A> named <code>com.sun.jini.norm</code> to log
+information at the following logging levels: <p>
+
+  <table border="1" cellpadding="5"
+         summary="Describes logging performed by Norm at different
+         logging levels">
+
+  <caption halign="center" valign="top"><b><code>
+           com.sun.jini.norm</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>
+  Problems that prevent service startup
+
+  <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>
+  Problems making modifications to persistent storage, unexpected
+  internal errors
+
+  <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> Service
+  start, restart, or destruction; problems recovering lookup locators or
+  lookup attributes; thread problems; leases or event listeners dropped
+  because of definite exceptions; or problems when destroying the
+  service, or in cleaning up after start up fails
+
+  <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> Changes
+  made to the service through administrative interfaces
+
+  <tr> <td> <A HREF="../../../../com/sun/jini/logging/Levels.html#HANDLED"><CODE>HANDLED</CODE></A> <td>
+  Indefinite exceptions renewing leases or delivering events, when
+  preparing or unmarshalling leases or events, or for exceptions handled
+  when destroying the service
+
+  <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> Adding or
+  removing leases, leases reaching desired expiration, creating lease
+  renewal sets
+
+  <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> Attempting
+  to renew leases, taking persistence snapshots, persistence recovery
+
+  <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> Low level
+  operation tracing
+
+  </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 Norm</h2>
+</a>
+
+This section provides examples of running Norm 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 same
+     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 Norm using JRMP</h3>
+</a>
+
+To run a transient Norm, 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>
+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-norm.config</a>
+</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 Norm
+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>
+grant codebase "file:<var><b>install_dir</b></var>/lib/*" {
+    permission java.security.AllPermission;
+};
+</pre>
+</blockquote>
+
+<a name="start_transient_jrmp_config">
+<h4>File <var><b>config_dir</b></var>/start-transient-jrmp-norm.config</h4>
+</a>
+
+Use this configuration source file to start transient Norm using
+JRMP. <p>
+
+<blockquote>
+<pre>
+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>/norm-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/norm.jar";
+    private static config = "<a href="#transient_jrmp_config"><var><b>config_dir</b></var>/transient-jrmp-norm.config</a>";
+
+    static serviceDescriptors = new ServiceDescriptor[] {
+        new NonActivatableServiceDescriptor(
+            codebase, policy, classpath,
+            "com.sun.jini.norm.TransientNormServerImpl",
+            new String[] { config })
+    };
+}
+</pre>
+</blockquote>
+
+<a name="transient_jrmp_config">
+<h4>File <var><b>config_dir</b></var>/transient-jrmp-norm.config</h4>
+</a>
+
+Use this configuration source file to run transient Norm using JRMP. <p>
+
+<blockquote>
+<pre>
+import net.jini.jrmp.JrmpExporter;
+
+com.sun.jini.norm {
+    initialLookupGroups = new String[] { "<var><b>your.group</b></var>" };
+    serverExporter = new JrmpExporter();
+}
+</pre>
+</blockquote>
+
+<a name="persistent_jrmp">
+<h3>Starting Persistent Norm using JRMP</h3>
+</a>
+
+To run a persistent Norm, 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>
+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-norm.config</a>
+</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-norm.config</h4>
+</a>
+
+Use this configuration source file to start persistent Norm using
+JRMP. <p>
+
+<blockquote>
+<pre>
+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>/norm-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/norm.jar";
+    private static config = "<a href="#persistent_jrmp_config"><var><b>config_dir</b></var>/persistent-jrmp-norm.config</a>";
+
+    static serviceDescriptors = new ServiceDescriptor[] {
+        new NonActivatableServiceDescriptor(
+            codebase, policy, classpath,
+            "com.sun.jini.norm.PersistentNormServerImpl",
+            new String[] { config })
+    };
+}
+</pre>
+</blockquote>
+
+<a name="persistent_jrmp_config">
+<h4>File <var><b>config_dir</b></var>/persistent-jrmp-norm.config</h4>
+</a>
+
+Use this configuration source file to run persistent Norm using
+JRMP. <p>
+
+<blockquote>
+<pre>
+import net.jini.jrmp.JrmpExporter;
+
+com.sun.jini.norm {
+    initialLookupGroups = new String[] { "<var><b>your.group</b></var>" };
+    persistenceDirectory = "<var><b>config_dir</b></var>/norm.log";
+    serverExporter = new JrmpExporter();
+}
+</pre>
+</blockquote>
+
+<a name="activatable_jrmp">
+<h3>Starting Activatable Norm using JRMP</h3>
+</a>
+
+To run an activatable Norm, which stores information persistently and
+uses the activation system to restart itself, using JRMP for remote
+communication, run the following command. <p>
+
+<blockquote>
+<pre>
+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-norm.config</a>
+</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 Norm service as needed until Norm is
+shutdown. <p>
+
+Remember to remove the <var><b>config_dir</b></var>/norm.log directory
+before running this command if you want Norm 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-norm.config</h4>
+</a>
+
+Use this configuration source file to start activatable Norm using
+JRMP. <p>
+
+<blockquote>
+<pre>
+import com.sun.jini.start.ServiceDescriptor;
+import com.sun.jini.start.SharedActivatableServiceDescriptor;
+import com.sun.jini.start.SharedActivationGroupDescriptor;
+
+com.sun.jini.start {
+    private static normCodebase = "http://<var><b>your_host</b></var>:<var><b>http_port</b></var>/norm-dl.jar"
+       + " http://<var><b>your_host</b></var>:<var><b>http_port</b></var>/jsk-dl.jar";
+    private static normPolicy = "<a href="#jsk_all_policy"><var><b>config_dir</b></var>/jsk-all.policy</a>";
+    private static normClasspath = "<var><b>install_dir</b></var>/lib/norm.jar";
+    private static normConfig = "<a href="#activatable_jrmp_config"><var><b>config_dir</b></var>/activatable-jrmp-norm.config</a>";
+
+    private static groupCodebase = "http://<var><b>your_host</b></var>:<var><b>http_port</b></var>/group-dl.jar";
+    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(
+            normCodebase, normPolicy, normClasspath,
+            "com.sun.jini.norm.ActivatableNormServerImpl",
+            groupPersistenceDirectory,
+            new String[] { normConfig },
+            true /* restart */)
+    };
+}
+</pre>
+</blockquote>
+
+<a name="activatable_jrmp_config">
+<h4>File <var><b>config_dir</b></var>/activatable-jrmp-norm.config</h4>
+</a>
+
+Use this configuration source file to run activatable Norm using
+JRMP. <p>
+
+<blockquote>
+<pre>
+import java.rmi.activation.ActivationID;
+import net.jini.jrmp.JrmpExporter;
+
+com.sun.jini.norm {
+    initialLookupGroups = new String[] { "<var><b>your.group</b></var>" };
+    persistenceDirectory = "<var><b>config_dir</b></var>/norm.log";
+    serverExporter = new JrmpExporter((ActivationID) $data, 0);
+}
+</pre>
+</blockquote>
+
+<a name="stop_activatable">
+<h3>Stopping Activatable Norm</h3>
+</a>
+
+To destroy the activation group running an activatable Norm, run
+using either JRMP or Jini ERI, run the following command. <p>
+
+<blockquote>
+<pre>
+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-norm.config</a>
+</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 Norm's administrable interface,
+or to remove the <var><b>config_dir</b></var>/norm.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-norm.config</h4>
+</a>
+
+Use this configuration source file to destroy the activation group for
+an activatable Norm. <p>
+
+<blockquote>
+<pre>
+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 */)
+    };
+}
+</pre>
+</blockquote>
+
+<a name="transient">
+<h3>Starting Transient Norm using Jini ERI</h3>
+</a>
+
+To run a transient Norm, 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>
+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-norm.config</a>
+</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-norm.config</h4>
+</a>
+
+Use this configuration source file to start transient Norm using
+Jini ERI. <p>
+
+<blockquote>
+<pre>
+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>/norm-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/norm.jar";
+    private static config = "<a href="#transient_config"><var><b>config_dir</b></var>/transient-norm.config</a>";
+
+    static serviceDescriptors = new ServiceDescriptor[] {
+        new NonActivatableServiceDescriptor(
+            codebase, policy, classpath,
+            "com.sun.jini.norm.TransientNormServerImpl",
+            new String[] { config })
+    };
+}
+</pre>
+</blockquote>
+
+<a name="transient_config">
+<h4>File <var><b>config_dir</b></var>/transient-norm.config</h4>
+</a>
+
+Use this configuration source file to run transient Norm using Jini
+ERI. <p>
+
+<blockquote>
+<pre>
+com.sun.jini.norm {
+    initialLookupGroups = new String[] { "<var><b>your.group</b></var>" };
+}
+</pre>
+</blockquote>
+
+<a name="persistent">
+<h3>Starting Persistent Norm using Jini ERI</h3>
+</a>
+
+To run a persistent Norm, 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>
+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-norm.config</a>
+</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-norm.config</h4>
+</a>
+
+Use this configuration source file to start persistent Norm using Jini
+ERI. <p>
+
+<blockquote>
+<pre>
+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>/norm-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/norm.jar";
+    private static config = "<a href="#persistent_config"><var><b>config_dir</b></var>/persistent-norm.config</a>";
+
+    static serviceDescriptors = new ServiceDescriptor[] {
+        new NonActivatableServiceDescriptor(
+            codebase, policy, classpath,
+            "com.sun.jini.norm.PersistentNormServerImpl",
+            new String[] { config })
+    };
+}
+</pre>
+</blockquote>
+
+<a name="persistent_config">
+<h4>File <var><b>config_dir</b></var>/persistent-norm.config</h4>
+</a>
+
+Use this configuration source file to run persistent Norm using Jini
+ERI. <p>
+
+<blockquote>
+<pre>
+import net.jini.id.UuidFactory;
+import net.jini.jeri.BasicILFactory;
+import net.jini.jeri.BasicJeriExporter;
+import net.jini.jeri.tcp.TcpServerEndpoint;
+
+com.sun.jini.norm {
+    initialLookupGroups = new String[] { "<var><b>your.group</b></var>" };
+    persistenceDirectory = "<var><b>config_dir</b></var>/norm.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>"));
+}
+</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>/norm.log directory
+before restarting persistent Norm if you want it to forget registrations
+and settings made in previous invocations.
+
+<a name="activatable">
+<h3>Starting Activatable Norm using Jini ERI</h3>
+</a>
+
+To run an activatable Norm, 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>
+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-norm.config</a>
+</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 Norm service as needed until Norm is
+shutdown. <p>
+
+Remember to remove the <var><b>config_dir</b></var>/norm.log directory
+before running this command if you want Norm 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-norm.config</h4>
+</a>
+
+Use this configuration source file to start activatable Norm using Jini
+ERI. <p>
+
+<blockquote>
+<pre>
+import com.sun.jini.start.ServiceDescriptor;
+import com.sun.jini.start.SharedActivatableServiceDescriptor;
+import com.sun.jini.start.SharedActivationGroupDescriptor;
+
+com.sun.jini.start {
+    private static normCodebase = "http://<var><b>your_host</b></var>:<var><b>http_port</b></var>/norm-dl.jar"
+       + " http://<var><b>your_host</b></var>:<var><b>http_port</b></var>/jsk-dl.jar";
+    private static normPolicy = "<a href="#jsk_all_policy"><var><b>config_dir</b></var>/jsk-all.policy</a>";
+    private static normClasspath = "<var><b>install_dir</b></var>/lib/norm.jar";
+    private static normConfig = "<a href="#activatable_config"><var><b>config_dir</b></var>/activatable-norm.config</a>";
+
+    private static groupCodebase = "http://<var><b>your_host</b></var>:<var><b>http_port</b></var>/group-dl.jar";
+    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(
+            normCodebase, normPolicy, normClasspath,
+            "com.sun.jini.norm.ActivatableNormServerImpl",
+            groupPersistenceDirectory,
+            new String[] { normConfig },
+            true /* restart */)
+    };
+}
+</pre>
+</blockquote>
+
+<a name="activatable_config">
+<h4>File <var><b>config_dir</b></var>/activatable-norm.config</h4>
+</a>
+
+Use this configuration source file to run activatable Norm using Jini
+ERI. <p>
+
+<blockquote>
+<pre>
+com.sun.jini.norm {
+    initialLookupGroups = new String[] { "<var><b>your.group</b></var>" };
+    persistenceDirectory = "<var><b>config_dir</b></var>/norm.log";
+}
+</pre>
+</blockquote>
+<P>
+
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../net/jini/lease/LeaseRenewalService.html" title="interface in net.jini.lease"><CODE>LeaseRenewalService</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/mercury/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/sun/jini/outrigger/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/norm/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: websites/staging/river/trunk/content/river/doc/api/com/sun/jini/norm/package-tree.html
==============================================================================
--- websites/staging/river/trunk/content/river/doc/api/com/sun/jini/norm/package-tree.html (added)
+++ websites/staging/river/trunk/content/river/doc/api/com/sun/jini/norm/package-tree.html Fri Dec 24 22:02:55 2010
@@ -0,0 +1,161 @@
+<!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.norm 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.norm 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/mercury/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/sun/jini/outrigger/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/sun/jini/norm/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.norm
+</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.norm.<A HREF="../../../../com/sun/jini/norm/NormPermission.html" title="class in com.sun.jini.norm"><B>NormPermission</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.norm.<A HREF="../../../../com/sun/jini/norm/InternalNormException.html" title="class in com.sun.jini.norm"><B>InternalNormException</B></A></UL>
+</UL>
+</UL>
+</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/mercury/package-tree.html"><B>PREV</B></A>&nbsp;
+&nbsp;<A HREF="../../../../com/sun/jini/outrigger/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../../index.html?com/sun/jini/norm/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>