com.hazelcast.spi.discovery

## Interface DiscoveryStrategyFactory

- All Known Implementing Classes:
    MulticastDiscoveryStrategyFactory

      public interface DiscoveryStrategyFactory

  The `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.
  Since:
    3.6

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    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.

- - ### Method Detail

    - #### getDiscoveryStrategyType

          Class<? extends DiscoveryStrategy> getDiscoveryStrategyType()

      Returns the type of the `DiscoveryStrategy` itself.
      Returns:
        the type of the discovery strategy

    - #### newDiscoveryStrategy

          DiscoveryStrategy newDiscoveryStrategy(DiscoveryNode discoveryNode,
                                                 ILogger logger,
                                                 Map<String,Comparable> properties)

      Instantiates a new instance of the `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.
      Parameters:
        `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 instance
        `properties` - the properties parsed from the configuration
      Returns:
        a new instance of the discovery strategy

    - #### getConfigurationProperties

          Collection<PropertyDefinition> getConfigurationProperties()

      Returns a set of the expected configuration properties. These properties contain information about the value type of the property, if it is required and a possible validator to automatically test and convert values from the XML configuration.
      Returns:
        a set of expected configuration properties

Copyright © 2019. All rights reserved.