Class ConnectionFactory
- java.lang.Object
-
- org.apache.jackrabbit.core.util.db.ConnectionFactory
-
public final class ConnectionFactory extends Object
A factory for new database connections. Supported are regular JDBC drivers, as well as JNDI resources. FIXME: the registry currently is ClassLoader wide. I.e., if you start two repositories then you share the registered datasources...
-
-
Constructor Summary
Constructors Constructor Description ConnectionFactory()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()StringgetDataBaseType(String logicalName)DataSourcegetDataSource(String logicalName)Retrieves a configured data source by logical name.DataSourcegetDataSource(String driver, String url, String user, String password)Retrieve aDataSourcefor the specified properties.voidregisterDataSources(DataSourceConfig dsc)Registers a number of data sources.static Connectionunwrap(Connection con)Needed for pre-10R2 Oracle blob support....:( This method actually assumes that we are using commons DBCP 1.2.2.
-
-
-
Method Detail
-
registerDataSources
public void registerDataSources(DataSourceConfig dsc) throws RepositoryException
Registers a number of data sources.- Parameters:
dsc- theDataSourceConfigwhich contains the configuration- Throws:
RepositoryException
-
getDataSource
public DataSource getDataSource(String logicalName) throws RepositoryException
Retrieves a configured data source by logical name.- Parameters:
logicalName- the name of theDataSource- Returns:
- a
DataSource - Throws:
RepositoryException- if there is noDataSourcewith the given name
-
getDataBaseType
public String getDataBaseType(String logicalName) throws RepositoryException
- Parameters:
logicalName- the name of theDataSource- Returns:
- the configured database type
- Throws:
RepositoryException- if there is noDataSourcewith the given name
-
getDataSource
public DataSource getDataSource(String driver, String url, String user, String password) throws RepositoryException, SQLException
Retrieve aDataSourcefor the specified properties. This can be a JNDI Data Source as well. To do that, the driver class name must reference ajavax.naming.Contextclass (for examplejavax.naming.InitialContext), and the URL must be the JNDI URL (for examplejava:comp/env/jdbc/Test).- Parameters:
driver- the JDBC driver or the Context classurl- the database URLuser- the user namepassword- the password- Returns:
- the
DataSource - Throws:
RepositoryException- if the driver could not be loadedSQLException- if the connection could not be established
-
close
public void close()
-
unwrap
public static Connection unwrap(Connection con) throws SQLException
Needed for pre-10R2 Oracle blob support....:( This method actually assumes that we are using commons DBCP 1.2.2.- Parameters:
con- the commons-DBCPDelegatingConnectionto unwrap- Returns:
- the unwrapped connection
- Throws:
SQLException
-
-