blob: 84102d7a31dccf75013734b3eb36d042696ad303 [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.
*/
-->
<!--
"Lang" component of the Apache Commons Subproject
$Id$
-->
<project name="Lang" default="compile" basedir=".">
<!-- ========== Initialize Properties ===================================== -->
<property file="${user.home}/${component.name}.build.properties"/>
<property file="${user.home}/build.properties"/>
<property file="${basedir}/build.properties"/>
<property file="${basedir}/default.properties"/>
<!-- The Sun Javadoc for versions prior to 1.3 are off-line. -->
<property name="jdk.javadoc" value="http://java.sun.com/j2se/1.3/docs/api/"/>
<!-- ========== Construct compile classpath =============================== -->
<path id="compile.classpath">
<pathelement location="${build.home}/classes"/>
</path>
<!-- ========== Construct unit test classpath ============================= -->
<path id="test.classpath">
<pathelement location="${build.home}/classes"/>
<pathelement location="${build.home}/tests"/>
<pathelement location="${junit.jar}"/>
</path>
<!-- ========== Executable Targets ======================================== -->
<target name="init" description="Initialize and evaluate conditionals">
<echo message="-------- ${component.name} ${component.version} --------"/>
<filter token="name" value="${component.name}"/>
<filter token="package" value="${component.package}"/>
<filter token="version" value="${component.version}"/>
<filter token="compile.source" value="${compile.source}"/>
<filter token="compile.target" value="${compile.target}"/>
</target>
<target name="prepare" depends="init" description="Prepare build directory">
<mkdir dir="${build.home}"/>
<mkdir dir="${build.home}/classes"/>
<mkdir dir="${build.home}/conf"/>
<mkdir dir="${build.home}/tests"/>
</target>
<target name="static" depends="prepare" description="Copy static files to build directory">
<tstamp/>
<copy todir="${build.home}/conf" filtering="on">
<fileset dir="${conf.home}" includes="*.MF"/>
</copy>
</target>
<target name="compile" depends="static" description="Compile shareable components">
<javac srcdir="${source.home}" destdir="${build.home}/classes" debug="${compile.debug}" deprecation="${compile.deprecation}" target="${compile.target}" source="${compile.source}" excludes="${compile.excludes}" optimize="${compile.optimize}">
<classpath refid="compile.classpath"/>
</javac>
<copy todir="${build.home}/classes" filtering="on">
<fileset dir="${source.home}" excludes="**/*.java"/>
</copy>
</target>
<target name="compile.tests" depends="compile" description="Compile unit test cases">
<javac srcdir="${test.home}" destdir="${build.home}/tests" debug="${compile.debug}" deprecation="off" target="${compile.target}" source="${compile.source}" optimize="${compile.optimize}">
<classpath refid="test.classpath"/>
</javac>
<copy todir="${build.home}/tests" filtering="on">
<fileset dir="${test.home}" excludes="**/*.java"/>
</copy>
</target>
<target name="clean" description="Clean build and distribution directories">
<delete dir="${build.home}"/>
<delete dir="${dist.home}"/>
</target>
<target name="all" depends="clean,compile" 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"/>
<tstamp>
<format property="current.year" pattern="yyyy"/>
</tstamp>
<javadoc sourcepath="${source.home}" destdir="${dist.home}/docs/api" overview="${source.home}/org/apache/commons/lang/overview.html" packagenames="org.apache.commons.*" excludepackagenames="${javadoc.excludepackagenames}" author="true" version="true" doctitle="&lt;h1&gt;${component.title}&lt;/h1&gt;" windowtitle="${component.title} (Version ${component.version})" bottom="Copyright &amp;copy; 2001-${current.year} - Apache Software Foundation" use="true" link="${jdk.javadoc}" source="${compile.source}">
<classpath refid="compile.classpath"/>
</javadoc>
</target>
<target name="dist" depends="clean,compile,javadoc" description="Create binary distribution">
<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}"/>
<antcall target="jar"/>
<copy file="${dist.home}/${final.name}.jar" todir="."/>
<copy todir="${source.home}/META-INF">
<fileset dir="${basedir}" includes="LICENSE*, NOTICE*" />
</copy>
<jar jarfile="${final.name}-sources.jar" basedir="${source.home}" manifest="${build.home}/conf/MANIFEST.MF"/>
<delete dir="${source.home}/META-INF"/>
<copy file="${final.name}-sources.jar" todir="${dist.home}"/>
<copy todir="${dist.home}/docs/api/META-INF">
<fileset dir="${basedir}" includes="LICENSE*, NOTICE*" />
</copy>
<jar jarfile="${final.name}-javadoc.jar" basedir="${dist.home}/docs/api" manifest="${build.home}/conf/MANIFEST.MF"/>
<delete dir="${dist.home}/docs/api/META-INF"/>
<copy file="${final.name}-javadoc.jar" todir="${dist.home}"/>
<mkdir dir="${final.name}"/>
<move todir="${final.name}/${final.name}">
<fileset dir="${dist.home}"/>
</move>
<tar destfile="${final.name}.tar" basedir="${final.name}"/>
<gzip zipfile="${final.name}.tar.gz" src="${final.name}.tar"/>
<delete file="${final.name}.tar"/>
<fixcrlf srcdir="${final.name}" eol="crlf" includes="**/*.txt"/>
<zip destfile="${final.name}.zip" basedir="${final.name}"/>
<delete dir="${final.name}"/>
</target>
<target name="jar" depends="compile" description="Create jar">
<mkdir dir="${dist.home}"/>
<mkdir dir="${build.home}/classes/META-INF"/>
<copy file="LICENSE.txt" tofile="${build.home}/classes/META-INF/LICENSE.txt"/>
<copy file="NOTICE.txt" tofile="${build.home}/classes/META-INF/NOTICE.txt"/>
<jar jarfile="${dist.home}/${final.name}.jar" basedir="${build.home}/classes" manifest="${build.home}/conf/MANIFEST.MF" excludes="**/*.html"/>
</target>
<target name="install-jar" depends="jar" description="--> Installs jar file in ${lib.repo}">
<copy todir="${lib.repo}" filtering="no">
<fileset dir="${dist.home}">
<include name="${final.name}.jar"/>
</fileset>
</copy>
</target>
<!-- ========== Unit Test Targets ========================================= -->
<target name="test" depends="
compile.tests,
test.lang,
test.builder,
test.enum,
test.enums,
test.exception,
test.math,
test.mutable,
test.text,
test.time" description="Run all unit test cases">
<echo message="Running tests ..."/>
</target>
<macrodef name="runTestCase">
<attribute name="classname"/>
<sequential>
<junit printsummary="true" showoutput="true" fork="${junit.fork}" haltonerror="${test.failonerror}">
<classpath refid="test.classpath"/>
<test name="@{classname}"/>
</junit>
</sequential>
</macrodef>
<target name="test.lang" depends="compile.tests">
<runTestCase classname="org.apache.commons.lang.LangTestSuite"/>
</target>
<target name="test.builder" depends="compile.tests">
<runTestCase classname="org.apache.commons.lang.builder.BuilderTestSuite"/>
</target>
<target name="test.enum" depends="compile.tests">
<runTestCase classname="org.apache.commons.lang.enum.EnumTestSuite"/>
</target>
<target name="test.enums" depends="compile.tests">
<runTestCase classname="org.apache.commons.lang.enums.EnumTestSuite"/>
</target>
<target name="test.exception" depends="compile.tests">
<runTestCase classname="org.apache.commons.lang.exception.ExceptionTestSuite"/>
</target>
<target name="test.math" depends="compile.tests">
<runTestCase classname="org.apache.commons.lang.math.MathTestSuite"/>
</target>
<target name="test.mutable" depends="compile.tests">
<runTestCase classname="org.apache.commons.lang.mutable.MutableTestSuite"/>
</target>
<target name="test.text" depends="compile.tests">
<runTestCase classname="org.apache.commons.lang.text.TextTestSuite"/>
</target>
<target name="test.time" depends="compile.tests">
<runTestCase classname="org.apache.commons.lang.time.TimeTestSuite"/>
</target>
</project>