You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ma...@apache.org on 2009/08/05 15:22:47 UTC
svn commit: r801221 -
/jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/ConnectionFactory.java
Author: martijnh
Date: Wed Aug 5 13:22:47 2009
New Revision: 801221
URL: http://svn.apache.org/viewvc?rev=801221&view=rev
Log:
JCR-1456 Database connection pooling
* BasicDataSource does not support "getConnection(String username, String password)", using setters instead.
Modified:
jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/ConnectionFactory.java
Modified: jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/ConnectionFactory.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/ConnectionFactory.java?rev=801221&r1=801220&r2=801221&view=diff
==============================================================================
--- jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/ConnectionFactory.java (original)
+++ jackrabbit/sandbox/JCR-1456/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/bundle/util/ConnectionFactory.java Wed Aug 5 13:22:47 2009
@@ -58,45 +58,37 @@
public static Connection getConnection(
String driver, String url, String user, String password)
throws RepositoryException, SQLException {
- DataSource database;
Class<?> driverClass = getDriverClass(driver);
if (driverClass != null
&& Context.class.isAssignableFrom(driverClass)) {
- database = getJndiDataSource((Class<Context>) driverClass, url);
- } else {
- database = getDriverDataSource(driverClass, url);
- }
-
- if (user == null && password == null) {
- return database.getConnection();
+ DataSource database = getJndiDataSource((Class<Context>) driverClass, url);
+ if (user == null && password == null) {
+ return database.getConnection();
+ } else {
+ return database.getConnection(user, password);
+ }
} else {
- return database.getConnection(user, password);
+ return getDriverDataSource(driverClass, url, user, password).getConnection();
}
}
@SuppressWarnings("unchecked")
- public static DataSource getDataSource(String driver, String url, String user, String password)
- throws RepositoryException, SQLException
- {
- DataSource database;
+ public static DataSource getDataSource(String driver, String url, String user, String password)
+ throws RepositoryException, SQLException {
Class<?> driverClass = getDriverClass(driver);
if (driverClass != null
&& Context.class.isAssignableFrom(driverClass)) {
- database = getJndiDataSource((Class<Context>) driverClass, url);
+ DataSource database = getJndiDataSource((Class<Context>) driverClass, url);
+ if (user == null && password == null) {
+ return database;
+ } else {
+ return new DataSourceWrapper(database, user, password);
+ }
} else {
- database = getDriverDataSource(driverClass, url);
- }
-
- if (user == null && password == null)
- {
- return database;
- }
- else
- {
- return new DataSourceWrapper(database, user, password);
- }
+ return getDriverDataSource(driverClass, url, user, password);
+ }
}
/**
@@ -166,7 +158,7 @@
* @return pooling DataSource for accessing the specified database
*/
private static DataSource getDriverDataSource(
- Class<?> driverClass, String url) {
+ Class<?> driverClass, String url, String user, String password) {
BasicDataSource database = new BasicDataSource();
if (driverClass != null) {
@@ -185,6 +177,8 @@
}
database.setUrl(url);
+ database.setUsername(user);
+ database.setPassword(password);
return database;
}