Hi all, The sandbox branch for JCR 1456 (https://svn.apache.org/repos/asf/jackrabbit/sandbox/JCR-1456) now contains an almost complete implementation for connection pooling. Quite some changes have been made and the following are the most important ones:
* A o.a.j.c.util.db package has been added that contains common DB code (some common classes have been moved here from the o.a.j.c.persistence.bundle.util package). The ConnectionHelper hierarchy contains functionality to execute SQL statements using a given DataSource. The CheckSchemaOperation class uses a ConnectionHelper and encapsulates the logic to check and create schemas. * The ConnectionFactory class contains a registry of JNDI/commons-dbcp DataSources. * The DB dependent classes (Bundle PMs, DatabaseJournal, DbDataStore, DbFileSystem etc) have been refactored to retrieve a (pooling) DataSource from the Connectionfactory and to use ConnectionHelper and CheckSchemaOperation instances which use the retrieved DataSource. * Configuration: see the repository and workspace descriptors in jackrabbit-core/src/test/repository-descriptor-overlay. You can define a list of repository-global DataSources which you can use in the configuration of the DB classes, e.g. the OracleFileSystem (this is just an example of how it could look). Open points that I can think of are: * We must discuss how the configuration should work. * The ConnectionFactory class must be refactored such that each RepositoryImpl has its own instance. * Integration testing. So far the automated tests have been run against MySQL 5.0, MSSQL server 2005 and Oracle 10g XE but I think we need more coverage. Your feedback on the current state is much appreciated! Best regards, Martijn -- Martijn Hendriks <GX> creative online development B.V. t: 024 - 3888 261 f: 024 - 3888 621 e: [email protected] Wijchenseweg 111 6538 SW Nijmegen http://www.gx.nl/
