public final class LookupLocatorDiscovery extends AbstractLookupLocatorDiscovery implements DiscoveryManagement, DiscoveryLocatorManagement
Because this class participates in only the unicast discovery protocol,
and because the unicast discovery protocol imposes no restriction on the
physical location of the entity relative to a lookup service, this utility
can be used to discover lookup services running on hosts that are located
far from, or near to, the host on which the entity is running. This lack
of a restriction on location brings with it a requirement that the
discovering entity supply this class with specific information about the
desired lookup services; namely, the location of the device(s) hosting
each lookup service. This information is supplied through an instance
of the LookupLocator
class,
or its subclass ConstrainableLookupLocator
.
LookupLocator
Configuring LookupLocatorDiscovery
This implementation of
LookupLocatorDiscovery
supports the
following configuration entries; where each configuration entry name
is associated with the component name
net.jini.discovery.LookupLocatorDiscovery
. Note that the
configuration entries specified here are specific to this implementation
of LookupLocatorDiscovery
. Unless otherwise stated, each
entry is retrieved from the configuration only once per instance of
this utility, where each such retrieval is performed in the constructor.
• |
initialUnicastDelayRange
| |
---|---|---|
  | Type: | long
|
  | Default: | 0 milliseconds
|
  | Description: | With respect to when this utility is started, this entry controls
how long to wait before attempting unicast discovery.
If the value is positive, initial unicast discovery requests
will be delayed by a random value between 0 and
initialUnicastDelayRange milliseconds. Once the wait
period is up, the LookupLocator s specified at construction
time are used for initiating unicast discovery requests, unless the
managed LookupLocator s have been changed in the interim;
in which case, no delayed unicast discovery requests are performed.
Note that this entry only has effect when this utility is initialized.
It does not delay discovery requests that are initiated if the managed
LookupLocator s are subsequently changed.
|
• |
registrarPreparer
| |
---|---|---|
  | Type: | ProxyPreparer
|
  | Default: | new
|
  | Description: | Preparer for the proxies to the lookup services that are
discovered and used by this utility.
This preparer should perform all operations required to use a newly received proxy to a lookup service, which may including verifying trust in the proxy, granting permissions, and setting constraints.
Currently, none of the methods on the
|
• |
executorService
| |
---|---|---|
  | Type: | ExecutorService
|
  | Default: | new
|
  | Description: | The object that pools and manages the various threads executed by this utility. This object should not be shared with other components in the application that employs this utility. |
• |
wakeupManager
| |
---|---|---|
  | Type: | WakeupManager
|
  | Default: | new
|
  | Description: | Object that pools and manages the various tasks that are
initially executed by the object corresponding to the
executorService entry
of this component, but which fail during that initial execution.
This object schedules the re-execution of such a failed task -
in the executorService
object - at various times in the future, (employing a
"backoff strategy"). The re-execution of the failed task will
continue to be scheduled by this object until the task finally
succeeds. This object should not be shared with other components
in the application that employs this utility.
|
Logging
This implementation of
LookupLocatorDiscovery
uses the
Logger
named net.jini.discovery.LookupLocatorDiscovery
to log information at the following logging levels:
Level | Description |
---|---|
INFO |
when any exception occurs in a task or thread, while attempting unicast discovery of a given locator |
INFO |
when any exception occurs while attempting to prepare a proxy |
HANDLED |
when an exception is handled during unicast discovery. |
FINEST |
whenever any thread or task is started |
FINEST |
whenever any thread (except the Notifier thread) or task
completes successfully
|
FINEST |
whenever a discovered or discarded event is sent |
FINEST |
whenever a proxy is prepared |
FINEST |
when an IOException occurs upon attempting to close the
socket after a unicast discovery attempt has either completed
successfully or failed
|
This implementation of LookupLocatorDiscovery
determines
the constraints (if any) to apply to unicast discovery for a given
LookupLocator
instance
by calling the
getConstraints
method of that instance, if it implements the
RemoteMethodControl
interface. If the LookupLocator
instance does not implement
RemoteMethodControl
,
then no constraints are applied to unicast discovery for that instance.
For more information on constraining unicast discovery, refer to the
documentation for the ConstrainableLookupLocator
class.
Constructor and Description |
---|
LookupLocatorDiscovery(LookupLocator[] locators)
Creates an instance of this class (
LookupLocatorDiscovery ),
with an initial array of LookupLocator s to be managed. |
LookupLocatorDiscovery(LookupLocator[] locators,
Configuration config)
Constructs a new lookup locator discovery object, set to discover the
given set of locators, and having the given
Configuration . |
addDiscoveryListener, addLocators, beginDiscovery, discard, getDiscoveredLocators, getLocators, getRegistrars, getUndiscoveredLocators, removeDiscoveryListener, removeLocators, setLocators, terminate, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
addDiscoveryListener, discard, getRegistrars, removeDiscoveryListener, terminate
addLocators, getLocators, removeLocators, setLocators
public LookupLocatorDiscovery(LookupLocator[] locators)
LookupLocatorDiscovery
),
with an initial array of LookupLocator
s to be managed.
For each managed LookupLocator
, unicast discovery is
performed to obtain a ServiceRegistrar
proxy for that
lookup service.locators
- the locators to discoverNullPointerException
- input array contains at least
one null
elementpublic LookupLocatorDiscovery(LookupLocator[] locators, Configuration config) throws ConfigurationException
Configuration
.
For each managed LookupLocator
, unicast discovery is
performed to obtain a ServiceRegistrar
proxy for that
lookup service.
locators
- the locators to discoverconfig
- an instance of Configuration
, used to
obtain the objects needed to configure the current
instance of this classConfigurationException
- indicates an exception
occurred while retrieving an item from the given
Configuration
NullPointerException
- input array contains at least
one null
element or null
is input
for the configurationCopyright 2007-2013, multiple authors.
Licensed under the Apache License, Version 2.0, see the NOTICE file for attributions.