in commons-jcs3-jcache-extras/src/main/java/org/apache/commons/jcs3/jcache/extras/web/JCacheFilter.java [62:112]
public void init(final FilterConfig filterConfig) throws ServletException
{
final ClassLoader classLoader = filterConfig.getServletContext().getClassLoader();
provider = Caching.getCachingProvider(classLoader);
String uri = filterConfig.getInitParameter("configuration");
if (uri == null)
{
uri = provider.getDefaultURI().toString();
}
final Properties properties = new Properties();
for (final String key : list(filterConfig.getInitParameterNames()))
{
final String value = filterConfig.getInitParameter(key);
if (value != null)
{
properties.put(key, value);
}
}
manager = provider.getCacheManager(URI.create(uri), classLoader, properties);
String cacheName = filterConfig.getInitParameter("cache-name");
if (cacheName == null)
{
cacheName = JCacheFilter.class.getName();
}
cache = manager.getCache(cacheName);
if (cache == null)
{
final MutableConfiguration<PageKey, Page> configuration = new MutableConfiguration<PageKey, Page>()
.setStoreByValue(false);
configuration.setReadThrough("true".equals(properties.getProperty("read-through", "false")));
configuration.setWriteThrough("true".equals(properties.getProperty("write-through", "false")));
if (configuration.isReadThrough())
{
configuration.setCacheLoaderFactory(new FactoryBuilder.ClassFactory<CacheLoader<PageKey, Page>>(properties.getProperty("cache-loader-factory")));
}
if (configuration.isWriteThrough())
{
configuration.setCacheWriterFactory(new FactoryBuilder.ClassFactory<CacheWriter<? super PageKey, ? super Page>>(properties.getProperty("cache-writer-factory")));
}
final String expirtyPolicy = properties.getProperty("expiry-policy-factory");
if (expirtyPolicy != null)
{
configuration.setExpiryPolicyFactory(new FactoryBuilder.ClassFactory<ExpiryPolicy>(expirtyPolicy));
}
configuration.setManagementEnabled("true".equals(properties.getProperty("management-enabled", "false")));
configuration.setStatisticsEnabled("true".equals(properties.getProperty("statistics-enabled", "false")));
cache = manager.createCache(cacheName, configuration);
}
}