blob: 48ad27622023cf273df9ca0b36de2ba179531ea7 [file] [log] [blame]
<!--
Copyright 2004-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.
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.
$Id: build.xml 54942 2004-10-16 22:39:25Z craigmcc $
-->
<project name="Tiles Core Library" default="library" basedir=".">
<!-- ===================== Initialize Property Values ==================== -->
<!-- Initialize property values -->
<property file="build.properties"/>
<property file="../build.properties"/>
<property file="../../build.properties"/>
<property file="${user.home}/build.properties"/>
<!-- Build Defaults -->
<property name="build.home" value="${basedir}/target"/>
<property name="dist.home" value="${basedir}/dist"/>
<property name="project.name" value="Tiles Core Library"/>
<property name="project.package" value="org.apache.tiles"/>
<property name="project.version" value="0.1-dev"/>
<!-- Dependency library defaults -->
<property name="commons-beanutils.jar" value="${beanutils.home}/commons-beanutils.jar"/>
<property name="commons-digester.jar" value="${digester.home}/commons-digester.jar"/>
<property name="commons-logging.jar" value="${logging.home}/commons-logging.jar"/>
<property name="jsp-api.jar" value="${server.home}/common/lib/jsp-api.jar"/>
<property name="jsf-impl.jar" value="${jsf.home}/lib/jsf-impl.jar"/>
<property name="jsf-api.jar" value="${jsf.home}/lib/jsf-api.jar"/>
<property name="junit.jar" value="${junit.home}/junit.jar"/>
<property name="servlet-api.jar" value="${server.home}/common/lib/servlet-api.jar"/>
<!-- Compile Defaults -->
<property name="compile.debug" value="true"/>
<property name="compile.deprecation" value="false"/>
<property name="compile.optimize" value="true"/>
<!-- Unit Test Defaults -->
<property name="test.haltonerror" value="true"/>
<property name="test.haltonfailure" value="true"/>
<property name="test.runner" value="junit.textui.TestRunner"/>
<!-- Compile Classpath -->
<path id="compile.classpath">
<pathelement location="${commons-beanutils.jar}"/>
<pathelement location="${commons-digester.jar}"/>
<pathelement location="${commons-logging.jar}"/>
<pathelement location="${jsf-api.jar}"/>
<pathelement location="${jsf-impl.jar}"/>
<pathelement location="${jsp-api.jar}"/>
<pathelement location="${servlet-api.jar}"/>
<pathelement location="${build.home}/classes"/>
</path>
<!-- Findbugs Classpath -->
<path id="findbugs.classpath">
<pathelement location="${commons-beanutils.jar}"/>
<pathelement location="${commons-digester.jar}"/>
<pathelement location="${commons-logging.jar}"/>
<pathelement location="${jsf-api.jar}"/>
<pathelement location="${jsp-api.jar}"/>
<pathelement location="${servlet-api.jar}"/>
</path>
<!-- Test Classpath -->
<path id="test.classpath">
<pathelement location="${commons-beanutils.jar}"/>
<pathelement location="${commons-digester.jar}"/>
<pathelement location="${jsf-api.jar}"/>
<pathelement location="${jsp-api.jar}"/>
<pathelement location="${junit.jar}"/>
<pathelement location="${servlet-api.jar}"/>
<pathelement location="${build.home}/classes"/>
<pathelement location="${build.home}/test-classes"/>
</path>
<!-- ==================== Maintenance Targets ============================ -->
<target name="clean"
description="Clean all build directories">
<delete dir="${build.home}"/>
<delete dir="${dist.home}"/>
</target>
<target name="init">
<echo message="---------- ${project.name} ${project.version} -----------"/>
<filter token="name" value="${project.name}"/>
<filter token="package" value="${project.package}"/>
<filter token="state" value="${systest.state.saving}"/>
<filter token="version" value="${project.version}"/>
<echo message="commons-beanutils.jar = ${commons-beanutils.jar}"/>
<echo message="commons-digester.jar = ${commons-digester.jar}"/>
<echo message="commons-logging.jar = ${commons-logging.jar}"/>
<echo message="jsf-api.jar = ${jsf-api.jar}"/>
<echo message="jsf-impl.jar = ${jsf-impl.jar}"/>
<echo message="jsp-api.jar = ${jsp-api.jar}"/>
<echo message="servlet-api.jar = ${servlet-api.jar}"/>
</target>
<target name="prepare" depends="init">
<mkdir dir="${build.home}"/>
<mkdir dir="${build.home}/classes"/>
<mkdir dir="${build.home}/classes/META-INF"/>
<mkdir dir="${build.home}/conf"/>
<mkdir dir="${build.home}/lib"/>
<mkdir dir="${dist.home}"/>
<mkdir dir="${dist.home}/docs"/>
<mkdir dir="${dist.home}/docs/api"/>
</target>
<target name="static" depends="prepare">
<tstamp/>
<copy todir="${build.home}/conf"
filtering="on">
<fileset dir="src/conf"
includes="*.MF"/>
</copy>
<copy todir="${build.home}/classes/META-INF">
<fileset dir="src/conf"
includes="tiles-core.tld"/>
</copy>
</target>
<!-- =================== Compile Library Components ====================== -->
<target name="compile" depends="static"
description="Compile core library">
<!-- Compile Java Sources -->
<javac srcdir="src/java"
destdir="${build.home}/classes"
debug="${compile.debug}"
deprecation="${compile.deprecation}"
optimize="${compile.optimize}">
<classpath refid="compile.classpath" />
</javac>
<!-- Copy non-Java Sources -->
<copy todir="${build.home}/classes">
<fileset dir="src/java">
<exclude name="**/*.java"/>
</fileset>
</copy>
<!-- Copy DTDs into appropriate resources directory -->
<mkdir dir="${build.home}/classes/org/apache/tiles/resources"/>
<copy todir="${build.home}/classes/org/apache/tiles/resources">
<fileset dir="src/conf"
includes="*.dtd"/>
</copy>
<!-- Copy license and notice files -->
<copy tofile="${build.home}/classes/META-INF/LICENSE.txt"
file="LICENSE.txt"/>
<copy tofile="${build.home}/classes/META-INF/NOTICE.txt"
file="NOTICE.txt"/>
</target>
<target name="library" depends="compile"
description="Package core library">
<jar jarfile="${build.home}/lib/tiles-core.jar"
basedir="${build.home}/classes"/>
</target>
<!-- ===================== Generate Documentation ======================== -->
<target name="docs" depends="library"
description="Create generated documentation and JavaDocs">
<javadoc
sourcepath="src/java"
destdir="${dist.home}/docs/api"
author="false"
private="true"
version="true"
packagenames="org.apache.tiles.*"
windowtitle="${project.name} (Version ${project.version})"
doctitle="${project.name} (Version ${project.version})"
bottom="Copyright &#169; 2004-2005 - The Apache Software Foundation">
<classpath refid="compile.classpath"/>
</javadoc>
</target>
<!-- ==================== Create Binary Distribution ==================== -->
<target name="dist" depends="docs"
description="Create binary distribution">
<mkdir dir="${dist.home}"/>
<copy todir="${dist.home}">
<fileset dir="${basedir}" includes="*.txt build.*"
excludes="build.properties"/>
</copy>
<mkdir dir="${dist.home}/conf"/>
<copy todir="${dist.home}/conf">
<fileset dir="src/conf" includes="*.tld"/>
<fileset dir="src/conf" includes="*.dtd"/>
</copy>
<mkdir dir="${dist.home}/lib"/>
<copy todir="${dist.home}/lib">
<fileset dir="${build.home}/lib" includes="*.jar"/>
</copy>
<mkdir dir="${dist.home}/src"/>
<copy todir="${dist.home}/src">
<fileset dir="src" excludes="**/.svn/**"/>
</copy>
</target>
<!-- ========================= Unit Tests ================================ -->
<target name="test:compile" depends="library"
description="Compile library unit tests">
<mkdir dir="${build.home}/test-classes"/>
<!-- Compile Java Sources -->
<javac srcdir="src/test"
destdir="${build.home}/test-classes"
debug="${compile.debug}"
deprecation="${compile.deprecation}"
optimize="${compile.optimize}">
<classpath refid="test.classpath" />
</javac>
<!-- Copy non-Java Sources -->
<copy todir="${build.home}/test-classes">
<fileset dir="src/test">
<exclude name="**/*.java"/>
</fileset>
</copy>
</target>
<target name="test" depends="test:compile"
description="Execute library unit tests">
<junit fork="yes"
haltonerror="${test.haltonerror}"
haltonfailure="${test.haltonfailure}"
printSummary="no">
<classpath refid="test.classpath"/>
<formatter type="plain"
usefile="false"/>
<batchtest fork="yes">
<fileset dir="${build.home}/test-classes"
includes="org/apache/tiles/*/*TestCase.class"/>
</batchtest>
</junit>
</target>
</project>