Example usage for org.apache.commons.dbcp DataSourceConnectionFactory DataSourceConnectionFactory

List of usage examples for org.apache.commons.dbcp DataSourceConnectionFactory DataSourceConnectionFactory

Introduction

In this page you can find the example usage for org.apache.commons.dbcp DataSourceConnectionFactory DataSourceConnectionFactory.

Prototype

public DataSourceConnectionFactory(DataSource source) 

Source Link

Usage

From source file:com.springsource.insight.plugin.jdbc.PoolingConnectionTest.java

@Test
public void testOperationCollection() throws SQLException {
    DataSourceConnectionFactory connFactory = new DataSourceConnectionFactory(dataSource);
    ObjectPool connPool = new GenericObjectPool();
    PoolableConnectionFactory poolFactory = new PoolableConnectionFactory(connFactory, connPool, null, null,
            false, true);//from  w  ww  .j a  v a 2  s  .  c om
    PoolingDataSource poolDs = new PoolingDataSource(poolFactory.getPool());
    String sql = "select * from appointment where owner = 'Agim'";
    Connection c = poolDs.getConnection();
    try {
        PreparedStatement ps = c.prepareStatement(sql);
        try {
            System.out.println("Prepared statement=" + ps.getClass());

            ResultSet rs = ps.executeQuery();
            rs.close();
        } finally {
            ps.close();
        }
    } finally {
        c.close();
    }

    ArgumentCaptor<Operation> opCaptor = ArgumentCaptor.forClass(Operation.class);
    verify(spiedOperationCollector, times(3)).enter(opCaptor.capture());

    List<Operation> ops = opCaptor.getAllValues();
    assertEquals("Mismatched number of operations", 3, ops.size());
    assertSourceCodeLocation("top-op", ops.get(0),
            "org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper", "prepareStatement");
    assertSourceCodeLocation("mid-op", ops.get(1), "org.apache.commons.dbcp.DelegatingConnection",
            "prepareStatement");
    assertSourceCodeLocation("bottom-op", ops.get(2), "org.hsqldb.jdbc.jdbcConnection", "prepareStatement");
}

From source file:com.qualogy.qafe.business.resource.rdb.DriverManagerDataSource.java

public void init(ApplicationContext context) {
    DriverManagerResource driverManagerResource = (DriverManagerResource) getBindResource();
    String userName = driverManagerResource.getUsername();
    String password = driverManagerResource.getPassword();
    String url = driverManagerResource.getUrl();
    String driverClassName = driverManagerResource.getDriverClassName();

    DataSource springDS = new org.springframework.jdbc.datasource.DriverManagerDataSource(url, userName,
            password);/*from  w w w .  ja  va  2 s .  c om*/
    ((org.springframework.jdbc.datasource.DriverManagerDataSource) springDS)
            .setDriverClassName(driverClassName);

    GenericObjectPool pool = new GenericObjectPool();
    pool.setMinEvictableIdleTimeMillis(300000);
    pool.setTimeBetweenEvictionRunsMillis(60000);
    PoolableConnectionFactory connectionFactory = new PoolableConnectionFactory(
            new DataSourceConnectionFactory(springDS), pool, null, null, false, true);

    PoolingDataSource poolingDataSource = new PoolingDataSource(pool);
    poolingDataSource.setAccessToUnderlyingConnectionAllowed(true);
    setDataSource(poolingDataSource);

    postInit(context);
}

From source file:com.jaspersoft.jasperserver.api.engine.jasperreports.service.impl.TibcoDriverManagerImpl.java

public Connection unlockConnection(DataSource dataSource) throws SQLException {
    Connection originalConnection = getOriginalConnection(dataSource);
    if (unlockDSConnection(originalConnection))
        return originalConnection;
    GenericObjectPool connectionPool = new GenericObjectPool(null);
    DataSourceConnectionFactory connectionFactory = new DataSourceConnectionFactory(dataSource);
    PoolableConnectionFactory poolableConnectionFactory = new PoolableConnectionFactory(connectionFactory,
            connectionPool, null, null, false, true);
    PoolingDataSource ds = new PoolingDataSource(connectionPool);
    if (ds != null) {
        Connection connection = getOriginalConnection(ds);
        ds.setAccessToUnderlyingConnectionAllowed(true);
        if (unlockDSConnection(connection))
            return connection;
    }//from w  w  w  .  java2  s  .c o  m
    return originalConnection;
}

