| <!-- |
| ! 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, v3.0.0</title> |
| </head> |
| <body text="#000000" bgcolor="#ffffff" link="#9b37cc" |
| vlink="#cc1877" alink="#ffffff"> |
| |
| |
| <center> <h1><a name="TOP">Apache River |
| <br>v3.0.0 Release Notes</a></h1></center> |
| <p> |
| Apache River is aimed at the development and advancement of the |
| River technology core infrastructure. It is a top level Apache project. 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>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://river.apache.org/mailing-lists.html"> |
| project Mailing Lists</a> page. |
| <hr> |
| |
| <ul><a name="platform"><h2>Platform dependencies</h2></a> |
| This release depends on new features included in version 6 of |
| the <a href="http://docs.oracle.com/javase/6/docs/">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 |
| to avoid possible deadlock, however this is no longer necessary if using |
| <code>DynamicPolicyProvider</code> with |
| <a href="../api/org/apache/river/api/security/ConcurrentPolicyFile.html"> |
| <code>ConcurrentPolicyFile</code></a> as the default base policy. |
| It will not be possible to use the extension facility with Java 9. |
| <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. |
| <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://docs.oracle.com/javase/6/docs/technotes/guides/jar/jar.html#Service Provider"><i>service provider</i></a> resources to control the configuration of |
| <a href="../api/net/jini/loader/ClassLoading.html"><code>ClassLoading</code></a>, |
| <a href="http://docs.oracle.com/javase/6/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/org/apache/river/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>org.apache.river.discovery</code> |
| </ul> |
| plus the following classes: |
| <ul> |
| <li><a href="../api/net/jini/discovery/ConstrainableLookupLocatorTrustVerifier.html"><code>net.jini.discovery.ConstrainableLookupLocatorTrustVerifier</code></a> |
| <li><a href="../api/net/jini/discovery/ConstrainableLookupLocator.html"><code>net.jini.discovery.ConstrainableLookupLocator</code></a> |
| <li><a href="../api/org/apache/river/config/KeyStores.html"><code>org.apache.river.config.KeyStores</code></a> |
| <li><a href="../api/org/apache/river/config/ConfigUtil.html"><code>org.apache.river.config.ConfigUtil</code></a> |
| <li><a href="../api/org/apache/river/logging/LogManager.html"><code>org.apache.river.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://docs.oracle.com/javase/6/docs/api/java/rmi/server/RMIClassLoaderSpi.html"> |
| <code>RMIClassLoader</code></a> and <a href="../api/net/jini/loader/ClassLoading.html"> |
| <code>ClassLoading</code></a> providers: |
| <ul> |
| <li><a href="../api/net/jini/loader/pref/PreferredClassProvider.html"><code>PreferredClassProvider</code></a> |
| <li><a href="../api/net/jini/loader/pref/RequireDlPermProvider.html"><code>RequireDlPermProvider</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/org/apache/river/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/org/apache/river/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>org.apache.river.admin</code> |
| <li><code>org.apache.river.landlord</code> |
| <li><code>org.apache.river.lease</code> |
| <li><code>org.apache.river.lookup.entry</code> |
| <li><code>org.apache.river.proxy</code> |
| <li><code>org.apache.river.resource</code> |
| <li><code>org.apache.river.thread</code> |
| </ul> |
| plus the following classes: |
| <ul> |
| <li><a href="../api/org/apache/river/config/Config.html"><code>Config</code></a> |
| <li><a href="../api/org/apache/river/logging/Levels.html"><code>Levels</code></a> |
| <li><a href="../api/org/apache/river/phoenix/ActivationAdmin.html"><code>ActivationAdmin</code></a> |
| <li><a href="../api/org/apache/river/start/LifeCycle.html"><code>LifeCycle</code></a> |
| <li><a href="../api/org/apache/river/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>org.apache.river.admin</code> |
| <li><code>org.apache.river.lease</code> |
| <li><code>org.apache.river.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/org/apache/river/landlord/ConstrainableLandlordLease.html"><code>ConstrainableLandlordLease</code></a> |
| <li><a href="../api/org/apache/river/landlord/ConstrainableLandlordLeaseMap.html"><code>ConstrainableLandlordLeaseMap</code></a> |
| <li><a href="../api/org/apache/river/landlord/Landlord.html"><code>Landlord</code></a> |
| <li><a href="../api/org/apache/river/landlord/LandlordLease.html"><code>LandlordLease</code></a> |
| <li><a href="../api/org/apache/river/landlord/LandlordLeaseMap.html"><code>LandlordLeaseMap</code></a> |
| <li><a href="../api/org/apache/river/landlord/LandlordProxyVerifier.html"><code>LandlordProxyVerifier</code></a> |
| <li><a href="../api/org/apache/river/logging/Levels.html"><code>Levels</code></a> |
| <li><a href="../api/org/apache/river/lookup/entry/BasicServiceType.html"><code>BasicServiceType</code></a> |
| <li><a href="../api/org/apache/river/resource/ServiceConfigurationError.html"><code>ServiceConfigurationError</code></a> |
| <li><a href="../api/org/apache/river/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/org/apache/river/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/org/apache/river/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/org/apache/river/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/org/apache/river/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/org/apache/river/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/org/apache/river/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/org/apache/river/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/org/apache/river/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/org/apache/river/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/org/apache/river/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/org/apache/river/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/org/apache/river/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/org/apache/river/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/org/apache/river/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/org/apache/river/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/org/apache/river/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/org/apache/river/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/org/apache/river/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/org/apache/river/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/org/apache/river/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. |
| <dd>Note that the Service Browser is an old example written before |
| the Java Memory Model JSR 133, it doesn't export |
| services safely. Do not copy this example. For a modern example |
| see <a href ="https://github.com/dreedyman/apache-river-example"> |
| Dennis Reedy's apache-river-example on GitHub</a> |
| </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> |
| <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>org.apache.river</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> |
| |
| <!-- Start 3.0.0 Release Note --> |
| |
| <hr> |
| <h1>Release Notes - River 3.0.0</h1> |
| <h2>Sub-task</h2> |
| |
| Release Notes - River - Version River_3.0.0 |
| |
| <h2> Sub-task |
| </h2> |
| <ul> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-319'>RIVER-319</a>] - Change River Build Dist structure to support jtreg test automation |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-344'>RIVER-344</a>] - com.sun.jini.thread.TaskManager scalability and concurrency. |
| </li> |
| </ul> |
| |
| <h2> Bug |
| </h2> |
| <ul> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-19'>RIVER-19</a>] - PreferredClassLoader doesn't implement preferred semantics for getResources(String) |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-113'>RIVER-113</a>] - JoinManager synchronization on each proxyReg should be reviewed, doc'd and fixed where appropriate |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-145'>RIVER-145</a>] - JoinManager synchronization on serviceItem should be reviewed, doc'd and fixed where appropriate |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-148'>RIVER-148</a>] - JoinManager.ProxyReg.fail synchronization may be wrong or may be able to simplify it |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-265'>RIVER-265</a>] - PreferredClassProvider performs 'unlucky' caching |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-282'>RIVER-282</a>] - Suspect exception cast |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-335'>RIVER-335</a>] - com.sun.jini.phoenix.ConstrainableAID missing from phoenix.jar |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-337'>RIVER-337</a>] - Attempted discard of unknown registrar kills LookupLocatorDiscovery thread |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-345'>RIVER-345</a>] - SDM LookupCache multi-LUS stale proxy/discard problems |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-348'>RIVER-348</a>] - Possible race condition in net.jini.lookup.ServiceDiscoveryManager addProxyReg |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-367'>RIVER-367</a>] - com.sun.jini.mahalo.TxnManagerImpl fails to abort a Transaction when notified of its lease expiration. |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-387'>RIVER-387</a>] - KerberosServerEndpoint calls com.sun.security methods, animal-sniffer warns |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-395'>RIVER-395</a>] - Ill-behaved DiscoveryListener can terminate discovery notifier threads |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-402'>RIVER-402</a>] - NullPointerException in LookupCacheImpl.notifyServiceMap |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-418'>RIVER-418</a>] - Service server implementations start threads before construction is complete allow "this" to escape |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-420'>RIVER-420</a>] - Export during construction. |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-422'>RIVER-422</a>] - Missing reference-collections and high-scale-lib in Manifest for jsk-platform |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-431'>RIVER-431</a>] - Java Memory Model Compliance |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-433'>RIVER-433</a>] - Test suite freeze while testing service discovery category |
| </li> |
| </ul> |
| |
| <h2> Improvement |
| </h2> |
| <ul> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-26'>RIVER-26</a>] - Make UmbrellaGrantPermission work with DynamicPolicy |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-107'>RIVER-107</a>] - DynamicPolicyProvider could use finer grained locking |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-123'>RIVER-123</a>] - ConfigurationFile should support arithmetic operations |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-140'>RIVER-140</a>] - JoinManager synchronization strategy should be reviewed, documented, and fixed where appropriate |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-193'>RIVER-193</a>] - support declaring entries in a "common" configuration source for use in other configuration sources |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-249'>RIVER-249</a>] - DynamicPolicy providers do not support UmbrellaGrantPermission |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-274'>RIVER-274</a>] - Improve logging of diagnostic messages in ServiceDiscoveryManager |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-343'>RIVER-343</a>] - Private class extends java.lang.Thread, causing synchronization bottleneck. |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-386'>RIVER-386</a>] - Refactor of FastList inside of Outrigger |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-401'>RIVER-401</a>] - PreferredClassProvider using URL as key in map |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-412'>RIVER-412</a>] - rename com.sun.jini packages to org.apache.river.impl |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-439'>RIVER-439</a>] - River only builds on Sun's JVM, add support for other JVM's |
| </li> |
| </ul> |
| |
| <h2> New Feature |
| </h2> |
| <ul> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-313'>RIVER-313</a>] - Provide mechanism to swap in alternatives to Java DSL for service configuration |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-340'>RIVER-340</a>] - Additional Dynamic Grants and Revokeable Permissions |
| </li> |
| </ul> |
| |
| <h2> Question |
| </h2> |
| <ul> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-365'>RIVER-365</a>] - main build.xml contains remarks about deprecated (and to be removed) targets, needs clarification |
| </li> |
| </ul> |
| |
| <h2> TCK Challenge |
| </h2> |
| <ul> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-419'>RIVER-419</a>] - ServiceDiscoveryManager lookup qa TCK tests need to be reviewed |
| </li> |
| </ul> |
| |
| <h2> Task |
| </h2> |
| <ul> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-261'>RIVER-261</a>] - update com.sun.* namespace to org.apache.river.* |
| </li> |
| </ul> |
| |
| <h2> Test |
| </h2> |
| <ul> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-304'>RIVER-304</a>] - Reactivate River jtreg tests |
| </li> |
| </ul> |
| |
| |
| <!-- Start 2.2.0 Release Note --> |
| |
| <hr> |
| <h1>Release Notes - River 2.2.0</h1> |
| <h2>Sub-task</h2> |
| |
| Release Notes - River - Version River_2.2.0 |
| |
| <h2> Sub-task |
| </h2> |
| <ul> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-374'>RIVER-374</a>] - Review how LookupLocator is used to provide host and port details for LookupLocatorDiscovery |
| </li> |
| </ul> |
| |
| <h2> Bug |
| </h2> |
| <ul> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-11'>RIVER-11</a>] - LookupLocatorDiscovery ignores new LookupLocator instances for which only constraints differ |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-170'>RIVER-170</a>] - hello example ConfirmingILFactory assumes ClientHost.toString is useful |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-183'>RIVER-183</a>] - clarify meaning of "calls from the local host" |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-287'>RIVER-287</a>] - [PATCH] avoid race condition problems for taking snapshots |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-296'>RIVER-296</a>] - Mahalo implementation throws CannotAbortException from abort() on an expired transaction |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-334'>RIVER-334</a>] - jre 6 Policy issues |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-353'>RIVER-353</a>] - VM sometimes crashes during build when executing jarwrapper |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-354'>RIVER-354</a>] - TransactionManagerImpl.abort throws a NullPointerException when transaction is not found, where interface TransactionManager specifies an UnknownTransactionException to be thrown. |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-391'>RIVER-391</a>] - Outrigger failure under stress |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-397'>RIVER-397</a>] - Mux.start() can block indefinitely |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-142'>RIVER-142</a>] - concurrency problem in DGC lease expiration handling |
| </li> |
| </ul> |
| |
| <h2> Improvement |
| </h2> |
| <ul> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-92'>RIVER-92</a>] - preferredlistgen warning messages during build are confusing |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-346'>RIVER-346</a>] - Logging for QA tests is set to FINEST for many loggers by default . This should be changed to INFO. |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-349'>RIVER-349</a>] - Setup separate Hudson job for QA testing |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-396'>RIVER-396</a>] - PreferredClassProvider classloader cache concurrency improvement |
| </li> |
| </ul> |
| <!-- This has not been implemented. |
| <h2> New Feature |
| </h2> |
| <ul> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-338'>RIVER-338</a>] - Integrate The Jini Surrogate Architecture |
| </li> |
| </ul> |
| --> |
| <h2> Task |
| </h2> |
| <ul> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-301'>RIVER-301</a>] - Move the QA framework donated by Sun inside the jtsk trunk and integrate into build process |
| </li> |
| </ul> |
| |
| <h2> Test |
| </h2> |
| <ul> |
| <li>[<a href='https://issues.apache.org/jira/browse/RIVER-333'>RIVER-333</a>] - Tested platforms |
| </li> |
| </ul> |
| |
| <a name="changes"> |
| <h2>Changes by Component, updated for v2.2.0</h2></a> |
| <h3>Services</h3> |
| <ul> |
| <li><a href="reggie.html">Reggie</a> |
| <li><a href="mahalo.html">Mahalo</a> |
| <li><a href="outrigger.html">Outrigger</a> |
| </ul> |
| <h3>Jeri</h3> |
| <ul> |
| <li><a href="jeri.html"><code>net.jini.jeri</code></a> |
| </ul> |
| <h3>Loader</h3> |
| <ul> |
| <li><a href="loader.html"><code>net.jini.loader</code></a> |
| </ul> |
| <h3>Normal</h3> |
| <ul> |
| <li><a href="norm.html"><code>org.apache.river.norm</code></a> |
| </ul> |
| <h3>Other</h3> |
| <ul> |
| <li><a href="security.html">Security</a> |
| <li><a href="comsunjiniexample.html"><code>org.apache.river.example</code></a> |
| <li><a href="activation.html"><code>org.apache.river.phoenix</code></a> |
| <li><a href="build.html">Build</a></li> |
| <!--<li><a href="jinisurrogatearchitecture.html">Jini Surrogate Architecture</a></li>--> |
| </ul> |
| <hr> |
| <ul><a name="platform"><h2>Platform dependencies</h2></a> |
| This release depends on new features included in version 1.5 of |
| the <a href="http://java.sun.com/j2se/1.5/">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> |
| |
| <!-- End 2.2.0 Release Note --> |
| |
| <h2>Notes of Interest 2.1.2</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 org.apache.river.outrigger.Store has |
| been removed |
| <p> |
| The persistent version of Outrigger relies on a pluggable persistence |
| layer, <code>org.apache.river.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>org.apache.river.outrigger.store</code> configuration entry (or add a |
| store configuration entry if you don't already have one) to yield a |
| <code>org.apache.river.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> |
| |
| |
| <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>] - |
| org.apache.river.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 "enum" 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 </code> 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 "org.apache.river.reliableLog" |
| </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 "enum" 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>] - |
| org.apache.river.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 River 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>org.apache.river.thread</code></a> |
| </ul> |
| <hr> |
| |
| |
| <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> |