#
Apache River
v3.0.0 Release Notes

### Changes since the v2.2.0 release

None

## Release notes from v2.1

Note that some of the links here contain updated information since v2.1

Ant build support

  This release contains support for generating binary files and documentation from the provided source code using the Apache Ant build tool. As part of this effort, we have simplified the source tree structure by eliminating the historical `vob/jive` and `vob/tools` intermediate directories.

  More Information

  - Apache Ant
  - Build Instructions

`EnvCheck` tool

  This new tool is used to perform validity checks on the runtime environment of a client or service by validating the system properties and configuration files used when starting that service.

  More Information

  - `org.apache.river.tool.EnvCheck` API Documentation

`PreferredListGen` tool

  This new tool is used to generate preferred class information for a service's downloadable JAR files.

  More Information

  - `org.apache.river.tool.PreferredListGen` API Documentation

Tool wrappers

  Executable JAR wrapper files have been included for all of the tools included in the release.

  More Information

  - Tools section of the Release Notes

Mailbox extensions

  We are proposing the addition of pull-style access to the event mailbox service. This extension allows mailbox clients to retrieve events on demand.

  More Information

  - Mercury Release Notes
  - `com.sun.mercury` API Documentation

JavaSpaces extensions

  We are proposing the `net.jini.space.JavaSpace05` extension to JavaSpaces technology. The extension supports batch operations and makes it easier to develop applications where the same entry needs to be read by multiple clients. The version of Outrigger included with this release implements this extension.

  More Information

  - `net.jini.space.JavaSpace05` API Documentation
  - Outrigger Release Notes

JAR file changes

  The `lib` directory (containing JAR files) has been split into three directories in this release: `lib`, `lib-dl`, and `lib-ext`. All codebase JAR files are now in the `lib-dl` directory; this change was made to enable serving up just those files via the HTTP server, providing a better network security posture. This change will affect any existing scripts and configurations that start an HTTP server referencing the `lib` directory. The `jsk-policy.jar` file is now in the `lib-ext` directory so that, if desired, you can specify that directory as an additional J2SE extension directory rather than installing the JAR file into the default J2SE extension directory.

  Two new JAR files, `jsk-lib.jar` and `jsk-dl.jar`, have been introduced to better enable layered systems to use JAR files directly in deployments and avoid including class files in their own layered JAR files. These JAR files are also now used by the services in the release. The addition of `jsk-lib.jar` to class paths will affect existing service and browser policy files (permissions must be granted to `jsk-lib.jar`), and the addition of `jsk-dl.jar` to codebases will affect existing scripts and configurations that set up codebases for services.

  More Information

  - Getting Started
  - Platform JARs

`ConfigurationFile` additions

  `net.jini.config.ConfigurationFile` now supports the ability to concatenate strings using the '+' operator. This provider now also allows subclasses to control the `net.jini.config.ConfigurationException` it throws when problems are encountered in parsing a configuration source or in returning an entry or the type of an entry.

  More Information

  - `net.jini.config.ConfigurationFile` API Documentation

Multihomed host support

  The standard Jini extensible remote invocation (Jini ERI) transport layer providers and the discovery utilities now attempt connections to all of the IP addresses that a host name resolves to, instead of just the first one.

  More Information

  - `net.jini.discovery` API Documentation
  - Jini ERI Release Notes
  - Discovery Release Notes

New `JoinManager` addition

  `JoinManager`'s public APIs have been enhanced to provide the ability to replace a previously registered service with all discovered lookup services. In addition, the ability to configure lease renewal intervals has been added.

  More Information

  - `net.jini.lookup.JoinManager` API Documentation

Reggie enhancements

  There have been several modifications made to Reggie around handling of evolved proxy and attribute set classes, reuse of multicast announcements, and others.

  More Information

  - Reggie Release Notes

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.