| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You 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. |
| |
| --> |
| |
| <!-- This file is an ANT build script. ANT is a Java based build tool. --> |
| <!-- It is available from http://ant.apache.org --> |
| |
| |
| <project name="log4j" default="usage" basedir="." > |
| |
| |
| <!-- The build.properties file defines the path to local jar files --> |
| <property file="build.properties"/> |
| |
| <!-- if a Maven build has been attempted, |
| the Maven repository can provide all the dependencies. --> |
| <property name="m2_repo" location="${user.home}/.m2/repository"/> |
| <property name="javamail.jar" location="${m2_repo}/javax/mail/mail/1.4/mail-1.4.jar"/> |
| <property name="geronimo-jms.jar" |
| value="${m2_repo}/org/apache/geronimo/specs/geronimo-jms_1.1_spec/1.0/geronimo-jms_1.1_spec-1.0.jar"/> |
| <available property="jms.jar" value="${geronimo-jms.jar}" file="${geronimo-jms.jar}"/> |
| <property name="jms.jar" location="${m2_repo}/javax/jms/jms/1.1/jms-1.1.jar"/> |
| <property name="jmx.jar" location="${m2_repo}/com/sun/jmx/jmxri/1.2.1/jmxri-1.2.1.jar"/> |
| |
| |
| <!-- Read the system environment variables and stores them in properties, --> |
| <!-- prefixed with "env". --> |
| <property environment="env"/> |
| |
| <property name="version" value="1.2.15"/> |
| |
| <!-- The base directory relative to which most targets are built --> |
| <property name="base" value="."/> |
| |
| |
| <property name="deprecation" value="on"/> |
| |
| <!-- The directory where java source files are stored. --> |
| <property name="java.source.dir" value="src/main/java/"/> |
| |
| <!-- The directory where resource files are stored. --> |
| <property name="resource.source.dir" value="src/main/resources/"/> |
| |
| <!-- The directory where javadoc files are stored. --> |
| <property name="javadoc.source.dir" value="src/main/javadoc/"/> |
| |
| <!-- The directory where the package-list file is found, ./ or --> |
| <!-- build/ --> |
| <property name="packaging.dir" value="build"/> |
| |
| <!-- distribution directory --> |
| <property name="dist.dir" value="dist"/> |
| |
| <!-- Destination for compiled files --> |
| <property name="javac.dest" value="${dist.dir}/classes"/> |
| |
| <!-- Destination for generated jar files --> |
| <property name="jar.dest" value="${dist.dir}/lib"/> |
| |
| <!-- The jar file that the jar task will generate --> |
| <property name="jar.filename" value="log4j-${version}.jar"/> |
| <property name="sources-jar.filename" value="log4j-${version}-sources.jar"/> |
| |
| <!-- Destination for documentation files --> |
| <property name="docs.dest" value="./docs"/> |
| <!-- Source directory for xml docs --> |
| <property name="xdocs.src" value="./src/xdocs"/> |
| |
| |
| <!-- Destination for javadoc generated files --> |
| <property name="javadoc.dest" value="docs/api"/> |
| |
| <!-- Icons source directory. --> |
| <property name="icons.source" value="icons"/> |
| |
| <!-- The stem where most log4j source code is located. --> |
| <property name="stem" value="org/apache/log4j"/> |
| |
| <!-- Some targets needs a more precise stem. --> |
| <property name="BSTEM" value="${java.source.dir}/${stem}"/> |
| |
| <!-- Directory where release images go. --> |
| <property name="dist.images" value="${dist.dir}/images"/> |
| |
| <!-- Directory for temporary files. --> |
| <property name="dist.tmp" value="${dist.dir}/tmp"/> |
| |
| <property name="javac.source" value="1.2"/> |
| <property name="javac.target" value="1.1"/> |
| |
| <!-- destination for generated documentation on Apache web host --> |
| <property name="apache.javadoc_dest" value="/www/logging.apache.org/log4j/docs"/> |
| <!-- Apache web host --> |
| <property name="apache.host" value="people.apache.org"/> |
| |
| <!-- destination for Maven generated documentation --> |
| <property name="svnrepo.url" value="https://svn.apache.org/repos/asf"/> |
| <property name="svnsite.url" value="${svnrepo.url}/logging/site/trunk/docs/log4j/1.2"/> |
| <available property="svn-available" file="target/site-deploy/.svn"/> |
| |
| |
| |
| <!-- Construct compile classpath --> |
| <path id="compile.classpath"> |
| <pathelement location="${build.home}/classes"/> |
| <pathelement location="${javamail.jar}"/> |
| <pathelement location="${activation.jar}"/> |
| <pathelement location="${jaxp.jaxp.jar}"/> |
| <pathelement location="${jms.jar}"/> |
| <pathelement location="${jmx.jar}"/> |
| <pathelement location="${jndi.jar}"/> |
| <pathelement location="${javaee-api.jar}"/> |
| </path> |
| |
| |
| <!-- ================================================================= --> |
| <!-- Default target --> |
| <!-- ================================================================= --> |
| |
| <target name="usage"> |
| <echo> |
| |
| These are the targets supported by this ANT build scpript: |
| |
| build - compile all project files, if a certain library is missing, |
| then the compilation of its dependents are skipped. |
| |
| javadoc - build project javadoc files |
| |
| jar - build log4j-core and log4j jar files |
| |
| dist - will create a complete distribution in dist/ |
| Setting the env variable NO_JAVADOC will build the distribution |
| without running the javadoc target. |
| |
| release - will create a complete distribution in dist/ |
| using stricter settings for public distribution. |
| </echo> |
| </target> |
| |
| <target name="jaxpCheck"> |
| <available classname="javax.xml.parsers.DocumentBuilderFactory" |
| property="jaxp-present"/> |
| </target> |
| |
| <target name="jaxp" depends="jaxpCheck" if="jaxp-present"> |
| <echo message="JAXP present."/> |
| </target> |
| |
| |
| <target name="jmxCheck"> |
| <condition property="jmx-present" value="true"> |
| <and> |
| <available classname="javax.management.MBeanInfo" |
| classpath="${jmx.jar}"/> |
| <available classname="com.sun.jdmk.comm.HtmlAdaptorServer"> |
| <classpath> |
| <pathelement location="${jmx.jar}"/> |
| <pathelement location="${javaee-api.jar}"/> |
| </classpath> |
| </available> |
| </and> |
| </condition> |
| </target> |
| <target name="jmx" depends="jmxCheck" if="jmx-present"> |
| <echo message="JMX is present."/> |
| </target> |
| |
| |
| <target name="jmsCheck"> |
| <available classname="javax.jms.Message" property="jms-present"> |
| <classpath> |
| <pathelement location="${jms.jar}"/> |
| <pathelement location="${javaee-api.jar}"/> |
| </classpath> |
| </available> |
| </target> |
| <target name="jms" depends="jmsCheck" if="jms-present"> |
| <echo message="JMS is present."/> |
| </target> |
| |
| <target name="jndiCheck"> |
| <available classname="javax.naming.Context" property="jndi-present"/> |
| </target> |
| <target name="jndi" depends="jndiCheck" if="jndi-present"> |
| <echo message="JNDI is present."/> |
| </target> |
| |
| <target name="javamailCheck"> |
| <available classname="javax.mail.MessageAware" property="javamail-present"> |
| <classpath> |
| <pathelement location="${javamail.jar}"/> |
| <pathelement location="${javaee-api.jar}"/> |
| </classpath> |
| </available> |
| </target> |
| <target name="javamail" depends="javamailCheck" if="javamail-present"> |
| <echo message="JAVAMAIL is present."/> |
| </target> |
| |
| <!-- ================================================================= --> |
| <!-- Initialize variables --> |
| <!-- NOTE: all directories are relative to jakarta-log4j/ --> |
| <!-- ================================================================= --> |
| <target name="init"> |
| <tstamp /> |
| <property name="javac.includeAntRuntime" value="true"/> |
| <property name="javac.includeJavaRuntime" value="false"/> |
| <property name="javac.fork" value="false"/> |
| </target> |
| |
| <target name="build" depends="init, build.core, build.examples, build.xml, |
| build.javamail, build.jms, build.jmx"/> |
| |
| <target name="build.core" depends="init"> |
| <mkdir dir="${javac.dest}" /> |
| <javac srcdir="${java.source.dir}" |
| destdir="${javac.dest}" |
| includes="${stem}/**/*.java, |
| ${stem}/xml/XMLLayout.java" |
| excludes="misc/*, **/UnitTest*.java, |
| **/StressCategory.java, |
| **/doc-files/*, |
| ${stem}/xml/**, |
| ${stem}/test/serialization/**, |
| ${stem}/net/SMTPAppender.java, |
| ${stem}/net/JMS*.java, |
| ${stem}/jmx/*.java, |
| ${stem}/or/jms/*.java" |
| target="${javac.target}" |
| source="${javac.source}" |
| includeAntRuntime="${javac.includeAntRuntime}" |
| includeJavaRuntime="${javac.includeJavaRuntime}" |
| fork="${javac.fork}" |
| deprecation="${deprecation}" |
| debug="on"> |
| <classpath refid="compile.classpath"/> |
| </javac> |
| |
| <copy todir="${javac.dest}"> |
| <fileset dir="${resource.source.dir}" includes="${stem}/lf5/**/*.properties"/> |
| <fileset dir="${resource.source.dir}" includes="${stem}/lf5/viewer/images/*"/> |
| </copy> |
| |
| </target> |
| |
| <target name="build.examples" depends="build.core"> |
| <mkdir dir="${javac.dest}" /> |
| <javac srcdir="${basedir}" |
| destdir="${javac.dest}" |
| includes="examples/**/*.java" |
| excludes="misc/*" |
| target="${javac.target}" |
| source="${javac.source}" |
| includeAntRuntime="${javac.includeAntRuntime}" |
| includeJavaRuntime="${javac.includeJavaRuntime}" |
| fork="${javac.fork}" |
| deprecation="${deprecation}" |
| debug="on"> |
| <classpath> |
| <pathelement path="${classpath}"/> |
| <fileset file="${jaxp.jaxp.jar}"/> |
| </classpath> |
| </javac> |
| <rmic base="${javac.dest}" classname="examples.NumberCruncherServer"/> |
| |
| <copy todir="${javac.dest}"> |
| <fileset dir="." includes="examples/lf5/**/*.properties"/> |
| <fileset dir="." includes="examples/lf5/**/*.xml"/> |
| </copy> |
| |
| </target> |
| |
| <target name="build.xml" depends="init, jaxp" if="jaxp-present"> |
| <javac srcdir="${java.source.dir}" |
| destdir="${javac.dest}" |
| includes="${stem}/xml/**/*.java" |
| excludes="${stem}/xml/examples/doc-files/**.java, |
| ${stem}/xml/Transform.java" |
| target="${javac.target}" |
| source="${javac.source}" |
| includeAntRuntime="${javac.includeAntRuntime}" |
| includeJavaRuntime="${javac.includeJavaRuntime}" |
| fork="${javac.fork}" |
| deprecation="${deprecation}" |
| classpath="${classpath}"> |
| <classpath refid="compile.classpath"/> |
| </javac> |
| <copy file="${resource.source.dir}/${stem}/xml/log4j.dtd" tofile="${javac.dest}/${stem}/xml/log4j.dtd" /> |
| </target> |
| |
| <target name="build.javamail" depends="init, javamail" |
| if="javamail-present"> |
| <javac srcdir="${java.source.dir}" |
| destdir="${javac.dest}" |
| includes="${stem}/net/SMTPAppender.java" |
| target="${javac.target}" |
| source="${javac.source}" |
| includeAntRuntime="${javac.includeAntRuntime}" |
| includeJavaRuntime="${javac.includeJavaRuntime}" |
| fork="${javac.fork}" |
| deprecation="${deprecation}"> |
| <classpath refid="compile.classpath"/> |
| </javac> |
| </target> |
| |
| <target name="build.jms" depends="init, jms, jndi" if="jms-present"> |
| <javac srcdir="${java.source.dir}" |
| destdir="${javac.dest}" |
| includes="${stem}/net/JMS*.java, ${stem}/or/jms/*.java" |
| target="${javac.target}" |
| source="${javac.source}" |
| includeAntRuntime="${javac.includeAntRuntime}" |
| includeJavaRuntime="${javac.includeJavaRuntime}" |
| fork="${javac.fork}" |
| deprecation="${deprecation}"> |
| <classpath refid="compile.classpath"/> |
| </javac> |
| </target> |
| |
| <target name="build.jmx" depends="init, jmx, jndi" if="jmx-present"> |
| <javac srcdir="${java.source.dir}" |
| destdir="${javac.dest}" |
| includes="${stem}/jmx/*.java" |
| excludes="${stem}/jmx/T.java" |
| target="${javac.target}" |
| source="${javac.source}" |
| includeAntRuntime="${javac.includeAntRuntime}" |
| includeJavaRuntime="${javac.includeJavaRuntime}" |
| fork="${javac.fork}" |
| deprecation="${deprecation}"> |
| <classpath refid="compile.classpath"/> |
| </javac> |
| </target> |
| |
| <target name="build.nt" depends="log4j.jar" description="Build NTEventLogAppender.dll"> |
| <mkdir dir="${dist.dir}/object"/> |
| <ant antfile="src/ntdll/build.xml"> |
| <property name="target.dir" location="${dist.dir}/lib"/> |
| <property name="object.dir" location="${dist.dir}/object"/> |
| <property name="classes.dir" location="${javac.dest}" /> |
| <property name="src.dir" location="src/ntdll" /> |
| <property name="jni.include.dir" location="${java.home}/../include" /> |
| </ant> |
| </target> |
| |
| <!-- ================================================================= --> |
| <!-- Remove all generated (compiled) class files. --> |
| <!-- ================================================================= --> |
| <target name="clean" depends="init"> |
| <delete dir="${dist.dir}/" /> |
| </target> |
| |
| <!-- ================================================================= --> |
| <!-- Runs checkstyle. Available from http://checkstyle.sf.net --> |
| <!-- ================================================================= --> |
| <target name="checkstyle" depends="init"> |
| <taskdef resource="checkstyletask.properties" |
| classpath="${checkstyle.jar}"/> |
| |
| <!-- by default checkstyle supports the Sun coding standard. --> |
| <checkstyle lcurlyMethod="nlow" |
| lcurlyOther="nlow" |
| lcurlyType="nlow" |
| maxMethodLen="500" |
| maxConstructorLen="500"> |
| <fileset dir="src/java/org/apache/log4j/chainsaw" includes="**/*.java"/> |
| </checkstyle> |
| </target> |
| |
| <!-- ================================================================= --> |
| <!-- Runs Chainsaw --> |
| <!-- ================================================================= --> |
| |
| <target name="chainsaw" depends="build"> |
| <!-- Need to fork to avoid problems --> |
| <java classname="org.apache.log4j.chainsaw.Main" fork="yes" |
| classpath="${javac.dest};${ant.home}/lib/crimson.jar"> |
| </java> |
| </target> |
| |
| <!-- ================================================================= --> |
| <!-- Remove the temporary manifest file, actual work is done in the --> |
| <!-- dependencies. --> |
| <!-- ================================================================= --> |
| <target name="jar" depends="log4j.jar, log4j-sources.jar"> |
| </target> |
| |
| <!-- ================================================================= --> |
| <!-- Create log4j.jar, excluding tests and other odds and ends. --> |
| <!-- ================================================================= --> |
| <target name="log4j.jar" depends="build"> |
| <mkdir dir="${jar.dest}"/> |
| <delete> |
| <fileset dir="${jar.dest}"> |
| <include name="${jar.filename}"/> |
| </fileset> |
| </delete> |
| |
| <jar jarfile="${jar.dest}/${jar.filename}" basedir="${javac.dest}" |
| includes="${stem}/*.class, |
| ${stem}/xml/log4j.dtd, |
| ${stem}/config/*.class, |
| ${stem}/helpers/*.class, |
| ${stem}/spi/*.class, |
| ${stem}/net/*.class, |
| ${stem}/jdbc/*.class, |
| ${stem}/varia/*.class, |
| ${stem}/chainsaw/*.class, |
| ${stem}/lf5/**/*.class, |
| ${stem}/lf5/**/*.properties, |
| ${stem}/lf5/**/*.gif, |
| ${stem}/nt/*.class, |
| ${stem}/xml/*.class, |
| ${stem}/jmx/*.class, |
| ${stem}/or/*.class, |
| ${stem}/or/sax/*.class, |
| ${stem}/or/jms/*.class, |
| ${stem}/config/*.class" |
| excludes="**/UnitTest**"> |
| <manifest> |
| <section name="org/apache/log4j"> |
| <attribute name="Implementation-Title" value="log4j"/> |
| <attribute name="Implementation-Version" value="${version}"/> |
| <attribute name="Implementation-Vendor" value='"Apache Software Foundation"'/> |
| </section> |
| </manifest> |
| <metainf dir="." includes="NOTICE,LICENSE"/> |
| </jar> |
| </target> |
| |
| |
| <!-- ================================================================= --> |
| <!-- Create log4j-sources.jar --> |
| <!-- ================================================================= --> |
| <target name="log4j-sources.jar"> |
| <mkdir dir="${jar.dest}"/> |
| <delete> |
| <fileset dir="${jar.dest}" includes="${sources-jar.filename}"/> |
| </delete> |
| |
| <jar jarfile="${jar.dest}/${sources-jar.filename}" basedir="${java.source.dir}" |
| includes="**/*.java"> |
| <manifest> |
| <section name="org/apache/log4j"> |
| <attribute name="Implementation-Title" value="log4j"/> |
| <attribute name="Implementation-Version" value="${version}"/> |
| <attribute name="Implementation-Vendor" value='"Apache Software Foundation"'/> |
| </section> |
| </manifest> |
| <metainf dir="." includes="NOTICE,LICENSE"/> |
| </jar> |
| </target> |
| |
| |
| <!-- ================================================================= --> |
| <!-- This target builds the javadoc files. --> |
| <!-- ================================================================= --> |
| <target name="javadoc" depends="init" unless="env.NO_JAVADOC"> |
| |
| <mkdir dir="${javadoc.dest}" /> |
| |
| <javadoc sourcepath="${java.source.dir}" |
| destdir="${javadoc.dest}" |
| packagenames="org.apache.log4j, |
| org.apache.log4j.config, |
| org.apache.log4j.helpers, |
| org.apache.log4j.jmx, |
| org.apache.log4j.lf5, |
| org.apache.log4j.net, |
| org.apache.log4j.nt, |
| org.apache.log4j.or, |
| org.apache.log4j.jdbc, |
| org.apache.log4j.or.sax, |
| org.apache.log4j.or.jms, |
| org.apache.log4j.performance, |
| org.apache.log4j.spi, |
| org.apache.log4j.varia, |
| org.apache.log4j.chainsaw, |
| org.apache.log4j.xml, |
| org.apache.log4j.xml.examples" |
| version="true" |
| protected="true" |
| author="true" |
| use="true" |
| overview="${docs.dest}/overview.html" |
| doctitle="log4j version ${version}<br>API Specification" |
| windowtitle="Log4j Version ${version}" |
| header='<b>Log4j ${version}</b><!-- Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You 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. |
| -->' |
| bottom="Copyright 2000-2007 Apache Software Foundation."> |
| |
| <link href="http://java.sun.com/j2se/1.3/docs/api/"/> |
| <link href="http://java.sun.com/j2ee/sdk_1.3/techdocs/api/"/> |
| <classpath refid="compile.classpath"/> |
| </javadoc> |
| |
| <!-- Extra files referenced by JavaDocs --> |
| <copy todir="${javadoc.dest}"> |
| <fileset dir="${javadoc.source.dir}"/> |
| </copy> |
| </target> |
| |
| <!-- ================================================================= --> |
| <!-- Compare the current API with a previous release --> |
| <!-- ================================================================= --> |
| <target name="jdiff" description="Generate comparison to reference API"> |
| <property name="reference-api.version" value="1.2.9"/> |
| <property name="reference-api.dir" location="${user.home}/logging-log4j-${reference-api.version}"/> |
| <property name="reference-api.source.dir" location="${user.home}/logging-log4j-${reference-api.version}/src/java"/> |
| |
| <!-- Must be set to the root of where JDiff is installed. --> |
| <property name="JDIFF_HOME" value="${user.home}/jdiff"/> |
| <!-- Just one simple way to tell Ant about the JDiff task --> |
| <taskdef name="jdiff" classname="jdiff.JDiffAntTask" |
| classpath="${JDIFF_HOME}/lib/antjdiff.jar"/> |
| |
| <jdiff verbose="on" destdir="build/jdiff"> |
| <old name="Version ${reference-api.version}"> |
| <dirset dir="${reference-api.source.dir}" includes="org/**"/> |
| </old> |
| <new name="Version ${version}"> |
| <dirset dir="${java.source.dir}" includes="org/**" excludes="org/apache/log4j/test/**"/> |
| </new> |
| </jdiff> |
| </target> |
| |
| |
| <!-- ================================================================= --> |
| <!-- Compare the current API with a previous release --> |
| <!-- ================================================================= --> |
| <target name="clirr" depends="jar" description="Check binary compatibility with arbitrary release"> |
| <property name="clirr.version" value="0.6"/> |
| <property name="clirr-core.jar" value="${m2_repo}/net/sf/clirr/clirr-core/${clirr.version}/clirr-core-${clirr.version}.jar"/> |
| <available property="clirr-core.jar-available" file="${clirr-core.jar}"/> |
| <fail unless="clirr-core.jar-available">clirr-core-${clirr.version}.jar not in maven repo. Run mvn clirr:check to download.</fail> |
| <property name="bcel.version" value="5.1"/> |
| <property name="bcel.jar" value="${m2_repo}/bcel/bcel/${bcel.version}/bcel-${bcel.version}.jar"/> |
| <available property="bcel.jar-available" file="${bcel.jar}"/> |
| <fail unless="bcel.jar-available">bcel-${bcel.version}.jar not in maven repo. Run mvn clirr:check to download.</fail> |
| <property name="reference.version" value="1.2.14"/> |
| <property name="reference.jar" value="${m2_repo}/log4j/log4j/${reference.version}/log4j-${reference.version}.jar"/> |
| <available property="reference.jar-available" file="${reference.jar}"/> |
| <fail unless="reference.jar-available">log4j-${reference.version}.jar not in maven repo. Run mvn clirr:check to download.</fail> |
| <taskdef resource="clirrtask.properties" |
| classpath="${clirr-core.jar};${bcel.jar}"/> |
| <delete dir="target/clirr"/> |
| <mkdir dir="target/clirr/orig"/> |
| <mkdir dir="target/clirr/new"/> |
| <copy todir="target/clirr/orig"> |
| <fileset file="${jms.jar}"/> |
| <fileset file="${jmx.jar}"/> |
| <fileset file="${reference.jar}"/> |
| </copy> |
| <copy todir="target/clirr/new"> |
| <fileset file="${jms.jar}"/> |
| <fileset file="${jmx.jar}"/> |
| <fileset dir="${jar.dest}" includes="${jar.filename}"/> |
| </copy> |
| <clirr failOnBinError="no" failOnSrcError="no"> |
| <origfiles dir="target/clirr/orig" includes="*.jar"/> |
| <newfiles dir="target/clirr/new" includes="*.jar"/> |
| <formatter type="xml" outfile="target/clirr/compatibility.xml"/> |
| </clirr> |
| </target> |
| |
| <!-- ============================================== --> |
| <!-- Build the site files using Maven --> |
| <!-- ============================================== --> |
| <target name="site"> |
| <exec executable="mvn"> |
| <arg value="site"/> |
| </exec> |
| </target> |
| |
| |
| <!-- ================================================================= --> |
| <!-- Build a complete distribution. Results go to ${dist.images} --> |
| <!-- ================================================================= --> |
| <target name="dist" depends="init, clean, javadoc, jar, site, build.nt"> |
| |
| <delete verbose="true"> |
| <fileset dir="."> |
| <patternset> |
| <include name="**/*.bak"/> |
| <include name="${dist.dir}/velocity.log"/> |
| <include name="${BSTEM}/**/temp*"/> |
| <include name="${BSTEM}/performance/test"/> |
| <include name="${BSTEM}/test/current.*"/> |
| <include name="${BSTEM}/test/current.*"/> |
| <include name="${BSTEM}/examples/test"/> |
| <include name="${BSTEM}/test/logging.*"/> |
| <include name="${BSTEM}/test/log4j.properties"/> |
| <include name="{$BSTEM}/test/socket.lcf"/> |
| <include name="${BSTEM}/test/file"/> |
| <include name="${BSTEM}/test/output.*"/> |
| <include name="${BSTEM}/net/test/loop.log"/> |
| <include name="${BSTEM}/net/test/loop.log.1"/> |
| <include name="${jar.dest}/manifest.mf"/> |
| <include name="${javac.dest}/*.class"/> |
| </patternset> |
| </fileset> |
| </delete> |
| |
| <mkdir dir="${dist.images}" /> |
| |
| <mkdir dir="${dist.tmp}/apache-log4j-${version}" /> |
| |
| <copy todir="${dist.tmp}/apache-log4j-${version}"> |
| <fileset dir="${base}" |
| includes="src/main/java/**, |
| docs/**, |
| examples/**, |
| build/*, |
| build.xml, |
| build.properties.sample, |
| manifest.mf, |
| INSTALL, |
| LICENSE, |
| NOTICE, |
| ${dist.dir}/lib/log4j-${version}.jar, |
| ${dist.dir}/lib/NTEventLogAppender.dll, |
| ${dist.dir}/classes/**, |
| contribs/**" |
| excludes="make/make.loc, |
| **/*.bak, **/goEnv.bat, |
| **/Makefile, **/goEnv.bat, |
| docs/pub-support/*, |
| ${dist.dir}/classes/org/**, |
| src/main/java/org/apache/log4j/test/**/*, |
| **/.#*, |
| **/*.o, **/*.res, **/*.h, **/EventLogCategories.rc"/> |
| </copy> |
| |
| |
| <fixcrlf srcdir="${dist.tmp}/apache-log4j-${version}" |
| includes="build.sh" cr="remove"/> |
| <fixcrlf srcdir="${dist.tmp}/apache-log4j-${version}" |
| includes="build.bat" cr="add"/> |
| <chmod dir="${dist.tmp}/apache-log4j-${version}" |
| includes="build.sh" perm="+x"/> |
| |
| <tar tarfile="${dist.images}/apache-log4j-${version}.tar.gz" |
| basedir="${dist.tmp}" |
| includes="apache-log4j-${version}/**" |
| compression="gzip" /> |
| |
| <zip zipfile="${dist.images}/apache-log4j-${version}.zip" |
| basedir="${dist.tmp}" |
| includes="apache-log4j-${version}/**" /> |
| |
| |
| <delete dir="${dist.tmp}" /> |
| </target> |
| |
| |
| <!-- ================================================================= --> |
| <!-- Build a complete distribution for release. --> |
| <!-- ================================================================= --> |
| <target name="release"> |
| <property name="javac.includeAntRuntime" value="false"/> |
| <property name="javac.includeJavaRuntime" value="false"/> |
| <property name="javac.fork" value="true"/> |
| <property name="build.compiler" value="classic"/> |
| <antcall target="clean-site"/> |
| <antcall target="dist"/> |
| |
| <!-- check that jar file is not missing |
| classes due to missing dependencies --> |
| <available property="jaxp-found" |
| classname="org.apache.log4j.xml.DOMConfigurator" |
| classpath="${jar.dest}/${jar.filename}"/> |
| <fail unless="jaxp-found" message="JAXP was not found."/> |
| <available property="jmx-found" |
| classname="org.apache.log4j.jmx.Agent" |
| classpath="${jar.dest}/${jar.filename}"/> |
| <fail unless="jmx-found" message="JMX was not found."/> |
| <available property="jms-found" |
| classname="org.apache.log4j.net.JMSAppender" |
| classpath="${jar.dest}/${jar.filename}"/> |
| <fail unless="jms-found" message="JMS or JNDI was not found."/> |
| <available property="javamail-found" |
| classname="org.apache.log4j.net.SMTPAppender" |
| classpath="${jar.dest}/${jar.filename}"/> |
| <fail unless="javamail-found" message="JAVAMAIL was not found."/> |
| <checksum forceOverwrite="yes" fileext=".md5"> |
| <fileset dir="${dist.images}" includes="apache-log4j-${version}.tar.gz apache-log4j-${version}.zip"/> |
| </checksum> |
| <checksum forceOverwrite="yes" fileext=".sha1" algorithm="SHA"> |
| <fileset dir="${dist.images}" includes="apache-log4j-${version}.tar.gz apache-log4j-${version}.zip"/> |
| </checksum> |
| <exec executable="gpg" dir="${dist.images}"> |
| <arg value="--armor"/> |
| <arg value="--output"/> |
| <arg value="apache-log4j-${version}.tar.gz.asc"/> |
| <arg value="--detach-sig"/> |
| <arg value="apache-log4j-${version}.tar.gz"/> |
| </exec> |
| <exec executable="gpg" dir="${dist.images}"> |
| <arg value="--armor"/> |
| <arg value="--output"/> |
| <arg value="apache-log4j-${version}.zip.asc"/> |
| <arg value="--detach-sig"/> |
| <arg value="apache-log4j-${version}.zip"/> |
| </exec> |
| </target> |
| |
| <target name="fixcrlf" depends="init" |
| description="Fixes CR-LF and tabs in source files"> |
| <fixcrlf srcDir="." |
| includes="**/*.java **/build.xml" |
| tab="remove" |
| tablength="3"/> |
| </target> |
| |
| <target name="checkout-site" unless="svn-available"> |
| <delete dir="target/site-deploy"/> |
| <exec executable="svn"> |
| <arg value="co"/> |
| <arg value="${svnsite.url}"/> |
| <arg value="target/site-deploy"/> |
| </exec> |
| </target> |
| |
| <target name="update-site" if="svn-available"> |
| <exec executable="svn" dir="target/site-deploy" failonerror="true"> |
| <arg value="update"/> |
| </exec> |
| </target> |
| |
| <target name="post-site" depends="checkout-site, update-site"/> |
| |
| |
| <target name="mime=html"> |
| <exec executable="svn"> |
| <arg value="propset"/> |
| <arg value="svn:mime-type"/> |
| <arg value="text/html"/> |
| <arg value="${src.html}"/> |
| </exec> |
| </target> |
| |
| <target name="mime=css"> |
| <exec executable="svn"> |
| <arg value="propset"/> |
| <arg value="svn:mime-type"/> |
| <arg value="text/css"/> |
| <arg value="${src.css}"/> |
| </exec> |
| </target> |
| |
| |
| <target name="site-deploy"> |
| <!-- Add any new files (and generate innocuous warnings for the existing content) --> |
| <delete file="target/site-deploy/svn-commit.tmp~"/> |
| <exec executable="bash" dir="target/site-deploy" failonerror="true"> |
| <arg line='-c "svn add --force *"'/> |
| </exec> |
| <taskdef name="foreach" classname="net.sf.antcontrib.logic.ForEach" /> |
| <foreach target="mime=html" param="src.html"> |
| <path> |
| <fileset dir="target/site-deploy" includes="**/*.html"/> |
| </path> |
| </foreach> |
| <foreach target="mime=css" param="src.css"> |
| <path> |
| <fileset dir="target/site-deploy" includes="**/*.css"/> |
| </path> |
| </foreach> |
| <!-- requires that SVN_EDITOR, VISUAL or EDITOR being set to edit commit description --> |
| <exec executable="svn" dir="target/site-deploy" failonerror="true"> |
| <arg value="commit"/> |
| </exec> |
| </target> |
| |
| </project> |
| |