blob: e2ce0dc6bb92ee6141b3f0b59cbd0f572fa8e625 [file] [log] [blame]
<!--
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 is a minimal build file to support Gump.
Use of Maven to build this component is recommended.
Specify -Dcompanion.jar=foo.jar to test a previously prepared jar.
-->
<project default="test">
<!-- use build.properties file or command line to override these properties -->
<property file="build.properties"/>
<!-- project details -->
<property name="project.name" value="apache-log4j-component"/>
<property name="project.title" value="Apache Component Companion for log4j 1.2."/>
<property name="project.version" value="1.0"/>
<property name="project.jar" value="${project.name}-${project.version}.jar"/>
<!-- Location of local Maven 2 repository -->
<property name="m2_repo" location="${user.home}/.m2/repository"/>
<!-- Versions for dependencies -->
<property name="log4j.version" value="1.2.15"/>
<property name="junit.version" value="3.8.1"/>
<!-- Dependency locations - assumed to be in Maven 2 repository -->
<property name="junit.jar"
location="${m2_repo}/junit/junit/${junit.version}/junit-${junit.version}.jar"/>
<property name="log4j.jar"
location="${m2_repo}/log4j/log4j/${log4j.version}/log4j-${log4j.version}.jar"/>
<!-- Java compiler settings -->
<property name="javac.source" value="1.2"/>
<property name="javac.target" value="1.1"/>
<property name="javac.deprecation" value="true"/>
<property name="javac.debug" value="true"/>
<property name="svnrepo.url" value="https://svn.apache.org/repos/asf"/>
<property name="svnsite.url" value="${svnrepo.url}/logging/site/trunk/docs/log4j/companions/component"/>
<available property="svn-available" file="target/site-deploy/.svn"/>
<target name="init"/>
<target name="clean" depends="init" description="Clean up generated files">
<delete dir="target"/>
</target>
<target name="compile" depends="init" unless="companion.jar" description="Compile implementation files">
<mkdir dir="target/classes"/>
<javac destdir="target/classes"
srcdir="src/main/java"
deprecation="${javac.deprecation}"
debug="${javac.debug}"
target="${javac.target}"
source="${javac.source}"
classpath="${log4j.jar}"/>
<copy todir="target/classes" overwrite="true">
<fileset dir="src/main/resources"/>
</copy>
</target>
<target name="jar" depends="compile" unless="companion.jar" description="Create jar">
<jar destfile="target/${project.jar}"
basedir="target/classes">
<manifest>
<attribute name="Built-By" value="${user.name}"/>
<section name="common">
<attribute name="Implementation-Title" value="${project.title}"/>
<attribute name="Implementation-Version" value="${project.version}"/>
<attribute name="Implementation-Vendor" value="Apache Software Foundation"/>
</section>
</manifest>
</jar>
</target>
<target name="test-compile" depends="jar" description="Compile test files">
<property name="companion.jar" value="target/${project.jar}"/>
<mkdir dir="target/test-classes"/>
<javac destdir="target/test-classes"
srcdir="src/test/java"
deprecation="${javac.deprecation}"
debug="${javac.debug}"
target="${javac.target}"
source="${javac.source}"
classpath="${companion.jar}:${log4j.jar}:${junit.jar}"/>
<copy todir="target/test-classes" overwrite="true">
<fileset dir="src/test/resources"/>
</copy>
</target>
<target name="test" depends="test-compile" description="Run unit tests">
<junit printsummary="yes" fork="true" dir="target">
<classpath path="target/test-classes:${companion.jar}:${log4j.jar}:${junit.jar}"/>
<batchtest>
<fileset dir="src/test/java/">
<include name="**/Test*.java"/>
<include name="**/*TestCase.java"/>
</fileset>
</batchtest>
<formatter type="plain" usefile="false"/>
</junit>
</target>
<target name="checkout-site" unless="svn-available">
<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>