[jboss-cvs] apache/commons-logging ...
Scott Stark
scott.stark at jboss.com
Fri Feb 9 01:57:16 EST 2007
User: starksm
Date: 07/02/09 01:57:16
Modified: commons-logging .cvsignore build.xml
project.xml build.properties.sample LICENSE.txt
PROPOSAL.html NOTICE.txt checkstyle.xml
project.properties RELEASE-NOTES.txt
Added: commons-logging doap_logging.rdf .project
.classpath
Removed: commons-logging maven.xml STATUS.html
Log:
Update to the http://apache.ziply.com/jakarta/commons/logging/source/commons-logging-1.1-src.zip release
Revision Changes Path
1.3 +1 -0 apache/commons-logging/.cvsignore
(In the diff below, changes in quantity of whitespace are not shown.)
Index: .cvsignore
===================================================================
RCS file: /cvsroot/jboss/apache/commons-logging/.cvsignore,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- .cvsignore 19 Apr 2006 02:43:36 -0000 1.2
+++ .cvsignore 9 Feb 2007 06:57:16 -0000 1.3
@@ -9,3 +9,4 @@
.project
.classpath
.repositoryIndex
+output
1.3 +776 -930 apache/commons-logging/build.xml
(In the diff below, changes in quantity of whitespace are not shown.)
Index: build.xml
===================================================================
RCS file: /cvsroot/jboss/apache/commons-logging/build.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- build.xml 19 Apr 2006 02:44:31 -0000 1.2
+++ build.xml 9 Feb 2007 06:57:16 -0000 1.3
@@ -1,6 +1,6 @@
<!--
- Copyright 2001-2004 The Apache Software Foundation.
+ Copyright 2001-2005 The Apache Software Foundation.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -16,13 +16,32 @@
-->
-<project name="Logging" default="compile" basedir=".">
-
-
<!--
- "Logging" component of the Jakarta Commons Subproject
- $Id: build.xml,v 1.2 2006/04/19 02:44:31 starksm Exp $
--->
+ - Ant build file for commons-logging.
+ -
+ - Quick build instructions:
+ - * ant getlibs
+ - * cp build.properties.sample build.properties
+ - * ant -lib lib/junit-3.8.1.jar dist
+ -
+ - Note that this build file uses the optional <junit> task. While the
+ - task "adapter" class comes by default with ant 1.6+, the junit libraries
+ - (3.8.1 or later) are also required to be made available to ant. This
+ - requires that you do one of the following:
+ - * create directory ~/.ant/lib and place the junit jar there
+ - * put the junit jar in $ANT_HOME/lib
+ - * run ant as "ant -lib path-to-junit-jar"
+ - * put the junit jar in $CLASSPATH
+ -
+ - Note when building JCL for release it is strongly recommended that a 1.2 JVM
+ - is used for the main compile and the home.jdk4 property used to specify
+ - the path to a 1.4 J2SDK. This will be used to compile those classes
+ - which require the 1.4 API.
+ -
+ - $Id: build.xml,v 1.3 2007/02/09 06:57:16 starksm Exp $
+ -->
+
+<project name="Logging" default="all" basedir=".">
<!-- ========== Initialize Properties ===================================== -->
@@ -31,16 +50,6 @@
<property file="build.properties"/> <!-- Component local -->
<property file="../build.properties"/> <!-- Commons local -->
<property file="${user.home}/build.properties"/> <!-- User local -->
- <!-- Allow jbossbuild.repository to be set from (in order or priority)
- + Command line -Djbossbuild.repository=...
- + synchronize.properties jbossbuild.repository setting
- + JBOSS_REPOSITORY environment variable (e.g. JBOSS_REPOSITORY=file:///d:/projects/repository.jboss.com/)
- -->
- <condition property="jbossbuild.repository" value="${env.JBOSS_REPOSITORY}">
- <isset property="env.JBOSS_REPOSITORY"/>
- </condition>
- <!-- Fall back to default -->
- <property name="jbossbuild.repository" value="http://repository.jboss.com"/>
<!-- ========== External Dependencies ===================================== -->
@@ -49,17 +58,25 @@
<!-- The directories corresponding to your necessary dependencies -->
<property name="junit.home" value="/usr/local/junit3.5"/>
<property name="jakarta.home" value="../.."/>
- <property environment="env"/>
+
+ <!--
+ - The names of the unit tests to run. By default all tests are run, but
+ - this can be overridden from the command line by something like:
+ - ant -Dtestmatch=**/FooTestCase test
+ -->
+ <property name="testmatch" value="**/*TestCase"/>
<!-- ========== Derived Values ============================================ -->
<!-- The locations of necessary jar files -->
- <property name="junit.jar" value="${junit.home}/junit.jar"/>
- <property name="log4j.jar" value="thirdparty/log4j.jar"/>
- <property name="logkit.jar" value="${jakarta.home}/jakarta-avalon-logkit/build/log/logkit"/>
- <property name="avalon-framework.jar" value="../../Avalon-4.1.4/avalon-framework-4.1.4.jar"/>
+ <property name="junit.jar" value="junit-3.8.1.jar"/>
+ <property name="log4j12.jar" value="log4j-1.2.12.jar"/>
+ <property name="log4j13.jar" value="log4j-1.3.0.jar"/>
+ <property name="logkit.jar" value="logkit-1.0.1.jar"/>
+ <property name="avalon-framework.jar" value="avalon-framework-4.1.3.jar"/>
+ <property name="servletapi.jar" value="servletapi-2.3.jar"/>
<!-- ========== Component Declarations ==================================== -->
@@ -75,7 +92,7 @@
<property name="component.title" value="Logging Wrapper Library"/>
<!-- The current version number of this component -->
- <property name="component.version" value="1.0.5.GA-jboss"/>
+ <property name="component.version" value="1.1"/>
<!-- The base directory for compilation targets -->
<property name="build.home" value="${basedir}/target"/>
@@ -86,15 +103,32 @@
<!-- The base directory for distribution targets -->
<property name="dist.home" value="dist"/>
+ <!-- The base directory for releases -->
+ <property name="artifacts.home" value="artifacts"/>
+
<!-- The base directory for component sources -->
<property name="source.home" value="src/java"/>
<!-- The base directory for unit test sources -->
<property name="test.home" value="src/test"/>
+ <!-- jar names -->
+ <property name="core.jar.name" value="commons-${component.name}-${component.version}.jar"/>
+ <property name="api.jar.name" value="commons-${component.name}-api-${component.version}.jar"/>
+ <property name="adapters.jar.name" value="commons-${component.name}-adapters-${component.version}.jar"/>
+ <property name="src.ide.name" value="commons-${component.name}-${component.version}-ide.zip"/>
+
+ <!-- dist names -->
+ <property name="windows.dist.name" value="commons-${component.name}-${component.version}.zip"/>
+ <property name="nix.dist.name" value="commons-${component.name}-${component.version}.tar.gz"/>
<!-- ========== Compiler Defaults ========================================= -->
+ <!-- Version of java class files to generate. -->
+ <property name="target.version" value="1.1"/>
+
+ <!-- Version of java source to accept -->
+ <property name="source.version" value="1.2"/>
<!-- Should Java compilations set the 'debug' compiler option? -->
<property name="compile.debug" value="true"/>
@@ -109,39 +143,39 @@
<path id="compile.classpath">
<pathelement location="${build.home}/classes"/>
<pathelement location="${junit.jar}"/>
- <pathelement location="${log4j.jar}"/>
<pathelement location="${logkit.jar}"/>
<pathelement location="${avalon-framework.jar}"/>
+ <pathelement location="${servletapi.jar}"/>
</path>
<!-- ========== Test Execution Defaults =================================== -->
- <!-- Construct unit test classpath (generic tests) -->
+ <!--
+ - Construct unit test classpath (generic tests).
+ -
+ - Note that unit tests that use the PathableTestSuite approach don't need
+ - any of this (except junit). However unit tests that don't use PathableTestSuite
+ - to configure their classpath will need the basic classes to be provided
+ - via this mechanism.
+ -->
<path id="test.classpath">
<pathelement location="${build.home}/classes"/>
<pathelement location="${build.home}/tests"/>
<pathelement location="${junit.jar}"/>
- <pathelement location="${log4j.jar}"/>
<pathelement location="${logkit.jar}"/>
<pathelement location="${avalon-framework.jar}"/>
<pathelement location="${conf.home}"/>
- </path>
-
- <!-- Construct unit test classpath (JDK 1.4 tests) -->
- <path id="test.classpath.jdk14">
- <pathelement location="${build.home}/classes"/>
- <pathelement location="${build.home}/tests"/>
- <pathelement location="${junit.jar}"/>
+ <pathelement location="${servletapi.jar}"/>
</path>
<!-- Construct unit test classpath (Log4J tests) -->
- <path id="test.classpath.log4j">
+ <path id="test.classpath.log4j13">
<pathelement location="${build.home}/classes"/>
<pathelement location="${build.home}/tests"/>
<pathelement location="${junit.jar}"/>
- <pathelement location="${log4j.jar}"/>
+ <pathelement location="${log4j13.jar}"/>
</path>
<!-- Construct unit test classpath (Log4J tests) -->
@@ -152,9 +186,10 @@
<pathelement location="${log4j12.jar}"/>
</path>
- <!-- Construct unit test classpath (Minimal Wrapper) -->
- <path id="test.classpath.wrap">
- <pathelement location="${build.home}/commons-logging-wrapper.jar"/>
+ <!-- Construct javadoc classpath -->
+ <path id="javadoc.classpath">
+ <path refid="compile.classpath"/>
+ <pathelement location="${log4j12.jar}"/>
</path>
<!-- Should all tests fail if one does? -->
@@ -162,12 +197,37 @@
<!-- The test runner to execute -->
<property name="test.runner" value="junit.textui.TestRunner"/>
- <property name="test.entry" value="org.apache.commons.logging.TestAll"/>
- <property name="test.wrapper" value="org.apache.commons.logging.Wrapper"/>
+
+ <!-- libs to pass to the tests -->
+ <property name="test.sysprops.testclasses" value="${build.home}/tests"/>
+ <property name="test.sysprops.log4j12" value="${log4j12.jar}"/>
+ <property name="test.sysprops.log4j13" value="${log4j13.jar}"/>
+ <property name="test.sysprops.logkit" value="${logkit.jar}"/>
+ <property name="test.sysprops.servletapi" value="${servletapi.jar}"/>
+ <property name="test.sysprops.commons-logging" value="${build.home}/${core.jar.name}"/>
+ <property name="test.sysprops.commons-logging-api" value="${build.home}/${api.jar.name}"/>
+ <property name="test.sysprops.commons-logging-adapters" value="${build.home}/${adapters.jar.name}"/>
+ <propertyset id="test-lib-props">
+ <propertyref prefix="test.sysprops."/>
+ <mapper type="glob" from="test.sysprops.*" to="*"/>
+ </propertyset>
<!-- ========== Executable Targets ======================================== -->
+ <!--
+ - Running this target will download all the necessary dependencies into the "lib" subdirectory.
+ -->
+ <property name="getlibs.base" value="http://www.ibiblio.org/maven"/>
+ <target name="getlibs">
+ <mkdir dir="lib"/>
+ <get dest="lib/junit-3.8.1.jar" src="${getlibs.base}/junit/jars/junit-3.8.1.jar"/>
+ <get dest="lib/logkit-1.0.1.jar" src="${getlibs.base}/logkit/jars/logkit-1.0.1.jar"/>
+ <get dest="lib/avalon-framework-4.1.3.jar" src="${getlibs.base}/avalon-framework/jars/avalon-framework-4.1.3.jar"/>
+ <get dest="lib/log4j-1.2.12.jar" src="${getlibs.base}/log4j/jars/log4j-1.2.12.jar"/>
+ <get dest="lib/servletapi-2.3.jar" src="${getlibs.base}/servletapi/jars/servletapi-2.3.jar"/>
+ </target>
+
<target name="init"
description="Initialize and evaluate conditionals">
<echo message="-------- ${component.title} ${component.version} --------"/>
@@ -180,7 +240,9 @@
description="Prepare build directory">
<echo>
- Log4j: ${log4j.jar}
+ Log4j12: ${log4j12.jar}
+ <!-- Note: log4j13 support is not available in the 1.1 release. -->
+ <!--Log4j13: ${log4j13.jar}-->
LogKit: ${logkit.jar}
Avalon-Framework: ${avalon-framework.jar}
</echo>
@@ -188,8 +250,6 @@
<mkdir dir="${build.home}"/>
<mkdir dir="${build.home}/classes"/>
<mkdir dir="${build.home}/conf"/>
- <mkdir dir="${build.home}/docs"/>
- <mkdir dir="${build.home}/docs/api"/>
<mkdir dir="${build.home}/tests"/>
</target>
@@ -200,15 +260,7 @@
<copy todir="${build.home}/conf" filtering="on">
<fileset dir="${conf.home}" includes="*.MF"/>
<fileset dir="${conf.home}" includes="*.properties"/>
- <filterset>
- <filter token="java.vm.version" value="${java.vm.version}"/>
- <filter token="java.vm.vendor" value="${java.vm.vendor}"/>
- </filterset>
</copy>
- <mkdir dir="thirdparty" />
- <!-- Get the binaries dependencies from the repository -->
- <get dest="thirdparty/log4j.jar"
- src="${jbossbuild.repository}/apache-log4j/1.2.8/lib/log4j.jar" />
</target>
<target name="compile" depends="static,compile-only"
@@ -217,24 +269,40 @@
<target name='discovery' depends='init'>
<available property="jdk.1.4.present"
classname="java.util.logging.Logger"/>
- <available classname="org.apache.log4j.Logger"
- classpathref="compile.classpath"
- property="log4j.present"/>
+
<available property="logkit.present"
classpathref="compile.classpath"
classname="org.apache.log.Logger"/>
+
<available property="avalon-framework.present"
classpathref="compile.classpath"
classname="org.apache.avalon.framework.logger.Logger"/>
+
+ <available file="${log4j12.jar}" property="log4j12.present"/>
+ <available file="${log4j13.jar}" property="log4j13.present"/>
+ <available file="${build.home}/docs" property="maven.generated.docs.present"/>
</target>
- <target name="log4j-warning" unless='log4j.present' depends='init,discovery'>
+ <target name="log4j12-warning" unless='log4j12.present' depends='init,discovery'>
<echo>
*** WARNING ***
- Log4j not found: Cannot Build Log4jLogger
+ Log4j 1.2 not found: Cannot Build Log4JLogger
</echo>
</target>
+ <target name="log4j13-warning" unless='log4j13.present' depends='init,discovery'>
+ <!--
+ - Note: log4j13 support is not available in the 1.1 release.
+ - If we add it in a future release, the code below should be uncommented.
+ -->
+ <!--
+ <echo>
+ *** WARNING ***
+ Log4j 1.3 not found: Cannot Build Log4J13Logger
+ </echo>
+ -->
+ </target>
+
<target name="logkit-warning" unless='logkit.present' depends='init,discovery'>
<echo>
*** WARNING ***
@@ -256,42 +324,135 @@
</echo>
</target>
- <target name="log4j12-warning" unless='log4j12.jar' depends='init,discovery'>
+ <target name="log4j12-test-warning" unless='log4j12.jar' depends='init,discovery'>
<echo>
*** WARNING ***
Log4J 1.2.x Jar not found: Cannot execute 1.2.x tests
</echo>
</target>
- <target name='warning' depends='log4j-warning,logkit-warning,jdk1.4-warning,avalon-framework-warning'/>
-
+ <target name='warning'
+ depends='log4j12-warning,log4j13-warning,logkit-warning,jdk1.4-warning,avalon-framework-warning,compile-1.4'/>
- <target name="compile-only" depends="init,discovery,warning" >
+ <target name="compile-only"
+ depends="prepare,discovery,warning,show-lib-presence,compile-non-log4j,compile-log4j12,compile-log4j13,build-jar"/>
+ <target name="show-lib-presence">
<echo message="jdk.1.4.present=${jdk.1.4.present}"/>
- <echo message="log4j.present=${log4j.present}"/>
+ <echo message="log4j12.present=${log4j12.present}"/>
+ <!-- Note: log4j13 support is not available in the 1.1 release. -->
+ <!--<echo message="log4j13.present=${log4j13.present}"/>-->
<echo message="logkit.present=${logkit.present}"/>
<echo message="avalon-framework.present=${avalon-framework.present}"/>
+ </target>
+ <target name="compile-non-log4j" depends="prepare,discovery">
+ <!-- compile everything except Log4J classes -->
<javac srcdir="${source.home}"
destdir="${build.home}/classes"
debug="${compile.debug}"
deprecation="${compile.deprecation}"
- optimize="${compile.optimize}">
+ optimize="${compile.optimize}"
+ source="${source.version}"
+ target="${target.version}">
+
<classpath refid="compile.classpath"/>
+
+ <exclude name="org/apache/commons/logging/impl/Log4J*.java"/>
+
<exclude name="org/apache/commons/logging/impl/Jdk13LumberjackLogger.java"
unless="jdk.1.4.present"/>
<exclude name="org/apache/commons/logging/impl/Jdk14Logger.java"
unless="jdk.1.4.present"/>
- <exclude name="org/apache/commons/logging/impl/Log4J*.java"
- unless="log4j.present"/>
- <exclude name="org/apache/commons/logging/impl/Log4j*.java"
- unless="log4j.present"/>
<exclude name="org/apache/commons/logging/impl/LogKitLogger.java"
unless="logkit.present"/>
<exclude name="org/apache/commons/logging/impl/AvalonLogger.java"
unless="avalon-framework.present"/>
</javac>
+ </target>
+
+ <target name="compile-1.4" depends="prepare,discovery,compile-non-log4j" if='executable.javac1.4'>
+ <!--
+ - Compiles those classes which require a 1.4+ JSDK.
+ - This target will only be executed when ant is running a pre-1.4 JVM
+ - and the home.jdk4 property is set.
+ - This configuration is typically used to create a release only.
+ -->
+ <echo message=""/>
+ <echo message="************************************************************"/>
+ <echo message=" Compiling 1.4 only classes using compiler@${executable.javac1.4}"/>
+ <echo message="************************************************************"/>
+ <echo message=""/>
+ <javac srcdir="${source.home}"
+ destdir="${build.home}/classes"
+ debug="${compile.debug}"
+ deprecation="${compile.deprecation}"
+ optimize="${compile.optimize}"
+ source="${source.version}"
+ target="${target.version}"
+ compiler='javac1.4'
+ fork='yes'
+ executable='${executable.javac1.4}'>
+
+ <classpath refid="compile.classpath"/>
+
+ <include name="org/apache/commons/logging/impl/Jdk13LumberjackLogger.java"
+ unless="jdk.1.4.present"/>
+ <include name="org/apache/commons/logging/impl/Jdk14Logger.java"
+ unless="jdk.1.4.present"/>
+ </javac>
+ </target>
+
+ <target name="compile-log4j12" depends="prepare,discovery">
+ <!-- compile the log4j1.2 support classes -->
+ <javac srcdir="${source.home}"
+ destdir="${build.home}/classes"
+ debug="${compile.debug}"
+ deprecation="${compile.deprecation}"
+ optimize="${compile.optimize}"
+ source="${source.version}"
+ target="${target.version}">
+
+ <classpath refid="compile.classpath"/>
+ <classpath>
+ <!--
+ <pathelement refid="compile.classpath"/>
+ <classpath refid="compile.classpath"/>
+ -->
+ <pathelement location="${log4j12.jar}"/>
+ </classpath>
+
+ <include name="org/apache/commons/logging/impl/Log4JLogger.java"
+ if="log4j12.present"/>
+ </javac>
+ </target>
+
+ <target name="compile-log4j13" depends="prepare,discovery">
+ <!-- compile the log4j1.3 support classes -->
+ <javac srcdir="${source.home}"
+ destdir="${build.home}/classes"
+ debug="${compile.debug}"
+ deprecation="${compile.deprecation}"
+ optimize="${compile.optimize}"
+ source="${source.version}"
+ target="${target.version}">
+
+ <classpath refid="compile.classpath"/>
+ <classpath>
+ <pathelement location="${log4j13.jar}"/>
+ </classpath>
+
+ <!--
+ - Note: log4j13 support not available in 1.1 release. However if we do add it
+ - in a future release, this entry will pick it up. In the meantime, this
+ - simply compiles no classes.
+ -->
+ <include name="org/apache/commons/logging/impl/Log4J13Logger.java"
+ if="log4j13.present"/>
+ </javac>
+ </target>
+
+ <target name="build-jar">
<copy todir="${build.home}/classes" filtering="on">
<fileset dir="${source.home}" excludes="**/*.java"/>
</copy>
@@ -301,24 +462,37 @@
<copy file="NOTICE.txt"
todir="${build.home}/classes/META-INF"/>
- <jar jarfile="${build.home}/commons-${component.name}.jar"
+ <jar jarfile="${build.home}/${core.jar.name}"
basedir="${build.home}/classes"
manifest="${build.home}/conf/MANIFEST.MF">
<include name="org/apache/commons/logging/**" />
<include name="META-INF/LICENSE.txt"/>
<include name="META-INF/NOTICE.txt"/>
+ <exclude name="**/package.html"/>
</jar>
- <jar jarfile="${build.home}/commons-${component.name}-api.jar"
+ <jar jarfile="${build.home}/${api.jar.name}"
basedir="${build.home}/classes"
manifest="${build.home}/conf/MANIFEST.MF">
<include name="org/apache/commons/logging/*.class" />
<include name="org/apache/commons/logging/impl/LogFactoryImpl*.class" />
- <include name="org/apache/commons/logging/impl/Jdk14*.class" />
+ <include name="org/apache/commons/logging/impl/WeakHashtable*.class" />
<include name="org/apache/commons/logging/impl/SimpleLog*.class" />
<include name="org/apache/commons/logging/impl/NoOpLog*.class" />
+ <include name="org/apache/commons/logging/impl/Jdk14Logger.class" />
<include name="META-INF/LICENSE.txt"/>
<include name="META-INF/NOTICE.txt"/>
+ <exclude name="**/package.html"/>
+ </jar>
+
+ <jar jarfile="${build.home}/${adapters.jar.name}"
+ basedir="${build.home}/classes"
+ manifest="${build.home}/conf/MANIFEST.MF">
+ <include name="org/apache/commons/logging/impl/**.class" />
+ <include name="META-INF/LICENSE.txt"/>
+ <include name="META-INF/NOTICE.txt"/>
+ <exclude name="org/apache/commons/logging/impl/WeakHashtable*.class" />
+ <exclude name="org/apache/commons/logging/impl/LogFactoryImpl.class" />
</jar>
</target>
@@ -333,14 +507,22 @@
</javac>
</target>
- <target name='compile.log4j.tests' if='log4j.present'>
+ <target name='compile.log4j.tests' if='log4j12.present'>
<javac srcdir="${test.home}"
destdir="${build.home}/tests"
debug="${compile.debug}"
deprecation="${compile.deprecation}"
optimize="${compile.optimize}">
- <classpath refid="test.classpath"/>
+ <classpath refid="test.classpath.log4j12"/>
<include name='**/log4j/**'/>
+ <!-- NOTE -->
+ <!--
+ Pathable tests do not reference the Log4J Logger directly
+ but try to load them by reflection from particular loaders.
+ They will therefore fail unless this logger is available.
+ -->
+ <include name='**/pathable/**'/>
+ <!-- END NOTE -->
</javac>
</target>
@@ -356,6 +538,17 @@
</javac>
</target>
+ <target name='compile.logkit.tests' if='logkit.present'>
+ <javac srcdir="${test.home}"
+ destdir="${build.home}/tests"
+ debug="${compile.debug}"
+ deprecation="${compile.deprecation}"
+ optimize="${compile.optimize}">
+ <classpath refid="test.classpath"/>
+ <include name='**/logkit/**'/>
+ </javac>
+ </target>
+
<target name="compile.tests" depends="compile"
description="Compile unit test cases">
<javac srcdir="${test.home}"
@@ -366,11 +559,21 @@
<classpath refid="test.classpath"/>
<exclude name='**/jdk14/**'/>
<exclude name='**/log4j/**'/>
+ <!-- NOTE -->
+ <!--
+ Pathable tests do not reference the Log4J Logger directly
+ but try to load them by reflection from particular loaders.
+ They will therefore fail unless this logger is available.
+ -->
+ <exclude name='**/pathable/**'/>
+ <!-- END NOTE -->
<exclude name='**/avalon/**'/>
+ <exclude name='**/logkit/**'/>
</javac>
<antcall target='compile.log4j.tests'/>
<antcall target='compile.jdk1.4.tests'/>
<antcall target='compile.avalon.tests'/>
+ <antcall target='compile.logkit.tests'/>
<copy todir="${build.home}/tests" filtering="on">
<fileset dir="${test.home}" excludes="**/*.java"/>
</copy>
@@ -378,9 +581,9 @@
basedir="${build.home}/tests"
manifest="${build.home}/conf/MANIFEST.MF">
<include name="org/apache/commons/logging/log4j/CustomConfig.properties"
- if="log4j.present"/>
+ if="log4j12.present"/>
<include name="org/apache/commons/logging/log4j/TestAppender.class"
- if="log4j.present"/>
+ if="log4j12.present"/>
</jar>
<jar jarfile="${build.home}/commons-${component.name}-tests.jar"
basedir="${build.home}/tests"
@@ -400,531 +603,174 @@
</target>
- <target name="clean"
- description="Clean build and distribution directories">
- <delete dir="${build.home}"/>
+ <target name="clean" description="Clean build and distribution directories">
+ <mkdir dir='${build.home}'/>
+ <delete includeemptydirs='yes'>
+ <fileset dir="${build.home}" excludes='docs/**/*'/>
+ </delete>
<delete dir="${dist.home}"/>
+ <delete dir="${artifacts.home}"/>
</target>
- <target name="all" depends="clean,compile"
+ <target name="all" depends="clean,compile,test"
description="Clean and compile all components"/>
- <target name="javadoc" depends="compile"
- description="Create component Javadoc documentation">
- <mkdir dir="${dist.home}"/>
- <mkdir dir="${dist.home}/docs"/>
- <mkdir dir="${dist.home}/docs/api"/>
- <javadoc sourcepath="${source.home}"
- destdir="${dist.home}/docs/api"
- overview="${source.home}/overview.html"
- packagenames="org.apache.commons.*"
- author="true"
- private="true"
- version="true"
- doctitle="<h1>${component.title} (Version ${component.version})</h1>"
- windowtitle="${component.title} (Version ${component.version})"
- bottom='Copyright 2002-2004 The Apache Software Foundation.<!--
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.-->'>
- <classpath refid="test.classpath"/>
- </javadoc>
+ <target name="maven-docs-warning" unless="maven.generated.docs.present" depends="discovery">
+ <echo>
+ *** WARNING ***
+ Maven generated documentation not found: Documentation distribution will be empty
+ </echo>
</target>
- <target name="dist" depends="compile,javadoc"
+ <target name="dist" depends="all,maven-docs-warning"
description="Create binary distribution">
+
+ <!--
+ - Maven is used to generate the documentation.
+ - However, we cannot assume that it has been run.
+ - So, create the appropriate directories.
+ -->
+ <mkdir dir='${build.home}'/>
+ <mkdir dir='${build.home}/docs'/>
+ <mkdir dir='${build.home}/docs/apidocs'/>
+
+ <!--
+ - Create a dist directory to hold all the files that go into a distribution.
+ - Copy the needed files from the build directory to the dist directory.
+ -->
<mkdir dir="${dist.home}"/>
- <copy file="LICENSE.txt"
- todir="${dist.home}"/>
- <copy file="NOTICE.txt"
- todir="${dist.home}"/>
- <copy file="RELEASE-NOTES.txt"
- todir="${dist.home}"/>
- <copy file="${build.home}/commons-${component.name}.jar"
- tofile="${dist.home}/commons-${component.name}.jar" />
- <copy file="${build.home}/commons-${component.name}-api.jar"
- tofile="${dist.home}/commons-${component.name}-api.jar" />
+ <copy todir="${dist.home}">
+ <fileset dir=".">
+ <include name="LICENSE.txt"/>
+ <include name="NOTICE.txt"/>
+ <include name="RELEASE-NOTES.txt"/>
+ </fileset>
+ <fileset dir="${build.home}">
+ <include name="${core.jar.name}"/>
+ <include name="${api.jar.name}"/>
+ <include name="${adapters.jar.name}"/>
+ </fileset>
+ </copy>
+
+ <!-- Copy documentation generated by maven -->
+ <mkdir dir="${dist.home}/docs"/>
+ <copy todir="${dist.home}/docs">
+ <fileset dir="${build.home}/docs"/>
+ </copy>
+
+ <!--
+ - And copy the source too; we don't have separate source and binary distributions
+ - for logging; the source is so small there's little point.
+ -->
<mkdir dir="${dist.home}/src"/>
<copy todir="${dist.home}/src" filtering="on">
<fileset dir="${source.home}"/>
</copy>
+ <zip destfile='${dist.home}/${src.ide.name}'>
+ <zipfileset dir='${dist.home}/src'/>
+ <zipfileset dir='${dist.home}/docs/apidocs'/>
+ <zipfileset dir='${dist.home}' prefix='META-INF'>
+ <include name="LICENSE.txt"/>
+ <include name="NOTICE.txt"/>
+ </zipfileset>
+ </zip>
+
+ <!-- Create release artifacts in the artifacts directory -->
+ <mkdir dir="${artifacts.home}"/>
+ <fixcrlf srcdir='${dist.home}' eol='dos' includes='**/*.txt,**/*.java,**/*.html'/>
+ <zip destfile='${artifacts.home}/${windows.dist.name}'>
+ <zipfileset dir='${dist.home}' prefix='commons-${component.name}-${component.version}'/>
+ </zip>
+ <fixcrlf srcdir='${dist.home}' eol='unix' includes='**/*.txt,**/*.java,**/*.html'/>
+ <tar compression="gzip" destfile='${artifacts.home}/${nix.dist.name}' longfile='gnu'>
+ <tarfileset dir='${dist.home}' prefix='commons-${component.name}-${component.version}'/>
+ </tar>
+ <copy todir="${artifacts.home}">
+ <fileset dir="${build.home}">
+ <include name="${core.jar.name}"/>
+ <include name="${api.jar.name}"/>
+ <include name="${adapters.jar.name}"/>
+ </fileset>
+ </copy>
</target>
<!-- ========== Unit Test Targets ========================================= -->
- <target name="test"
- depends="log4j12-warning, compile.tests,test.jdk14,test.log4j,test.simple,test.avalon,test.log4j12"
- if="test.entry"
- description="Run all unit test cases">
- <java classname="${test.runner}" fork="yes"
- failonerror="${test.failonerror}">
- <arg value="${test.entry}"/>
- <classpath refid="test.classpath"/>
- </java>
- </target>
-
-
- <target name="test.jdk14" depends="compile.tests" if="jdk.1.4.present"
- description="Run unit tests specific to JDK 1.4 logging">
-
- <echo message="Default Configuration (JDK 1.4 Auto-Recognized)"/>
- <java classname="${test.runner}" fork="yes" failonerror="${test.failonerror}">
- <arg value="org.apache.commons.logging.jdk14.DefaultConfigTestCase"/>
- <classpath refid="test.classpath.jdk14"/>
- </java>
-
- <echo message="Default Configuration (JDK 1.4 LogFactoryImpl Selected)"/>
- <java classname="${test.runner}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="org.apache.commons.logging.LogFactory"
- value="org.apache.commons.logging.impl.LogFactoryImpl"/>
- <arg value="org.apache.commons.logging.jdk14.DefaultConfigTestCase"/>
- <classpath refid="test.classpath.jdk14"/>
- </java>
-
- <echo message="Default Configuration (JDK 1.4 Jdk14Logger Selected)"/>
- <java classname="${test.runner}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="org.apache.commons.logging.Log"
- value="org.apache.commons.logging.impl.Jdk14Logger"/>
- <arg value="org.apache.commons.logging.jdk14.DefaultConfigTestCase"/>
- <classpath refid="test.classpath.jdk14"/>
- </java>
-
- <echo message="Custom Configuration (JDK 1.4 Auto-Recognized)"/>
- <java classname="${test.runner}" fork="yes" failonerror="${test.failonerror}">
- <arg value="org.apache.commons.logging.jdk14.CustomConfigTestCase"/>
- <classpath refid="test.classpath.jdk14"/>
- </java>
-
- <echo message="Custom Configuration (JDK 1.4 LogFactoryImpl Selected)"/>
- <java classname="${test.runner}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="org.apache.commons.logging.LogFactory"
- value="org.apache.commons.logging.impl.LogFactoryImpl"/>
- <arg value="org.apache.commons.logging.jdk14.CustomConfigTestCase"/>
- <classpath refid="test.classpath.jdk14"/>
- </java>
-
- <echo message="Custom Configuration (JDK 1.4 Jdk14Logger Selected)"/>
- <java classname="${test.runner}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="org.apache.commons.logging.Log"
- value="org.apache.commons.logging.impl.Jdk14Logger"/>
- <arg value="org.apache.commons.logging.jdk14.CustomConfigTestCase"/>
- <classpath refid="test.classpath.jdk14"/>
- </java>
-
- <echo message="Basic Operations"/>
- <java classname="${test.runner}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="org.apache.commons.logging.Log"
- value="org.apache.commons.logging.impl.Jdk14Logger"/>
- <arg value="org.apache.commons.logging.BasicOperationsTest"/>
- <classpath refid="test.classpath.log4j"/>
- </java>
-
-
- <echo message="Hierarchy Configuration API (JDK 1.4 Auto-Recognized)"/>
- <java classname="${test.wrapper}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="wrapper.hierarchy" value="API"/>
- <sysproperty key="wrapper.junit" value="${junit.jar}"/>
- <sysproperty key="wrapper.target" value="${build.home}"/>
- <sysproperty key="wrapper.testcase"
- value="org.apache.commons.logging.jdk14.CustomConfigTestCase"/>
- <classpath refid="test.classpath.wrap"/>
- </java>
-
- <echo message="Hierarchy Configuration API (JDK 1.4 LogFactoryImpl Selected)"/>
- <java classname="${test.wrapper}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="wrapper.hierarchy" value="API"/>
- <sysproperty key="wrapper.junit" value="${junit.jar}"/>
- <sysproperty key="wrapper.target" value="${build.home}"/>
- <sysproperty key="wrapper.testcase"
- value="org.apache.commons.logging.jdk14.CustomConfigTestCase"/>
- <sysproperty key="org.apache.commons.logging.LogFactory"
- value="org.apache.commons.logging.impl.LogFactoryImpl"/>
- <classpath refid="test.classpath.wrap"/>
- </java>
-
- <echo message="Hierarchy Configuration API (JDK 1.4 Jdk14Logger Selected)"/>
- <java classname="${test.wrapper}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="wrapper.hierarchy" value="API"/>
- <sysproperty key="wrapper.junit" value="${junit.jar}"/>
- <sysproperty key="wrapper.target" value="${build.home}"/>
- <sysproperty key="wrapper.testcase"
- value="org.apache.commons.logging.jdk14.CustomConfigTestCase"/>
- <sysproperty key="org.apache.commons.logging.Log"
- value="org.apache.commons.logging.impl.Jdk14Logger"/>
- <classpath refid="test.classpath.wrap"/>
- </java>
-
- <echo message="Hierarchy Configuration FULL (JDK 1.4 Auto-Recognized)"/>
- <java classname="${test.wrapper}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="wrapper.hierarchy" value="FULL"/>
- <sysproperty key="wrapper.junit" value="${junit.jar}"/>
- <sysproperty key="wrapper.target" value="${build.home}"/>
- <sysproperty key="wrapper.testcase"
- value="org.apache.commons.logging.jdk14.CustomConfigTestCase"/>
- <classpath refid="test.classpath.wrap"/>
- </java>
-
- <echo message="Hierarchy Configuration FULL (JDK 1.4 LogFactoryImpl Selected)"/>
- <java classname="${test.wrapper}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="wrapper.hierarchy" value="FULL"/>
- <sysproperty key="wrapper.junit" value="${junit.jar}"/>
- <sysproperty key="wrapper.target" value="${build.home}"/>
- <sysproperty key="wrapper.testcase"
- value="org.apache.commons.logging.jdk14.CustomConfigTestCase"/>
- <sysproperty key="org.apache.commons.logging.LogFactory"
- value="org.apache.commons.logging.impl.LogFactoryImpl"/>
- <classpath refid="test.classpath.wrap"/>
- </java>
-
- <echo message="Hierarchy Configuration FULL (JDK 1.4 Jdk14Logger Selected)"/>
- <java classname="${test.wrapper}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="wrapper.hierarchy" value="FULL"/>
- <sysproperty key="wrapper.junit" value="${junit.jar}"/>
- <sysproperty key="wrapper.target" value="${build.home}"/>
- <sysproperty key="wrapper.testcase"
- value="org.apache.commons.logging.jdk14.CustomConfigTestCase"/>
- <sysproperty key="org.apache.commons.logging.Log"
- value="org.apache.commons.logging.impl.Jdk14Logger"/>
- <classpath refid="test.classpath.wrap"/>
- </java>
-
- </target>
-
-
- <target name="test.log4j" depends="compile.tests" if="log4j.present"
- description="Run unit tests specific to Log4J logging">
-
- <echo message="Default Configuration (Log4J Auto-Recognized)"/>
- <java classname="${test.runner}" fork="yes" failonerror="${test.failonerror}">
- <arg value="org.apache.commons.logging.log4j.DefaultConfigTestCase"/>
- <classpath refid="test.classpath.log4j"/>
- </java>
-
- <echo message="Default Configuration (Log4J LogFactoryImpl Selected)"/>
- <java classname="${test.runner}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="org.apache.commons.logging.LogFactory"
- value="org.apache.commons.logging.impl.LogFactoryImpl"/>
- <arg value="org.apache.commons.logging.log4j.DefaultConfigTestCase"/>
- <classpath refid="test.classpath.log4j"/>
- </java>
-
- <echo message="Default Configuration (Log4J Log4JLogger Selected)"/>
- <java classname="${test.runner}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="org.apache.commons.logging.Log"
- value="org.apache.commons.logging.impl.Log4JLogger"/>
- <arg value="org.apache.commons.logging.log4j.DefaultConfigTestCase"/>
- <classpath refid="test.classpath.log4j"/>
- </java>
-
- <echo message="Custom Configuration (Log4J Auto-Recognized)"/>
- <java classname="${test.runner}" fork="yes" failonerror="${test.failonerror}">
- <arg value="org.apache.commons.logging.log4j.CustomConfigTestCase"/>
- <classpath refid="test.classpath.log4j"/>
- </java>
-
- <echo message="Custom Configuration (Log4J LogFactoryImpl Selected)"/>
- <java classname="${test.runner}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="org.apache.commons.logging.LogFactory"
- value="org.apache.commons.logging.impl.LogFactoryImpl"/>
- <arg value="org.apache.commons.logging.log4j.CustomConfigTestCase"/>
- <classpath refid="test.classpath.log4j"/>
- </java>
-
- <echo message="Custom Configuration (Log4J Log4JLogger Selected)"/>
- <java classname="${test.runner}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="org.apache.commons.logging.Log"
- value="org.apache.commons.logging.impl.Log4JLogger"/>
- <arg value="org.apache.commons.logging.log4j.CustomConfigTestCase"/>
- <classpath refid="test.classpath.log4j"/>
- </java>
-
- <echo message="Basic Operations"/>
- <java classname="${test.runner}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="org.apache.commons.logging.Log"
- value="org.apache.commons.logging.impl.Log4JLogger"/>
- <arg value="org.apache.commons.logging.BasicOperationsTest"/>
- <classpath refid="test.classpath.log4j"/>
- </java>
-
- <echo message="Hierarchy Configuration API (Log4J Auto-Recognized)"/>
- <java classname="${test.wrapper}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="wrapper.hierarchy" value="API"/>
- <sysproperty key="wrapper.junit" value="${junit.jar}"/>
- <sysproperty key="wrapper.log4j" value="${log4j.jar}"/>
- <sysproperty key="wrapper.target" value="${build.home}"/>
- <sysproperty key="wrapper.testcase"
- value="org.apache.commons.logging.log4j.CustomConfigTestCase"/>
- <classpath refid="test.classpath.wrap"/>
- </java>
-
- <echo message="Hierarchy Configuration API (Log4J LogFactoryImpl Selected)"/>
- <java classname="${test.wrapper}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="wrapper.hierarchy" value="API"/>
- <sysproperty key="wrapper.junit" value="${junit.jar}"/>
- <sysproperty key="wrapper.log4j" value="${log4j.jar}"/>
- <sysproperty key="wrapper.target" value="${build.home}"/>
- <sysproperty key="wrapper.testcase"
- value="org.apache.commons.logging.log4j.CustomConfigTestCase"/>
- <sysproperty key="org.apache.commons.logging.LogFactory"
- value="org.apache.commons.logging.impl.LogFactoryImpl"/>
- <classpath refid="test.classpath.wrap"/>
- </java>
-
- <echo message="Hierarchy Configuration API (Log4J Log4JLogger Selected)"/>
- <java classname="${test.wrapper}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="wrapper.hierarchy" value="API"/>
- <sysproperty key="wrapper.junit" value="${junit.jar}"/>
- <sysproperty key="wrapper.log4j" value="${log4j.jar}"/>
- <sysproperty key="wrapper.target" value="${build.home}"/>
- <sysproperty key="wrapper.testcase"
- value="org.apache.commons.logging.log4j.CustomConfigTestCase"/>
- <sysproperty key="org.apache.commons.logging.Log"
- value="org.apache.commons.logging.impl.Log4JLogger"/>
- <classpath refid="test.classpath.wrap"/>
- </java>
-
- <echo message="Hierarchy Configuration FULL (Log4J Auto-Recognized)"/>
- <java classname="${test.wrapper}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="wrapper.hierarchy" value="FULL"/>
- <sysproperty key="wrapper.junit" value="${junit.jar}"/>
- <sysproperty key="wrapper.log4j" value="${log4j.jar}"/>
- <sysproperty key="wrapper.target" value="${build.home}"/>
- <sysproperty key="wrapper.testcase"
- value="org.apache.commons.logging.log4j.CustomConfigTestCase"/>
- <classpath refid="test.classpath.wrap"/>
- </java>
-
- <echo message="Hierarchy Configuration FULL (Log4J LogFactoryImpl Selected)"/>
- <java classname="${test.wrapper}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="wrapper.hierarchy" value="FULL"/>
- <sysproperty key="wrapper.junit" value="${junit.jar}"/>
- <sysproperty key="wrapper.log4j" value="${log4j.jar}"/>
- <sysproperty key="wrapper.target" value="${build.home}"/>
- <sysproperty key="wrapper.testcase"
- value="org.apache.commons.logging.log4j.CustomConfigTestCase"/>
- <sysproperty key="org.apache.commons.logging.LogFactory"
- value="org.apache.commons.logging.impl.LogFactoryImpl"/>
- <classpath refid="test.classpath.wrap"/>
- </java>
-
- <echo message="Hierarchy Configuration FULL (Log4J Log4JLogger Selected)"/>
- <java classname="${test.wrapper}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="wrapper.hierarchy" value="FULL"/>
- <sysproperty key="wrapper.junit" value="${junit.jar}"/>
- <sysproperty key="wrapper.log4j" value="${log4j.jar}"/>
- <sysproperty key="wrapper.target" value="${build.home}"/>
- <sysproperty key="wrapper.testcase"
- value="org.apache.commons.logging.log4j.CustomConfigTestCase"/>
- <sysproperty key="org.apache.commons.logging.Log"
- value="org.apache.commons.logging.impl.Log4JLogger"/>
- <classpath refid="test.classpath.wrap"/>
- </java>
-
- </target>
-
-
- <target name="test.simple" depends="compile.tests"
- description="Run unit tests specific to SimpleLog logging">
-
- <echo message="Default Configuration (SimpleLog Selected)"/>
- <java classname="${test.runner}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="org.apache.commons.logging.Log"
- value="org.apache.commons.logging.impl.SimpleLog"/>
- <arg value="org.apache.commons.logging.simple.DefaultConfigTestCase"/>
- <classpath refid="test.classpath"/>
- </java>
-
- <echo message="Custom Configuration (SimpleLog Selected)"/>
- <java classname="${test.runner}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="org.apache.commons.logging.Log"
- value="org.apache.commons.logging.simple.DecoratedSimpleLog"/>
- <sysproperty key="org.apache.commons.logging.simplelog.defaultlog"
- value="debug"/>
- <arg value="org.apache.commons.logging.simple.CustomConfigTestCase"/>
- <classpath refid="test.classpath"/>
- </java>
-
- <echo message="Custom Configuration With DateTime (SimpleLog Selected)"/>
- <java classname="${test.runner}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="org.apache.commons.logging.Log"
- value="org.apache.commons.logging.simple.DecoratedSimpleLog"/>
- <sysproperty key="org.apache.commons.logging.simplelog.defaultlog"
- value="debug"/>
- <sysproperty key="org.apache.commons.logging.simplelog.dateTimeFormat"
- value="dd.mm.yyyy"/>
- <sysproperty key="org.apache.commons.logging.simplelog.showdatetime"
- value="true"/>
- <arg value="org.apache.commons.logging.simple.DateTimeCustomConfigTestCase"/>
- <classpath refid="test.classpath"/>
- </java>
-
- <echo message="Basic Operations"/>
- <java classname="${test.runner}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="org.apache.commons.logging.Log"
- value="org.apache.commons.logging.impl.SimpleLog"/>
- <arg value="org.apache.commons.logging.BasicOperationsTest"/>
- <classpath refid="test.classpath"/>
- </java>
-
- </target>
-
-
- <target name="test.avalon" depends="compile.tests" if="avalon-framework.present"
- description="Run unit tests specific to Avalon (Framework) logging">
+ <!--
+ - Target to run all unit tests.
+ -
+ - The batchtest task auto-detects what tests are available without
+ - any need to define TestSuite objects in the code to compose
+ - sets of tests to be run.
+ -
+ - Details of the unit test results for each TestCase will appear in
+ - a file in directory ${build.home}/test-reports, together with any
+ - output to stdout or stderr generated by the test code.
+ -
+ - If you're having problems running this target due to the use of
+ - the "junit" task below, see the comments at the head of this file.
+ -
+ - Individual tests (or subsets of tests) can be run by doing
+ - ant -Dtestmatch=**/FooTestCase testall
+ -->
- <echo message="Avalon Tests"/>
- <java classname="${test.runner}" fork="yes" failonerror="${test.failonerror}">
- <arg value="org.apache.commons.logging.avalon.AvalonLoggerTest"/>
+ <target name="test" depends="log4j12-test-warning, compile.tests"
+ description="Run all unit tests">
+ <echo message="Test output can be found in directory ${build.home}/test-reports."/>
+ <delete dir="${build.home}/test-reports"/>
+ <mkdir dir="${build.home}/test-reports"/>
+
+ <echo message="executing tests [${testmatch}.java]"/>
+ <!--
+ - Note that the fork/forkmode settings define default behaviour for tests.
+ - The <test> and <batchtest> tags can override these settings if needed.
+ - The default settings cause a single VM to be created in which all of
+ - the tests are then run.
+ -->
+ <junit printsummary="off" showoutput="no" fork="yes" forkmode="once" failureproperty="test.failure">
+ <!-- plain output to file; brief output to console. -->
+ <formatter type="plain"/>
+ <formatter usefile="false" type="brief"/>
+
+ <!--
+ - Provide a set of properties pointing to the logging libs for
+ - the use of the PathableClassLoader class used by some unit tests.
+ -->
+ <syspropertyset refid="test-lib-props"/>
<classpath refid="test.classpath"/>
- </java>
-
- </target>
+ <!--
+ - Uncomment this to enable logging diagnostics for tests
+ - <jvmarg value="-Dorg.apache.commons.logging.diagnostics.dest=STDERR"/>
+ -->
- <target name="test.log4j12" depends="compile.tests" if="log4j12.jar"
- description="Run unit tests specific to Log4J logging Version 1.2">
-
- <echo message="Default Configuration (Log4J Auto-Recognized)"/>
- <java classname="${test.runner}" fork="yes" failonerror="${test.failonerror}">
- <arg value="org.apache.commons.logging.log4j.DefaultConfigTestCase"/>
- <classpath refid="test.classpath.log4j12"/>
- </java>
-
- <echo message="Default Configuration (Log4J LogFactoryImpl Selected)"/>
- <java classname="${test.runner}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="org.apache.commons.logging.LogFactory"
- value="org.apache.commons.logging.impl.LogFactoryImpl"/>
- <arg value="org.apache.commons.logging.log4j.DefaultConfigTestCase"/>
- <classpath refid="test.classpath.log4j12"/>
- </java>
-
- <echo message="Default Configuration (Log4J Log4JLogger Selected)"/>
- <java classname="${test.runner}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="org.apache.commons.logging.Log"
- value="org.apache.commons.logging.impl.Log4JLogger"/>
- <arg value="org.apache.commons.logging.log4j.DefaultConfigTestCase"/>
- <classpath refid="test.classpath.log4j12"/>
- </java>
-
- <echo message="Custom Configuration (Log4J Auto-Recognized)"/>
- <java classname="${test.runner}" fork="yes" failonerror="${test.failonerror}">
- <arg value="org.apache.commons.logging.log4j.CustomConfigTestCase"/>
- <classpath refid="test.classpath.log4j12"/>
- </java>
-
- <echo message="Custom Configuration (Log4J LogFactoryImpl Selected)"/>
- <java classname="${test.runner}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="org.apache.commons.logging.LogFactory"
- value="org.apache.commons.logging.impl.LogFactoryImpl"/>
- <arg value="org.apache.commons.logging.log4j.CustomConfigTestCase"/>
- <classpath refid="test.classpath.log4j12"/>
- </java>
-
- <echo message="Custom Configuration (Log4J Log4JLogger Selected)"/>
- <java classname="${test.runner}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="org.apache.commons.logging.Log"
- value="org.apache.commons.logging.impl.Log4JLogger"/>
- <arg value="org.apache.commons.logging.log4j.CustomConfigTestCase"/>
- <classpath refid="test.classpath.log4j12"/>
- </java>
-
- <echo message="Basic Operations"/>
- <java classname="${test.runner}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="org.apache.commons.logging.Log"
- value="org.apache.commons.logging.impl.Log4JLogger"/>
- <arg value="org.apache.commons.logging.BasicOperationsTest"/>
- <classpath refid="test.classpath.log4j12"/>
- </java>
-
- <echo message="Hierarchy Configuration API (Log4J Auto-Recognized)"/>
- <java classname="${test.wrapper}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="wrapper.hierarchy" value="API"/>
- <sysproperty key="wrapper.junit" value="${junit.jar}"/>
- <sysproperty key="wrapper.log4j" value="${log4j.jar}"/>
- <sysproperty key="wrapper.target" value="${build.home}"/>
- <sysproperty key="wrapper.testcase"
- value="org.apache.commons.logging.log4j.CustomConfigTestCase"/>
- <classpath refid="test.classpath.wrap"/>
- </java>
-
- <echo message="Hierarchy Configuration API (Log4J LogFactoryImpl Selected)"/>
- <java classname="${test.wrapper}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="wrapper.hierarchy" value="API"/>
- <sysproperty key="wrapper.junit" value="${junit.jar}"/>
- <sysproperty key="wrapper.log4j" value="${log4j.jar}"/>
- <sysproperty key="wrapper.target" value="${build.home}"/>
- <sysproperty key="wrapper.testcase"
- value="org.apache.commons.logging.log4j.CustomConfigTestCase"/>
- <sysproperty key="org.apache.commons.logging.LogFactory"
- value="org.apache.commons.logging.impl.LogFactoryImpl"/>
- <classpath refid="test.classpath.wrap"/>
- </java>
-
- <echo message="Hierarchy Configuration API (Log4J Log4JLogger Selected)"/>
- <java classname="${test.wrapper}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="wrapper.hierarchy" value="API"/>
- <sysproperty key="wrapper.junit" value="${junit.jar}"/>
- <sysproperty key="wrapper.log4j" value="${log4j.jar}"/>
- <sysproperty key="wrapper.target" value="${build.home}"/>
- <sysproperty key="wrapper.testcase"
- value="org.apache.commons.logging.log4j.CustomConfigTestCase"/>
- <sysproperty key="org.apache.commons.logging.Log"
- value="org.apache.commons.logging.impl.Log4JLogger"/>
- <classpath refid="test.classpath.wrap"/>
- </java>
-
- <echo message="Hierarchy Configuration FULL (Log4J Auto-Recognized)"/>
- <java classname="${test.wrapper}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="wrapper.hierarchy" value="FULL"/>
- <sysproperty key="wrapper.junit" value="${junit.jar}"/>
- <sysproperty key="wrapper.log4j" value="${log4j12.jar}"/>
- <sysproperty key="wrapper.target" value="${build.home}"/>
- <sysproperty key="wrapper.testcase"
- value="org.apache.commons.logging.log4j.CustomConfigTestCase"/>
- <classpath refid="test.classpath.wrap"/>
- </java>
-
- <echo message="Hierarchy Configuration FULL (Log4J LogFactoryImpl Selected)"/>
- <java classname="${test.wrapper}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="wrapper.hierarchy" value="FULL"/>
- <sysproperty key="wrapper.junit" value="${junit.jar}"/>
- <sysproperty key="wrapper.log4j" value="${log4j12.jar}"/>
- <sysproperty key="wrapper.target" value="${build.home}"/>
- <sysproperty key="wrapper.testcase"
- value="org.apache.commons.logging.log4j.CustomConfigTestCase"/>
- <sysproperty key="org.apache.commons.logging.LogFactory"
- value="org.apache.commons.logging.impl.LogFactoryImpl"/>
- <classpath refid="test.classpath.wrap"/>
- </java>
-
- <echo message="Hierarchy Configuration FULL (Log4J Log4JLogger Selected)"/>
- <java classname="${test.wrapper}" fork="yes" failonerror="${test.failonerror}">
- <sysproperty key="wrapper.hierarchy" value="FULL"/>
- <sysproperty key="wrapper.junit" value="${junit.jar}"/>
- <sysproperty key="wrapper.log4j" value="${log4j12.jar}"/>
- <sysproperty key="wrapper.target" value="${build.home}"/>
- <sysproperty key="wrapper.testcase"
- value="org.apache.commons.logging.log4j.CustomConfigTestCase"/>
- <sysproperty key="org.apache.commons.logging.Log"
- value="org.apache.commons.logging.impl.Log4JLogger"/>
- <classpath refid="test.classpath.wrap"/>
- </java>
-
+ <!--
+ - Auto-detect the tests to run. Checking the ${build.home}/tests
+ - directory for .class files rather than the src/test directory
+ - for .java files means that when we run the tests on platforms
+ - where some components (eg jdk14 logging) is not available,
+ - just ensuring the tests are skipped from the compile will
+ - also cause them to be skipped from the testing.
+ -
+ - This does introduce the danger that if tests accidentally
+ - fail to compile then we won't notice it here. However that
+ - should have been reported earlier anyway.
+ -->
+ <batchtest todir="${build.home}/test-reports">
+ <fileset dir="${build.home}/tests">
+ <include name="${testmatch}.class"/>
+ </fileset>
+ </batchtest>
+ </junit>
+
+ <fail if="test.failure">
+ One or more unit tests failed.
+ </fail>
</target>
-
</project>
1.2 +288 -199 apache/commons-logging/project.xml
(In the diff below, changes in quantity of whitespace are not shown.)
Index: project.xml
===================================================================
RCS file: /cvsroot/jboss/apache/commons-logging/project.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- project.xml 17 Apr 2006 21:00:04 -0000 1.1
+++ project.xml 9 Feb 2007 06:57:16 -0000 1.2
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
- Copyright 2001-2004 The Apache Software Foundation.
+ Copyright 2001-2005 The Apache Software Foundation.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -20,8 +20,9 @@
<pomVersion>3</pomVersion>
<name>Logging</name>
- <id>commons-logging</id>
- <currentVersion>1.0.4-dev</currentVersion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <currentVersion>1.1</currentVersion>
<inceptionYear>2001</inceptionYear>
<shortDescription>Commons Logging</shortDescription>
<description>
@@ -49,28 +50,56 @@
<gumpRepositoryId>jakarta</gumpRepositoryId>
<issueTrackingUrl>http://issues.apache.org/bugzilla/</issueTrackingUrl>
- <siteAddress>jakarta.apache.org</siteAddress>
+ <siteAddress>cvs.apache.org</siteAddress>
<siteDirectory>/www/jakarta.apache.org/commons/${pom.artifactId.substring(8)}/</siteDirectory>
<distributionDirectory>/www/jakarta.apache.org/builds/jakarta-commons/${pom.artifactId.substring(8)}/</distributionDirectory>
<repository>
<!--<connection>scm:cvs:${logging.cvs}:jakarta-commons/logging/</connection>-->
- <connection>scm:cvs:pserver:anoncvs at cvs.apache.org:/home/cvspublic:jakarta-commons/${pom.artifactId.substring(8)}</connection>
- <url>http://cvs.apache.org/viewcvs/jakarta-commons/${pom.artifactId.substring(8)}/</url>
+ <connection>scm:svn:http://svn.apache.org/repos/asf/jakarta/commons/proper/${pom.artifactId.substring(8)}/trunk</connection>
+ <url>http://svn.apache.org/repos/asf/jakarta/commons/proper/${pom.artifactId.substring(8)}/trunk</url>
</repository>
+ <versions>
+ <version>
+ <id>1.0.1</id>
+ <name>1.0.1</name>
+ <tag>LOGGING_1_0_1</tag>
+ </version>
+ <version>
+ <id>1.0.2</id>
+ <name>1.0.2</name>
+ <tag>LOGGING_1_0_2</tag>
+ </version>
+ <version>
+ <id>1.0.3</id>
+ <name>1.0.3</name>
+ <tag>LOGGING_1_0_3</tag>
+ </version>
+ <version>
+ <id>1.0.4</id>
+ <name>1.0.4</name>
+ <tag>LOGGING_1_0_4</tag>
+ </version>
+ <version>
+ <id>1.1</id>
+ <name>1.1</name>
+ <tag>LOGGING_1_1_0</tag>
+ </version>
+ </versions>
+
<mailingLists>
<mailingList>
<name>Commons Dev List</name>
<subscribe>commons-dev-subscribe at jakarta.apache.org</subscribe>
<unsubscribe>commons-dev-unsubscribe at jakarta.apache.org</unsubscribe>
- <archive>http://nagoya.apache.org/eyebrowse/SummarizeList?listName=commons-dev@jakarta.apache.org</archive>
+ <archive>http://mail-archives.apache.org/mod_mbox/jakarta-commons-dev/</archive>
</mailingList>
<mailingList>
<name>Commons User List</name>
<subscribe>commons-user-subscribe at jakarta.apache.org</subscribe>
<unsubscribe>commons-user-unsubscribe at jakarta.apache.org</unsubscribe>
- <archive>http://nagoya.apache.org/eyebrowse/SummarizeList?listName=commons-user@jakarta.apache.org</archive>
+ <archive>http://mail-archives.apache.org/mod_mbox/jakarta-commons-user/</archive>
</mailingList>
</mailingLists>
@@ -133,30 +162,91 @@
<role>Java Developer</role>
</roles>
</developer>
+ <developer>
+ <name>Simon Kitching</name>
+ <id>skitching</id>
+ <email>skitching at apache.org</email>
+ <organization>Apache Software Foundation</organization>
+ </developer>
+ <developer>
+ <name>Dennis Lundberg</name>
+ <id>dennisl</id>
+ <email>dennisl at apache.org</email>
+ <organization>Apache Software Foundation</organization>
+ </developer>
+ <developer>
+ <name>Brian Stansberry</name>
+ <id>bstansberry</id>
+ </developer>
</developers>
<dependencies>
<dependency>
- <id>log4j</id>
- <version>1.2.6</version>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.12</version>
+ <url>http://logging.apache.org/log4j/docs/index.html</url>
+ <properties>
+ <comment>
+Runtime Optional.
+1.2.12 required for compilation but 1.2.6 onwards supported at runtime.</comment>
+ </properties>
</dependency>
<dependency>
- <id>logkit</id>
+ <groupId>logkit</groupId>
+ <artifactId>logkit</artifactId>
<version>1.0.1</version>
+ <url>http://avalon.apache.org/logkit/</url>
+ <properties>
+ <comment>Runtime Optional</comment>
+ </properties>
</dependency>
<dependency>
- <id>junit</id>
- <version>3.7</version>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <url>http://www.junit.org/index.htm</url>
+ <properties>
+ <comment>Used for testing only.</comment>
+ <scope>test</scope>
+ </properties>
</dependency>
<dependency>
- <id>avalon-framework</id>
+ <groupId>avalon-framework</groupId>
+ <artifactId>avalon-framework</artifactId>
<version>4.1.3</version>
+ <url>http://avalon.apache.org/</url>
+ <properties>
+ <comment>Runtime Optional</comment>
+ </properties>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>2.3</version>
+ <url>http://java.sun.com/products/servlet/</url>
+ <properties>
+ <comment>Used only by servlet filter. Not used by core logging implementation.</comment>
+ </properties>
</dependency>
+ <dependency>
+ <groupId>maven</groupId>
+ <artifactId>maven-xdoc-plugin</artifactId>
+ <version>1.9.2</version>
+ <url>http://maven.apache.org/maven-1.x/reference/plugins/xdoc/</url>
+ <type>plugin</type>
+ <properties>
+ <comment>
+ <strong>Site Only</strong> - v1.9.2 (minimum)
+ </comment>
+ </properties>
+ </dependency>
</dependencies>
<build>
<nagEmailAddress>commons-dev at jakarta.apache.org</nagEmailAddress>
@@ -177,13 +267,9 @@
before the tests are run.
There is no easy way to run these under maven at the moment.
-->
- <directory>${pom.build.unitTestSourceDirectory}</directory>
<includes>
<include>**/AvalonLoggerTest.java</include>
</includes>
- <resources>
- <resource>**/*.properties</resource>
- </resources>
</unitTest>
</build>
@@ -193,7 +279,10 @@
<report>maven-junit-report-plugin</report>
<report>maven-jxr-plugin</report>
<report>maven-license-plugin</report>
- <report>maven-tasklist-plugin</report>
+ <!-- Slow but useful when checking releases
+ <report>maven-linkcheck-plugin</report>
+ -->
+
</reports>
</project>
1.2 +58 -36 apache/commons-logging/build.properties.sample
(In the diff below, changes in quantity of whitespace are not shown.)
Index: build.properties.sample
===================================================================
RCS file: /cvsroot/jboss/apache/commons-logging/build.properties.sample,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- build.properties.sample 17 Apr 2006 21:00:04 -0000 1.1
+++ build.properties.sample 9 Feb 2007 06:57:16 -0000 1.2
@@ -1,4 +1,4 @@
-# Copyright 2001-2004 The Apache Software Foundation.
+# Copyright 2001-2004, 2006 The Apache Software Foundation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -12,25 +12,47 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-# log4j.jar - log4j classes (see http://jakarta.apache.org/log4j)
-log4j.jar=/java/log4j/log4j.jar
+######################################################################
+#
+# TO USE:
+#
+# Copy this file to build.properties and either
+#
+# a) Use 'ant getlibs' to populate the default directory
+# with dependencies
+# or b) Change the property values to appropriate values
+#
+########################################################################
-# Used for testing against older 1.2.x Log4J versions
-log4j12.jar=/java/log4j/log4j-1.2.7.jar
+# Apache Log4j 1.2.x series
+log4j12.jar=lib/log4j-1.2.12.jar
+
+# Apache Log4j 1.3.x series
+# Note: Log4j 1.3 support not available in the 1.1 release
+#log4j13.jar=lib/log4j-1.3.0.jar
# logkit.jar - Avalon LogKit classes (see http://jakarta.apache.org/avalon)
-logkit.jar=/java/logkit/logkit.jar
+logkit.jar=lib/logkit-1.0.1.jar
# Avalon framework - used for wrapper for avalon framework logger
-avalon-framework.jar=../../Avalon-4.1.4/avalon-framework-4.1.4.jar
+avalon-framework.jar=lib/avalon-framework-4.1.3.jar
+
+# ServletApi - used to build ServletContextCleaner class
+servletapi.jar=lib/servletapi-2.3.jar
#
# if you want to run the test cases, junit needs to be in the classpath.
# the build.xml uses a default value so you might not need to set this property.
+# Note that version junit 3.8 is required and 3.8.1 recommended.
#
-# junit.jar=../../jakarta-velocity/build/lib/junit-3.7.jar
+junit.jar=lib/junit-3.8.1.jar
# Maven properties (for web site build)
# Those committers using agents may like to use
#maven.username=rdonkin
#logging.cvs=lserver:rdonkin at cvs.apache.org:/home/cvs
+
+
+# The path to a 1.4 JSDK javac
+# Optional - used when building with a 1.2 JVM for releases
+# executable.javac1.4=/opt/java/jdks/j2sdk1.4.2_10/bin/javac
1.2 +202 -202 apache/commons-logging/LICENSE.txt
(In the diff below, changes in quantity of whitespace are not shown.)
Index: LICENSE.txt
===================================================================
RCS file: /cvsroot/jboss/apache/commons-logging/LICENSE.txt,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
1.2 +120 -120 apache/commons-logging/PROPOSAL.html
(In the diff below, changes in quantity of whitespace are not shown.)
Index: PROPOSAL.html
===================================================================
RCS file: /cvsroot/jboss/apache/commons-logging/PROPOSAL.html,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
1.2 +3 -3 apache/commons-logging/NOTICE.txt
(In the diff below, changes in quantity of whitespace are not shown.)
Index: NOTICE.txt
===================================================================
RCS file: /cvsroot/jboss/apache/commons-logging/NOTICE.txt,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
1.2 +42 -42 apache/commons-logging/checkstyle.xml
(In the diff below, changes in quantity of whitespace are not shown.)
Index: checkstyle.xml
===================================================================
RCS file: /cvsroot/jboss/apache/commons-logging/checkstyle.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
1.2 +34 -26 apache/commons-logging/project.properties
(In the diff below, changes in quantity of whitespace are not shown.)
Index: project.properties
===================================================================
RCS file: /cvsroot/jboss/apache/commons-logging/project.properties,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- project.properties 17 Apr 2006 21:00:04 -0000 1.1
+++ project.properties 9 Feb 2007 06:57:16 -0000 1.2
@@ -1,4 +1,4 @@
-# Copyright 2001-2004 The Apache Software Foundation.
+# Copyright 2001-2004, 2006 The Apache Software Foundation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -13,14 +13,22 @@
# limitations under the License.
#
+maven.changelog.factory=org.apache.maven.svnlib.SvnChangeLogFactory
# documentation properties
-maven.xdoc.jsl=../commons-build/commons-site.jsl
maven.xdoc.date=left
maven.xdoc.version=${pom.currentVersion}
maven.xdoc.developmentProcessUrl=http://jakarta.apache.org/commons/charter.html
maven.xdoc.poweredby.image=maven-feather.png
+# Jar Manifest Additional Attributes
+maven.jar.manifest.attributes.list=Implementation-Vendor-Id,X-Compile-Source-JDK,X-Compile-Target-JDK
+maven.jar.manifest.attribute.Implementation-Vendor-Id=org.apache
+maven.jar.manifest.attribute.X-Compile-Source-JDK=${maven.compile.source}
+maven.jar.manifest.attribute.X-Compile-Target-JDK=${maven.compile.target}
+
maven.junit.fork=true
-logging.cvs=pserver:anoncvs at cvs.apache.org:/home/cvspublic
+# generate .class files that can be loaded into a version 1.1 JVM.
+maven.compile.target=1.1
+maven.compile.source=1.2
\ No newline at end of file
1.2 +222 -124 apache/commons-logging/RELEASE-NOTES.txt
(In the diff below, changes in quantity of whitespace are not shown.)
Index: RELEASE-NOTES.txt
===================================================================
RCS file: /cvsroot/jboss/apache/commons-logging/RELEASE-NOTES.txt,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- RELEASE-NOTES.txt 17 Apr 2006 21:00:04 -0000 1.1
+++ RELEASE-NOTES.txt 9 Feb 2007 06:57:16 -0000 1.2
@@ -1,6 +1,6 @@
<!--
- Copyright 2001-2004 The Apache Software Foundation.
+ Copyright 2005,2006 The Apache Software Foundation.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -16,109 +16,207 @@
-->
-$Id: RELEASE-NOTES.txt,v 1.1 2006/04/17 21:00:04 starksm Exp $
+$Id: RELEASE-NOTES.txt,v 1.2 2007/02/09 06:57:16 starksm Exp $
Commons Logging Package
- Version 1.0.4
+ Version 1.1.0
Release Notes
-
INTRODUCTION:
============
-This document contains the release notes for this version of the Commons
-Logging package. It is primarily a service release for downstream users.
-The main emphasis maintenance and code cleanup release,
-with some new features including support for both the old 1.2.x series
-of Log4J releases and the new 1.3.x series of releases.
-
-The following paragraphs document changes since the previous release
-(version 1.0.3). The documentation (userguide and javadoc)
-has also been improved.
-
-
-NEW FEATURES:
-============
-
-[ALL FILES] This version of Commons Logging is released under the
- Apache License (Version 2.0). All source files have been
- modified to reflect this.
-
-[maven.xml] Added beginnings of a Maven-based build, primarily for the
- purpose of creating documentation consistent with Mavenized
- commons projects. The official build system for the software
- is still the Ant "build.xml" file.
-
-[AvalonLogger] Added AvalonLogger, which wraps the logger used by the
- Avalon framework. As with other implementations, this
- is compiled only if the appropriate dependencies are
- satisfied.
-
-[Jdk13LumberjackLogger]
- Added Jdk13LumberjackLogger, which wraps the implementation
- of the JSR-47 logging APIs (for JDKs before 1.4) provided
- by the SourceForge "lumberjack" project.
- <http://sourceforge.net/projects/lumberjack/>
-
-[LogFactoryImpl] If an InvocationTargetException is returned during the
- creation of a new Log instance, unwrap the underlying
- cause and pass it in to the LogConfigurationException
- constructor. This will make the actual cause of the
- problem easier to diagnose.
-
-[LogFactoryImpl] If the isAssignableFrom() test fails because there is more
- than one instance of org.apache.commons.logging.Log visible
- in the class loader hierarchy, make the exception message
- that is reported explicitly state this, rather than the
- potentially misleading claim that an implementation class
- does not implement Log.
-
-[Log4JLogger] Changes to allow this logger to support both the existing 1.2.x
- series of releases and also the upcoming 1.3.x series of Log4J
- releases.
-
-[SimpleLog] Added support for setting date-time format.
-
-BUG FIXES:
-=========
-
-[MANIFEST.MF] Remove reference to Log4J from the manifest classpath.
-
-[LogConfigurationException]
- Include root cause in the text of the message, if present.
-
-[LogFactory] Improve usability of error messages reporting
- configuration problems.
-
-[JDK14Logger] Implement Serializable, remove "final" declaration for
- easy subclassing.
-
-[Log4JLogger] Implement Serializable, remove "final" declaration for
- easy subclassing.
-
-[NoOpLogger] Implement Serializable, remove "final" declaration for
- easy subclassing.
-
-[SimpleLog] Make SimpleLog more friendly to the security manager
- in an applet environment, by swallowing any security
- exceptions when looking up system properties that are
- not accessible.
-
+This release of Jakarta Commons Logging (JCL) is a maintenance release, with a
+few new configuration features but no major changes in services provided.
+This release introduces significant changes in the way that discovery of
+logging implementations occurs, and how errors are handled. A number of
+problems that have troubled users in past releases (particularly the
+"Log4JLogger does not implement Log" problem) will hopefully be
+significantly reduced or cured.
+
+This release is 100% compatible with existing code that calls
+commons-logging. There are some incompatibilities with code that extends
+commons-logging, for example to implement custom logging adapters. See
+the compatibility section for details.
+
+All core classes were compiled with a 1.2.x JDK. JCL may work on some
+augmented 1.1 series JREs but it is recommended that those wish to run
+on 1.1 JREs download the source and create a custom implementation by
+stripping out all the complex classloader management code.
+
+For further details, please see the Jakarta Commons Logging website:
+ http://jakarta.apache.org/commons/logging.
+
+For the very latest news, hints, FAQs etc. please see the
+Jakarta Commons Logging wiki site:
+ http://wiki.apache.org/jakarta-commons/Logging
+
+Note that some containers (some versions of Apache Tomcat and JBoss in
+particular) prevent webapps, ejbs, etc from overriding the commons-logging
+implementation provided by the container. This means that bundling this
+updated implementation with a deployed application may not have any effect.
+See the commons-logging site and/or the wiki for more information.
+
+== New Features ==
+
+* Jar files now have release-numbers embedded in the names, for easier management.
+
+* New jar file commons-logging-adapters-xxx.jar is now provided. This can be
+ used to resolve class cast conflicts where parts of commons-logging are
+ deployed via different classloaders. It is not expected to be frequently
+ used; it is only necessary in situations where a container has deployed
+ commons-logging-api.jar and a webapp wants to bind to a third-party
+ logging implementation such as log4j. In this case, the webapp can
+ experience problems if it deploys commons-logging.jar as this causes
+ duplicates of the core commons-logging classes, but commons-logging-adapters
+ can be safely used.
+
+* New internal diagnostics feature. If commons-logging is behaving in an
+ unexpected manner, you can now set system property
+ org.apache.commons.logging.diagnostics.dest
+ to the value STDOUT, STDERR or a filename. As commons-logging initialises
+ itself for each new contextClassLoader it detects, useful information will
+ be output about which logging library is bound to and why.
+
+* JCL now prefers to "make a best attempt" in problem scenarios rather than
+ report an error and fail to initialise. New configurable attributes
+ ALLOW_FLAWED_HIERARCHY, ALLOW_FLAWED_DISCOVERY and ALLOW_FLAWED_CONTEXT are
+ provided to control startup behavior. The default values for these are all
+ true, meaning that commons-logging attempts to recover from bad logging
+ configuration situations by finding *some* logger to use even when it isn't
+ quite the one that might be expected. This will significantly reduce the
+ occurrence of the dreaded LogConfigurationException on application/webapp
+ startup at the cost of slightly more ambiguity about where output will go.
+ In cases where no logging output is generated or wanted (which is the case
+ 99% of the time) this is definitely a more convenient approach. Users who
+ cannot figure out where logging went or why it went to an unexpected
+ destination can enable diagnostics to find out, or set the ALLOW_FLAWED_
+ settings to false to force LogConfigurationException to be thrown as in
+ earlier releases.
+
+* Fix for the problem where memory was not being released under some circumstances
+ when a webapp was undeployed. An internal change fixes some situations where
+ that occurs (by using weak references); this requires no action on the part of
+ users of this library. In addition, a utility class ServletContextCleaner is
+ provided in the jar file which is expected to resolve this problem in all
+ situations; however it is necessary for an application to define this class as
+ a ServletContextListener in the web.xml in order for this to be invoked.
+
+* Prioritised commons-logging.properties files. A file with the name
+ "commons-logging.properties" placed in the classpath can be used to set
+ various JCL configuration options. In previous releases, the first
+ such file found in the classpath was used to configure JCL. Now, each file
+ can have an entry "priority", and the file with the highest priority is used.
+ Where two files have equal priority, the first one in the classpath is used;
+ this maintains backwards compatibility.
+
+* New feature to disable loading of logging classes via the thread context
+ classloader (TCCL), on a per-webapp basis. Simply putting an entry
+ "use_tccl=false" in a commons-logging.properties file will ensure that
+ all classes used for logging are loaded via the same classloader that
+ loads the LogFactory class. This resolves any "class cast" issues with
+ JCL, though at the price of losing some control over logging configuration.
+
+* The log4j logging adapter now supports the TRACE level (added to log4j 1.2.12).
+ Formerly, any calls to log.trace were output at the log4j debug level.
+
+* Better behaviour for systems with null classloaders (generally embedded systems).
+
+* New zip file containing source and javadocs for those using modern IDEs.
+
+== Incompatibilities ==
+
+There are no changes for code that calls LogFactory or Log methods. This means
+that any application which is a simple "user" of the JCL library can safely
+upgrade to this version.
+
+All changes to JCL configuration are backwards compatible.
+
+Classes Log4JCategoryLog and Log4jFactory have been removed; these were both
+deprecated in the 1.0.3 release (April 2003).
+
+For code that extends the JCL LogFactoryImpl class, the isXXXAvailable methods
+in org.apache.commons.logging.impl.LogFactoryImpl are no longer called during
+discovery by that class. Therefore classes which subclass LogFactoryImpl and
+override those methods will not have their methods called. This is a pretty
+unusual thing to do, so it isn't expected that any apps will actually be
+affected by this.
+
+AvalonLog is no longer serializable. The semantics were always deeply
+unsatisfactory. It is cleaner and clearer to admit the truth.
+
+== Deprecation Note ==
+
+Previous releases of commons-logging-api.jar contained the Jdk14Logger class;
+this is now deprecated. It will be removed from the API jar in some future
+release.
+
+== Dependencies ==
+
+Commons-logging has no mandatory dependencies.
+
+Java 1.2 and later are supported. It may be possible to use this release with
+java 1.1 but this has not been tested; the unit tests certainly don't run on
+that version.
+
+== Distributed Jar Files ==
+
+File commons-logging-nn.jar is the one most people will want. It provides the
+base implementation and adapters to a number of popular logging libraries.
+
+File commons-logging-adapters-nn.jar includes only the adapters to various
+concrete logging libraries. When commons-logging-nn.jar or
+commons-logging-api-nn.jar is deployed in a container classpath, then this
+adapters-only jar file should be deployed in the webapp, not the complete JCL
+distribution. This ensures that the core Log/LogFactory classes are only
+deployed via one classloader, thus avoiding "Log4JLogger does not implement Log"
+and similar problems.
+
+File commons-logging-api-nn.jar provides minimal adapters to external logging
+libraries, just the internally implemented SimpleLog and NoOpLog classes
+plus Jdk14Logger (which is currently required by Apache Tomcat).
+
+This jar file may be used as a declared dependency for projects that care about
+"transitive dependencies" and can't handle jar files such as commons-logging-nn.jar
+which have "optional" dependencies depending on how they are used. In addition,
+this jar file can be useful for "rebundlers" of JCL who recompile the source-code
+but who may not be able to recompile against the full set of supported adapters;
+such projects should be able to at least recreate an equivalent of this jar file.
+
+== General Notes ==
+
+The jakarta commons project has migrated to the Subversion version control system
+(previously, CVS was used). There should be no effect on users of the JCL
+library, but obviously the process of examining the latest source code, and of
+creating patches for JCL has now changed. Please see the jakarta commons
+website for details (http://jakarta.apache.org/commons).
+
+== Bugs Fixed ==
+
+* 31597: problem where log4j adapter was in parent classloader but log4j.jar was
+ in child classloader led to failure to initialise logging has been
+ fixed.
+
+* 31710, 10825: commons-logging now works better in systems where getClassLoader
+ returns null. This essentially means embedded systems.
+
+* 31818: workaround for bug in java1.2 compiler; code now compiles under 1.2
+
+* Log4JCategoryLog has been removed from the main distribution jar; it has been
+ deprecated for a long while. Replacement class Log4JLogger should be a completely
+ transparent replacement for all commons-logging users.
+
+* package.html files are no longer present in the jar files, removing nuisance
+ javadoc warnings when building javadoc for apps using jcl.
+
+* In several cases, LogConfigurationException objects were being wrapped in
+ other LogConfigurationException objects. These have (hopefully) all been
+ fixed.
DEPRECATIONS:
============
- (These are carried forward from Version 1.0.3)
+ (These are carried forward from Version 1.0.4)
[LogSource] Previously deprecated, replaced by LogFactory.
-[Log4jFactory] A proxy instance of this class was transparently created
- when Log4J logging was selected, yet it serves no useful
- purpose. The class is now deprecated, and the proxy
- instance is no longer created.
-
-[Log4JCategoryLog] This class has been replaced by Log4JLogger, which
- corresponds to the availability of the new Logger class
- in Log4J 1.2 and later.
-
1.1 date: 2007/02/09 06:57:16; author: starksm; state: Exp;apache/commons-logging/doap_logging.rdf
Index: doap_logging.rdf
===================================================================
<?xml version="1.0"?>
<rdf:RDF xmlns="http://usefulinc.com/ns/doap#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:asfext="http://projects.apache.org/ns/asfext#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:doap="http://usefulinc.com/ns/doap#" xml:lang="en">
<Project rdf:about="http://jakarta.apache.org/commons/logging/">
<name>Apache Jakarta Commons Logging</name>
<homepage rdf:resource="http://jakarta.apache.org/commons/logging/"/>
<programming-language>Java</programming-language>
<category rdf:resource="http://projects.apache.org/category/library"/>
<license rdf:resource="http://usefulinc.com/doap/licenses/asl20"/>
<bug-database rdf:resource="http://issues.apache.org/bugzilla/buglist.cgi?product=Commons&component=logging"/>
<download-page rdf:resource="http://jakarta.apache.org/site/downloads/downloads_commons-logging.cgi"/>
<asfext:pmc rdf:resource="http://jakarta.apache.org/"/>
<shortdesc xml:lang="en">Commons Logging</shortdesc>
<description xml:lang="en">
Commons Logging is a thin adapter allowing configurable bridging to other,
well known logging systems.
</description>
<repository>
<SVNRepository>
<browse rdf:resource="http://svn.apache.org/repos/asf/jakarta/commons/proper/logging/trunk"/>
<location rdf:resource="http://svn.apache.org/repos/asf/jakarta/commons/proper/logging"/>
</SVNRepository>
</repository>
<release>
<revision>
<name>commons-logging</name>
<created>2004-06-15</created>
<version>1.0.4</version>
</revision>
</release>
<mailing-list rdf:resource="http://jakarta.apache.org/site/mail2.html#Commons"/>
</Project>
</rdf:RDF>
1.1 date: 2007/02/09 06:57:16; author: starksm; state: Exp;apache/commons-logging/.project
Index: .project
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>commons-logging</name>
<comment></comment>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
1.1 date: 2007/02/09 06:57:16; author: starksm; state: Exp;apache/commons-logging/.classpath
Index: .classpath
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry excluding="org/apache/commons/logging/impl/AvalonLogger.java|org/apache/commons/logging/impl/LogKitLogger.java|org/apache/commons/logging/impl/ServletContextCleaner.java" kind="src" path="src/java"/>
<classpathentry kind="src" output="output/eclipse-test-classes" path="src/tests"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="var" path="JBOSS_REPO/apache-log4j/1.2.14/lib/log4j.jar" sourcepath="/JBOSS_REPO/apache-log4j/1.2.14/lib/log4j-src.zip"/>
<classpathentry kind="output" path="output/eclipse-classes"/>
</classpath>
More information about the jboss-cvs-commits
mailing list