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 MalformedURLException
s. 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 LookupLocator
s 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.