From source file:org.apache.wookie.server.Start.java

private static void configureServer() throws Exception {
    // create embedded jetty instance
    logger.info("Configuring Jetty server");
    server = new Server(port);

    // configure embedded jetty to handle wookie web application
    WebAppContext context = new WebAppContext();
    context.setServer(server);/*from  www  . ja  va2  s .  c om*/
    context.setContextPath("/wookie");
    context.setWar("build/webapp/wookie");

    // enable and configure JNDI container resources
    context.setConfigurationClasses(new String[] { "org.mortbay.jetty.webapp.WebInfConfiguration",
            "org.mortbay.jetty.plus.webapp.EnvConfiguration", "org.mortbay.jetty.plus.webapp.Configuration",
            "org.mortbay.jetty.webapp.JettyWebXmlConfiguration",
            "org.mortbay.jetty.webapp.TagLibConfiguration" });
    if (persistenceManagerType.equals(PERSISTENCE_MANAGER_TYPE_JPA)) {
        logger.info("Configuring JPA persistence manager");

        // setup derby database directory and logging properties
        if (dbType.equals("derby") && dbUri.startsWith("jdbc:derby:")) {
            int dbUriArgsIndex = dbUri.indexOf(";", 11);
            if (dbUriArgsIndex == -1) {
                dbUriArgsIndex = dbUri.length();
            }
            String databasePath = dbUri.substring(11, dbUriArgsIndex);
            int databaseDirIndex = databasePath.lastIndexOf(File.separatorChar);
            if ((databaseDirIndex == -1) && (File.separatorChar != '/')) {
                databaseDirIndex = databasePath.lastIndexOf('/');
            }
            if (databaseDirIndex != -1) {
                String databaseDir = databasePath.substring(0, databaseDirIndex);
                File databaseDirFile = new File(databaseDir);
                if (!databaseDirFile.exists()) {
                    databaseDirFile.mkdirs();
                }
                String derbyLog = databaseDirFile.getAbsolutePath() + File.separator + "derby.log";
                System.setProperty("derby.stream.error.file", derbyLog);
            }
        }

        // Setup a database connection resource using DBCP
        BasicDataSource dataSource = new BasicDataSource();
        dataSource.setDriverClassName(dbDriver);
        dataSource.setUrl(dbUri);
        dataSource.setUsername(dbUser);
        dataSource.setPassword(dbPassword);
        dataSource.setMaxActive(80);
        dataSource.setMaxIdle(80);
        dataSource.setInitialSize(5);
        dataSource.setMaxOpenPreparedStatements(0);

        // Set up connection pool
        GenericObjectPool pool = new GenericObjectPool();
        // setup factory and pooling DataSource
        DataSourceConnectionFactory factory = new DataSourceConnectionFactory(dataSource);
        @SuppressWarnings("unused")
        PoolableConnectionFactory poolableConnectionFactory = new PoolableConnectionFactory(factory, pool, null,
                null, false, true);
        DataSource poolingDataSource = new PoolingDataSource(pool);

        new Resource(JPAPersistenceManager.WIDGET_DATABASE_JNDI_DATASOURCE_NAME, poolingDataSource);
    } else if (persistenceManagerType.equals(PERSISTENCE_MANAGER_TYPE_JCR)) {
        logger.info("Configuring JCR persistence manager");

        // setup repository directory and derby logging properties
        File repositoryDirFile = new File("widgetRepository");
        if (!repositoryDirFile.exists()) {
            repositoryDirFile.mkdirs();
        }
        String derbyLog = repositoryDirFile.getAbsolutePath() + File.separator + "derby.log";
        System.setProperty("derby.stream.error.file", derbyLog);

        // setup Jackrabbit JCR repository JNDI resource
        String repositoryConfig = repositoryDirFile.getAbsolutePath() + File.separator + "repository.xml";
        Repository repository = new TransientRepository(repositoryConfig, repositoryDirFile.getAbsolutePath());
        new Resource(JCRPersistenceManager.WIDGET_REPOSITORY_JNDI_REPOSITORY_NAME, repository);
    }

    // configure embedded jetty web application handler
    server.addHandler(context);

    // configure embedded jetty authentication realm
    HashUserRealm authedRealm = new HashUserRealm("Authentication Required", "etc/jetty-realm.properties");
    server.setUserRealms(new UserRealm[] { authedRealm });

    logger.info("Configured Jetty server");
}

