At 11:53 PM 10/29/2004, Scott Deboy wrote:
Are there other changes to HEAD that should have been deprecation warnings in 1.2.8 other than Category? The only thing I can recall off the top of my head is LocationInfo.


Generally speaking, your point is really an excellent one. As Brian
W. Kernighan and Rob Pike put in in their remarkable book entitled
"The Practice of Programming":

  Don't make the same mistake twice. After you fix a bug, ask whether
  you might have made the same mistake somewhere else.

With regards to the specifics, when you mention LocationInfo, I
presume you are concerned about the fact that the LocationInfo class
has been moved to another package, from o.a.l.spi to
o.a.l.spi.location. However, the Location class is *internal* to
log4j. It is not part of the public user interface of log4j.

Our policy has always been to be very careful to preserve
compatibility between various log4j versions with respect to the user
API of log4j.  There is no such guarantee with respect to the
internals of log4j. The SPI package was created to signal to both
users and developers that its contents are internal to log4j.

See also http://logging.apache.org/log4j/docs/faq.html#4.1

  As far as I know, there is no way graceful way to refactor *internal*
  components from version to version and at the same time keep
  serialization compatibility between versions. In particular,
  there is no deprecation mechanism for serialization.

  Our guarantee to users consists of maintaining compile-time and
  run-time compatibility between their code and various log4j
  versions. This means that if users decide to upgrade to 1.3 from
  1.2.x, their code should run without problems. On the other hand, we
  *try* to maintain (but do not guarantee) Java serialization
  compatibility between log4j versions. This means that the user may not
  be able to mix various log4j versions on different machines. In
  particular, 1.3 and 1.2 are likely to be incompatible in their
  serialization.

It is important to realize that backward compatibility cannot
be guaranteed for log4j internals. If we fix the internals in stone,
then I think it will be very difficult for us to have the log4j
project evolve in the future. The Category->Logger and Priority->Level
move has taught me that preserving backward compatibility is usually
10 times more complicated than what one would estimate initially.



--
Ceki Gülcü

For log4j documentation consider "The complete log4j manual"
http://www.qos.ch/shop/products/eclm/




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



Reply via email to