public interface DiscoveryStrategyFactory
DiscoveryStrategyFactory
is the entry point for strategy vendors. Every
DiscoveryStrategy
should have its own factory building it. In rare cases (like
multiple version support or similar) one factory might return different provider
implementations based on certain criteria. It is also up to the DiscoveryStrategyFactory
to cache instances and return them in some kind of a Singleton-like fashion.
The defined set of configuration properties describes the existing properties inside
of the Hazelcast configuration. It will be used for automatic conversion,
type-checking and validation before handing them to the DiscoveryStrategy
.
This removes a lot of boilerplate from the provider vendor and provides some convenience as
well as guarantee to execute the expected configuration checks. The later is especially
important because there is no schema support for properties necessary or provided by the
provider plugins. Any kind of violation while verification of any type conversion error
as well as missing non-optional properties will throw an exception and prevent the node
from starting up.
Modifier and Type | Method and Description |
---|---|
Collection<PropertyDefinition> |
getConfigurationProperties()
Returns a set of the expected configuration properties.
|
Class<? extends DiscoveryStrategy> |
getDiscoveryStrategyType()
Returns the type of the
DiscoveryStrategy itself. |
DiscoveryStrategy |
newDiscoveryStrategy(DiscoveryNode discoveryNode,
ILogger logger,
Map<String,Comparable> properties)
Instantiates a new instance of the
DiscoveryStrategy with the given configuration
properties. |
Class<? extends DiscoveryStrategy> getDiscoveryStrategyType()
DiscoveryStrategy
itself.DiscoveryStrategy newDiscoveryStrategy(DiscoveryNode discoveryNode, ILogger logger, Map<String,Comparable> properties)
DiscoveryStrategy
with the given configuration
properties. The provided HazelcastInstance
can be used to register instances in
a service registry whenever the discovery strategy is started.discoveryNode
- the current local DiscoveryNode
, representing the local
connection information if running on a Hazelcast member, otherwise on
Hazelcast clients always null
logger
- the logger instanceproperties
- the properties parsed from the configurationCollection<PropertyDefinition> getConfigurationProperties()
Copyright © 2022 Hazelcast, Inc.. All rights reserved.