From source file:org.eclipse.scada.utils.osgi.jdbc.pool.PoolConnectionAccessor.java

public PoolConnectionAccessor(final DataSourceFactory dataSourceFactory, final Properties paramProperties)
        throws SQLException {
    logger.debug("Creating pool connection accessor : {}", paramProperties);

    // first remove all our properties

    this.connectionPool = new GenericObjectPool<Object>(null);
    this.connectionPool.setMaxActive(getInteger(paramProperties, PREFIX + "maxActive", 8));
    this.connectionPool.setMaxIdle(getInteger(paramProperties, PREFIX + "maxIdle", 8));
    this.connectionPool.setMinIdle(getInteger(paramProperties, PREFIX + "minIdle", 1));
    this.connectionPool.setTestOnBorrow(getBoolean(paramProperties, PREFIX + "testOnBorrow", true));
    this.connectionPool.setTestOnReturn(getBoolean(paramProperties, PREFIX + "testOnReturn", true));

    this.connectionPool.setTimeBetweenEvictionRunsMillis(
            getLong(paramProperties, PREFIX + "timeBetweenEvictionRunsMillis", -1));
    this.connectionPool.setMinEvictableIdleTimeMillis(
            getLong(paramProperties, PREFIX + "minEvictableIdleTimeMillis", 30 * 60 * 1000));
    this.connectionPool.setTestWhileIdle(getBoolean(paramProperties, PREFIX + "testWhileIdle", false));
    this.connectionPool.setSoftMinEvictableIdleTimeMillis(
            getLong(paramProperties, PREFIX + "softMinEvictableIdleTimeMillis", -1));
    this.connectionPool
            .setNumTestsPerEvictionRun(getInteger(paramProperties, PREFIX + "numTestsPerEvictionRun", 3));

    final String connectionInitSql = getString(paramProperties, PREFIX + "connectionInitSql", null);
    final String validationQuery = getString(paramProperties, PREFIX + "validationQuery", null);
    final Integer validationQueryTimeout = getInteger(paramProperties, PREFIX + "validationQueryTimeout", -1);

    this.driverDataSource = dataSourceFactory.createDataSource(paramProperties);

    final ConnectionFactory connectionFactory = new DataSourceConnectionFactory(this.driverDataSource);
    this.poolableConnectionFactory = new PoolableConnectionFactory(connectionFactory, this.connectionPool, null,
            null, false, true);//from  w  w  w.  j  av  a2s .  c  o m

    if (connectionInitSql != null) {
        this.poolableConnectionFactory.setConnectionInitSql(Arrays.asList(connectionInitSql));
    }
    if (validationQuery != null) {
        this.poolableConnectionFactory.setValidationQuery(validationQuery);
    }
    if (validationQueryTimeout != null) {
        this.poolableConnectionFactory.setValidationQueryTimeout(validationQueryTimeout);
    }

    this.dataSource = new PoolingDataSource(this.connectionPool);
}

From source file:org.netxilia.api.impl.storage.DataSourceConfigurationServiceImpl.java

public synchronized DataSource buildDataSource(DataSourceConfiguration cfg) {
    init();/*from w w w  . ja v a  2  s  .c om*/
    Pair<GenericObjectPool, DataSource> poolInfo = pools.get(cfg.getId());
    if (poolInfo != null) {
        return poolInfo.getSecond();
    }

    GenericObjectPool connectionPool = applicationContext.getBean(GenericObjectPool.class);
    DataSource simpleDataSource = buildSimpleDataSource(cfg);

    ConnectionFactory connectionFactory = new DataSourceConnectionFactory(simpleDataSource);

    // ConnectionFactory connectionFactory = new DriverManagerConnectionFactory(cfg.getUrl().replace(
    // NETXILIA_HOME_VAR, path), cfg.getUsername(), cfg.getPassword());

    new PoolableConnectionFactory(connectionFactory, connectionPool, null, null, false, true);
    PoolingDataSource poolingDataSource = new PoolingDataSource(connectionPool);

    log.info("Creating a new datasource " + poolingDataSource + " for config:" + cfg.getId());
    pools.put(cfg.getId(), new Pair<GenericObjectPool, DataSource>(connectionPool, poolingDataSource));

    return poolingDataSource;
}

From source file:org.openspaces.jdbc.datasource.DbcpBasicDataSource.java

