code: @SuppressWarnings("unchecked")
    public <K, V> CacheConfigurationBuilder<K, V> newCacheConfigurationBuilderFromTemplate(final String name,
                                                                                           final Class<K> keyType,
                                                                                           final Class<V> valueType)
        throws InstantiationException, IllegalAccessException, ClassNotFoundException {
      Template template = templates.get(name);
      if (template == null) {
        return null;
      } else {
        return template.builderFor(cacheClassLoaders.getOrDefault(name, getClassLoader()), keyType, valueType, null);
      }
    }
docs: Creates a new {@link CacheConfigurationBuilder} seeded with the cache-template configuration
  by the given {@code name} in the parsed XML configuration.
  <p>
  Note that this version does not specify resources, which are mandatory to create a
  {@link CacheConfigurationBuilder}. So if the template does not define resources, this will throw.
  
  @param name the unique name identifying the cache-template element in the XML
  @param keyType the type of keys for the {@link CacheConfigurationBuilder} to use, must
  match the {@code key-type} declared in the template if declared in XML
  @param valueType the type of values for the {@link CacheConfigurationBuilder} to use, must
  match the {@code value-type} declared in the template if declared in XML
  @param <K> type of keys
  @param <V> type of values
  
  @return the preconfigured {@link CacheConfigurationBuilder}
  or {@code null} if no cache-template for the provided {@code name}
  
  @throws IllegalStateException if the template does not configure resources.
  @throws IllegalArgumentException if {@code keyType} or {@code valueType} don't match the declared type(s) of the template
  @throws ClassNotFoundException if a {@link java.lang.Class} declared in the XML couldn't be found
  @throws InstantiationException if a user provided {@link java.lang.Class} couldn't get instantiated
  @throws IllegalAccessException if a method (including constructor) couldn't be invoked on a user provided type