static ConnectionFactory createConnectionFactory()

in src/main/java/org/apache/commons/dbcp2/ConnectionFactoryFactory.java [40:74]


    static ConnectionFactory createConnectionFactory(final BasicDataSource basicDataSource, final Driver driver)
            throws SQLException {
        final Properties connectionProperties = basicDataSource.getConnectionProperties();
        final String url = basicDataSource.getUrl();
        // Set up the driver connection factory we will use
        final String user = basicDataSource.getUserName();
        if (user != null) {
            connectionProperties.put(Constants.KEY_USER, user);
        } else {
            basicDataSource.log(String.format("DBCP DataSource configured without a '%s'", Constants.KEY_USER));
        }

        final String pwd = basicDataSource.getPassword();
        if (pwd != null) {
            connectionProperties.put(Constants.KEY_PASSWORD, pwd);
        } else {
            basicDataSource.log(String.format("DBCP DataSource configured without a '%s'", Constants.KEY_PASSWORD));
        }
        final String connectionFactoryClassName = basicDataSource.getConnectionFactoryClassName();
        if (connectionFactoryClassName != null) {
            try {
                final Class<?> connectionFactoryFromCCL = Class.forName(connectionFactoryClassName);
                return (ConnectionFactory) connectionFactoryFromCCL
                        .getConstructor(Driver.class, String.class, Properties.class)
                        .newInstance(driver, url, connectionProperties);
            } catch (final Exception t) {
                final String message = "Cannot load ConnectionFactory implementation '" + connectionFactoryClassName
                        + "'";
                basicDataSource.log(message, t);
                throw new SQLException(message, t);
            }
        }
        // Defaults to DriverConnectionFactory
        return new DriverConnectionFactory(driver, url, connectionProperties);
    }