The recent changes to log4j that broke velocity and the discussion that followed is
very instructive. There is a very important lesson to be learned for the future of
log4j development.
Sam was very quick to find the backward incompatibility due to his nightly build
system called Gump. I initially dismissed the importance and the usefulness of Gump
for log4j development. Velocity should be built with the official log4j release
(currently 1.0.4) not the version in CVS. Who cares if velocity does not compile with
the latest log4j code. Right? Wrong!
While this may seem true, consider what will happen to a released version of velocity
(compiled for 1.0.4) when 1.1 comes out. If 1.1 is not 100% compatible with 1.0.4,
users of velocity who would like to upgrade to log4j 1.1 will break velocity. The user
will notice problems at runtime probably at worst possible moment. This is no theory.
The recent changes broke the SMTPAppender which is usually fired after serious errors
of the application. In other words, a serious application error will cause a runtime
error generated by log4j proper. This state of affairs is very bad both for velocity's
and log4j's reputation.
Log4j is a widely used library. It is used because it is bug-free and stable. This
stability comes at a price. Public methods no longer needed must be first deprecated
before being removed. This can be very annoying to do. Believe me, I know.
------------------------------------------------------------
Methods used by potentially a wide public MUST be deprecated
before being removed.
-------------------------------------------------------------
This was not stated as clearly before. So please follow this guideline. Regards, Ceki
At 08:27 20.03.2001 -0500, Sam Ruby wrote:
>Geir Magnusson Jr. wrote:
>>
>> So we will change today to follow suit, I think. We have no
>> users of this feature so far, and if we do, they have been
>> using it 1 day. really.
>
>But velocity is about to have a release, right? Hopefully what goes into
>the release will be in use for more than one day... ;-)
>
>> For clarity, which log4j should I build with, the release?
>
>The released version of velocity should work with the latest release of
>log4j. Ideally, this statement should also hold true if the next release
>of log4j comes before the next release of velocity.
>
>IMHO, the best course of action is the one that Anders Kristensen has
>outlined. Thanks Anders!
>
>- Sam Ruby
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]
I hope to see you at my ApacheCon 2001 presentation
entitled "Log4j, A Logging Package for Java".
See http://ApacheCon.Com/2001/US/ for more details.
----
Ceki Gülcü Web: http://qos.ch
av. de Rumine 5 email: [EMAIL PROTECTED] (preferred)
CH-1005 Lausanne [EMAIL PROTECTED]
Switzerland Tel: ++41 21 351 23 15