in core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/util/ConfiguredArtifactUtils.java [239:282]
private static <T extends Serializable> void cacheArtifact(String key, T artifact)
{
ClassLoader classLoader = ClassUtils.getClassLoader(null);
if(String.class.isAssignableFrom(artifact.getClass()))
{
Map<String, Set<String>> configuredValueMapping = configuredValueCache.get(classLoader);
if(configuredValueMapping == null)
{
configuredValueMapping = new HashMap<String, Set<String>>();
configuredValueCache.put(classLoader, configuredValueMapping);
}
Set<String> configuredValues = configuredValueMapping.get(key);
if(configuredValues == null)
{
configuredValues = new HashSet<String>();
configuredValueMapping.put(key, configuredValues);
}
configuredValues.add((String)artifact);
}
else
{
Map<ArtifactCacheKey<String>, Set<Serializable>> configuredValueMapping = apiToImplCache.get(classLoader);
if(configuredValueMapping == null)
{
configuredValueMapping = new HashMap<ArtifactCacheKey<String>, Set<Serializable>>();
apiToImplCache.put(classLoader, configuredValueMapping);
}
ArtifactCacheKey<String> cacheKey = new ArtifactCacheKey<String>(key, artifact.getClass());
Set<Serializable> configuredValues = configuredValueMapping.get(cacheKey);
if(configuredValues == null)
{
configuredValues = new HashSet<Serializable>();
configuredValueMapping.put(cacheKey, configuredValues);
}
configuredValues.add(artifact);
}
}