List of usage examples for org.apache.commons.dbcp PoolableConnectionFactory PoolableConnectionFactory
public PoolableConnectionFactory(ConnectionFactory connFactory, ObjectPool pool, KeyedObjectPoolFactory stmtPoolFactory, String validationQuery, int validationQueryTimeout, Boolean defaultReadOnly, boolean defaultAutoCommit, int defaultTransactionIsolation, String defaultCatalog, AbandonedConfig config)
From source file:org.apache.cayenne.conf.CustomDBCPDataSourceBuilder.java
private ObjectPool createConnectionPool() { ConnectionFactory factory = createConnectionFactory(); GenericObjectPool.Config poolConfig = createConnectionPoolConfig(); KeyedObjectPoolFactory statementPool = createPreparedStatementPool(); String validationQuery = config.getString(VALIDATION_QUERY); boolean defaultReadOnly = config.getBoolean(READ_ONLY, false); boolean defaultAutoCommit = config.getBoolean(AUTO_COMMIT, false); int defaultTransactionIsolation = config.getTransactionIsolation(TRANSACTION_ISOLATION, Connection.TRANSACTION_SERIALIZABLE); String defaultCatalog = config.getString(CATALOG); String initSql = config.getString(INIT_SQL); List<String> initSqls = null; if (initSql != null && !initSql.isEmpty()) { initSqls = new ArrayList<String>(); initSqls.add(initSql);//from w ww . j a va 2 s .co m } ObjectPool connectionPool = new GenericObjectPool(null, poolConfig); // a side effect of PoolableConnectionFactory constructor call is that newly // created factory object is assigned to "connectionPool", which is // definitely a // very confusing part of DBCP - new object is not visibly assigned to // anything, // still it is preserved... new PoolableConnectionFactory(factory, connectionPool, statementPool, validationQuery, initSqls, defaultReadOnly ? Boolean.TRUE : Boolean.FALSE, defaultAutoCommit, defaultTransactionIsolation, defaultCatalog, null); return connectionPool; }