The {@link org.apache.river.discovery.DiscoveryProtocolVersion}, {@link org.apache.river.discovery.MulticastMaxPacketSize}, {@link org.apache.river.discovery.MulticastTimeToLive} and {@link org.apache.river.discovery.UnicastSocketTimeout} classes represent constraints which can be applied to multicast and unicast discovery. The {@link org.apache.river.discovery.DiscoveryConstraints} class offers convenience methods for querying the values expressed by groups of these constraints. The {@link org.apache.river.discovery.Discovery} class provides methods implementing various low-level discovery protocol operations, such as encoding and decoding multicast packet contents and unicast discovery data. These methods accept as arguments instances of the {@link org.apache.river.discovery.MulticastRequest}, {@link org.apache.river.discovery.MulticastAnnouncement} and {@link org.apache.river.discovery.UnicastResponse} classes, which represent the values (independent of protocol details) to be transmitted by multicast requests, multicast announcements, and unicast discovery.
The Discovery
class implements both versions 1 and 2 of the
discovery protocols. For version 2 of the protocols, it accepts pluggable
format providers, specified via resource using the
{@link org.apache.river.discovery.DiscoveryFormatProvider} interface, which
implement the {@link org.apache.river.discovery.MulticastRequestEncoder},
{@link org.apache.river.discovery.MulticastRequestDecoder},
{@link org.apache.river.discovery.MulticastAnnouncementEncoder},
{@link org.apache.river.discovery.MulticastAnnouncementDecoder},
{@link org.apache.river.discovery.UnicastDiscoveryClient}, and
{@link org.apache.river.discovery.UnicastDiscoveryServer} format provider
sub-interfaces.
@see "Jini Discovery and Join Specification"