public static LocalTxDataSource createLocalTxDataSource(LocalTxDataSourceDO dataSourceDO,TxManager transactionManager,CachedConnectionManager cachedConnectionManager) throws Exception{
if(null==dataSourceDO){
throw new Exception("dataSource config is Empty!");
}
LocalTxDataSource localTxDataSource = new LocalTxDataSource();
//�������ӻ�������������������ʹ�ø����ģ����ûָ����Ĭ�ϸ�һ��
if(null!=cachedConnectionManager){
localTxDataSource.setCachedConnectionManager(cachedConnectionManager);
}else{
localTxDataSource.setCachedConnectionManager(defaultCachedConnectionManager);
}
//������������������������ʹ�ø����ģ����û����Ĭ�ϸ��Ը�
if(null!=transactionManager){
localTxDataSource.setTransactionManager(transactionManager);
}else{
localTxDataSource.setTransactionManager(defaultTransactionManager);
}
localTxDataSource.setBeanName(dataSourceDO.getJndiName());
localTxDataSource.setUseJmx(dataSourceDO.isUseJmx());
localTxDataSource.setBackgroundValidation(dataSourceDO.isBackgroundValidation());
localTxDataSource.setBackGroundValidationMinutes(dataSourceDO.getBackgroundValidationMinutes());
localTxDataSource.setBlockingTimeoutMillis(dataSourceDO.getBlockingTimeoutMillis());
localTxDataSource.setCheckValidConnectionSQL(dataSourceDO.getCheckValidConnectionSQL());
localTxDataSource.setConnectionProperties(dataSourceDO.getConnectionProperties());
localTxDataSource.setConnectionURL(dataSourceDO.getConnectionURL());
localTxDataSource.setDriverClass(dataSourceDO.getDriverClass());
localTxDataSource.setExceptionSorterClassName(dataSourceDO.getExceptionSorterClassName());
localTxDataSource.setIdleTimeoutMinutes(dataSourceDO.getIdleTimeoutMinutes());
localTxDataSource.setMaxSize(dataSourceDO.getMaxPoolSize());
localTxDataSource.setMinSize(dataSourceDO.getMinPoolSize());
localTxDataSource.setNewConnectionSQL(dataSourceDO.getNewConnectionSQL());
localTxDataSource.setNoTxSeparatePools(dataSourceDO.isNoTxSeparatePools());
localTxDataSource.setPassword(dataSourceDO.getPassword());
localTxDataSource.setPrefill(dataSourceDO.isPrefill());
localTxDataSource.setPreparedStatementCacheSize(dataSourceDO.getPreparedStatementCacheSize());
localTxDataSource.setQueryTimeout(dataSourceDO.getQueryTimeout());
localTxDataSource.setSharePreparedStatements(dataSourceDO.isSharePreparedStatements());
localTxDataSource.setTrackStatements(dataSourceDO.getTrackStatements());
localTxDataSource.setTransactionIsolation(dataSourceDO.getTransactionIsolation());
localTxDataSource.setTxQueryTimeout(dataSourceDO.isTxQueryTimeout());
localTxDataSource.setUseFastFail(dataSourceDO.isUseFastFail());
localTxDataSource.setUserName(dataSourceDO.getUserName());
localTxDataSource.setValidateOnMatch(dataSourceDO.isValidateOnMatch());
localTxDataSource.setValidConnectionCheckerClassName(dataSourceDO.getValidConnectionCheckerClassName());
//���ð�ȫ��
String securityDomainName = dataSourceDO.getSecurityDomain();
if (StringUtils.isNotBlank(securityDomainName)) {
SecureIdentityLoginModule securityDomain = loginConfigFinder
.get(securityDomainName);
if (securityDomain != null) {
localTxDataSource.setSecurityDomain(securityDomain);
}
}
localTxDataSource.setCriteria(dataSourceDO.getCriteria());
//��ʼ������Դ
localTxDataSource.init();
return localTxDataSource;
}