I don't like the idea to expose a getDataSource method on JDOManager as
we would then also need to expose a getDriver method. As you know we
still have problems with lifecycle management and exposing those methods
won't make things easier.
I could live with exposing a getConnectionFactory method while i would
still declare it experimental so we are able to change that in the
future without keeping backward compatibility for a long time.
Ralf
Werner Guttmann schrieb:
> Ralf,
>
> Have a look at the followig rough idea ...
>
> Index: src/main/java/org/exolab/castor/jdo/JDOManager.java
> =================================================================== ---
> src/main/java/org/exolab/castor/jdo/JDOManager.java (Revision 6868)
> +++ src/main/java/org/exolab/castor/jdo/JDOManager.java (Arbeitskopie)
> @@ -70,6 +70,7 @@ import org.castor.jdo.conf.JdoConf;
> import org.castor.jdo.engine.AbstractConnectionFactory;
> import org.castor.jdo.engine.ConnectionFactory;
> +import org.castor.jdo.engine.DataSourceConnectionFactory;
> import org.castor.jdo.engine.DatabaseRegistry;
> import org.castor.transactionmanager.LocalTransactionManager;
> import org.castor.util.Messages;
> @@ -882,6 +883,22 @@ LOG.fatal ("Problem closing down
> caches", e);
> }
> }
> +
> + /**
> + * Returns the JDBC [EMAIL PROTECTED] DataSource} used internally by this
> Castor [EMAIL PROTECTED] JDOManager}
> + * instance; null, if this Castor JDOManager instance does not use
> a JDBC
> + * [EMAIL PROTECTED] DataSource}.
> + * @return the JDBC [EMAIL PROTECTED] DataSource} used internally; null
> otherwise.
> + * @throws MappingException If there#s a problem loading the JDO
> configuration.
> + */
> + public DataSource getDataSource() throws MappingException {
> + AbstractConnectionFactory factory =
> + DatabaseRegistry.getConnectionFactory(_databaseName);
> + if (factory instanceof DataSourceConnectionFactory) {
> + return ((DataSourceConnectionFactory)
> factory).getDataSource();
> + }
> + return null;
> + }
>
> //----------------------------------------------------------------------
> ----
> }
>
> Index:
> src/main/java/org/castor/jdo/engine/DataSourceConnectionFactory.java
> =================================================================== ---
> src/main/java/org/castor/jdo/engine/DataSourceConnectionFactory.java
> (Revision 6868) +++
> src/main/java/org/castor/jdo/engine/DataSourceConnectionFactory.java
> (Arbeitskopie) @@ -230,6 +230,14 @@ return
> ConnectionProxyFactory.newConnectionProxy(
> _dataSource.getConnection(), getClass().getName());
> }
> +
> + /**
> + * Returns the JDBC [EMAIL PROTECTED] DataSource} instance used by this
> connection factory.
> + * @return the JDBC [EMAIL PROTECTED] DataSource} instance currently
> used.
> + */
> + public DataSource getDataSource() {
> + return _dataSource;
> + }
>
>
> //----------------------------------------------------------------------
> ----
> }
>
> To introduce a new getDataSource() method on JDOManager. I have not
> given any though on the return value, or whether an exception should be
> thrown, though.
>
> Werner
>
> ---------------------------------------------------------------------
> To unsubscribe from this list please visit:
>
> http://xircles.codehaus.org/manage_email
--
Syscon Ingenieurbüro für Meß- und Datentechnik GmbH
Ralf Joachim
Raiffeisenstraße 11
72127 Kusterdingen
Germany
Tel. +49 7071 3690 52
Mobil: +49 173 9630135
Fax +49 7071 3690 98
Internet: www.syscon.eu
E-Mail: [EMAIL PROTECTED]
Sitz der Gesellschaft: D-72127 Kusterdingen
Registereintrag: Amtsgericht Stuttgart, HRB 382295
Geschäftsleitung: Jens Joachim, Ralf Joachim
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email