On Tuesday 19 March 2002 22:44, Rafael Alvarez wrote:
> Some may say that testcases written for Junit are easily modifiable
> with a text-replacing tools, and that's true. I'm just making a point.

I can make another example;
JDK 1.4 introduced Throwable.getStackTrace(), which broke my binary 
compatibility with 1.4 without my participation. I had that method in all my 
exceptions that were part of a RMI call, > 50 classes all added up.

The lower you get in the hierarchy (JDK at the bottom, log4j immediately on 
top of that and the project at the very top), the more impact changes has on 
other people. JDK is getting to the point where new methods can no longer be 
added to non-final classes, as has otherwise been declared as Ok.

> My point it: Perhaps some things will get deprecated, and you have to
> be prepared to it. Java is not always binary compatible itself, so
> stop bombing log4j
> </RANTING>

Ceki, I can undertstand that you are "irritated" over this issue, but I can 
also understand everyone's concern, as we are dealing with a VERY fundamental 
service here.
I would like to suggest that one of the following approaches are taken;

1. A declaration that if my code uses classes A, B and C directly, and doesn't 
subclass anything, compatibility will not be broken by the Log4J developers. 

2. A factory for obtaining the Logger, which is an interface only, a method to 
initialize the subsystem that doesn't reference the configurator classes 
directly. And if I stick to these, I am guaranteed a binary functionality for 
decades.

3. Become a JDK logging framework replacement.


Mistakes in the past doesn't have to be repeated, nor is the Log4J obliged to 
un-do the binary breaks of the past. But expect a flight from Log4J if the 
issue is ignored.

Niclas

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

Reply via email to