----- Original Message -----
From: "Jon Stevens" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, August 15, 2001 7:58 PM
Subject: Re: Logging


> on 8/15/01 11:47 AM, "Vincent Massol" <[EMAIL PROTECTED]> wrote:
>
> > I agree. I am just not sure that including one jar inside another is
> > something good and possible (is it done anywhere else ?).
>
> Velocity includes the LogKit.jar and ORO.jar files within the velocity.jar
> file. Hasn't been an issue (other than logkit breaking backwards
> compatibility).
>
> jar:
>     [unzip] Expanding:
> /Users/jon/checkout/jakarta-velocity/build/lib/log.jar in
> to /Users/jon/checkout/jakarta-velocity/bin/classes
>     [unzip] Expanding:
> /Users/jon/checkout/jakarta-velocity/build/lib/oro.jar in
> to /Users/jon/checkout/jakarta-velocity/bin/classes
>    [delete] Deleting directory
> /Users/jon/checkout/jakarta-velocity/bin/classes/
> META-INF
>       [jar] Building jar:
> /Users/jon/checkout/jakarta-velocity/bin/velocity-1.2-
> dev.jar
>
> We would have used Log4JME, but at the time it wasn't as small as it is
now.
>
> > License won't be
> > an issue here obviously. The problem I can see is that with versions. If
I
> > have the Log4jME classes in my component jar and then the user likes
Log4j
> > and puts the jar on the classapth *before* my jar and it happens that
the
> > version he uses it older than mine and does not support such method I am
> > using, then we have a problem, right ? :(
>
> Nope. Your code will still only call known methods, not new methods and
> deprecation rules apply for backwards compatibility. Thanks to Gump and
Sam
> and I bugging him, Ceki is well aware of keeping things fully backwards
> compatible.
>

it is late and I am probably tired ... but what if I package Log4j version
10 which has a new method named makeCoffee() of class CoffeeAppender and it
happens that the end user is using Log4j version 6 which does not have this
method (but has the CoffeAppender class) and the Log4 version 6 jar is put
*before* my component jar ... Then, it seems to me my code which calls
makeCoffee() will break at runtime, no ?

> -jon
-Vincent

Reply via email to