I've posted an log4j 1.2.12 release candidate log4j-1.2.12rc4 to http://people.apache.org/~carnold/logging-log4j-1.2.12rc4.zip and http://people.apache.org/~carnold/logging-log4j-1.2.12rc4.tar.gz. This is not explicitly not an official release and should not be used for anything other than test in preparation of the eventual log4j-1.2.12. Since I hope we are getting close to a real release, this RC has no internal markers that it is not a release and if accepted as the release after an appropriate vote (which I'm not calling for), the archives could simply be renamed and signed. The CVS for logging-cvs and logging-site have been tagged with v1_2_12_rc4.

The major different between rc4 and the previous rc3 and rcTEST- jdk1.2 is that this rc4 was build with JDK 1.3 (Sun JDK 1.3.1_15 on Windows 2000 to be more specific). I've been a better part of the last two days building and rebuilding log4j distributions on multiple JDK's on clean virtual machines and comparing them with previous releases and running them on earlier JVM's. I think JDK 1.3 is the right answer.

There is no explicit statement on the compilers used to prepare earlier editions of log4j and the class files do not provide any obvious clues to the compiler that emitted them. There are two distinguishing characteristics in the generated Javadoc that allow you to reasonably determine the version of javadoc used. JDK 1.2 and 1.3 generated Javadoc use "frameset.dtd", JDK 1.4 and later use "loose.dtd". JDK 1.2 uses <FONT ID="..."> to specify a font, and JDK 1.3 and later use <FONT CLASS="...">. These clues suggest log4j-1.2.9 and 1.2.5 were both built with a JDK 1.3 and that log4j-1.2.11 was built with a JDK 1.4.

The JIT error that has been annoying us lately seems to be specific to JDK 1.4 and later compilers. With the recent modifications, log4j can be built and tested (on the same JDK) using any version from 1.2 to 1.5. Building on 1.2 requires rebuilding apache-ant-1.6.5 since it seems to have also been build with a JDK 1.4 compiler.

The JDK 1.2 and 1.3 builds could be successfully tested with a subset of the unit tests on JDK 1.1. Neither Ant 1.6.x or jakarta-oro support JDK 1.1. To work around this a batch file was created to run a subset of the tests that would have been run by tests/build.xml. jakarta-oro only used JDK 1.2 specific classes and substituting Hashtable for HashMap and Vector for ArrayList and rebuilding (again using JDK 1.3) was sufficient to run the unit tests.

A few unit tests are known and expected to fail on JDK 1.1. LevelTest.testDeserializeINFO will fail since the readResolve method that replaces the freshly created level object with the Level.INFO is not invoked. FileAppenderTest.testDirectoryCreation also fails which suggest that log4j will not be able to create missing directories when running on JDK 1.1. Also, tests involving the MDC will fail on JDK 1.1 since MDC is JDK 1.2 specific.

http://people.apache.org/~carnold/rcTEST_vs_rc4.txt contains a diff of rc4 with rcTEST-jdk1.2 (omitting Javadoc differences) and is fairly short. Most of the recent changes were in the test suite which is not included in the distribution.

build.properties.sample was update to reflect currently available versions of support jars.

build.xml had the "release" target and javac.* properties added.

All the example/*.class are different. The jars are named differently (and I expect are different internally).

docs/HISTORY.txt has a speculative release date for 1.2.12 of next Friday. I've also removed the "release" notices for the earlier rcs. Since they will not be available in the archives, I don't think it has much value to describe a distribution that is not available. In addition, "release" is inappropriate to describe the earlier rcs since none of them were ever accepted as a LS release. You could say "prepared" or something like that, if they must be mentioned.

A link to FAQ.html was fixed.

The LF5 documentation that was in log4j-1.2.9 was restored. log4j-1.2.11 and the 1.2.12rcs had the LF5 graphics but not the HTML pages. build.xml did not rebuild the LF5 document, but did not clean it either, so I'm guessing that it was using stale copies from a previous build.

A broken link to chainsaw.html was replaced to a link to http:// logging.apache.org.

rcTEST had reverted the CategoryKey changes which I assume was a production artifact.

The missing directory creation in FileAppender did not check that the getParent() was not null. This caused a NullPointerException in JDK 1.1 in the unit tests. The same fix needs to be propagated to the CVS HEAD.

The change in LoggerRepository avoids a Jikes compiler bug. I had not intended to commit the change but compiling under Jikes is a good thing to support.




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

Reply via email to