You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avalon.apache.org by Anton Tagunov <at...@mail.cnt.ru> on 2003/06/06 13:34:05 UTC

DBCP --> Avalon (was: Cornerstone to Sandbox)

Hello Peter!

PD> -- Deprecate Excalibur/Cornerstone DataSource as it can be replaced with
PD> wrappers around DBCP which seems to be high enough quality, better unit 
PD> tested and actively maintained.

Just a small note, have just looked at the code

1)
    java.org.apache.commons.dbcp.PoolingDataSource

    looks just brilliant to me :-)

2)

    they have a wrapper around it, something that
    can become a starting point for our own wrapper

    java.org.apache.commons.dbcp.BasicDataSource

3)

    java.org.apache.commons.dbcp.jdbc2pool.JDBC2PoolDataSource

    however did not seem mature to me. it looks like is being
    under development (there is one test case failing for it)

    it to tell you my impression, they've just got into a mess
    with the username/password handling there.

4)
    To go into more detail,

    java.org.apache.commons.dbcp.PoolingDataSource

    has got a very elegant method

    public Connection getConnection(String uname, String passwd) throws SQLException {
        throw new UnsupportedOperationException();
    }
    
    :-))

    I'm not being sarcastic, I really think it is ellegant,
    this takes away a ton of problems: we specify the
    username/password once when the PoolingDataSource is
    created/configured and then it keeps being used. All is fine.

5)
    However, as soon as we try to support

    getConnection( uname, passwd ) in the pooling setup

    it gets close to a nightmare. Anyway, JDBC2PoolDataSource
    targeted to implement this has still a way to go, IMO

6)

    I was just about to attach DataSource-s to my Fortress
    application, and to tell the truth, I had avalon-excalibur
    data source components in mind. However now I'm considering
    wrapping something from DBCP. It should be PoolingDataSource,
    I beleive? Are we ever going to have a getConnection( u, p )
    supported? Do we need it? If yes, DBCP team looks like
    being in a need of help ;-)

- Anton


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org


Re: DBCP --> Avalon

Posted by Berin Loritsch <bl...@apache.org>.
Anton Tagunov wrote:
> Hello Peter!
> 
> PD> -- Deprecate Excalibur/Cornerstone DataSource as it can be replaced with
> PD> wrappers around DBCP which seems to be high enough quality, better unit 
> PD> tested and actively maintained.
> 
> Just a small note, have just looked at the code
> 

Bear in mind *BOTH* DBCP and Excalibur DataSource work.  Cocoon and I
believe JAMES are both using Excalibur's version.

> 3)
> 
>     java.org.apache.commons.dbcp.jdbc2pool.JDBC2PoolDataSource
> 
>     however did not seem mature to me. it looks like is being
>     under development (there is one test case failing for it)
> 
>     it to tell you my impression, they've just got into a mess
>     with the username/password handling there.


You might ask them about it.

> 
> 4)
>     To go into more detail,
> 
>     java.org.apache.commons.dbcp.PoolingDataSource
> 
>     has got a very elegant method
> 
>     public Connection getConnection(String uname, String passwd) throws SQLException {
>         throw new UnsupportedOperationException();
>     }
>     
>     :-))
> 
>     I'm not being sarcastic, I really think it is ellegant,
>     this takes away a ton of problems: we specify the
>     username/password once when the PoolingDataSource is
>     created/configured and then it keeps being used. All is fine.

Essentially, that is what the Excalibur pooling does.  It just doesn't
offer that method.

> 
> 5)
>     However, as soon as we try to support
> 
>     getConnection( uname, passwd ) in the pooling setup
> 
>     it gets close to a nightmare. Anyway, JDBC2PoolDataSource
>     targeted to implement this has still a way to go, IMO

To add to that nightmare, I also have an additional requirement
for a current App that I'm writing where each Connection to the
database needs a role set *after* the user has been authenticated.
I can accomplish this by subclassing Excalibur's DataSource, and
hacking a little.  I haven't looked at DBCP though.

> 
> 6)
> 
>     I was just about to attach DataSource-s to my Fortress
>     application, and to tell the truth, I had avalon-excalibur
>     data source components in mind. However now I'm considering
>     wrapping something from DBCP. It should be PoolingDataSource,
>     I beleive? Are we ever going to have a getConnection( u, p )
>     supported? Do we need it? If yes, DBCP team looks like
>     being in a need of help ;-)

:) You can try both.  In fact, it would be nothing to wrap a facade
using the Excalibur component's interface and DBCP's implementation.
That way you can test the differences without having to change a
stitch of code in your application.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org