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
Additional classes and packages:
The Jini Discovery Utilities Specification is available in html.
net.jini.discovery package.
ConstrainableLookupLocator and
LookupLocator constructors has been made stricter;
this may generate new MalformedURLExceptions. Note that
the implementation does not conform to the DJ 3.0 specification, which
requires parsing according to RFC 2396. The implementation is more
permissive and allows characters such as '_' in host names
to minimize backward incompatibility issues and anticipate compliance
with RFC 3986 (which obsoletes RFC 2396).
ConstrainableLookupLocator handles
ConnectionAbsoluteTime and
ConnectionRelativeTime constraints, enabling the
specification of timeouts on unicast discovery connection attempts.
LookupLocatorDiscovery handles any
ConnectionRelativeTime and ConnectionAbsoluteTime
constraints that may be set on the LookupLocators passed into its
constructors.
LookupDiscovery,
LookupLocator, ConstrainableLookupLocator, and
LookupLocatorDiscovery classes now try all the IP addresses
that a given host name may resolve to, instead of just the first one. This is as per the
recommendations in RFC 1123.
Changes to the
org.apache.river.discovery package.
Discovery class now enables constraint checking to be optionally
delayed. With this change, constraint checks need not be performed as part of multicast
announcement or request decoding.
Discovery providers that support delayed constraint checking must implement the new
MulticastAnnouncementDecoder
and
MulticastRequestDecoder interfaces.
DiscoveryConstraints class supports processing of
ConnectionRelativeTime and ConnectionAbsoluteTime
constraints. Note that the processed constraints will no longer return
ConnectionRelativeTime and ConnectionAbsoluteTime
ConnectionRelativeTime and ConnectionAbsoluteTime
constraints. Note that the processed constraints will no longer return
ConnectionRelativeTime and ConnectionAbsoluteTime
as unfulfilled constraints.
LookupDiscovery
utility now allows ConnectionRelativeTime and
ConnectionAbsoluteTime as part of its discovery constraints.
net.jini.discovery.LookupDiscovery and
net.jini.discovery.LookupLocatorDiscovery utilities are
now more multithreaded (BugID# 4346091 and 4397364)LookupDiscovery and the
LookupLocatorDiscovery utilities
primarily perform raw socket communication with the appropriate
socket timeouts, the implementation of each utility previously
employed a single thread to retrieve and unmarshal the lookup
service proxies that were discovered. Furthermore, enhancements made
to the LookupDiscovery utility for the 1.1 release of
the Jini Technology Starter Kit (starter kit) resulted in
additional remote calls being made in that utility's single thread
of execution. Because there is no timeout control on network
classloading, and because remote calls can take a very long time to
complete (or even appear to hang), performing such calls in a single
thread can greatly hinder the reliability and performance of either
utility. As a result of this threat to reliability, and since it is
not necessary for the remote calls to be performed sequentially in
either the LookupDiscovery or the
LookupLocatorDiscovery utility, the implementation of
each utility was changed to employ multiple threads that perform the
appropriate remote operations in parallel.
net.jini.discovery.LookupDiscovery and
net.jini.discovery.LookupDiscoveryManager utilities
now provide multicast support for systems with multiple
Network Interface Cards (BugID# 4425446)LookupDiscovery
or the LookupDiscoveryManager helper utility to participate
in the multicast (group) discovery process, only a single name or IP address
could be used to configure the system to send and receive multicast
packets through the network interface card associated with the given
name or address. Now, a list of names and/or addresses can be
used to configure the system to send and receive multicast packets
through any (or all) of the interfaces in the system.