code: public ConfigurationProvider build() {
      LOG.info("Initializing ConfigurationProvider with "
          + configurationSource.getClass().getCanonicalName() + " source, "
          + reloadStrategy.getClass().getCanonicalName() + " reload strategy and "
          + environment.getClass().getCanonicalName() + " environment");
  
      final CachedConfigurationSource cachedConfigurationSource = new CachedConfigurationSource(configurationSource);
      if (metricRegistry != null) {
        configurationSource = new MeteredConfigurationSource(metricRegistry, prefix, cachedConfigurationSource);
      }
      cachedConfigurationSource.init();
  
      Reloadable reloadable = () -> cachedConfigurationSource.reload(environment);
  
      if (metricRegistry != null) {
        reloadable = new MeteredReloadable(metricRegistry, prefix, reloadable);
      }
      reloadable.reload();
      reloadStrategy.register(reloadable);
  
      SimpleConfigurationProvider configurationProvider = new SimpleConfigurationProvider(cachedConfigurationSource, environment);
      if (metricRegistry != null) {
        return new MeteredConfigurationProvider(metricRegistry, prefix, configurationProvider);
      }
  
      return configurationProvider;
    }
docs: Build a {@link ConfigurationProvider} using this builder's configuration.
  
  @return new {@link ConfigurationProvider}