docs: private <K, V> CacheConfiguration<K, V> adjustConfigurationWithCacheManagerDefaults(String alias, CacheConfiguration<K, V> config) {
      ClassLoader cacheClassLoader = config.getClassLoader();
  
      List<ServiceConfiguration<?>> configurationList = new ArrayList<>();
      configurationList.addAll(config.getServiceConfigurations());
  
      CacheLoaderWriterConfiguration loaderWriterConfiguration = findSingletonAmongst(CacheLoaderWriterConfiguration.class, config.getServiceConfigurations());
      if (loaderWriterConfiguration == null) {
        CacheLoaderWriterProvider loaderWriterProvider = serviceLocator.getService(CacheLoaderWriterProvider.class);
        ServiceConfiguration<CacheLoaderWriterProvider> preConfiguredCacheLoaderWriterConfig = loaderWriterProvider.getPreConfiguredCacheLoaderWriterConfig(alias);
        if (preConfiguredCacheLoaderWriterConfig != null) {
          configurationList.add(preConfiguredCacheLoaderWriterConfig);
        }
        if (loaderWriterProvider.isLoaderJsrProvided(alias)) {
          configurationList.add(new CacheLoaderWriterConfiguration() {
          });
        }
      }
  
      ServiceConfiguration<?>[] serviceConfigurations = new ServiceConfiguration<?>[configurationList.size()];
      configurationList.toArray(serviceConfigurations);
  
      if (cacheClassLoader == null) {
        cacheClassLoader = cacheManagerClassLoader;
      }
      if (cacheClassLoader != config.getClassLoader() ) {
        config = new BaseCacheConfiguration<>(config.getKeyType(), config.getValueType(),
          config.getEvictionAdvisor(), cacheClassLoader, config.getExpiryPolicy(),
          config.getResourcePools(), serviceConfigurations);
      } else {
        config = new BaseCacheConfiguration<>(config.getKeyType(), config.getValueType(),
                config.getEvictionAdvisor(), config.getClassLoader(), config.getExpiryPolicy(),
                config.getResourcePools(), serviceConfigurations);
      }
      return config;
    }