/**
 * <p>Create (if necessary) and return the internal data source we are
 * using to manage our connections.</p>
 *
 * <p><strong>IMPLEMENTATION NOTE</strong> - It is tempting to use the
 * "double checked locking" idiom in an attempt to avoid synchronizing
 * on every single call to this method.  However, this idiom fails to
 * work correctly in the face of some optimizations that are legal for
 * a JVM to perform.</p>//from  w  ww. ja v a 2  s . c  o m
 *
 * @throws SQLException if the object pool cannot be created.
 */
protected void createDataSource() throws SQLException {

    // Can't test without a validationQuery
    if (validationQuery == null) {
        setTestOnBorrow(false);
        setTestOnReturn(false);
        setTestWhileIdle(false);
    }

    // Create an object pool to contain our active connections
    if ((abandonedConfig != null) && (abandonedConfig.getRemoveAbandoned() == true)) {
        connectionPool = new AbandonedObjectPool(null, abandonedConfig);
    } else {
        connectionPool = new GenericObjectPool();
    }
    connectionPool.setMaxActive(maxActive);
    connectionPool.setMaxIdle(maxIdle);
    connectionPool.setMinIdle(minIdle);
    connectionPool.setMaxWait(maxWait);
    connectionPool.setTestOnBorrow(testOnBorrow);
    connectionPool.setTestOnReturn(testOnReturn);
    connectionPool.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
    connectionPool.setNumTestsPerEvictionRun(numTestsPerEvictionRun);
    connectionPool.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
    connectionPool.setTestWhileIdle(testWhileIdle);

    // Set up statement pool, if desired
    GenericKeyedObjectPoolFactory statementPoolFactory = null;
    if (isPoolPreparedStatements()) {
        statementPoolFactory = new GenericKeyedObjectPoolFactory(null, -1, // unlimited maxActive (per key)
                GenericKeyedObjectPool.WHEN_EXHAUSTED_FAIL, 0, // maxWait
                1, // maxIdle (per key)
                maxOpenPreparedStatements);
    }

    DataSourceConnectionFactory dataSourceConnectionFactory = new DataSourceConnectionFactory(
            new SpaceDriverManagerDataSource(space));

    // Set up the poolable connection factory we will use
    try {
        PoolableConnectionFactory connectionFactory = new PoolableConnectionFactory(dataSourceConnectionFactory,
                connectionPool, statementPoolFactory, validationQuery, defaultReadOnly, defaultAutoCommit,
                defaultTransactionIsolation, defaultCatalog, abandonedConfig);
        validateConnectionFactory(connectionFactory);
    } catch (RuntimeException e) {
        throw e;
    } catch (Exception e) {
        throw new SQLNestedException("Cannot create PoolableConnectionFactory (" + e.getMessage() + ")", e);
    }

    // Create and return the pooling data source to manage the connections
    dataSource = new PoolingDataSource(connectionPool);
    ((PoolingDataSource) dataSource)
            .setAccessToUnderlyingConnectionAllowed(isAccessToUnderlyingConnectionAllowed());
    dataSource.setLogWriter(logWriter);

    try {
        for (int i = 0; i < initialSize; i++) {
            connectionPool.addObject();
        }
    } catch (Exception e) {
        throw new SQLNestedException("Error preloading the connection pool", e);
    }
}

From source file:org.wsm.database.tools.util.FANConnectionManager.java

public void setupDataSource(String dsName) {
    try {/*  w w w . j a va2  s .c om*/
        OracleDataSource ods = super.getBasicDataSourceSetup(dsName);

        java.util.Properties prop = new java.util.Properties();
        prop.setProperty("MinLimit", "5");
        prop.setProperty("MaxLimit", "45");
        ods.setConnectionCacheName("FanConnectionCache01");
        ods.setConnectionCachingEnabled(true);
        ods.setConnectionCacheProperties(prop);
        ods.setFastConnectionFailoverEnabled(true);
        ObjectPool connectionPool = new GenericObjectPool(null);
        ConnectionFactory connectionFactory = new DataSourceConnectionFactory(ods);
        PoolableConnectionFactory pcf = new PoolableConnectionFactory(connectionFactory, connectionPool, null,
                null, false, true);
        PoolingDataSource pds = new PoolingDataSource(connectionPool);
        addPoolingDataSourceToBucket(dsName, pds);
        //addOracleDataSourceToBucket(dsName, ods);
    } catch (SQLException e) {
        e.printStackTrace();
    }
}