code: private void setCaches(Map<String, Map<CacheCategory, CacheService>> cacheCache, Layer layer,
  			CacheInfo cacheInfo) {
  		Map<CacheCategory, CacheService> ciCaches;
  		ciCaches = cacheCache.get(cacheInfo.getId());
  		if (null == ciCaches) {
  			ciCaches = createCaches(cacheInfo);
  			cacheCache.put(cacheInfo.getId(), ciCaches);
  		}
  		for (Map.Entry<CacheCategory, CacheService> ciEntry : ciCaches.entrySet()) {
  			CacheSelector cs = new CacheSelector(ciEntry.getKey(), layer);
  			caches.put(cs, ciEntry.getValue());
  		}
  	}
docs: Add layer specific cache configuration in the caches variable. This assures each cache is only built once and
  possibly reused (thanks to cacheCache).
  
  @param cacheCache cache for built caches
  @param layer layer (or null)
  @param cacheInfo cache configuration info