in tx-control-providers/jdbc/tx-control-provider-jdbc-xa/src/main/java/org/apache/aries/tx/control/jdbc/xa/impl/JDBCConnectionProviderFactoryImpl.java [57:85]
public JDBCConnectionProviderImpl getProviderFor(DataSourceFactory dsf, Properties jdbcProperties,
Map<String, Object> resourceProviderProperties) {
boolean xaEnabled = toBoolean(resourceProviderProperties, XA_ENLISTMENT_ENABLED, true);
boolean localEnabled = toBoolean(resourceProviderProperties, LOCAL_ENLISTMENT_ENABLED, true);
boolean useDriver = toBoolean(resourceProviderProperties, USE_DRIVER, false);
checkEnlistment(xaEnabled, localEnabled, !useDriver);
DataSource unpooled;
try {
if (useDriver) {
unpooled = new DriverDataSource(dsf.createDriver(null), jdbcProperties.getProperty(JDBC_URL),
jdbcProperties);
} else if (xaEnabled) {
unpooled = new XADataSourceMapper(dsf.createXADataSource(jdbcProperties));
} else {
unpooled = dsf.createDataSource(jdbcProperties);
}
} catch (SQLException sqle) {
throw new TransactionException("Unable to create the JDBC resource provider", sqle);
}
DataSource toUse = poolIfNecessary(resourceProviderProperties, unpooled);
return new JDBCConnectionProviderImpl(toUse, xaEnabled, localEnabled,
getRecoveryId(resourceProviderProperties, xaEnabled), context,
resourceProviderProperties);
}