You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by Curt Arnold <ca...@apache.org> on 2007/06/21 05:27:25 UTC

log4j 1.2.15 RC 3

I've just pushed another release candidate out.  This won't be the  
last since I forgot to update the release date and another tweak to  
the POM that I'd like to do.  I'll likely refresh it tomorrow, but I  
thought I would leave it up overnight for any immediate feedback.   
The distributions are at http://people.apache.org/builds/logging/ 
log4j/1.2.15 and Maven artifacts are in the staging repo at http:// 
people.apache.org/build/logging/repo.

The big new change is this release was built on Ubuntu Linux 6.06-1  
(Dapper Drake) using Sun Java 6 (but targeting JDK 1.1) and an MinGW  
cross compiler (for NTEventLogAppender.dll) instead of Windows 2000  
and JDK 1.3.   Dapper Drake is a Long Term Support release of Ubuntu  
and a prebuild VMWare Applicance is available and was used as a  
starting point.  The instructions at http://svn.apache.org/repos/asf/ 
logging/log4j/branches/v1_2-branch/BUILD-INFO.txt should allow you to  
set up an identical build environment in not much longer than the  
download time.  Hopefully we can use that build environment across  
the components, log4j 2.0 and log4cxx.

I tested a earlier builds on JDK 1.2 and 1.3 on Windows and java-gcj  
1.4.2.  JDK 1.3 passed all tests without incident.  JDK 1.2 would  
report IllegalStateExceptions in the XML parser when reading  
configuration files and would print diagnostic messages about  
problems with the JIT, but many tests still passed.  I vaguely recall  
seeing similar behavior with earlier releases, so it may not be a  
regression from earlier versions of log4j.  java-gcj would fail one  
test in DRFATest where the rollover time was wrong on October 27 or  
28th and only on that date.  I attempted to debug on java-gcj with  
Eclipse, but wasn't able to get it to stop on breakpoints (perhaps a  
bundled log4j was interfering).  I don't think that is a regression  
either, perhaps a run-time library bug.  I have not tested JRockit  
with this release, but earlier (non Ubuntu) builds passed all tests.

I'd appreciate any feedback on the build environment setup and any  
success in reproducing the build.  There are some unavoidable  
differences between builds, Javadoc puts timestamps in HTML comments  
and jar files also contain timestamps.  Something like the following  
can be used to compare a test and a reference release:

mkdir test
cd test
tar -xvzf ~/log4j/target/log4j-1.2.15.tar.gz
cd apache-log4j-1.2.15
jar xf log4j-1.2.15.jar
hexdump NTEventLogAppender.dll > NTEventLogAppender.hex
cd ../..
mkdir reference
cd reference
tar -xvzf ~/downloads/apache-log4j-1.2.15_rc3.tar.gz
cd apache-log4j-1.2.15
jar xf log4j-1.2.15.jar
hexdump NTEventLogAppender.dll > NTEventLogAppender.hex
cd ../..
diff -r reference test

Hopefully all .class files are identical, HTML only varies by  
timestamps in comments and perhaps a few bytes in the dump of the  
NTEventLogAppender.

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org


Re: log4j 1.2.15 RC 3

Posted by Curt Arnold <ca...@apache.org>.
On Jun 20, 2007, at 11:55 PM, Paul Smith wrote:

> I've done the following quick test to compare 1.2.14->1.2.15.   
> After unpacking both, I compared the contents of the respective  
> jars.  One way to see missing/additional files was this:
>
> unzip -l log4j-1.2.14.jar > /tmp/log4j.1.2.14.txt
> ..
> unzip -l log4j-1.2.15.jar > /tmp/log4j.1.2.15.txt
>
> cat log4j.1.2.14.txt | awk '{print $NF}' | sort > a
> cat log4j.1.2.15.txt | awk '{print $NF}' | sort > b
>
> comm -3 a b
>
> This shows all the file entries that are not in both jars.  In this  
> case, there are only new entries in the 1.2.15 distribution:
>
> [psmith@forge tmp]$ comm -3 a b
> log4j-1.2.14.jar
>         log4j-1.2.15.jar
>         META-INF/maven/
>         META-INF/maven/log4j/
>         META-INF/maven/log4j/log4j/
>         META-INF/maven/log4j/log4j/pom.properties
>         META-INF/maven/log4j/log4j/pom.xml
>         NTEventLogAppender.o
>         org_apache_log4j_nt_NTEventLogAppender.h
>         org_apache_log4j_Priority.h
>         org/apache/log4j/xml/UnrecognizedElementHandler.class
>
> Obviously the 2 jar names are different, and the the maven stuff is  
> expected.


> The .o and .h files are new, but probably benign.

They shouldn't be there, something to fix for RC4.


> The new class, IIRC, is expected in 1.2.15.

Yes, it is an interface that classes that need to handle unexpected  
elements in the XML configuration implement.

>
> I thought of doing byte size comparison between the file entries in  
> the jar, but I'm not sure what that would tell us.
>
> From the above test, the jar looks ok to me.
>
> A Jdiff report would be nice I think, just to compare the binary  
> compatibility aspects.
>

The Ant build file had both CLIRR and JDiff reports.  They should  
still work, but may rebuild the jar file.  The CLIRR Maven plugin  
doesn't look like it has been ported to Maven 2.  JDiff's plugin does  
appear to have been ported (http://mojo.codehaus.org/jdiff-maven- 
plugin/howto.html).

