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 void
close()
String
getDataBaseType(String logicalName)
DataSource
getDataSource(String logicalName)
Retrieves a configured data source by logical name.DataSource
getDataSource(String driver, String url, String user, String password)
Retrieve aDataSource
for the specified properties.void
registerDataSources(DataSourceConfig dsc)
Registers a number of data sources.static Connection
unwrap(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
- theDataSourceConfig
which 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 noDataSource
with 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 noDataSource
with the given name
-
getDataSource
public DataSource getDataSource(String driver, String url, String user, String password) throws RepositoryException, SQLException
Retrieve aDataSource
for the specified properties. This can be a JNDI Data Source as well. To do that, the driver class name must reference ajavax.naming.Context
class (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-DBCPDelegatingConnection
to unwrap- Returns:
- the unwrapped connection
- Throws:
SQLException
-
-