That is a good suggestion. Just make sure that commons-logging is not a direct or even indirect dependency of commons-dbcp.
I'd even go as far as asking the developers of the various dependency packages if they plan to use commons-logging in the near future.



At 10:08 AM 8/9/2003 -0700, Scott Deboy wrote:
I haven't looked at the api to see if it works across versions, but have you checked out:

http://jakarta.apache.org/commons/dbcp/ ?


-----Original Message----- From: Raymond DeCampo [mailto:[EMAIL PROTECTED] Sent: Sat 8/9/2003 9:52 AM To: Log4J Developers List Cc: Subject: Re: JDBC version problems But the problem isn't the methods, but the new classes. For example, one of the new methods on Connection is:

Savepoint setSavepoint();

No matter what the implementation of this method is, the 1.2 JRE will
not supply a Savepoint class.  That will prevent the the Connection
implementation from loading (unless the Savepoint class is supplied in
another fashion).

Ceki Gülcü wrote:
>
> Assuming your connection pool implementation encapsulates an
> underlying connection object, one way to deal with method X that
> exists in version 1.4 and not in 1.2 of Connection interface is as
> follows:
>
> 1st variant
> -----------
>
> Implement method X without actually calling the X method on the
> underlying connection.
>
> MyPooledConnecion implements Connection {
>
>   ....
>   void X(...) {
>     throw new Exception("Method X cannot be called.");
>   }
>
> The advantage of this approach is that it would compile on all JDK
> versions. As long as method X is not actually used we are safe.
>
> 2nd variant
> -----------
>
> Same as the 1st variant for version 1.2 except that method X of the
> underlying connection object is called using reflection under v. 1.4.
>
> HTH,
>
>
> At 11:19 AM 8/9/2003 -0400, Raymond DeCampo wrote:
>
>> Hello all,
>>
>> As some of you know, I've been working on JDBC-based appenders in the
>> sandbox.  I wanted to create a connection pool for environments where
>> no such pool existed so that the JDBC appender would not have to
>> create a new connection for every log message.
>>
>> If you've never thought about JDBC connection pooling, the typical way
>> to implement this is to create an implementation of
>> java.sql.Connection that delegates (almost) all of the calls to
>> another Connection object. When the client requests a Connection
>> object, it gets one of these delegates from the pool.  It uses it just
>> like any other Connection object and never needs to know about the
>> pooling.  When the client calls close() on the connection, it is not
>> really closed, but returned to the pool.
>>
>> That is all well and good until you try to create an implementation
>> java.sql.Connection that will work for Java 1.2 and up.  The
>> Connection interface has new methods on it for 1.3 and 1.4.  No big
>> deal, when you compile against 1.2 it won't care because the original
>> interface will be satisfied....except that in 1.4 there are new
>> classes (e.g. java.sql.SavePoint) referenced by the new methods.  If
>> you try to compile with 1.2, it will say, java.sql.SavePoint? never
>> heard of it...
>>
>> Does anybody have a solution to this?  I'm not there is a good
>> one...even if we do a conditional compilation somehow we would need to
>> distribute a version of log4j for each Java version.  (Because if you
>> try to run a 1.4 compiled Connection implementation on a 1.2 JRE,
>> there will be no SavePoint class and the class won't load.  If you try
>> to load a 1.2 compiled Connection implementation on a 1.4 JRE it will
>> say you don't really implement the Connection I have...)
>>
>> So, unless someone has a brilliant idea I guess I will abandon this
>> idea for now...
>>
>> Ray
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

-- Ceki For log4j documentation consider "The complete log4j manual" ISBN: 2970036908 http://www.qos.ch/shop/products/clm_t.jsp




--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to