Likely CLIRR could be integrated as an Ant task into the build to  
stop the build if any API breakage was detected and/or a JDiff report  
could be added.  I've been using log4j 1.2.8 as the reference release  
in previous checks of compatibility.



---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org


Re: log4j 1.2.15 RC 3

Posted by Paul Smith <ps...@aconex.com>.
I've done the following quick test to compare 1.2.14->1.2.15.  After  
unpacking both, I compared the contents of the respective jars.  One  
way to see missing/additional files was this:

unzip -l log4j-1.2.14.jar > /tmp/log4j.1.2.14.txt
..
unzip -l log4j-1.2.15.jar > /tmp/log4j.1.2.15.txt

cat log4j.1.2.14.txt | awk '{print $NF}' | sort > a
cat log4j.1.2.15.txt | awk '{print $NF}' | sort > b

comm -3 a b

This shows all the file entries that are not in both jars.  In this  
case, there are only new entries in the 1.2.15 distribution:

[psmith@forge tmp]$ comm -3 a b
log4j-1.2.14.jar
         log4j-1.2.15.jar
         META-INF/maven/
         META-INF/maven/log4j/
         META-INF/maven/log4j/log4j/
         META-INF/maven/log4j/log4j/pom.properties
         META-INF/maven/log4j/log4j/pom.xml
         NTEventLogAppender.o
         org_apache_log4j_nt_NTEventLogAppender.h
         org_apache_log4j_Priority.h
         org/apache/log4j/xml/UnrecognizedElementHandler.class

Obviously the 2 jar names are different, and the the maven stuff is  
expected.   The .o and .h files are new, but probably benign.  The  
new class, IIRC, is expected in 1.2.15.

I thought of doing byte size comparison between the file entries in  
the jar, but I'm not sure what that would tell us.

 From the above test, the jar looks ok to me.

A Jdiff report would be nice I think, just to compare the binary  
compatibility aspects.

Paul

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org


Re: log4j 1.2.15 RC 3

Posted by Curt Arnold <ca...@apache.org>.
On Jun 20, 2007, at 10:37 PM, Paul Smith wrote:

>
> On 21/06/2007, at 1:27 PM, Curt Arnold wrote:
>
>> I've just pushed another release candidate out.  This won't be the  
>> last since I forgot to update the release date and another tweak  
>> to the POM that I'd like to do.  I'll likely refresh it tomorrow,  
>> but I thought I would leave it up overnight for any immediate  
>> feedback.  The distributions are at http://people.apache.org/ 
>> builds/logging/log4j/1.2.15 and Maven artifacts are in the staging  
>> repo at http://people.apache.org/build/logging/repo.
>>
> the repo url doesn't work for me.
>

Sorry, should have been "builds", not "build".


>>
>> mkdir test
>> cd test
>> tar -xvzf ~/log4j/target/log4j-1.2.15.tar.gz
>> cd apache-log4j-1.2.15
>> jar xf log4j-1.2.15.jar
>> hexdump NTEventLogAppender.dll > NTEventLogAppender.hex
>> cd ../..
>> mkdir reference
>> cd reference
>> tar -xvzf ~/downloads/apache-log4j-1.2.15_rc3.tar.gz
>> cd apache-log4j-1.2.15
>> jar xf log4j-1.2.15.jar
>> hexdump NTEventLogAppender.dll > NTEventLogAppender.hex
>> cd ../..
>> diff -r reference test
>>
>>
> Would running a jdiff report between 1.2.14 and 15 help?
>


Yes, but that is a different type of test.  The idea here was that  
one log4j release should be reproducible by different individuals in  
case there is a need to a hotfix release and the previous release  
manager was run over by that bus that keeps targeting developers.   
Can't eliminate the different timestamps in the files, but the .class  
files should be reproducible.  When Mark Womack was release manager,  
I had a duplicate build environment that I would use to replicate his  
build and then do this type of test to make sure that I could come up  
with an almost identical release if the need ever arose.



---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org


Re: log4j 1.2.15 RC 3

Posted by Paul Smith <ps...@aconex.com>.
On 21/06/2007, at 1:27 PM, Curt Arnold wrote:

> I've just pushed another release candidate out.  This won't be the  
> last since I forgot to update the release date and another tweak to  
> the POM that I'd like to do.  I'll likely refresh it tomorrow, but  
> I thought I would leave it up overnight for any immediate  
> feedback.  The distributions are at http://people.apache.org/builds/ 
> logging/log4j/1.2.15 and Maven artifacts are in the staging repo at  
> http://people.apache.org/build/logging/repo.
>
the repo url doesn't work for me.

>
> mkdir test
> cd test
> tar -xvzf ~/log4j/target/log4j-1.2.15.tar.gz
> cd apache-log4j-1.2.15
> jar xf log4j-1.2.15.jar
> hexdump NTEventLogAppender.dll > NTEventLogAppender.hex
> cd ../..
> mkdir reference
> cd reference
> tar -xvzf ~/downloads/apache-log4j-1.2.15_rc3.tar.gz
> cd apache-log4j-1.2.15
> jar xf log4j-1.2.15.jar
> hexdump NTEventLogAppender.dll > NTEventLogAppender.hex
> cd ../..
> diff -r reference test
>
>
Would running a jdiff report between 1.2.14 and 15 help?

Paul

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org