# Jini(TM) Discovery Utilities
v2.0_002 Release Notes

### Description

The Jini(TM) discovery utilities contain a set of discovery management interfaces, that define the policies to apply when implementing helper utilities that manage an entity's discovery duties: in particular, the management of multicast (group) discovery and unicast (locator) discovery. The discovery management interfaces are:

- `net.jini.discovery.DiscoveryManagement`
- `net.jini.discovery.DiscoveryGroupManagement`
- `net.jini.discovery.DiscoveryLocatorManagement`

The discovery utilities also include a set of standard helper utility classes that implement one or more of the discovery management interfaces. The helper utility classes are:

- `net.jini.discovery.LookupDiscovery`
- `net.jini.discovery.LookupLocatorDiscovery`
- `net.jini.discovery.LookupDiscoveryManager`

Newly added in v2.0 are the following APIs, which are described later in this document:

- `net.jini.discovery.ConstrainableLookupLocator`
- `com.sun.jini.discovery`

The Jini(TM) Discovery Utilities Specification is available in html.

### Changes since the v1.2.X release

New APIs
  The `net.jini.discovery` package contains a new class, `ConstrainableLookupLocator`, which is a subclass of `LookupLocator` that supports constraint operations through the `RemoteMethodControl` interface. This class can be used to participate in secure unicast discovery by specifying appropriate security-related constraints. A supporting class for verifying trust in `ConstrainableLookupLocator` instances, `ConstrainableLookupLocatorTrustVerifier`, has also been added to the `net.jini.discovery` package.

  The `com.sun.jini.discovery` package contains a set of new low-level utility classes implementing both versions 1 and 2 of the multicast announcement, multicast request, and unicast discovery protocols. This package also defines a framework for pluggable discovery format providers that implement the discovery formats introduced in version 2 of the various discovery protocols. Because of their support for version 2 of the discovery protocols, the classes in this package supercede the packet-level utility classes `IncomingMulticastAnnouncement`, `IncomingMulticastRequest`, `IncomingUnicastRequest`, `IncomingUnicastResponse`, `OutgoingMulticastAnnouncement`, `OutgoingMulticastRequest`, `OutgoingUnicastRequest`, and `OutgoingUnicastResponse`, which only support version 1 of the discovery protocols.

Configuration
  The current implementation of the `LookupDiscovery` utility now provides a constructor that takes a `Configuration` argument to configure the newly created instance. This implementation supports configuration entries having names that are associated with the component name `net.jini.discovery.LookupDiscovery`. The entries recognized by this instance of the `LookupDiscovery` utility can be used to configure behavior and aspects of the utility such as:

  - Proxy preparation
  - Constraints applied to the multicast and unicast discovery protocols
  - Various parameters used in multicast discovery
  - Thread allocation and management

  A full list of supported configuration entries is given in this utility's class documentation.

  The current implementation of the `LookupLocatorDiscovery` utility now provides a constructor that takes a `Configuration` argument to configure the newly created instance. This implementation supports configuration entries having names that are associated with the component name `net.jini.discovery.LookupLocatorDiscovery`. The entries recognized by this instance of the `LookupLocatorDiscovery` utility can be used to configure behavior and aspects of the utility such as:

  - Proxy preparation
  - Thread allocation and management

  A full list of supported configuration entries is given in this utility's class documentation.

  There are no configuration entries directly related to the current implementation of the `LookupDiscoveryManager` utility. All configuration entries affecting the operation of this utility are retrieved by either the `LookupDiscovery` utility, or the `LookupLocatorDiscovery` utility.

Logging
  The current implementation of the `LookupDiscovery` utility now logs diagnostic information to the `Logger` named `net.jini.discovery.LookupDiscovery`. A description of what information is logged at what logging levels is given in this utility's class documentation.

  The current implementation of the `LookupLocatorDiscovery` utility now logs diagnostic information to the `Logger` named `net.jini.discovery.LookupLocatorDiscovery`. A description of what information is logged at what logging levels is given in this utility's class documentation.

  There are no loggers defined in the current implementation of the `LookupDiscoveryManager` utility. All logging information produced when using this utility is controlled by the loggers defined in the `LookupDiscovery` and the `LookupLocatorDiscovery` utilities.

System Properties
  Previous implementations of the `LookupDiscovery` utility supported a number of system properties to control certain aspects of its behavior. Those system properties are no longer supported. The behavior that those system properties affected is now controlled through the configuration model, the constraint model, or the `Logger` supported by this utility. The following table lists the system properties that are no longer supported, along with the mechanism (configuration entry, constraint, or logger) that has replaced the property.

  Old Property Name | New Mechanism
  --- | ---
  `net.jini.discovery.interface` | configuration entry named `multicastInterface`
  `net.jini.discovery.announce` | configuration entry named `multicastAnnouncementInterval`
  `net.jini.discovery.timeout` | configuration entry named `discoveryConstraints`
  `net.jini.discovery.mtu` | configuration entry named `discoveryConstraints`
  `net.jini.discovery.ttl` | configuration entry named `discoveryConstraints`
  `net.jini.discovery.debug` | logger named `net.jini.discovery.LookupDiscovery`

  Previous implementations of the `LookupLocatorDiscovery` utility supported a number of system properties to control certain aspects of its behavior. Those system properties are no longer supported. The behavior that those system properties affected is now controlled through the configuration model, the constraint model, or the `Logger` supported by this utility. The following table lists the system properties that are no longer supported, along with the mechanism (configuration entry, constraint, or logger) that has replaced the property.

  Old Property Name | New Mechanism
  --- | ---
  `net.jini.discovery.timeout` | configuration entry named `discoveryConstraints`
  `net.jini.discovery.debug` | logger named `net.jini.discovery.LookupLocatorDiscovery`

  There were no system properties that previously affected the behavior of the `LookupDiscoveryManager` utility, except through that utility's use of the `LookupDiscovery` utility, and the `LookupLocatorDiscovery` utility.

Copyright 2004 Sun Microsystems, Inc. All Rights Reserved.