Class DefaultConfigurationProvider

  • All Implemented Interfaces:

    public class DefaultConfigurationProvider
    extends Object
    implements ConfigurationProvider
    The standard ConfigurationProvider that is used by default.

    This provider has been around since the 1.x days, but it has been revamped and reworked for the 2.x breakage - the overall functionality remains very similar though.

    • Constructor Detail

      • DefaultConfigurationProvider

        public DefaultConfigurationProvider​(Core core,
                                            Set<SeedNode> seedNodes)
        Creates a new configuration provider.
        core - the core against which all ops are executed.
    • Method Detail

      • openBucket

        public Mono<Void> openBucket​(String name)
        Description copied from interface: ConfigurationProvider
        Initiates the bucket opening process.

        Note that when this mono completes, it does not mean that the process is completely finished yet, just that it has been initiated and no hard error has been found at the time.

        Specified by:
        openBucket in interface ConfigurationProvider
        name - the name of the bucket to open.
        a Mono that completes once the bucket has been logically opened.
      • proposeBucketConfig

        public void proposeBucketConfig​(ProposedBucketConfigContext ctx)
        Description copied from interface: ConfigurationProvider
        Allows to propose a bucket config to the provider from an external context.

        This method is usually only called when a "not my vbucket" response is received and the corresponding config is extracted. Do not call this method with arbitrary configs.

        Specified by:
        proposeBucketConfig in interface ConfigurationProvider
        ctx - the bucket config and surrounding context.
      • closeBucket

        public Mono<Void> closeBucket​(String name)
        Description copied from interface: ConfigurationProvider
        Initiates the bucket closing process.
        Specified by:
        closeBucket in interface ConfigurationProvider
        name - the name of the bucket.
        a Mono that completes once the bucket has been logically closed.
      • shutdown

        public Mono<Void> shutdown()
        Description copied from interface: ConfigurationProvider
        Shuts down the configuration provider and all its associated resources and timers.
        Specified by:
        shutdown in interface ConfigurationProvider
        the mono completes once shut down properly.
      • refreshCollectionMap

        public void refreshCollectionMap​(String bucket,
                                         boolean force)
        Description copied from interface: ConfigurationProvider
        Helper method to refresh the collection map for the given bucket.
        Specified by:
        refreshCollectionMap in interface ConfigurationProvider
        bucket - the name of the bucket.
        force - if set, the provider must fetch a new one. otherwise it will only fetch one for the bucket if not already present.
      • extractAlternateAddressInfos

        public static List<DefaultConfigurationProvider.AlternateAddressHolder> extractAlternateAddressInfos​(ClusterConfig config)
        Helper method to turn either the port info or the node info into a list of hosts to use for the alternate address resolution.
        a list of hostname/alternate address mappings.
      • determineNetworkResolution

        public static String determineNetworkResolution​(List<DefaultConfigurationProvider.AlternateAddressHolder> nodes,
                                                        NetworkResolution nr,
                                                        Set<String> seedHosts)
        Helper method to figure out which network resolution should be used. if DEFAULT is selected, then null is returned which is equal to the "internal" or default config mode. If AUTO is used then we perform the select heuristic based off of the seed hosts given. All other resolution settings (i.e. EXTERNAL) are returned directly and are considered to be part of the alternate address configs.
        nodes - the list of nodes to check.
        nr - the network resolution setting from the environment
        seedHosts - the seed hosts from bootstrap for autoconfig.
        the found setting if external is used, null if internal/default is used.
      • globalConfigLoadInProgress

        public boolean globalConfigLoadInProgress()
        Description copied from interface: ConfigurationProvider
        Returns true if an initial global config load attempt is in progress.
        Specified by:
        globalConfigLoadInProgress in interface ConfigurationProvider
        true if it is in progress, false if not (done or failed).