blob: 4b651844d29da7e55065ecd4642cc8e46d2e79ec [file] [log] [blame]
<project name="click" default="help" basedir=".">
<!-- Project Properties -->
<property file="./build.properties"/>
<property name="jar.codec" value="commons-codec-1.3.jar"/>
<property name="jar.collections" value="commons-collections-3.1.jar"/>
<property name="jar.lang" value="commons-lang-2.1.jar"/>
<property name="jar.junit" value="junit-3.8.1.jar"/>
<property name="jar.servlet" value="servlet-api-2.4.jar"/>
<property name="jar.spring" value="spring-1.2.5.jar"/>
<property name="jar.upload" value="commons-fileupload-1.0.jar"/>
<property name="jar.velocity" value="velocity-1.5-dev.jar"/>
<taskdef name="linetrim"
classname="dev.LineTrimTask"
classpath="lib/dev.jar"/>
<taskdef name="replacetabs"
classname="dev.ReplaceTabsTask"
classpath="lib/dev.jar"/>
<!-- Tasks -->
<target name="build-all"
depends="build-framework, build-extras, build-webapps"
description="build Click framework, extras and webapps"/>
<target name="build-framework" description="build framework JAR file">
<available file="lib/${jar.codec}" property="isJarAvail"/>
<fail message="Download JAR dependencies first with 'get-deps'">
<condition>
<or>
<isfalse value="${isJarAvail}"/>
</or>
</condition>
</fail>
<delete file="deploy/click-${version}.jar" quiet="false"/>
<delete file="deploy/click-nodeps-${version}.jar" quiet="false"/>
<property name="dir.source" value="framework/src"/>
<property name="dir.classes" value="framework/classes"/>
<delete dir="${dir.classes}" quiet="false"/>
<mkdir dir="${dir.classes}"/>
<copy todir="${dir.classes}">
<fileset dir="${dir.source}">
<exclude name="**/*.java"/>
<exclude name="**/package.html"/>
</fileset>
</copy>
<!-- No Dependencies -->
<javac srcdir="${dir.source}" destdir="${dir.classes}" debug="true">
<classpath>
<pathelement location="lib/${jar.codec}"/>
<pathelement location="lib/${jar.collections}"/>
<pathelement location="lib/${jar.lang}"/>
<pathelement location="lib/${jar.servlet}"/>
<pathelement location="lib/${jar.upload}"/>
<pathelement location="lib/${jar.velocity}"/>
</classpath>
</javac>
<jar destfile="deploy/click-nodeps-${version}.jar">
<manifest>
<attribute name="Click-Version" value="${version}"/>
<attribute name="Package" value="net.sf.click"/>
<attribute name="Built-By" value="${user.name}"/>
</manifest>
<fileset dir="${dir.classes}"/>
</jar>
<!-- With Dependencies -->
<unzip src="lib/${jar.codec}" dest="${dir.classes}"/>
<unzip src="lib/${jar.collections}" dest="${dir.classes}"/>
<unzip src="lib/${jar.lang}" dest="${dir.classes}"/>
<unzip src="lib/${jar.upload}" dest="${dir.classes}"/>
<unzip src="lib/${jar.velocity}" dest="${dir.classes}"/>
<jar destfile="deploy/click-${version}.jar">
<manifest>
<attribute name="Click-Version" value="${version}"/>
<attribute name="Package" value="net.sf.click"/>
<attribute name="Built-By" value="${user.name}"/>
</manifest>
<fileset dir="${dir.classes}">
<exclude name="org/apache/velocity/anakia/**"/>
<exclude name="org/apache/velocity/test/**"/>
<exclude name="org/apache/velocity/texen/**"/>
</fileset>
</jar>
</target>
<target name="build-extras" description="build extras JAR file">
<available file="deploy/click-${version}.jar" property="isClickAvail"/>
<fail message="Build framework first with 'build-framework'">
<condition>
<or>
<isfalse value="${isClickAvail}"/>
</or>
</condition>
</fail>
<delete file="deploy/click-extras-${version}.jar" quiet="false"/>
<delete dir="extras/classes" quiet="false"/>
<mkdir dir="extras/classes"/>
<copy todir="extras/classes">
<fileset dir="extras/src">
<exclude name="**/*.java"/>
<exclude name="**/package.html"/>
</fileset>
</copy>
<javac srcdir="extras/src" destdir="extras/classes" debug="true" excludes="**/Test*">
<classpath>
<pathelement location="${jar.cayenne}"/>
<pathelement location="lib/${jar.servlet}"/>
<pathelement location="lib/${jar.spring}"/>
<pathelement location="deploy/click-${version}.jar"/>
</classpath>
</javac>
<jar destfile="deploy/click-extras-${version}.jar">
<manifest>
<attribute name="Click-Version" value="${version}"/>
<attribute name="Package" value="net.sf.click.extras"/>
<attribute name="Built-By" value="${user.name}"/>
</manifest>
<fileset dir="extras/classes">
<exclude name="org/apache/log4j/chainsaw/**"/>
</fileset>
</jar>
</target>
<target name="build-release"
depends="build-framework, build-extras, build-webapps, javadoc"
description="build release ZIP file">
<delete dir="click-${version}" quiet="false"/>
<mkdir dir="click-${version}"/>
<!-- "click-documentation" WAR -->
<war destfile="deploy/click-documentation.war"
webxml="webapps/click-documentation/WEB-INF/web.xml">
<manifest>
<attribute name="Click-Version" value="${version}"/>
<attribute name="Built-By" value="${user.name}"/>
</manifest>
<fileset dir="webapps/click-documentation">
<exclude name="**/web.xml"/>
</fileset>
</war>
<copy todir="click-${version}">
<fileset dir="." casesensitive="yes">
<exclude name=".**"/>
<exclude name="click-${version}"/>
<exclude name="TODO.txt"/>
<exclude name="bin/**"/>
<exclude name="lib/${jar.codec}"/>
<exclude name="lib/${jar.collections}"/>
<exclude name="lib/${jar.lang}"/>
<exclude name="lib/${jar.junit}"/>
<exclude name="lib/${jar.servlet}"/>
<exclude name="lib/${jar.spring}"/>
<exclude name="lib/${jar.upload}"/>
<exclude name="**/Thumbs.db"/>
<exclude name="**/classes/**"/>
<exclude name="webapps/click-cayenne/**"/>
<exclude name="webapps/click-documentation/**"/>
</fileset>
</copy>
<delete file="../click-${version}.zip"/>
<zip basedir="."
destfile="../click-${version}.zip"
includes="click-${version}/**"/>
<delete dir="click-${version}" quiet="false"/>
</target>
<target name="build-webapps" description="build web application WAR files">
<available file="deploy/click-extras-${version}.jar" property="isExtrasAvail"/>
<fail message="Build extras first with 'build-extras'">
<condition>
<or>
<isfalse value="${isExtrasAvail}"/>
</or>
</condition>
</fail>
<!-- "click-blank" WAR -->
<delete file="deploy/deploy/click-blank.war" quiet="false"/>
<copy file="framework/src/click-control.properties"
todir="webapps/click-blank/WEB-INF/src"/>
<copy file="framework/src/click-control.properties"
todir="webapps/click-blank/WEB-INF/classes"/>
<war destfile="deploy/click-blank.war"
webxml="webapps/click-blank/WEB-INF/web.xml">
<manifest>
<attribute name="Click-Version" value="${version}"/>
<attribute name="Built-By" value="${user.name}"/>
</manifest>
<lib file="deploy/click-${version}.jar"/>
<fileset dir="webapps/click-blank">
<exclude name="**/web.xml"/>
</fileset>
</war>
<!-- "click-examples" WAR -->
<delete file="deploy/deploy/click-examples.war" quiet="false"/>
<delete dir="webapps/click-examples/WEB-INF/classes" quiet="false"/>
<mkdir dir="webapps/click-examples/WEB-INF/classes"/>
<javac srcdir="webapps/click-examples/WEB-INF/src"
destdir="webapps/click-examples/WEB-INF/classes"
debug="true">
<classpath>
<pathelement location="lib/${jar.servlet}"/>
<pathelement location="deploy/click-${version}.jar"/>
<pathelement location="deploy/click-extras-${version}.jar"/>
</classpath>
</javac>
<copy todir="webapps/click-examples/WEB-INF/classes">
<fileset dir="webapps/click-examples/WEB-INF/src">
<exclude name="**/*.java"/>
<exclude name="**/package.html"/>
</fileset>
</copy>
<war destfile="deploy/click-examples.war"
webxml="webapps/click-examples/WEB-INF/web.xml">
<manifest>
<attribute name="Click-Version" value="${version}"/>
<attribute name="Built-By" value="${user.name}"/>
</manifest>
<lib file="deploy/click-${version}.jar"/>
<lib file="deploy/click-extras-${version}.jar"/>
<fileset dir="webapps/click-examples">
<exclude name="**/web.xml"/>
</fileset>
</war>
</target>
<target name="create-upload-bundle">
<delete dir="upload-bundle" quiet="false"/>
<mkdir dir="upload-bundle"/>
<copy file="LICENSE.txt" todir="upload-bundle"/>
<copy file="project.xml" todir="upload-bundle"/>
<copy file="deploy/click-${version}.jar" todir="upload-bundle"/>
<jar basedir="upload-bundle" destfile="../click-${version}-bundle.jar"/>
<delete dir="upload-bundle" quiet="false"/>
</target>
<target name="deploy-examples">
<copy file="deploy/click-examples.war" todir="${dir.appserver}" overwrite="true"/>
</target>
<target name="deploy-webapps" description="copy WAR files to application server">
<copy file="deploy/click-blank.war" todir="${dir.appserver}" overwrite="true"/>
<copy file="deploy/click-documentation.war" todir="${dir.appserver}" overwrite="true"/>
<copy file="deploy/click-examples.war" todir="${dir.appserver}" overwrite="true"/>
</target>
<target name="format-java">
<linetrim srcdir="extras/src" includes="**/*.java"/>
<replacetabs srcdir="extras/src" includes="**/*.java"/>
<linetrim srcdir="framework/src" includes="**/*.java"/>
<replacetabs srcdir="framework/src" includes="**/*.java"/>
<linetrim srcdir="webapps/click-examples/WEB-INF/src" includes="**/*.java"/>
<replacetabs srcdir="webapps/click-examples/WEB-INF/src" includes="**/*.java"/>
</target>
<target name="get-deps" description="download JAR dependencies">
<property name="repository" value="http://www.ibiblio.org/maven"/>
<get src="${repository}/commons-codec/jars/${jar.codec}"
dest="lib/${jar.codec}"
usetimestamp="true"/>
<get src="${repository}/commons-collections/jars/${jar.collections}"
dest="lib/${jar.collections}"
usetimestamp="true"/>
<get src="${repository}/commons-lang/jars/${jar.lang}"
dest="lib/${jar.lang}"
usetimestamp="true"/>
<get src="${repository}/commons-fileupload/jars/${jar.upload}"
dest="lib/${jar.upload}"
usetimestamp="true"/>
<get src="${repository}/junit/jars/${jar.junit}"
dest="lib/${jar.junit}"
usetimestamp="true"/>
<get src="${repository}/javax.servlet/jars/${jar.servlet}"
dest="lib/${jar.servlet}"
usetimestamp="true"/>
<get src="${repository}/springframework/jars/${jar.spring}"
dest="lib/${jar.spring}"
usetimestamp="true"/>
</target>
<target name="get-deps-proxy" description="download JAR dependencies">
<setproxy proxyhost="${proxy.host}" proxyport="${proxy.port}"/>
<antcall target="get-deps"/>
</target>
<target name="help" description="display the Help message">
<echo message="Click ${version} web application framework"/>
<echo message="===================================="/>
<echo/>
<echo message="Main targets:"/>
<echo/>
<echo message="build-all build framework, extras, webapps"/>
<echo message="build-extras build click-extras JAR file"/>
<echo message="build-framework build click framework JAR file"/>
<echo message="build-release build release ZIP file"/>
<echo message="build-webapps build web application WAR files"/>
<echo message="deploy-webapps copy WAR files to application server"/>
<echo message="get-deps download JAR dependencies"/>
<echo message="get-deps-proxy download JAR dependencies via proxy"/>
<echo message="help display the Help message"/>
<echo message="javadoc create Javadoc HTML files"/>
<echo/>
<echo/>
<echo message="Please ensure you have configured build.properties"/>
<echo/>
</target>
<target name="javadoc" description="create Javadoc HTML files">
<!-- Framework -->
<delete quiet="false" failonerror="false">
<fileset dir="webapps/click-documentation/docs/click-api" includes="**/*"/>
</delete>
<javadoc sourcepath="framework/src"
destdir="webapps/click-documentation/docs/click-api"
author="true"
version="true"
verbose="false"
windowtitle="Click API"
doctitle="Click API">
<classpath>
<pathelement location="lib/${jar.servlet}"/>
<pathelement location="deploy/click-${version}.jar"/>
</classpath>
<packageset dir="framework/src">
<include name="net/**"/>
<exclude name="org/**"/>
</packageset>
</javadoc>
<copy file="framework/src/net/sf/click/control/calendar.gif"
todir="webapps/click-documentation/docs/click-api/net/sf/click/control"/>
<copy file="framework/src/net/sf/click/control/image-submit.gif"
todir="webapps/click-documentation/docs/click-api/net/sf/click/control"/>
<!-- Extras -->
<delete quiet="false" failonerror="false">
<fileset dir="webapps/click-documentation/docs/extras-api" includes="**/*"/>
</delete>
<javadoc sourcepath="extras/src"
destdir="webapps/click-documentation/docs/extras-api"
author="true"
version="true"
verbose="false"
windowtitle="Click Extras API"
doctitle="Click Extras API">
<classpath>
<pathelement location="${jar.cayenne}"/>
<pathelement location="lib/${jar.servlet}"/>
<pathelement location="lib/${jar.spring}"/>
<pathelement location="deploy/click-${version}.jar"/>
</classpath>
<packageset dir="extras/src">
<include name="net/**"/>
</packageset>
</javadoc>
<!-- Examples -->
<delete quiet="false" failonerror="false">
<fileset dir="webapps/click-examples/javadoc" includes="**/*"/>
</delete>
<javadoc sourcepath="webapps/click-examples/WEF-INF/src"
destdir="webapps/click-examples/javadoc"
author="true"
version="true"
verbose="false"
windowtitle="Click Examples"
doctitle="Click Examples API">
<classpath>
<pathelement location="lib/${jar.servlet}"/>
<pathelement location="deploy/click-${version}.jar"/>
<pathelement location="deploy/click-extras-${version}.jar"/>
</classpath>
<packageset dir="webapps/click-examples/WEB-INF/src"/>
</javadoc>
<copy file="framework/stylesheet.css"
overwrite="true"
todir="webapps/click-documentation/docs/click-api"/>
<copy file="framework/stylesheet.css"
overwrite="true"
todir="webapps/click-documentation/docs/extras-api"/>
<copy file="framework/stylesheet.css"
overwrite="true"
todir="webapps/click-examples/javadoc"/>
<copy file="framework/stylesheet.css"
overwrite="true"
todir="webapps/click-documentation/docs/servlet-api"/>
</target>
</project>