docs: @Override
      public Config getConfig(ClassLoader classLoader) {
  
          if (classLoader == null) {
              throw new IllegalArgumentException(Tr.formatMessage(tc, "null.classloader.CWMCG0002E"));
          }
  
          Config config = null;
          synchronized (configCache) {
              ConfigWrapper configWrapper = configCache.get(classLoader);
              if (configWrapper == null) {
                  AbstractConfigBuilder builder = newBuilder(classLoader);
                  //add all default and discovered sources and converters
                  builder.addDefaultSources();
                  builder.addDiscoveredSources();
                  builder.addDefaultConverters();
                  builder.addDiscoveredConverters();
                  config = builder.build();
  
                  //add this new config
                  configWrapper = newConfigWrapper(config, classLoader);
              } else {
                  config = configWrapper.getConfig();
              }
  
              //register the application
              registerApplication(configWrapper, classLoader);
  
          }
          return config;
      }