code: public static DynamicPropertyFactory getInstance() {
          if (config == null) {
              synchronized (ConfigurationManager.class) {
                  if (config == null) {
                      AbstractConfiguration configFromManager = ConfigurationManager.getConfigInstance();
                      if (configFromManager != null) {
                          initWithConfigurationSource(configFromManager);
                          initializedWithDefaultConfig = !ConfigurationManager.isConfigurationInstalled();
                          logger.info("DynamicPropertyFactory is initialized with configuration sources: " + configFromManager);
                      }
                  }
              }
          }
          return instance;
      }
docs: Get the instance to create dynamic properties. If the factory is not initialized with a configuration source
  (see {@link #initWithConfigurationSource(AbstractConfiguration)} and {@link #initWithConfigurationSource(DynamicPropertySupport)}),
  it will fist try to initialize itself with a default {@link ConcurrentCompositeConfiguration}, with the following two
  sub configurations:
  <ul>
  <li>A SystemConfiguration, which contains all the system properties. You can disable adding this Configuration by setting
  system property {@value #DISABLE_DEFAULT_SYS_CONFIG} to <code>true</code>
  <li>A  {@link DynamicURLConfiguration}, which at a fixed interval polls
  a configuration file (see {@link URLConfigurationSource#DEFAULT_CONFIG_FILE_NAME}) on classpath and a set of URLs specified via a system property
  (see {@link URLConfigurationSource#CONFIG_URL}).
  </ul>
  Between the two sub-configurations, the SystemConfiguration will take the precedence when determining property values.
  <p/>
  You can disable the initialization with the default configuration by setting system property {@value #DISABLE_DEFAULT_CONFIG} to "true".