in commons-jcs3-core/src/main/java/org/apache/commons/jcs3/auxiliary/disk/jdbc/JDBCDiskCacheFactory.java [165:217]
protected DataSourceFactory getDataSourceFactory( final JDBCDiskCacheAttributes cattr,
final Properties configProps ) throws SQLException
{
String poolName = null;
if (cattr.getConnectionPoolName() == null)
{
poolName = cattr.getCacheName() + "." + JDBCDiskCacheAttributes.DEFAULT_POOL_NAME;
}
else
{
poolName = cattr.getConnectionPoolName();
}
return this.dsFactories.computeIfAbsent(poolName, key -> {
final DataSourceFactory newDsFactory;
JDBCDiskCacheAttributes dsConfig;
if (cattr.getConnectionPoolName() == null)
{
dsConfig = cattr;
}
else
{
dsConfig = new JDBCDiskCacheAttributes();
final String dsConfigAttributePrefix = POOL_CONFIGURATION_PREFIX + key + ATTRIBUTE_PREFIX;
PropertySetter.setProperties( dsConfig,
configProps,
dsConfigAttributePrefix + "." );
dsConfig.setConnectionPoolName(key);
}
if ( dsConfig.getJndiPath() != null )
{
newDsFactory = new JndiDataSourceFactory();
}
else
{
newDsFactory = new SharedPoolDataSourceFactory();
}
try
{
newDsFactory.initialize(dsConfig);
}
catch (final SQLException e)
{
throw new IllegalStateException(e);
}
return newDsFactory;
});
}