public interface LookupDiscoveryService
|Modifier and Type||Method and Description|
Register with the lookup discovery service.
LookupDiscoveryRegistration register(String groups, LookupLocator locators, RemoteEventListener listener, MarshalledObject handback, long leaseDuration) throws RemoteException
An invocation of this method produces an object - referred to as a registration object (or simply, a registration) - that is mutable. Because the registration produced by this method is mutable, each invocation of this method produces a new registration object. Thus, this method is not idempotent.
To register with the lookup discovery service, the client must indicate the lookup services it is interested in discovering. It does this by submitting two sets of of objects. One set consists of the names of the groups whose members are lookup services the client wishes to be discovered. The other set consists of LookupLocator objects, each corresponding to a specific lookup service the client wishes to be discovered. The state information managed by the lookup discovery service contains no knowledge of the clients that register. Thus, there is no requirement that the client identify itself during the registration process.
Registration with the lookup discovery service includes registration with the event mechanism of the lookup discovery service. That is, for each registration created as a result of an invocation of this method, an event identifier will be generated that uniquely maps the registration to the listener object and to the set of groups and locators input to this method. This event identifier is returned as a part of the registration object, and is unique across all other active registrations with the lookup discovery service.
While the registration is in effect, whenever the lookup discovery service finds a lookup service matching the discovery criteria of one or more of its registrations, an instance of net.jini.discovery.RemoteDiscoveryEvent will be sent to the listener corresponding to each such registration. The event sent to each listener will contain the appropriate event identifier.
Any registration granted as a result of an invocation of this method is leased. The initial duration of the lease granted to a client by the lookup discovery service will be less than or equal to the requested duration input to this method. Any registration with the lookup discovery service is persistent across restarts (crashes) of the lookup discovery service until the lease on the registration expires or is cancelled.
groups- String array, none of whose elements may be null, consisting of zero or more names of groups to which lookup services to discover belong. A value of null (net.jini.discovery.LookupDiscovery.ALL_GROUPS) is acceptable. If null is passed to this argument, the lookup discovery service will attempt to discover all lookup services located within the multicast radius of the host on which the lookup discovery service is running. If an empty array (net.jini.discovery.LookupDiscovery.NO_GROUPS) is passed to this argument, then no group discovery will be performed for the associated registration until the client, through one of the registration's methods, populates the managed set of groups.
locators- array of zero or more non-null LookupLocator objects, each corresponding to a specific lookup service to discover. If either the empty array or null is passed to this argument, then no locator discovery will be performed for the associated registration until the client, through one of the registration's methods, populates the managed set of locators.
listener- a non-null instance of RemoteEventListener. This argument specifies the entity that will receive events notifying the registration that a lookup service of interest has been discovered. A non-null value must be passed to this argument, otherwise a NullPointerException will be thrown and the registration will not succeed.
handback- null or an instance of MarshalledObject. This argument specifies an object that will be included in the notification event that the lookup discovery service sends to the registered listener.
leaseDuration- long value representing the amount of time (in milliseconds) for which the resources of the lookup discovery service are being requested.
RemoteException- typically, this exception occurs when there is a communication failure between the client and the lookup discovery service. When this exception does occur, the registration may or may not have completed successfully.
NullPointerException- this exception occurs when null is input to the
listenerparameter, as well as when one or more of the elements of the
groupsparameter is null.
IllegalArgumentException- this exception occurs when the value input to the
leaseDurationparameter is neither positive, Lease.FOREVER, nor Lease.ANY.
Copyright 2007-2013, multiple authors.
Licensed under the Apache License, Version 2.0, see the NOTICE file for attributions.