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:21:23 UTC

svn commit: r781592 [18/19] - in /websites/staging/river/trunk/content/river/doc: api/com/sun/jini/discovery/plaintext/ api/com/sun/jini/discovery/plaintext/class-use/ api/com/sun/jini/landlord/class-use/ api/com/sun/jini/phoenix/class-use/ api/com/sun...

Added: websites/staging/river/trunk/content/river/doc/release-notes/index.html
==============================================================================
--- websites/staging/river/trunk/content/river/doc/release-notes/index.html (added)
+++ websites/staging/river/trunk/content/river/doc/release-notes/index.html Fri Dec 24 22:21:20 2010
@@ -0,0 +1,923 @@
+<!--
+ ! Licensed to the Apache Software Foundation (ASF) under one
+ ! or more contributor license agreements.  See the NOTICE file
+ ! distributed with this work for additional information
+ ! regarding copyright ownership. The ASF licenses this file
+ ! to you under the Apache License, Version 2.0 (the
+ ! "License"); you may not use this file except in compliance
+ ! with the License. You may obtain a copy of the License at
+ ! 
+ !      http://www.apache.org/licenses/LICENSE-2.0
+ ! 
+ ! Unless required by applicable law or agreed to in writing, software
+ ! distributed under the License is distributed on an "AS IS" BASIS,
+ ! WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ! See the License for the specific language governing permissions and
+ ! limitations under the License.
+ !-->
+<html lang="en-US">
+<head>
+<title>Apache River Release Notes, v2.1.2</title>
+</head>
+<body text="#000000" bgcolor="#ffffff" link="#9b37cc"
+      vlink="#cc1877" alink="#ffffff">
+
+
+<center> <h1><a name="TOP">Apache River 
+<br>v2.1.2 Release Notes</a></h1></center>
+<p>
+<hr>
+Apache River is an effort undergoing incubation at The Apache Software
+Foundation (ASF), sponsored by the Apache Incubator. Incubation is
+required of all newly accepted projects until a further review
+indicates that the infrastructure, communications, and decision making
+process have stabilized in a manner consistent with other successful
+ASF projects. While incubation status is not necessarily a reflection
+of the completeness or stability of the code, it does indicate that
+the project has yet to be fully endorsed by the ASF.
+<p>
+Apache River is aimed at the development and advancement of the
+River technology core infrastructure. River technology is a service
+oriented architecture that defines a programming model which both
+exploits and extends Java technology to enable the construction of
+secure, distributed systems which are adaptive to change.
+<hr>
+<h2>Notes of Interest for this Release</h2>
+This second release from the Apache River project is based on the
+contributions of Sun's Jini Technology Starter Kit (Starter Kit) v2.1
+and Service UI from Artima.  The release focuses on merging the
+two contributions together, structuring separate src and bin releases,
+and amending the source and documentation naming/versioning/etc
+to the Apache River project.
+<p>
+Some points of note:
+<br>
+<ul>
+<li>NOTICE file and source license headers updated </li>
+<li>Source and documentation updated for release name ("Apache
+   River release") and version ("v2.1.2") </li>
+<li> Graphical installer (which was a 3rd party application in the
+Starter Kit) is no longer available</li>
+<li>The combined source and binary release in the Starter Kit has
+been separated into two releases:  src and bin </li>
+<li>The "logstore" implementation of com.sun.jini.outrigger.Store has
+been removed
+<p>
+   The persistent version of Outrigger relies on a pluggable persistence
+   layer, <code>com.sun.jini.outrigger.Store</code>. Previous releases
+   of the Starter Kit included two implementations of the Store interface,
+   <em>logstore</em> and <em>snaplogstore</em>. This release removes
+   logstore.
+<p>
+   Logstore has been around in various forms since the 1.0 version of
+   Outrigger. Snapstore was introduced in v2.1 of the Starter Kit.
+<p>
+   The v2.0.n releases of the Starter Kit used logstore as the default Store
+    implementation, this release has no default Store. In order to switch an
+    existing set of configuration files, security policy files, etc., from using
+    logstore to snaplogstore, you will need to change the
+    <code>com.sun.jini.outrigger.store</code> configuration entry (or add a
+    store configuration entry if you don't already have one) to yield a
+    <code>com.sun.jini.outrigger.snaplogstore.LogStore</code> object. You
+    will also need to ensure that <code>outrigger-snaplogstore.jar</code> has
+    been granted sufficient permissions (see Outrigger's package documentation
+    for a sample security policy file.).
+<p>
+    Note that depending on the nature of your application snaplogstore can
+    have a significantly different performance profile than logstore.
+<p>
+    The storage formats used by snaplogstore and logstore are mutually
+    incompatible.
+ </li>
+</ul>
+
+<hr>
+<h2>Submitting Issues</h2>
+<p>
+If you would like to submit a bug against the Apache River release, please use the
+<a href="http://issues.apache.org/jira/browse/RIVER">River JIRA</a>.
+To discuss problems, questions, or suggestions on the release, please subscribe
+to the <code>river-dev</code> list from the <a href="http://incubator.apache.org/river/mailing.html">
+project Mailing Lists</a> page.
+<hr>
+<h2>Upcoming Changes planned for the next version of Apache River</h2>
+<li>All packages ouside of the net.jini namespace will be 
+renamed to org.apache.river.</li>
+<li>Support for Java 5 language features</li>
+<li>Support for Modular Frameworks conforming to the OSGi r4.2 core Specification</li>
+<hr>    
+    <h2>Changes made since Apache River v2.1.1</h2>
+    <h2>        Bug
+</h2>
+<ul>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-5'>RIVER-5</a>] - 
+HTTMPMD URLs can be considered equal while they are not
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-8'>RIVER-8</a>] -         
+com.sun.jini.tool.ClassDep empty inside collection doesn't work
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-17'>RIVER-17</a>] -         
+Misleading logging message when discovery constraint checking is delayed
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-18'>RIVER-18</a>] -         
+Order of discovery providers not maintained
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-22'>RIVER-22</a>] -         
+NPE in net.jini.jeri.tcp.TcpEndpoint$ConnectionImpl.checkConnectPermission
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-24'>RIVER-24</a>] -         
+PreferredListGen can create illegal PREFERRED.LIST
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-78'>RIVER-78</a>] -         
+ClassDep generates duplicate output lines
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-82'>RIVER-82</a>] -         
+ClassDep generates duplicate output lines
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-91'>RIVER-91</a>] -         
+Uninstaller does not remove all items
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-205'>RIVER-205</a>] -         
+LookupDiscovery can give untrusted code access to privileged threads
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-209'>RIVER-209</a>] -         
+NullPointerException in SslConnection.checkConnectPermission()
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-212'>RIVER-212</a>] -         
+use of &quot;enum&quot; as a variable name
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-213'>RIVER-213</a>] -         
+(DOC) - JoinManger has typo in javadoc (missing &lt;/code&gt; termination tag)
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-215'>RIVER-215</a>] -         
+LookupDiscovery throws NullPointerException on terminate
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-216'>RIVER-216</a>] -         
+ConfigurationFile should throw ExceptionInInitializerError if unable to read 
+prohibited methods
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-217'>RIVER-217</a>] -         
+Browser incorrectly assumes event source is ServiceRegistrar proxy
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-223'>RIVER-223</a>] -         
+test: jtreg/net/jini/jeri/tcp/connectTimeout/TestConnectTimeout fails on Linux
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-224'>RIVER-224</a>] -         
+Problem using browser to destroy service that supports DestroyAdmin but not 
+JoinAdmin
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-225'>RIVER-225</a>] -         
+NullPointerException in Reggie during destroy
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-227'>RIVER-227</a>] -         
+tools manpages command lines do not include line continuation characters
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-230'>RIVER-230</a>] -         
+(mux) SelectionManager catch Error block assumes getMessage() returns non-null
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-232'>RIVER-232</a>] -         
+JarWrapper and PreferredListGen uses jsk_install_dir and install_dir
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-234'>RIVER-234</a>] -         
+(DOC) Fiddler manpage directions for HTTP server should reference 
+classserver.jar, not tools.jar
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-240'>RIVER-240</a>] -         
+BasicInvocationDispatcher.dispatch could log more info for some exceptions
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-241'>RIVER-241</a>] -         
+Mercury spelling errore
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-242'>RIVER-242</a>] -         
+if a given ConnectionManager instance cannot create a reaper thread once, 
+it never will again
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-245'>RIVER-245</a>] -         
+Unicast discovery should close socket in case of connection exception.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-252'>RIVER-252</a>] -         
+ComputeHttpmdCodebase NPE if resource bundle not found
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-253'>RIVER-253</a>] -         
+ComputeDigest NPE if resource bundle not found
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-254'>RIVER-254</a>] -         
+request initiation can block on I/O for inapplicable connection
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-255'>RIVER-255</a>] -         
+Outrigger DestroyThread does not catch exceptions from exporter.unexport
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-284'>RIVER-284</a>] -         
+[PATCH] fix bad ParticipantHandle.compareTo 
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-286'>RIVER-286</a>] -         
+[PATCH] iterators on synchronized collections still need synchronization
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-289'>RIVER-289</a>] -         
+Fix for RIVER-247 introduced wrong license headers and references
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-298'>RIVER-298</a>] -         
+No JavaDocs generated for package &quot;com.sun.jini.reliableLog&quot;
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-302'>RIVER-302</a>] -         
+ClassDep -newdirbehaviour option does not work
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-305'>RIVER-305</a>] -         
+qa/GetPermissions test still uses &quot;enum&quot; keyword
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-320'>RIVER-320</a>] -         
+Prebuilt hello example certificates have expired - need to provide new ones 
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-324'>RIVER-324</a>] -         
+Under certain circumstances, the ServiceDiscoveryManager internal LookupCache 
+implementation can incorrectly  process attribute change events before the 
+lookup snapshot is processed.
+</li>
+</ul>
+    
+<h2>        Improvement
+</h2>
+<ul>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-7'>RIVER-7</a>] -         
+com.sun.jini.tool.ClassDep should be smarter with outer classes
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-9'>RIVER-9</a>] -         
+PreferredClassLoader should try to avoid making a direct check against the 
+first URL
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-25'>RIVER-25</a>] -         
+Improve logging for JoinManager at INFO and WARNING level
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-115'>RIVER-115</a>] -         
+Multiple jar files with conflicting lists need facilities to map the chosen 
+preferred value
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-116'>RIVER-116</a>] -         
+Multiple jar files with conflicting lists need facilities to map the chosen 
+preferred value
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-160'>RIVER-160</a>] -         
+add TrustEquivalence to browser's list of uninterestingInterfaces
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-201'>RIVER-201</a>] -         
+Show interfaces rather than classes in browser's Matching Services pane.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-206'>RIVER-206</a>] -         
+Change default load factors from 3 to 1
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-210'>RIVER-210</a>] -         
+Browser should cancel event lease on exit
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-220'>RIVER-220</a>] -         
+LookupLocatorDiscovery catch Throwable blocks should also catch Throwable
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-226'>RIVER-226</a>] -         
+LLD: consider delaying the queuing of a discovery request immediately after a 
+discard
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-229'>RIVER-229</a>] -         
+reduce number of Reaper threads created by ConnectionManager
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-231'>RIVER-231</a>] -         
+ComputeHttpmdCodebase man page could be clarified with respect to algorithm used
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-233'>RIVER-233</a>] -         
+ComputeDigest instructions reference sha and sha1
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-243'>RIVER-243</a>] -         
+JarWrapper javadoc could be clearer wrt to classpath manifests
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-244'>RIVER-244</a>] -         
+Text area below menu bar in ServiceBrowser should not be editable
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-246'>RIVER-246</a>] -         
+Consider adding shutdown hook so Reggie sends final multicast packet if its VM 
+is terminated
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-247'>RIVER-247</a>] -         
+Destroy processing should use configurable duration and interval for unexporting
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-256'>RIVER-256</a>] -         
+Outrigger catch Throwable blocks should also catch Throwable
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-262'>RIVER-262</a>] -         
+ServiceUI Specification
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-270'>RIVER-270</a>] -         
+tar tasks in release* ant targets fail due to 100-char limitation and are 
+disabled
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-285'>RIVER-285</a>] -         
+LookupDiscoveryManager has unused variable declarations
+</li>
+</ul>
+    
+<h2>        New Feature
+</h2>
+<ul>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-151'>RIVER-151</a>] -         
+ClassDep should have a method to determine if problems occurred
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-161'>RIVER-161</a>] -         
+Coalesce jars from multiple source dirs while retain current Manifest Classpath 
+semantics
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-163'>RIVER-163</a>] -         
+ClassDep doesn't pick up annotation or type parameter dependencies
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-292'>RIVER-292</a>] -         
+The service browser should provide support for the ServiceUI support
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-295'>RIVER-295</a>] -         
+Support configurable option to prevent from popup windows that require a 
+confirmation by the user
+</li>
+</ul>
+                
+<h2>        Task
+</h2>
+<ul>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-294'>RIVER-294</a>] -         
+Remove http://svn.apache.org/repos/asf/incubator/river/trunk/ from the SVN 
+repository
+</li>
+</ul>
+            
+<h2>        Test
+</h2>
+<ul>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-291'>RIVER-291</a>] -         
+Cannot build QA tests using the supplied make files
+</li>
+</ul>
+    <hr>
+    
+    <h2>Changes made since JTSK v2.1</h2>
+        
+<h2>        Bug
+</h2>
+<ul>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-211'>RIVER-211</a>] -         
+source files for ServiceItem, ServiceMatches, and ServiceTemplate do not match 
+binary distribution
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-269'>RIVER-269</a>] -         
+build reports problem with javadoc generation on Windows
+</li>
+</ul>
+                        
+<h2>        Task
+</h2>
+<ul>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-263'>RIVER-263</a>] -         
+Remove outrigger logstore sources and build support
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-264'>RIVER-264</a>] -         
+integrate serviceui sources into jtsk trunk
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-266'>RIVER-266</a>] -         
+update build and source code for name, version number, ...
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-267'>RIVER-267</a>] -         
+Documentation update in release
+</li>
+</ul>
+<hr>
+                
+                <h2>Release notes from the Jini Technology Starter Kit v2.1</h2>
+<ul>
+        <li><a href=new.html>What's new in v2.1?</a>  
+        <li><a href="bugfixes.html">Bugs fixed between v2.0.1 and v2.0.2 releases</a>
+        <li><a href=#changes>Changes since the v2.0.1 release</a>
+	<li><a href=#platform>Platform dependencies</a>
+	<li>JAR file structure
+	<ul>
+		<li><a href=#platform_jars>Platform JAR files</a>
+		<li><a href=#starter_jars>Service Starter JAR files</a>
+		<li><a href=#service_jars>Service JAR files</a>
+		<li><a href=#activation_jars>Activation JAR files</a>
+		<li><a href=#tools_jars>Tools JAR files</a>
+		<li><a href=#persistent_outrigger_jars>Persistent Outrigger JAR files</a>
+		<li><a href=#deprecated_jars>Deprecated JAR files</a>
+	</ul>
+	<li><a href=#javadoc>Note on the API documentation</a>
+</ul>
+<a name="changes">
+<h2>Changes by Component, updated for v2.1.2</h2></a>
+<h3>Services</h3>
+<ul>
+	<li><a href="reggie.html">Reggie</a>
+	<li><a href="mahalo.html">Mahalo</a>
+	<li><a href="norm.html">Norm</a>
+	<li><a href="mercury.html">Mercury</a>
+	<li><a href="fiddler.html">Fiddler</a>
+	<li><a href="outrigger.html">Outrigger</a>
+</ul>
+<h3>Utilities</h3>
+<ul>
+	<li><a href="discovery.html">Discovery Utilities</a>
+	<li><a href="netjinientry.html">Entry Utilities</a>
+	<li><a href="join.html">Join Utilities</a>
+	<li><a href="lease.html">Lease Utilities</a>
+	<li><a href="servicediscovery.html">Service Discovery Utilities</a>
+</ul>
+<h3>Tools</h3>
+<ul>
+	<li><a href="browser.html">ServiceBrowser</a>
+	<li><a href="classdep.html"><code>ClassDep</code></a>
+	<li><a href="classserver.html"><code>ClassServer</code></a>
+	<li><a href="servicestarter.html"><code>ServiceStarter</code></a>
+</ul>
+<h3>Other</h3>
+<ul>
+	<li><a href="jeri.html">Jini extensible remote invocation (Jini ERI)</a>
+	<li><a href="loader.html">Class loader</a>
+	<li><a href="security.html">Security</a>
+	<li><a href="activate.html">Activation</a>
+	<li><a href="comsunjinithread.html"><code>com.sun.jini.thread</code></a>
+</ul>
+<hr>
+<ul><a name="platform"><h2>Platform dependencies</h2></a>
+This release depends on new features included in version 1.4 of
+the <a href="http://java.sun.com/j2se/1.4/">Java(TM) 2 Platform,
+Standard Edition</a>. You should not expect to be able to use
+the source code or JAR files from this release with earlier versions
+of the Java platform. This requirement also extends to clients
+that dynamically download code from the services provided in this release.
+</ul>
+<hr>
+<ul><a name="platform_jars">
+<h2>Platform JAR files</h2></a>
+In this release we have extended our platform requirements to be
+more than just the Java 2 Platform, Standard Edition.
+<p>
+<dl>
+<dt><b><code>jsk-policy.jar</code></b>
+<dd>
+This JAR file contains a security policy provider,
+<a href="../api/net/jini/security/policy/DynamicPolicyProvider.html">
+<code>DynamicPolicyProvider</code></a>, that supports dynamic
+granting of permissions at run time. Although use of this policy provider
+is not required, its use is highly recommended when deploying secure
+applications and services. To permit effective use of this policy provider,
+it must first be installed as an extension in the Java 2 SDK (or JRE)
+that you will be using, as described in the
+<a href="../info-index.html#install">installation instructions</a>.
+This is the <i>only</i> JAR file that we recommend installing as an extension.
+<p>
+To use this provider, you need to define a <i>security</i> property
+(<i>not</i> a system property):
+<pre>
+policy.provider=net.jini.security.policy.DynamicPolicyProvider
+</pre>
+in some file (for example, named <code>security.properties</code>) and
+then define a <i>system</i> property:
+<pre>
+-Djava.security.properties=<var>path-to-file</var>/security.properties
+</pre>
+when running your application. If you are using a Java 2 SDK (or JRE)
+from a vendor other than Sun, you may also need to set a security property:
+<pre>
+net.jini.security.policy.PolicyFileProvider.basePolicyClass=<var>provider-class</var>
+</pre>
+in the same <code>security.properties</code> file, where
+<var>provider-class</var> is the vendor's default policy provider class,
+which typically can be found as the value of the <code>policy.provider</code>
+security property in the <code>jre/lib/security/java.security</code> file of
+the Java 2 SDK installation.
+<p><dt><b><code>jsk-platform.jar</code></b>
+<dd>
+This JAR file contains classes and interfaces that we have chosen to include
+in all of our applications, and have also chosen to assume are available
+in all other applications that receive objects from our applications.
+This JAR file primarily contains classes and interfaces that are typically
+referenced in:
+<ul>
+<li><a href="http://java.sun.com/j2se/1.4/docs/guide/jar/jar.html#Service Provider"><i>service provider</i></a> resources to control the configuration of
+<a href="http://java.sun.com/j2se/1.4/docs/api/java/rmi/server/RMIClassLoader.html"><code>RMIClassLoader</code></a>,
+<a href="../api/net/jini/security/TrustVerifier.html"><code>TrustVerifier</code></a>,
+<a href="../api/net/jini/security/IntegrityVerifier.html"><code>IntegrityVerifier</code></a>,
+<a href="../api/net/jini/export/ServerContext.html"><code>ServerContext</code></a>,
+and
+<a href="../api/com/sun/jini/discovery/DiscoveryFormatProvider.html"><code>DiscoveryFormatProvider</code></a>
+providers
+<li><a href="../api/net/jini/config/ConfigurationFile.html"><code>ConfigurationFile</code></a>
+source files, but which are unlikely to be referenced directly by the
+applications and services being configured (in particular, classes for
+creating
+<a href="../api/net/jini/export/Exporter.html"><code>Exporter</code></a> and
+<a href="../api/net/jini/security/ProxyPreparer.html"><code>ProxyPreparer</code></a>
+instances and their components)
+<li>dynamically downloaded code, but which we believe are not themselves
+reasonable to download (in particular, because they are needed to bootstrap
+proxy trust verification, or because their implementations require
+extraordinary permissions)
+</ul>
+plus all of the classes and interfaces that their implementations directly
+or indirectly depend on.
+<p>
+This JAR file contains all of the classes and interfaces in the
+following namespaces (including all subpackages):
+<ul>
+<li><code>net.jini.activation</code>
+<li><code>net.jini.config</code>
+<li><code>net.jini.constraint</code>
+<li><code>net.jini.core</code>
+<li><code>net.jini.export</code>
+<li><code>net.jini.id</code>
+<li><code>net.jini.iiop</code>
+<li><code>net.jini.io</code>
+<li><code>net.jini.jeri</code>
+<li><code>net.jini.jrmp</code>
+<li><code>net.jini.loader</code>
+<li><code>net.jini.security</code>
+<li><code>net.jini.url</code>
+<li><code>com.sun.jini.discovery</code>
+</ul>
+plus the following classes:
+<ul>
+<li><a href="../api/net/jini/discovery/ConstrainableLookupLocatorTrustVerifier.html"><code>ConstrainableLookupLocatorTrustVerifier</code></a>
+<li><a href="../api/com/sun/jini/config/KeyStores.html"><code>KeyStores</code></a>
+<li><a href="../api/com/sun/jini/config/ConfigUtil.html"><code>ConfigUtil</code></a>
+<li><a href="../api/com/sun/jini/logging/LogManager.html"><code>LogManager</code></a>
+</ul>
+Any other classes or interfaces found in this JAR file should be considered
+implementation details.
+<p>
+This JAR file includes a protocol handler for
+<a href="../api/net/jini/url/httpmd/package-summary.html">HTTPMD</a> URLs.
+To enable this handler, you need to specify the system property:
+<pre>
+-Djava.protocol.handler.pkgs=net.jini.url
+</pre>
+in any application that creates or receives such URLs. In particular,
+any service that uses an HTTPMD URL in its codebase, and any client
+that wants to download code from such a service, should set this
+system property.
+<p>
+It is important to understand that the contents of this JAR file do <i>not</i>
+constitute a "standard" platform; this JAR file is simply our choice of
+<i>a</i> platform likely to be useful for deployments of this release.
+Depending on your deployment requirements, you may want to alter the contents
+of this JAR file (but if you do so, you also might have to make changes to
+other JAR files).
+<p><dt><b><code>jsk-resources.jar</code></b>
+<dd>
+This JAR file is referenced in the <code>Class-Path</code> manifest attribute
+of <code>jsk-platform.jar</code>, and configures the following specific
+service providers to be used:
+<ul>
+<li><a href="http://java.sun.com/j2se/1.4/docs/api/java/rmi/server/RMIClassLoader.html"><code>RMIClassLoader</code></a> provider:
+<ul>
+<li><a href="../api/net/jini/loader/pref/PreferredClassProvider.html"><code>PreferredClassProvider</code></a>
+</ul>
+<li><a href="../api/net/jini/security/TrustVerifier.html"><code>TrustVerifier</code></a> providers:
+<ul>
+<li><a href="../api/net/jini/constraint/ConstraintTrustVerifier.html"><code>ConstraintTrustVerifier</code></a>
+<li><a href="../api/net/jini/jeri/BasicJeriTrustVerifier.html"><code>BasicJeriTrustVerifier</code></a>
+<li><a href="../api/net/jini/jeri/ssl/SslTrustVerifier.html"><code>SslTrustVerifier</code></a>
+<li><a href="../api/net/jini/jeri/kerberos/KerberosTrustVerifier.html"><code>KerberosTrustVerifier</code></a>
+<li><a href="../api/net/jini/security/proxytrust/ProxyTrustVerifier.html"><code>ProxyTrustVerifier</code></a>
+<li><a href="../api/net/jini/discovery/ConstrainableLookupLocatorTrustVerifier.html"><code>ConstrainableLookupLocatorTrustVerifier</code></a>
+<li><a href="../api/com/sun/jini/discovery/DiscoveryConstraintTrustVerifier.html"><code>DiscoveryConstraintTrustVerifier</code></a>
+</ul>
+<li><a href="../api/net/jini/security/IntegrityVerifier.html"><code>IntegrityVerifier</code></a> providers:
+<ul>
+<li><a href="../api/net/jini/url/httpmd/HttpmdIntegrityVerifier.html"><code>HttpmdIntegrityVerifier</code></a>
+<li><a href="../api/net/jini/url/https/HttpsIntegrityVerifier.html"><code>HttpsIntegrityVerifier</code></a>
+<li><a href="../api/net/jini/url/file/FileIntegrityVerifier.html"><code>FileIntegrityVerifier</code></a>
+</ul>
+<li><a href="../api/net/jini/export/ServerContext.html"><code>ServerContext</code></a> providers:
+<ul>
+<li><a href="../api/net/jini/jrmp/JrmpServerContext.html"><code>JrmpServerContext</code></a>
+</ul>
+<li><a href="../api/com/sun/jini/discovery/DiscoveryFormatProvider.html"><code>DiscoveryFormatProvider</code></a>s for the following discovery formats:
+<ul>
+<li><code>net.jini.discovery.plaintext</code>
+<li><code>net.jini.discovery.ssl</code>
+<li><code>net.jini.discovery.kerberos</code>
+<li><code>net.jini.discovery.x500.SHA1withDSA</code>
+<li><code>net.jini.discovery.x500.SHA1withRSA</code>
+</ul>
+</ul>
+Depending on your deployment requirements, you may want to alter
+the contents of this JAR file to use different sets of providers.
+<p><dt><b><code>jsk-lib.jar</code></b>
+<dd>
+This JAR file is referenced in the <code>Class-Path</code> manifest attribute
+of many Apache River release implementation JAR files, and contains the utility
+APIs that are not tied to a specific service implementation.
+<p>
+This JAR file contains all of the classes and interfaces in the
+following namespaces (including all subpackages):
+<ul>
+<li><code>net.jini.admin</code>
+<li><code>net.jini.discovery</code> excluding <code>ConstrainableLookupLocatorTrustVerifier</code> which is contained in <code>jsk-platform.jar</code>
+<li><code>net.jini.entry</code>
+<li><code>net.jini.event</code>
+<li><code>net.jini.lease</code>
+<li><code>net.jini.lookup</code>
+<li><code>net.jini.space</code>
+<li><code>com.sun.jini.admin</code>
+<li><code>com.sun.jini.landlord</code>
+<li><code>com.sun.jini.lease</code>
+<li><code>com.sun.jini.lookup.entry</code>
+<li><code>com.sun.jini.proxy</code>
+<li><code>com.sun.jini.resource</code>
+<li><code>com.sun.jini.thread</code>
+</ul>
+plus the following classes:
+<ul>
+<li><a href="../api/com/sun/jini/config/Config.html"><code>Config</code></a>
+<li><a href="../api/com/sun/jini/logging/Levels.html"><code>Levels</code></a>
+<li><a href="../api/com/sun/jini/phoenix/ActivationAdmin.html"><code>ActivationAdmin</code></a>
+<li><a href="../api/com/sun/jini/start/LifeCycle.html"><code>LifeCycle</code></a>
+<li><a href="../api/com/sun/jini/start/ServiceProxyAccessor.html"><code>ServiceProxyAccessor</code></a>
+</ul>
+Any other classes or interfaces found in this JAR file should be considered
+implementation details.
+<p><dt><b><code>jsk-dl.jar</code></b>
+<dd>
+The codebase JAR file for <code>jsk-lib.jar</code>. An application that includes
+<code>jsk-lib.jar</code> in its class-path may also need to include <code>jsk-dl.jar</code>
+in its codebase.
+<p>
+This JAR file contains all of the classes and interfaces in the
+following namespaces (including all subpackages):
+<ul>
+<li><code>net.jini.admin</code>
+<li><code>net.jini.entry</code>
+<li><code>net.jini.event</code>
+<li><code>net.jini.lookup.entry</code> excluding <code>EntryBeans</code>
+<li><code>net.jini.space</code>
+<li><code>com.sun.jini.admin</code>
+<li><code>com.sun.jini.lease</code>
+<li><code>com.sun.jini.proxy</code>
+</ul>
+plus the following classes:
+<ul>
+<li><a href="../api/net/jini/discovery/LookupDiscoveryRegistration.html"><code>LookupDiscoveryRegistration</code></a>
+<li><a href="../api/net/jini/discovery/LookupDiscoveryService.html"><code>LookupDiscoveryService</code></a>
+<li><a href="../api/net/jini/discovery/LookupUnmarshalException.html"><code>LookupUnmarshalException</code></a>
+<li><a href="../api/net/jini/discovery/RemoteDiscoveryEvent.html"><code>RemoteDiscoveryEvent</code></a>
+<li><a href="../api/net/jini/lease/LeaseRenewalService.html"><code>LeaseRenewalService</code></a>
+<li><a href="../api/net/jini/lease/LeaseRenewalSet.html"><code>LeaseRenewalSet</code></a>
+<li><a href="../api/net/jini/lease/LeaseUnmarshalException.html"><code>LeaseUnmarshalException</code></a>
+<li><a href="../api/net/jini/lease/RenewalFailureEvent.html"><code>RenewalFailureEvent</code></a>
+<li><a href="../api/com/sun/jini/landlord/ConstrainableLandlordLease.html"><code>ConstrainableLandlordLease</code></a>
+<li><a href="../api/com/sun/jini/landlord/ConstrainableLandlordLeaseMap.html"><code>ConstrainableLandlordLeaseMap</code></a>
+<li><a href="../api/com/sun/jini/landlord/Landlord.html"><code>Landlord</code></a>
+<li><a href="../api/com/sun/jini/landlord/LandlordLease.html"><code>LandlordLease</code></a>
+<li><a href="../api/com/sun/jini/landlord/LandlordLeaseMap.html"><code>LandlordLeaseMap</code></a>
+<li><a href="../api/com/sun/jini/landlord/LandlordProxyVerifier.html"><code>LandlordProxyVerifier</code></a>
+<li><a href="../api/com/sun/jini/logging/Levels.html"><code>Levels</code></a>
+<li><a href="../api/com/sun/jini/lookup/entry/BasicServiceType.html"><code>BasicServiceType</code></a>
+<li><a href="../api/com/sun/jini/resource/ServiceConfigurationError.html"><code>ServiceConfigurationError</code></a>
+<li><a href="../api/com/sun/jini/start/ServiceProxyAccessor.html"><code>ServiceProxyAccessor</code></a>
+</ul>
+Any other classes or interfaces found in this JAR file should be considered
+implementation details.
+</dl>
+</ul>
+<ul><a name="starter_jars">
+<h2>Service Starter JAR files</h2></a>
+All of our services are designed to be run under the
+<a href="../api/com/sun/jini/start/package-summary.html">Service Starter</a>.
+<p>
+<dl>
+<dt><b><code>start.jar</code></b>
+<dd>This executable JAR file is the primary entry point for the
+Service Starter. It acts as both the class path for the container
+virtual machine (VM) for the Java platform that executes non-activatable 
+services, and as the
+setup VM for activatable services. It has a <code>Class-Path</code> manifest
+attribute that references <code>jsk-platform.jar</code>.
+<p><dt><b><code>sharedvm.jar</code></b>
+<dd>This JAR file is used as the class path for the activation group VM
+(the container VM for activatable services). It has a
+<code>Class-Path</code> manifest attribute that references both
+<code>jsk-platform.jar</code> and <code>phoenix-init.jar</code>.
+<p><dt><b><code>destroy.jar</code></b>
+<dd>This executable JAR file can be used to destroy an existing
+activation group and all of the activatable services registered
+in that group.
+<p><dt><b><code>group.jar</code></b>
+<dd>This JAR file contains the implementation of an activatable service
+used to destroy an existing activation group. It is typically used as
+the class path in a
+<a href="../api/com/sun/jini/start/SharedActivatableServiceDescriptor.html">
+<code>SharedActivatableServiceDescriptor</code></a> in a configuration file
+passed to <code>destroy.jar</code>.
+<p><dt><b><code>group-dl.jar</code></b>
+<dd>The codebase JAR file for <code>group.jar</code>, used in the same
+service descriptor as above for <code>group.jar</code>.
+</dl>
+</ul>
+<ul><a name="service_jars">
+<h2>Service JAR files</h2></a>
+There are two primary JAR files for each service, a service JAR file with
+a name of the form <code><var>service</var>.jar</code>, and a codebase JAR
+file with a name of the form <code><var>service</var>-dl.jar</code>.
+The service JAR file contains the service implementation itself, and
+can be thought of as the <i>class path</i> for the service. The
+service JAR file generally contains three versions of the service:
+a transient (non-activatable, non-persistent) version; a non-activatable,
+persistent version; and an activatable, persistent version. In this release,
+Mahalo and Mercury do not yet provide transient versions. The service
+JAR file is designed to be run under the Service Starter, and as such
+is not directly executable.
+The service JAR file's <code>Class-Path</code>
+manifest attribute refers to <code>jsk-lib.jar</code>.
+The codebase JAR file is used as the
+<i>codebase annotation</i> for the service; it contains classes and interfaces
+that are used by the service's proxies and trust verifiers, and that clients
+need to dynamically download. The codebase JAR file also contains a
+<a href="../api/net/jini/loader/pref/package-summary.html">
+<i>preferred list</i></a> for use by clients that have the
+<a href="../api/net/jini/loader/pref/PreferredClassProvider.html">
+<code>PreferredClassProvider</code></a> enabled.
+The codebase JAR file does not include any of the classes or interfaces found
+in <code>jsk-dl.jar</code> therefore <code>jsk-dl.jar</code> must be included
+in the service's codebase annotation. The codebase JAR should come first in
+the codebase annotation, so that its preferred list is obeyed, rather than the
+one in <code>jsk-dl.jar</code>.
+Neither the service JAR file nor the codebase JAR file include any of the
+classes or interfaces found in <code>jsk-platform.jar</code>: the Service
+Starter container (either <code>start.jar</code> or <code>sharedvm.jar</code>)
+provides these classes for the service implementation, and clients are
+expected to have <code>jsk-platform.jar</code> in their class path.
+<p>
+<dl>
+<dt><b><code>fiddler.jar</code></b>
+<dd>The service JAR file for the <a href="../api/com/sun/jini/fiddler/package-summary.html">Fiddler</a> implementation of the lookup discovery service.
+<p><dt><b><code>fiddler-dl.jar</code></b>
+<dd>The codebase JAR file for Fiddler.
+<p><dt><b><code>mahalo.jar</code></b>
+<dd>The service JAR file for the <a href="../api/com/sun/jini/mahalo/package-summary.html">Mahalo</a> implementation of the transaction manager service.
+<p><dt><b><code>mahalo-dl.jar</code></b>
+<dd>The codebase JAR file for Mahalo.
+<p><dt><b><code>mercury.jar</code></b>
+<dd>The service JAR file for the <a href="../api/com/sun/jini/mercury/package-summary.html">Mercury</a> implementation of the event mailbox service.
+<p><dt><b><code>mercury-dl.jar</code></b>
+<dd>The codebase JAR file for Mercury.
+<p><dt><b><code>norm.jar</code></b>
+<dd>The service JAR file for the <a href="../api/com/sun/jini/norm/package-summary.html">Norm</a> implementation of the lease renewal service.
+<p><dt><b><code>norm-dl.jar</code></b>
+<dd>The codebase JAR file for Norm.
+<p><dt><b><code>outrigger.jar</code></b>
+<dd>The service JAR file for the <a href="../api/com/sun/jini/outrigger/package-summary.html">Outrigger</a> implementation of the JavaSpaces service.
+<p><dt><b><code>outrigger-dl.jar</code></b>
+<dd>The codebase JAR file for Outrigger.
+<p><dt><b><code>reggie.jar</code></b>
+<dd>The service JAR file for the <a href="../api/com/sun/jini/reggie/package-summary.html">Reggie</a> implementation of the lookup service.
+<p><dt><b><code>reggie-dl.jar</code></b>
+<dd>The codebase JAR file for Reggie.
+</dl>
+</ul>
+<ul><a name="activation_jars">
+<h2>Activation JAR files</h2></a>
+This release contains a configurable Java Remote Method Invocation
+(Java RMI) activation system daemon implementation named
+<a href="../api/com/sun/jini/phoenix/package-summary.html">Phoenix</a>
+that we recommend using instead of <code>rmid</code> when deploying
+activatable versions of services.
+<p>
+<dl>
+<dt><b><code>phoenix.jar</code></b>
+<dd>This executable JAR file is used to run Phoenix.
+<p><dt><b><code>phoenix-dl.jar</code></b>
+<dd>The codebase JAR file for Phoenix. Unlike <code>rmid</code>,
+Phoenix <i>requires</i> clients to dynamically download code.
+<p><dt><b><code>phoenix-init.jar</code></b>
+<dd>This JAR file (or its contents) must be included in the class path of any
+activation group VM that is created by Phoenix to run activatable objects.
+<p><dt><b><code>phoenix-group.jar</code></b>
+<dd>This JAR file contains the default <code>ActivationGroup</code>
+implementation for Phoenix. Normally it is not referenced explicitly,
+but is instead loaded automatically from the same directory as
+<code>phoenix.jar</code>.
+</dl>
+</ul>
+<ul><a name="tools_jars">
+<h2>Tools JAR files</h2></a>
+<dl>
+<dt><b><code>tools.jar</code></b>
+<dd>This JAR file contains <a href="../manpages-index.html#tools">tools</a> for:
+checking configuration files; checking for missing
+<code>serialVersionUID</code> fields; computing class dependencies;
+providing HTTP service; generating message digests; generating HTTPMD URLs;
+examining the run-time environment of a River component;
+generating wrapper JAR files; and generating preferred lists. 
+When used as an executable JAR file, it runs the
+<a href="../api/com/sun/jini/tool/ClassServer.html">
+ClassServer</a>.
+<p><dt><b><code>checkconfigurationfile.jar</code></b><dd>A wrapper for <code>tools.jar</code>. When used as an executable JAR file, it runs <a href="../api/com/sun/jini/tool/CheckConfigurationFile.html">CheckConfigurationFile</a>.
+<p><dt><b><code>checkser.jar</code></b><dd>A wrapper for <code>tools.jar</code>. When used as an executable JAR file, it runs <a href="../api/com/sun/jini/tool/CheckSer.html">CheckSer</a>.
+<p><dt><b><code>classdep.jar</code></b><dd>A wrapper for <code>tools.jar</code>. When used as an executable JAR file, it runs <a href="../api/com/sun/jini/tool/ClassDep.html">ClassDep</a>.
+<p><dt><b><code>classserver.jar</code></b><dd>A wrapper for <code>tools.jar</code>. When used as an executable JAR file, it runs <a href="../api/com/sun/jini/tool/ClassServer.html">ClassServer</a>.
+<p><dt><b><code>computedigest.jar</code></b><dd>A wrapper for <code>tools.jar</code>. When used as an executable JAR file, it runs <a href="../api/com/sun/jini/tool/ComputeDigest.html">ComputeDigest</a>.
+<p><dt><b><code>computehttpmdcodebase.jar</code></b><dd>A wrapper for <code>tools.jar</code>. When used as an executable JAR file, it runs <a href="../api/com/sun/jini/tool/ComputeHttpmdCodebase.html">ComputeHttpmdCodebase</a>.
+<p><dt><b><code>envcheck.jar</code></b><dd>A wrapper for <code>tools.jar</code>. When used as an executable JAR file, it runs <a href="../api/com/sun/jini/tool/envcheck/EnvCheck.html">EnvCheck</a>.
+<p><dt><b><code>jarwrapper.jar</code></b><dd>A wrapper for <code>tools.jar</code>. When used as an executable JAR file, it runs <a href="../api/com/sun/jini/tool/JarWrapper.html">JarWrapper</a>.
+<p><dt><b><code>preferredlistgen.jar</code></b><dd>A wrapper for <code>tools.jar</code>. When used as an executable JAR file, it runs <a href="../api/com/sun/jini/tool/PreferredListGen.html">PreferredListGen</a>.
+<p><dt><b><code>browser.jar</code></b>
+<dd>This executable JAR file is used to run the example
+<a href="../api/com/sun/jini/example/browser/package-summary.html">Service
+Browser</a>.
+<p><dt><b><code>browser-dl.jar</code></b>
+<dd>The codebase JAR file for the Service Browser.
+</dl>
+</ul>
+<ul><a name="persistent_outrigger_jars">
+<h2>Persistent Outrigger JAR files</h2></a>
+<dl>
+<p><dt><b><code>outrigger-logstore.jar</code></b>
+<dd>A secondary JAR file referenced by the <code>Class-Path</code> manifest
+attribute of <code>outrigger.jar</code>, containing classes for the default
+storage implementation used by the persistent versions of Outrigger. In
+practice you should not need to refer directly to this JAR file.
+<p><dt><b><code>prebuilt-outrigger-logstore.jar</code></b>
+<dd>A secondary JAR file containing specially postprocessed classes in
+<code>outrigger-logstore.jar</code>. This JAR file is never used at runtime,
+it is only used if you attempt to rebuild the Apache River release from sources and
+do not have the necessary ObjectStore PSE Pro for Java postprocessor tool.
+In practice you should not need to refer directly to this JAR file.
+</dl>
+</ul>
+<ul><a name="deprecated_jars">
+<h2>Deprecated JAR files</h2></a>
+<dl>
+<dt><b><code>jini-core.jar</code></b>
+<dd>This JAR file contains all of the classes and interfaces in the
+<code>net.jini.core</code> namespace. No direct use of this JAR file
+is made in this release; it is simply provided as a possible convenience
+to developers. This JAR file has been deprecated in this release and might
+not be supplied in future versions of the Apache River release.
+<p><dt><b><code>jini-ext.jar</code></b>
+<dd>This JAR file contains all of the classes and interfaces in the
+<code>net.jini</code> namespace, plus all of the classes and interfaces
+that their implementations directly or indirectly depend on, including
+service providers in the <code>com.sun</code> namespace that might want to be
+configured in resources. The classes and interfaces in the
+<code>net.jini.core</code> namespace are not included directly; instead this
+JAR file has a <code>Class-Path</code> manifest attribute that refers to
+<code>jini-core.jar</code>. Note that the <code>Class-Path</code> manifest
+attribute does <i>not</i> refer to <code>jsk-resources.jar</code>, so no
+service providers are configured by default when using this JAR file at
+runtime. Any classes or interfaces in the <code>com.sun</code> namespace that
+appear in this JAR file should be considered implementation details. No
+direct use of this JAR file is made in this release; it is simply provided
+as a possible convenience to developers. This JAR file has been deprecated
+in this release and might not be supplied in future versions of the Apache River release.
+<p><dt><b><code>sdm-dl.jar</code></b>
+<dd>This JAR file contains proxy and trust verifier classes that generally
+need to be included in the codebase of any application that uses the
+implementation of the
+<a href="../api/net/jini/lookup/ServiceDiscoveryManager.html">
+<code>ServiceDiscoveryManager</code></a> provided in this release.
+This JAR file has been deprecated in this release and might not be supplied
+in future versions of the Apache River release. The function provided by this JAR file
+has been replaced by <code>jsk-dl.jar</code>.
+<p><dt><b><code>sun-util.jar</code></b>
+<dd>This JAR file contains various classes and interfaces in the
+<code>com.sun.jini</code> namespace that developers might want to reference.
+Of particular interest are the non-standard administrative
+interfaces implemented by our services, as well as the interfaces needed
+by services that want to run under the Service Starter. We make no
+claims about the API stability of these classes and interfaces. No direct
+use of this JAR file is made in this release; it is simply provided as a
+possible convenience to developers. This JAR file has been deprecated in
+this release and might not be supplied in future versions of the Apache River release.
+</dl>
+</ul>
+<hr>
+<ul><a name="javadoc">
+<h2>Note on the API documentation</h2></a>
+The on-line API documentation (generated by the
+Javadoc(TM) tool) provided in this release does not include
+every class and interface in the <code>com.sun.jini</code> packages.
+This omission was intentional; we only produced on-line API documentation
+for the classes and interfaces that we think might be important or useful
+to you. However, almost all of our classes and interfaces have
+documentation comments, so if you wish, you can produce
+API documentation for them yourself.
+</ul>
+
+<hr>
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+<ul>
+     <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>
+</ul>
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+</body>
+</html>

Added: websites/staging/river/trunk/content/river/doc/release-notes/jeri.html
==============================================================================
--- websites/staging/river/trunk/content/river/doc/release-notes/jeri.html (added)
+++ websites/staging/river/trunk/content/river/doc/release-notes/jeri.html Fri Dec 24 22:21:20 2010
@@ -0,0 +1,148 @@
+<!--
+ ! Licensed to the Apache Software Foundation (ASF) under one
+ ! or more contributor license agreements.  See the NOTICE file
+ ! distributed with this work for additional information
+ ! regarding copyright ownership. The ASF licenses this file
+ ! to you under the Apache License, Version 2.0 (the
+ ! "License"); you may not use this file except in compliance
+ ! with the License. You may obtain a copy of the License at
+ ! 
+ !      http://www.apache.org/licenses/LICENSE-2.0
+ ! 
+ ! Unless required by applicable law or agreed to in writing, software
+ ! distributed under the License is distributed on an "AS IS" BASIS,
+ ! WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ! See the License for the specific language governing permissions and
+ ! limitations under the License.
+ !-->
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+
+<body text="#000000" bgcolor="#ffffff" link="#9b37cc"
+      vlink="#cc1877" alink="#ffffff">
+<a name="top">
+<title>Release Notes for net.jini.jeri</title>
+
+<center>
+<h1><code>net.jini.jeri</code><br>
+Apache River v2.2.1 Release Notes</h1>
+</center>
+<HR>
+<UL>
+<H3>Description</H3>
+
+<p>The <a
+href="../api/net/jini/jeri/package-summary.html"><code>net.jini.jeri</code></a>
+package and its subpackages provide APIs for Jini extensible remote
+invocation (Jini ERI) and several Jini ERI transport layer providers.
+
+<H3>Changes since the v2.1.1 release</H3>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-22'>RIVER-22</a>] -         
+NPE in net.jini.jeri.tcp.TcpEndpoint$ConnectionImpl.checkConnectPermission
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-209'>RIVER-209</a>] -         
+NullPointerException in SslConnection.checkConnectPermission()
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-212'>RIVER-212</a>] -         
+use of &quot;enum&quot; as a variable name
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-229'>RIVER-229</a>] -         
+reduce number of Reaper threads created by ConnectionManager
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-230'>RIVER-230</a>] -         
+(mux) SelectionManager catch Error block assumes getMessage() returns non-null
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-240'>RIVER-240</a>] -         
+BasicInvocationDispatcher.dispatch could log more info for some exceptions
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-254'>RIVER-254</a>] -         
+request initiation can block on I/O for inapplicable connection
+</li>
+
+<H3>Changes since the v2.0.1 release</H3>
+
+
+
+<dt><b>Multihomed host support</b></dt>
+<dd>
+<p>As recommended by RFC 1123, the transport endpoints now attempt connections
+to all the IP addresses that a given host name may resolve to, instead of just
+the first one.
+</dd>
+
+<dt><b>Trust verification restriction</b>
+<dd><p><a
+href="../api/net/jini/jeri/BasicJeriTrustVerifier.html"><code>BasicJeriTrustVerifier</code></a>
+has been changed to trust fewer dynamic proxies. In particular, in addition to
+implementing
+<a href="../api/net/jini/core/constraint/RemoteMethodControl.html"><code>RemoteMethodControl</code></a>,
+the dynamic proxy must now implement one or more well-formed remote interfaces
+(ones that extend <code>Remote</code> and for which all methods declare
+<code>RemoteException</code> or a superclass in their throws clause), and
+must not implement any other interfaces except
+<a href="../api/net/jini/security/proxytrust/TrustEquivalence.html"><code>TrustEquivalence</code></a>.
+</dd>
+
+<dt><b>New <code>BasicJeriTrustVerifier</code> <code>protected</code>
+methods</b>
+
+<dd><p><a
+href="../api/net/jini/jeri/BasicJeriTrustVerifier.html"><code>BasicJeriTrustVerifier</code></a>
+has five new <code>protected</code> methods to allow for more
+convenient implementation of certain behaviors through subclassing:
+
+<ul>
+
+<li><a
+href="../api/net/jini/jeri/BasicJeriTrustVerifier.html#hasTrustedProxyClass(java.lang.Object,%20net.jini.security.TrustVerifier.Context)"><code>hasTrustedProxyClass</code></a>
+can be overridden by subclasses to control which dynamic proxy classes for
+Jini ERI proxies are considered locally trusted.
+
+<li><a
+href="../api/net/jini/jeri/BasicJeriTrustVerifier.html#hasTrustedClassLoader(java.lang.Object,%20net.jini.security.TrustVerifier.Context)"><code>hasTrustedClassLoader</code></a>
+can be overridden by subclasses to control the set of class loaders
+for which the class of a Jini ERI proxy, when defined by one of those
+loaders, is considered locally trusted.
+
+<li><a
+href="../api/net/jini/jeri/BasicJeriTrustVerifier.html#isTrustedProxyInterface(java.lang.Class,%20net.jini.security.TrustVerifier.Context)"><code>isTrustedProxyInterface</code></a>
+can be overridden by subclasses to control which dynamic proxy interfaces for
+Jini ERI proxies are considered locally trusted.
+
+<li><a
+href="../api/net/jini/jeri/BasicJeriTrustVerifier.html#isTrustedInvocationHandler(java.lang.reflect.InvocationHandler,%20net.jini.security.TrustVerifier.Context)"><code>isTrustedInvocationHandler</code></a>
+can be overridden by subclasses to support verification of invocation
+handlers that have a locally trusted class other than <a
+href="../api/net/jini/jeri/BasicInvocationHandler.html"><code>BasicInvocationHandler</code></a>
+(such as a subclass of <code>BasicInvocationHandler</code>).
+
+<li><a
+href="../api/net/jini/jeri/BasicJeriTrustVerifier.html#checkInvocationHandlerContent(net.jini.jeri.BasicInvocationHandler,%20net.jini.security.TrustVerifier.Context)"><code>checkInvocationHandlerContent</code></a>
+can be invoked by subclasses that override
+<code>isTrustedInvocationHandler</code> to perform the verification
+steps that the default implementation of
+<code>isTrustedInvocationHandler</code> would perform, except that the
+class of the invocation handler is not required to be
+<code>BasicInvocationHandler</code> exactly, so that trusted
+subclasses can be supported.
+
+</ul>
+<hr>
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+<ul>
+     <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>
+</ul>
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+</body>
+</html>

Added: websites/staging/river/trunk/content/river/doc/release-notes/join.html
==============================================================================
--- websites/staging/river/trunk/content/river/doc/release-notes/join.html (added)
+++ websites/staging/river/trunk/content/river/doc/release-notes/join.html Fri Dec 24 22:21:20 2010
@@ -0,0 +1,259 @@
+<!--
+ ! Licensed to the Apache Software Foundation (ASF) under one
+ ! or more contributor license agreements.  See the NOTICE file
+ ! distributed with this work for additional information
+ ! regarding copyright ownership. The ASF licenses this file
+ ! to you under the Apache License, Version 2.0 (the
+ ! "License"); you may not use this file except in compliance
+ ! with the License. You may obtain a copy of the License at
+ ! 
+ !      http://www.apache.org/licenses/LICENSE-2.0
+ ! 
+ ! Unless required by applicable law or agreed to in writing, software
+ ! distributed under the License is distributed on an "AS IS" BASIS,
+ ! WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ! See the License for the specific language governing permissions and
+ ! limitations under the License.
+ !-->
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<body text="#000000" bgcolor="#ffffff" link="#9b37cc"
+      vlink="#cc1877" alink="#ffffff">
+
+
+<title>Jini Join Utilities Release Notes</title>
+
+<center><h1>Jini Join Utilities
+  <BR>Apache River v2.1.2 Release Notes
+</h1></center>
+<HR>
+<UL>
+<H3>Description</H3>
+
+The class
+<a href="../api/net/jini/lookup/JoinManager.html"> <code>net.jini.lookup.JoinManager</code></a>
+is a utility class that, along with supporting interfaces and classes, 
+encapsulates functionality that can help Jini technology-enabled services 
+(<i>Jini services</i>) demonstrate good behavior in their discovery- 
+and registration-related interactions with Jini lookup services. 
+In particular, this utility performs functions related to lookup 
+service discovery and registration (<i>joining</i>), as well as lease
+renewal and attribute management.
+<p>
+The specification for the 
+<a href="../api/net/jini/lookup/JoinManager.html"> <code>JoinManager</code></a> 
+utility (join manager) is contained in the  <i>Jini Join Utilities Specification</i>,
+which is available in <a href="../specs/html/joinutil-spec.html">html</a>.
+<p>
+
+<H3>Changes since the v2.1.1 release</H3>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-25'>RIVER-25</a>] -         
+Improve logging for JoinManager at INFO and WARNING level
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-213'>RIVER-213</a>] -         
+(DOC) - JoinManger has typo in javadoc (missing &lt;/code&gt; termination tag)
+</li>
+
+<H3>Changes since the v2.0.1 release</H3>
+
+<dl>
+  <dt> <b>Configuration</b>
+  <dd> A new configuration entry has been added to the join manager implementation
+       in this release: <b>maxLeaseDuration</b>.
+       <p>
+       This new entry allows one to configure the maximum lease duration
+       (in milliseconds) that is requested from each discovered lookup service
+       on behalf of the service; both when the lease is initially requested,
+       as well as when renewal of that lease is requested. Thus, as this value
+       is made smaller, renewal requests will be made more frequently while the
+       service is up, and lease expiration will occur sooner when the service
+       goes down.
+       <p>
+       This new configuration entry is a result of <code>RFE 6202650</code>,
+       described <a href="#rfe6202650"> below</a>.
+       <p>
+       A full list of supported configuration entries is given in this utility's
+       <a href="../api/net/jini/lookup/JoinManager.html#jmConfigEntries"> class
+documentation</a>.
+       <p>
+
+  <dt> <b>Logging</b>
+  <dd> In this release, no changes have occurred with respect to the logging mechanism
+       employed by the join manager implementation; which logs diagnostic information to the
+       <a href="http://java.sun.com/j2se/1.4/docs/api/java/util/logging/Logger.html"> <code>Logger</code></a>
+       named <code>net.jini.lookup.JoinManager</code>. For a description of the
+       information that is logged, as well as the associated logging levels, refer to the
+       <a href="../api/net/jini/lookup/JoinManager.html#jmLogging"> class documentation</a>.
+       <p>
+
+  <dt> <b>New Feature Enhancements</b>
+  <dd> In this release, the following feature enhancements have been added to
+       the join manager:
+  <p>
+  <dt><b>4879947: JoinManager should support changing the service proxy</b><dt>
+  <dd> The <a href="../api/net/jini/lookup/JoinManager.html"> public API</a> of
+the
+       join manager has been enhanced with a new method having two versions:
+
+<pre><code>public void replaceRegistration(Object serviceProxy) {...}
+public void replaceRegistration(Object serviceProxy, Entry[] attrSets) {...}</code></pre>
+
+       Using either version of this new method, one can register a new
+       reference to the service (optionally, with new attributes) which
+       was previously registered, by the join manager, with all discovered
+       lookup services. Refer to the <a href="../specs/html/joinutil-spec.html"> specification</a>
+       of the join manager for details on the semantics of this new method.
+       <p>
+       All necessary modifications were made to the join manager
+       implementation to comply with this change.
+  </dd>
+  <p>
+  <dt><b>5110241: JoinManager spec change - lease from discarded LUS should be cancelled, not removed (JU.5.1)</b><dt>
+  <dd> Section JU.5.1 of the join manager <a href="../specs/html/joinutil-spec.html"> specification</a>
+       states that when a lookup service has been discarded, the lease granted
+       by that lookup service should be removed -- but not cancelled -- from the       lease renewal manager, and the lease should be allowed to expire.
+       That section of the spec was changed to require that the lease
+       be ultimately cancelled rather than removed.
+       <p>
+       All necessary modifications were made to the join manager
+       implementation to comply with this change.
+  </dd>
+  <p>
+
+<a name="rfe6202650">
+  <dt><b>6202650: JoinManager should allow configurable control of lease renewal interval</b><dt>
+  <dd> When a service employs a join manager to manage the service's
+       join state, the join manager registers the service with
+       lookup services and then manages the leases associated with each
+       registration using a lease renewal manager. The lease renewal manager
+       used by the join manager is either created by the
+       join manager or supplied by the service itself.
+       <p>
+       After registering the service with a lookup service, the
+       join manager passes the resulting lease to the lease
+       renewal manager, requesting that the lease be renewed at regular
+       intervals based on the lease duration ultimately granted by the
+       lookup service. This means that when the service goes down and
+       the lease renewal manager is no longer available to renew the
+       service's lease, the lookup service will not notify interested
+       parties that the service is down until that lease duration has
+       actually passed. Thus, the timeliness of such notifications is
+       directly related to the maximum lease duration granted by the
+       particular lookup service implementation with which the service
+       was registered. If the developer of a system desires more timely
+       notification of a service's demise, the developer either has to
+       configure/administer the lookup service to grant shorter leases,
+       or subclass the lease renewal manager supplied to the
+       join manager.
+       <p>
+       Although the lease renewal manager provides the ability for the
+       user of the lease renewal manager to control the lease duration
+       requested, and thus the length of the renewal interval, until
+       now, the join manager did not provide the service
+       with access to this functionality. Over the years, a number of
+       users have asked for this capability. This feature enhancement
+       is intended to satisfy that request.
+       <p>
+       All necessary modifications were made to the join manager
+       implementation to comply with this change.
+  </dd>
+  <p>
+
+  <dt> <b>Bug Fixes of Interest</b>
+  <dd> A number of bugs have been addressed in this release of the
+       join manager. What follows is a description of those bugs that
+       might be of interest:
+  <p>
+
+  <dt><b>5090332: Specifying WakeupManager in JoinManager configuration causes thread leak</b><dt>
+  <dd> Specifying a wakeup manager in the join manager configuration causes
+       an extra thread to be created and never destroyed for every new
+       join manager that is created.
+       <p>
+       This bug has been fixed.
+  </dd>
+  <p>
+  <dt><b>5103210: JoinManager has race condition when a LUS is discarded/re-discovered</b><dt>
+  <dd> If a previously discovered lookup service is discarded from the discovery       manager being used by the join manager, there is a race condition
+       in the join manager that can result in the service not re-registering
+       with the lookup service when it is re-discovered. To understand how this
+       race can occur, consider the following sequence:
+<pre><code>discard lookup service --> DiscMgrListener.discarded()
+removeTasks
+queue DiscardProxyTask
+
+re-discover lookup service --> DiscMgrListener.discovered()
+if(!joinSet.contains(lookup service)) --> add lookup service to joinSet
+                                      --> queue RegisterTask
+DiscardProxyTask runs
+remove lookup service from joinSet
+cancel service's lease with the discarded lookup service</code></pre>
+
+       Because <code>DiscMgrListener.discovered()</code> tests <code>joinSet</code> for
+       the lookup service before <code>DiscardProxyTask</code> removes that lookup
+       service from <code>joinSet</code> (and cancels the service's lease with
+       the lookup service), the <code>RegisterTask</code> is not queued and run;       thus, the service is never re-registered with the lookup service.
+       <p>
+       This bug has been fixed.
+  </dd>
+  <p>
+  <dt><b>6181162: JoinManager should create default LDM only when no DiscoveryManagement is configured</b><dt>
+  <dd> Prior to interrogating the configuration for a
+       <a href="../api/net/jini/discovery/DiscoveryManagement.html"> <code>DiscoveryManagement</code></a>
+       item (entry name = <b><i>discoveryManager</i></b>), a default
+       <a href="../api/net/jini/discovery/LookupDiscoveryManager.html"> <code>LookupDiscoveryManager</code></a>
+       is first created. Although that manager is initialized to discover no groups and no locators,
+       the <a href="../api/net/jini/discovery/LookupDiscovery.html"> <code>LookupDiscovery</code></a>
+       instance used by the default discovery manager to perform group discovery creates
+       a thread to listen for and process multicast announcements, as well as
+       additional, related threads. Thus, if a deployer configures a <i>discoveryManagement</i>
+       item, the creation of the default lookup discovery manager -- and the threads
+       that manager ultimately creates -- is unnecessary, and wastes resources.
+       <p>
+       This bug has been fixed.
+  </dd>
+  <p>
+  <dt><b>6215208: JoinManager race - repeated UnknownLeaseException-Reregistration-UnknownLeaseException</b><dt>
+  <dd> A race condition was discovered in which an
+       <a href="../api/net/jini/core/lease/UnknownLeaseException.html"> <code>UnknownLeaseException</code></a>
+       followed by a re-registration can repeatedly occur. This condition is
+       intitiated by a discard of the lookup service coincident with a service
+       lease expiration.
+       <p>
+       This bug has been fixed.
+  </dd>
+
+
+</dl>
+
+
+<!-- No issues for now
+<p>
+<H3>Known Issues (& Workarounds)</H3>
+    Currently, there are no known issues regarding the 
+    <a href="../api/net/jini/lookup/JoinManager.html"> <code>JoinManager</code></a>
+    utility.
+<p>
+-->
+
+</ul>
+<hr>
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+<ul>
+     <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>
+</ul>
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+</body>
+</html>
+

Added: websites/staging/river/trunk/content/river/doc/release-notes/lease.html
==============================================================================
--- websites/staging/river/trunk/content/river/doc/release-notes/lease.html (added)
+++ websites/staging/river/trunk/content/river/doc/release-notes/lease.html Fri Dec 24 22:21:20 2010
@@ -0,0 +1,117 @@
+<!--
+ ! Licensed to the Apache Software Foundation (ASF) under one
+ ! or more contributor license agreements.  See the NOTICE file
+ ! distributed with this work for additional information
+ ! regarding copyright ownership. The ASF licenses this file
+ ! to you under the Apache License, Version 2.0 (the
+ ! "License"); you may not use this file except in compliance
+ ! with the License. You may obtain a copy of the License at
+ ! 
+ !      http://www.apache.org/licenses/LICENSE-2.0
+ ! 
+ ! Unless required by applicable law or agreed to in writing, software
+ ! distributed under the License is distributed on an "AS IS" BASIS,
+ ! WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ! See the License for the specific language governing permissions and
+ ! limitations under the License.
+ !-->
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<body text="#000000" bgcolor="#ffffff" link="#9b37cc"
+      vlink="#cc1877" alink="#ffffff">
+
+
+<title>River Lease Utilities Release Notes</title>
+
+<center>
+<h1>Jini<font size="-1"><sup>TM</sup></font> Lease Utilities<BR>
+River v2.1.2 Release Notes</h1>
+</center>
+<HR>
+<UL>
+<H3>Description</H3>
+The class <code>net.jini.lease.LeaseRenewalManager</code> is a utility
+class that provides for the systematic renewal and overall management of
+a set of leases associated with one or more remote entities on behalf of
+a local entity.  The <i>Jini Lease Utilities Specification</i> is
+available in <a href="../specs/html/leaseutil-spec.html">html</a>.
+<p>
+
+<H3>Changes since the v2.1.1 release</H3>
+
+<dl>
+
+  <dt> <b>None</b></dt>
+  
+</dl>
+<H3>Changes since the v2.0.1 release</H3>
+
+<dl>
+
+  <dt> <b>Configuration</b>
+  <dd> A new configuration entry named <code>roundTripTime</code> may
+       be used to set the worst-case latency to assume for a remote
+       call to renew a lease. This latency was previously hard-coded
+       to a value of ten seconds.
+       A full list of supported configuration entries is given in the
+       <code>LeaseRenewalManager</code> <a
+       href="../api/net/jini/lease/LeaseRenewalManager.html#configEntries">
+       class documentation</a>. <p>
+
+  <dt> <b>Logging</b>
+  <dd> In this release, no changes have occurred with respect to the logging mechanism
+       employed by the <code>LeaseRenewalManager</code>, which logs
+       diagnostic information to the <a
+       href="http://java.sun.com/j2se/1.4/docs/api/java/util/logging/Logger.html">
+       <code>Logger</code></a> named
+       <code>net.jini.lease.LeaseRenewalManager</code>. A description of
+       what information is logged at what logging levels is given in the
+       <a
+       href="../api/net/jini/lease/LeaseRenewalManager.html#logging">
+       class documentation</a>.
+  <p>
+  <dt> <b>Bug Fixes of Interest</b>
+
+  <dd> A number of bugs have been addressed in this release of the
+       <code>LeaseRenewalManager.</code> What follows is a description of those
+       bugs that might be of interest:
+  <p>
+
+  <dt><b>5015237: <code>LeaseRenewalManager</code> does not log lease
+         renewal failures if no listener is specified</b><dt>
+
+  <dd>The renewal failure logging code had an unnecessary dependency
+      on the existence of a registered listener.
+      <p>
+      This bug has been fixed.
+  </dd>
+</dl>
+
+<!-- No issues for now
+
+<p>
+<H3>Known Issues (& Workarounds)</H3>
+<p>
+
+-->
+
+</ul>
+<hr>
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+<ul>
+     <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>
+</ul>
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+</body>
+</html>

Added: websites/staging/river/trunk/content/river/doc/release-notes/loader.html
==============================================================================
--- websites/staging/river/trunk/content/river/doc/release-notes/loader.html (added)
+++ websites/staging/river/trunk/content/river/doc/release-notes/loader.html Fri Dec 24 22:21:20 2010
@@ -0,0 +1,163 @@
+<!--
+ ! Licensed to the Apache Software Foundation (ASF) under one
+ ! or more contributor license agreements.  See the NOTICE file
+ ! distributed with this work for additional information
+ ! regarding copyright ownership. The ASF licenses this file
+ ! to you under the Apache License, Version 2.0 (the
+ ! "License"); you may not use this file except in compliance
+ ! with the License. You may obtain a copy of the License at
+ ! 
+ !      http://www.apache.org/licenses/LICENSE-2.0
+ ! 
+ ! Unless required by applicable law or agreed to in writing, software
+ ! distributed under the License is distributed on an "AS IS" BASIS,
+ ! WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ! See the License for the specific language governing permissions and
+ ! limitations under the License.
+ !-->
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+
+<body text="#000000" bgcolor="#ffffff" link="#9b37cc"
+      vlink="#cc1877" alink="#ffffff">
+<a name="top">
+<title>Release Notes for net.jini.loader</title>
+
+<center>
+<h1><code>net.jini.loader</code><br>
+Apache River v2.1.2 Release Notes</h1>
+</center>
+<HR>
+<UL>
+<H3>Description</H3>
+
+<p>The <a
+href="../api/net/jini/loader/package-summary.html"><code>net.jini.loader</code></a>
+package and its subpackages provide APIs related to dynamic class
+loading and, in particular, <i>preferred classes</i>.
+
+<H3>Changes since the v2.1.1 release</H3>
+
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-9'>RIVER-9</a>] -         
+PreferredClassLoader should try to avoid making a direct check against the 
+first URL
+</li>
+
+<H3>Changes since the v2.0.1 release</H3>
+
+<dl>
+
+<dt><b><code>PreferredClassProvider</code> constructors now require a
+permission</b>
+
+<dd><p>The constructors of <a
+href="../api/net/jini/loader/pref/PreferredClassProvider.html"><code>PreferredClassProvider</code></a>
+now check that the current security context has the permission
+<code>RuntimePermission("createClassLoader")</code>, and they throw a
+<code>SecurityException</code> if that check fails.  The primary
+consequence of this change is that the protection domain of a subclass
+of <code>PreferredClassProvider</code> must have this permission in
+order for the subclass to be instantiated.  Instances of
+<code>PreferredClassProvider</code> are typically only instantiated as
+part of the internal process of looking up and initializing the
+<code>RMIClassLoader</code> provider, so this change is unlikely to
+affect the permission requirements of classes other than
+<code>PreferredClassProvider</code> subclasses.
+
+<dt><b>New <code>PreferredClassLoader</code> constructor with
+<code>URLStreamHandlerFactory</code> parameter</b>
+
+<dd><p><a
+href="../api/net/jini/loader/pref/PreferredClassLoader.html"><code>PreferredClassLoader</code></a>
+has a <a
+href="../api/net/jini/loader/pref/PreferredClassLoader.html#PreferredClassLoader(java.net.URL[],%20java.lang.ClassLoader,%20java.lang.String,%20boolean,%20java.net.URLStreamHandlerFactory)">new
+constructor</a>, with a <code>URLStreamHandlerFactory</code> parameter
+that can be used to control the <code>URLStreamHandler</code> used
+when the loader creates new <code>URL</code> objects (which it does in
+order to load classes and resources from JAR files, by using the
+<code>"jar"</code> URL scheme).  This new constructor is intended to
+parallel the superclass <code>java.net.URLClassLoader</code>
+constructor that has a <code>URLStreamHandlerFactory</code> parameter.
+
+<dt><b>New <code>PreferredClassProvider</code> <code>protected</code>
+method <code>createClassLoader</code></b>
+
+<dd><p><a
+href="../api/net/jini/loader/pref/PreferredClassProvider.html"><code>PreferredClassProvider</code></a>
+has a new <code>protected</code> method, <a
+href="../api/net/jini/loader/pref/PreferredClassProvider.html#createClassLoader(java.net.URL[],%20java.lang.ClassLoader,%20boolean)"><code>createClassLoader</code></a>,
+which can be overridden by subclasses to customize the creation of new
+class loaders created by the provider.
+
+</dl>
+
+
+<H3>Known Issues (& Workarounds)</H3>
+
+<dl>
+
+<dt><b>Difference in behavior between
+<code>PreferredClassProvider</code> and the default
+<code>RMIClassLoader</code> provider</b>
+
+<dd><p><a
+href="../api/net/jini/loader/pref/PreferredClassProvider.html"><code>PreferredClassProvider</code></a>
+has the following difference in behavior from the <a
+href="http://java.sun.com/j2se/1.4/docs/api/java/rmi/server/RMIClassLoader.html#getDefaultProviderInstance()">default
+<code>RMIClassLoader</code> provider</a> even when no preferred lists
+are used:
+
+<p>For a given class loader, <a
+href="../api/net/jini/loader/pref/PreferredClassProvider.html#loadClass(java.lang.String,%20java.lang.String,%20java.lang.ClassLoader)"><code>PreferredClassProvider.loadClass</code></a>
+assumes that any class that can be downloaded from the codebase
+annotation for classes defined by the loader can always be loaded by
+the loader.  Therefore, when attempting to load a class from a given
+codebase, if the current thread's context class loader or one of its
+ancestor loaders has that codebase as its annotation, then
+<code>PreferredClassProvider.loadClass</code> will only attempt to
+load the class from that loader instead of from one of its own loaders
+that downloads from the codebase.
+
+<p>The default <code>RMIClassLoader</code> provider does not make this
+assumption; its <code>loadClass</code> method will attempt to download
+a class from a codebase even if a class loader with that codebase as
+its annotation (such as the current thread's context class loader or
+one of its ancestors) could not load the class.
+
+<p><code>PreferredClassProvider.loadClass</code> makes the assumption
+in order to avoid incorrectly returning a preferred class defined by a
+different class loader (and thus with a different runtime type) than
+that of a locally available class with the same name and codebase
+annotation.
+
+<p>In versions of the Norm implementation of the River lease
+renewal service prior to v2.0, there are some classes in
+<code>norm-dl.jar</code> that are not in <code>norm.jar</code>, and
+thus Norm will fail to start with <code>PreferredClassProvider</code>
+configured as the <code>RMIClassLoader</code> provider.  This problem
+can be worked around by using the default <code>RMIClassLoader</code>
+provider instead of <code>PreferredClassProvider</code>, or by using
+the current version of Norm.
+
+</dl>
+
+</ul>
+<hr>
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+<ul>
+     <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>
+</ul>
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+</body>
+</html>

Added: websites/staging/river/trunk/content/river/doc/release-notes/mahalo.html
==============================================================================
--- websites/staging/river/trunk/content/river/doc/release-notes/mahalo.html (added)
+++ websites/staging/river/trunk/content/river/doc/release-notes/mahalo.html Fri Dec 24 22:21:20 2010
@@ -0,0 +1,143 @@
+<!--
+ ! Licensed to the Apache Software Foundation (ASF) under one
+ ! or more contributor license agreements.  See the NOTICE file
+ ! distributed with this work for additional information
+ ! regarding copyright ownership. The ASF licenses this file
+ ! to you under the Apache License, Version 2.0 (the
+ ! "License"); you may not use this file except in compliance
+ ! with the License. You may obtain a copy of the License at
+ ! 
+ !      http://www.apache.org/licenses/LICENSE-2.0
+ ! 
+ ! Unless required by applicable law or agreed to in writing, software
+ ! distributed under the License is distributed on an "AS IS" BASIS,
+ ! WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ! See the License for the specific language governing permissions and
+ ! limitations under the License.
+ !-->
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+
+<body text="#000000" bgcolor="#ffffff" link="#9b37cc"
+      vlink="#cc1877" alink="#ffffff">
+<a name="top">
+<title>Release Notes for Mahalo</title>
+
+<center>
+<h1>Mahalo<br>
+v2.1.2 Release Notes</h1>
+</center>
+<HR>
+<UL>
+<H3>Description</H3>
+<p>"Mahalo" is the name of  the contributed River transaction manager 
+implementation from Sun Microsystems. The River Transaction 
+Specification is available in <a
+href="../specs/html/txn-spec.html">HTML</a>.
+<p>
+
+<H3>Changes since the v2.1.1 release</H3>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-284'>RIVER-284</a>] -         
+[PATCH] fix bad ParticipantHandle.compareTo 
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/RIVER-286'>RIVER-286</a>] -         
+[PATCH] iterators on synchronized collections still need synchronization
+</li>
+
+<H3>Changes since the v2.1 release</H3>
+<dl>
+
+  <dt> <b>None</b></dt>
+  
+       
+</dl>
+
+<H3>Changes since the v2.0.1 release</H3>
+<dl>
+
+  <dt> <b>Configuration</b></dt>
+  <dd> The following configuration entries have been added to the
+       Mahalo implementation:
+       <UL>
+       <LI> <B>settlerPool</B> -  The pool of threads used to settle outstanding
+            transactions.
+       <LI> <B>taskPool</B> -  The pool of threads used to settle transactions.
+       </UL>
+       These "thread pool" objects can now be sized for end user
+       applications. See Mahalo's package
+       <a href="../api/com/sun/jini/mahalo/package-summary.html#configuration">documentation</a>
+       for more detail.
+  </dd>
+  <dt> <b>Bug Fixes of Interest</b></dt>
+  <dd> The following bugs have been addressed in this release:
+  <p>
+  <dl>
+  <dt><b>
+      4285733: Is the Transaction spec correct about permissible votes?
+      </b></dt>
+  <dd>Section TX.2.7 of the
+      Jini (TM) Transaction Specification was changed to correct the permissible     
+      vote outcomes for <code>prepare</code>. Specifically, the
+      <code>COMMITTED</code> vote was changed to <code>PREPARED</code>.
+  </dd>
+  <dt><b>
+      4394196: Txn specs fixes
+      </b></dt>
+  <dd>Section TX.1.3 of the
+      Jini (TM) Transaction Specification was changed to emphasize that Java(TM)      
+      Remote Method Invocation (Java RMI) semantics are replied upon and not any particular
+      implementation. Section TX.2.3 removed a confusing "crash count" example.
+      In section TX.2.7, the paragraphs dealing with <code>abort</code>
+      and <code>prepareAndCommit</code> were modified for clarity. Section 2.8
+      was modified to note that the commit point record can be removed after
+      successfully returning from <code>abort</code>
+      (in addition to <code>commit</code>). Section 2.8.1 added an additional
+      bullet item noting that <code>getState</code> can return
+      <code>ABORTED</code>.
+  </dd>
+  <dt><b>
+      4761012: prepareAndCommit semantics amibiguous wrt idempotentcy
+      </b></dt>
+  <dd>Section TX.2.6 & TX.2.7 of the
+      Jini (TM) Transaction Specification were changed to note that
+      <code>prepareAndCommit</code> calls may not be idempotent.
+  </dd>
+  <dt><b>
+      5054742: Transaction spec does not specify whether or not participant
+      commit is atomic
+      </b></dt>
+  <dd>Section TX.3.5 of the
+      Jini (TM) Transaction Specification was changed to note that
+      participants are not required to implement atomic <code>abort</code> and
+      <code>commit</code> calls.
+  </dd>  </dl>
+  <p>
+
+</dl>
+
+<!-- N/A 
+<p>
+<H3>Known Issues (& Workarounds)</H3>
+<p>
+-->
+
+</ul>
+<hr>
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+<ul>
+     <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>
+</ul>
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+</body>
+</html>