blob: fdec789d97f776c43e0e461aaa995458a954debd [file] [log] [blame]
<?xml version="1.0"?>
<!--
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 the main Tomcat 5.5 build file: it invokes most of the others. -->
<project name="Tomcat 5.5" default="deploy" basedir=".">
<!-- ===================== Initialize Property Values =================== -->
<!-- We read customizable properties from the file "build.properties.default" -->
<!-- and also from "build.properties" if it exists. -->
<!-- The values in "build.properties" have stronger preference. -->
<!-- If you want to customize your build, you can either change the values -->
<!-- directly in the default file, or create a new build.properties and set -->
<!-- the values there. This way you don't have to change a file which is part -->
<!-- of the original project source code. -->
<!-- See "build.properties.default" in the build directory for some -->
<!-- property values you may customize. -->
<property file="${user.home}/build.properties"/>
<property file="build.properties"/>
<property file="build.properties.default"/>
<!-- Project Properties -->
<property name="name" value="Apache Tomcat" />
<property name="year" value="2011" />
<property name="version.major" value="5" />
<property name="version.minor" value="5" />
<property name="version.build" value="0" />
<property name="version.patch" value="0" />
<property name="version" value="5.5.0-dev" />
<property name="version.number" value="${version.major}.${version.minor}.${version.build}.${version.patch}" />
<property name="version.major.minor" value="${version.major}.${version.minor}" />
<property name="project" value="apache-tomcat" />
<property name="final.name" value="${project}-${version}" />
<property name="final-src.name" value="${project}-${version}-src" />
<!-- Subprojects -->
<property name="api.project" value="servletapi" />
<property name="tomcat.project" value="build" />
<property name="catalina.project" value="container" />
<property name="jtc.project" value="connectors" />
<property name="jasper.project" value="jasper" />
<property name="ant.jar" value="${ant.home}/lib/ant.jar"/>
<property name="ant-launcher.jar" value="${ant.home}/lib/ant-launcher.jar"/>
<!-- Source dependencies -->
<property name="api.home"
value="${basedir}/../${api.project}"/>
<property name="catalina.home"
value="${basedir}/../${catalina.project}"/>
<property name="jasper.home"
value="${basedir}/../${jasper.project}"/>
<property name="jtc.home"
value="${basedir}/../${jtc.project}"/>
<property name="tomcat.home"
value="${basedir}/../${tomcat.project}"/>
<!-- Build Defaults -->
<property name="catalina.build" value="${catalina.home}/build"/>
<property name="jasper.build" value="${jasper.home}/build"/>
<property name="tomcat.build" value="${basedir}/build"/>
<property name="build.home" value="${tomcat.build}"/>
<property name="tomcat.dist" value="${basedir}/dist"/>
<property name="tomcat.embed" value="${basedir}/embed"/>
<property name="tomcat.compat" value="${basedir}/compat"/>
<property name="tomcat.deployer" value="${basedir}/deployer"/>
<property name="tomcat.release" value="${basedir}/release"/>
<property name="webapps.build" value="${catalina.home}/webapps/build"/>
<property name="webapps.dist" value="${catalina.home}/webapps/dist"/>
<property name="tomcat-dbcp.home" value="${base.path}/tomcat-deps/dbcp" />
<property name="tomcat-dbcp.jar"
value="${tomcat-dbcp.home}/naming-factory-dbcp.jar"/>
<property name="jasper-compiler-jdt.home" value="${base.path}/tomcat-deps/jdt" />
<property name="jasper-compiler-jdt.jar"
value="${jasper-compiler-jdt.home}/jasper-compiler-jdt.jar"/>
<!-- Some compilers will disable debugging if true. And it doesn't do anything
in most cases -->
<property name="compile.optimize" value="false"/>
<property name="compile.debug" value="true" />
<property name="compile.deprecation" value="false" />
<property name="compile.source" value="1.4" />
<property name="tester.delay" value="8" />
<!-- constant to declare a file binary for md5sum -->
<property name="md5sum.binary-prefix" value=" *" />
<!-- Files that need to have their line endings changed for src distros -->
<patternset id="src.files" >
<include name="**/.classpath"/>
<include name="**/.project"/>
<include name="**/eclipse.classpath"/>
<include name="**/eclipse.project"/>
<include name="**/INSTALLLICENSE"/>
<include name="**/KEYS"/>
<include name="**/LICENSE"/>
<include name="**/NOTICE"/>
<include name="**/README"/>
<include name="**/RELEASE-NOTES"/>
<include name="**/VERSION"/>
<include name="**/manifest"/>
<include name="**/*.MF"/>
<include name="**/*.bat"/>
<include name="**/*.css"/>
<include name="**/*.dtd"/>
<include name="**/*.htm"/>
<include name="**/*.html"/>
<include name="**/*.ini"/>
<include name="**/*.java"/>
<include name="**/*.jsp"/>
<include name="**/*.jspf"/>
<include name="**/*.jspx"/>
<include name="**/subparseform.lib"/>
<include name="**/subroutines.lib"/>
<include name="**/*.manifest"/>
<include name="**/*.mdl"/>
<include name="**/*.nsi"/>
<include name="**/*.pl"/>
<include name="**/*.policy"/>
<include name="**/*.pom"/>
<include name="**/*.properties"/>
<include name="**/*.properties.default"/>
<include name="**/*.properties.minimal"/>
<include name="**/*.properties.sample"/>
<include name="**/*.sh"/>
<include name="**/*.shtml"/>
<include name="**/*.spec"/>
<include name="**/*.tag"/>
<include name="**/*.tagx"/>
<include name="**/*.tasks"/>
<include name="**/*.tld"/>
<include name="**/*.txt"/>
<include name="**/*.xml"/>
<include name="**/*.xsd"/>
<include name="**/*.xsl"/>
</patternset>
<!-- =================== DETECT: Display configuration ================== -->
<target name="detect"
description="Display configuration and conditional compilation flags">
<echo message="--- ${name} ${version} Build ---"/>
<echo message="api.home=${api.home}"/>
<echo message="catalina.home=${catalina.home}"/>
<echo message="jasper.home=${jasper.home}"/>
<echo message="jtc.home=${jtc.home}"/>
<ant dir="${catalina.home}" target="flags.display"/>
</target>
<!-- ===================== DEPLOY: Create Directories =================== -->
<target name="init">
<mkdir dir="${tomcat.build}"/>
<mkdir dir="${tomcat.build}/classes" />
<mkdir dir="${tomcat.build}/server/lib" />
<mkdir dir="${tomcat.build}/common/lib" />
<uptodate property="servletapi.build.notrequired"
targetfile="${servlet-api.jar}">
<srcfiles dir="${api.home}/jsr154/src" includes="**" />
</uptodate>
<uptodate property="jspapi.build.notrequired"
targetfile="${jsp-api.jar}">
<srcfiles dir="${api.home}/jsr152/src" includes="**" />
</uptodate>
<uptodate property="tomcatutil.build.notrequired"
targetfile="${tomcat.build}/server/lib/tomcat-util.jar">
<srcfiles dir="${jtc.home}/util/java" includes="**" />
</uptodate>
<uptodate property="tomcatjk.build.notrequired"
targetfile="${tomcat.build}/server/lib/tomcat-ajp.jar">
<srcfiles dir="${jtc.home}/jk/java" includes="**" />
</uptodate>
<uptodate property="tomcatcoyote.build.notrequired"
targetfile="${tomcat.build}/server/lib/tomcat-coyote.jar">
<srcfiles dir="${jtc.home}/coyote/src" includes="**" />
</uptodate>
<uptodate property="tomcathttp11.build.notrequired"
targetfile="${tomcat.build}/server/lib/tomcat-http11.jar">
<srcfiles dir="${jtc.home}/http11/src" includes="**" />
</uptodate>
<uptodate property="admin.build.notrequired"
targetfile="${tomcat.build}/server/webapps/admin/WEB-INF/web.xml">
<srcfiles dir="${catalina.home}/webapps/admin" includes="**" />
</uptodate>
</target>
<!-- ====================== DEPLOY: Copy Static Files =================== -->
<target name="deploy-static" depends="init">
<copy file="${jsp-api.jar}" todir="${tomcat.build}/common/lib"/>
<copy file="${servlet-api.jar}" todir="${tomcat.build}/common/lib"/>
<copy file="${commons-el.jar}"
todir="${tomcat.build}/common/lib"/>
<copy todir="${tomcat.build}/bin"
file="${commons-logging-api.jar}" />
<copy todir="${tomcat.build}/server/lib" file="${commons-modeler.jar}" />
<copy tofile="${tomcat.build}/bin/tomcat-native.tar.gz"
file="${tomcat-native.tar.gz}" />
<copy tofile="${tomcat.build}/bin/commons-daemon-native.tar.gz"
file="${commons-daemon.native.src.tgz}" />
<copy tofile="${tomcat.build}/bin/commons-daemon.jar" file="${commons-daemon.jar}" />
<!-- <copy todir="${tomcat.build}/common/lib" file="${ant.jar}"/>
<copy todir="${tomcat.build}/common/lib" file="${ant-launcher.jar}"/> -->
<copy todir="${tomcat.build}/common/lib" file="${jasper-compiler-jdt.jar}"/>
</target>
<!-- ====================== Build all components =================== -->
<target name="build-servletapi" unless="servletapi.build.notrequired" description="Build servlet API">
<echo>========== Building: ${servlet-api.jar}</echo>
<ant dir="${api.home}/jsr154" target="dist" >
<property name="servlet-api.dist" value="${servlet-api.home}" />
</ant>
</target>
<target name="build-jspapi" unless="jspapi.build.notrequired" description="Build JSP API">
<echo>========== Building: ${jsp-api.jar}</echo>
<ant dir="${api.home}/jsr152" target="dist">
<property name="jsp-api.dist" value="${jsp-api.home}" />
</ant>
</target>
<target name="build-tomcatutil" unless="tomcatutil.build.notrequired" description="Build j-t-c/util">
<echo>========== Building: tomcat-util to ${tomcat.build} </echo>
<ant dir="${jtc.home}/util" target="build-main">
<property name="jmx.jar" value="${jmx.jar}" />
<property name="puretls.jar" value="${puretls.jar}" />
<property name="jsse.lib" value="${jsse.lib}" />
<property name="tomcat-util.build" value="${tomcat.build}" />
<property name="tomcat-util.lib" value="${tomcat.build}/server/lib" />
</ant>
</target>
<target name="build-tomcatjk" unless="tomcatjk.build.notrequired"
description="build j-t-c/jk" >
<echo>========== Building: tomcat-jk ${catalina.build} </echo>
<ant dir="${jtc.home}/jk" target="jkjava">
<property name="tomcat5.home" value="${catalina.build}"/>
<property name="tomcat5.detect" value="true"/>
<property name="commons-logging.jar" value="${commons-logging.jar}"/>
<property name="jmx.jar" value="${jmx.jar}"/>
<property name="jmx.detect" value="true"/>
<property name="jk.build" value="${tomcat.build}"/>
<property name="tomcat-coyote.jar" value="${tomcat.build}/server/lib/tomcat-coyote.jar" />
<!--
<property name="tomcat-coyote.jar" value="${tomcat.build}/server/lib/tomcat-coyote.jar" />
<property name="tomcat-jk2.jar" value="${tomcat.build}/server/lib/tomcat-ajp.jar" />
<property name="tomcat-jk.jar" value="${tomcat.build}/server/lib/tomcat-jk.jar" />
<property name="tomcat-jkconfig.jar" value="${tomcat.build}/server/lib/jkconfig.jar" />
<property name="tomcat-jkshm.jar" value="${tomcat.build}/server/lib/jkshm.jar" />
<property name="tomcat-jni.jar" value="${tomcat.build}/server/lib/tomcat-jni.jar" />
-->
</ant>
<!--
<copy file="${jtc.home}/jk/conf/jk2.properties"
todir="${tomcat.build}/conf" />
-->
<!-- Protocol handlers - AJP -->
<jar jarfile="${tomcat.build}/server/lib/tomcat-ajp.jar">
<fileset dir="${tomcat.build}/classes">
<include name="org/apache/coyote/ajp/**" />
<include name="org/apache/jk/**" />
<exclude name="org/apache/jk/ant/**" />
<!-- Javadoc and i18n exclusions -->
<exclude name="**/package.html" />
<exclude name="**/LocalStrings_*" />
</fileset>
</jar>
</target>
<target name="build-tomcatcoyote"
unless="tomcatcoyote.build.notrequired"
depends="init" description="Build j-t-c/coyote">
<echo>========== Building: tomcat-coyote </echo>
<ant dir="${jtc.home}/coyote" target="compile.tomcat5">
<property name="catalina.home" value="${tomcat.build}"/>
<property name="build.home" value="${tomcat.build}"/>
<property name="tomcat5.detect" value="true"/>
<property name="tomcat-util.jar"
value="${tomcat.build}/server/lib/tomcat-util.jar"/>
<property name="servlet.jar" value="${servlet-api.jar}"/>
</ant>
<!-- Coyote API -->
<delete file="${tomcat.build}/server/lib/tomcat-coyote.jar" />
<jar jarfile="${tomcat.build}/server/lib/tomcat-coyote.jar">
<fileset dir="${tomcat.build}/classes">
<include name="org/apache/coyote/*" />
<include name="org/apache/coyote/memory/*" />
<!-- Javadoc and i18n exclusions -->
<exclude name="**/package.html" />
<exclude name="**/LocalStrings_*" />
</fileset>
</jar>
</target>
<target name="build-tomcathttp11"
unless="tomcathttp11.build.notrequired"
depends="init" description="builds j-t-c/http11">
<echo>========== Building: tomcat-http11 </echo>
<ant dir="${jtc.home}/http11" target="compile-only">
<property name="build.home" value="${tomcat.build}"/>
<!--
<property name="tomcat-http11.jar" value="${tomcat.build}/server/lib/tomcat-http11.jar"/>
<property name="tomcat-coyote.jar" value="${tomcat.build}/server/lib/tomcat-coyote.jar" />
-->
<property name="commons-logging.jar" value="${commons-logging.jar}"/>
</ant>
<!-- Protocol handlers - HTTP -->
<jar jarfile="${tomcat.build}/server/lib/tomcat-http.jar">
<fileset dir="${tomcat.build}/classes">
<include name="org/apache/coyote/http11/**" />
<!-- Javadoc and i18n exclusions -->
<exclude name="**/package.html" />
<exclude name="**/LocalStrings_*" />
</fileset>
</jar>
</target>
<target name="build-tomcatapr"
unless="tomcatapr.build.notrequired"
depends="init" description="builds j-t-c/apr">
<echo>========== Building: tomcat-apr </echo>
<ant dir="${jtc.home}/jni" target="compile-only">
<property name="build.home" value="${tomcat.build}"/>
<!--
<property name="tomcat-http11.jar" value="${tomcat.build}/server/lib/tomcat-http11.jar"/>
<property name="tomcat-coyote.jar" value="${tomcat.build}/server/lib/tomcat-coyote.jar" />
-->
<property name="commons-logging.jar" value="${commons-logging.jar}"/>
</ant>
<!-- APR -->
<jar jarfile="${tomcat.build}/server/lib/tomcat-apr.jar">
<fileset dir="${tomcat.build}/classes">
<include name="org/apache/tomcat/jni/**" />
<!-- Javadoc and i18n exclusions -->
<exclude name="**/package.html" />
<exclude name="**/LocalStrings_*" />
</fileset>
</jar>
</target>
<target name="build-juli"
unless="tomcatjuli.build.notrequired"
depends="init" description="builds j-t-c/juli">
<echo>========== Building: tomcat-juli </echo>
<ant dir="${jtc.home}/juli" target="compile-only">
<property name="build.home" value="${tomcat.build}"/>
</ant>
<!-- Java.util.logging Implementation -->
<jar jarfile="${tomcat.build}/bin/tomcat-juli.jar">
<fileset dir="${tomcat.build}/classes">
<include name="org/apache/juli/**" />
<!-- Javadoc and i18n exclusions -->
<exclude name="**/package.html" />
<exclude name="**/LocalStrings_*" />
</fileset>
</jar>
<copy file="${basedir}/resources/logging.properties"
todir="${tomcat.build}/conf" />
</target>
<target name="build-jasper"
unless="jasper.build.notrequired"
depends="init" description="build jasper">
<echo>========== Building: jasper </echo>
<ant dir="${jasper.home}" target="build-only">
<property name="jasper.classes" value="${tomcat.build}/classes"/>
<property name="jasper.build" value="${tomcat.build}"/>
<property name="jasper-compiler.jar" value="${tomcat.build}/common/lib/jasper-compiler.jar"/>
<property name="jasper-runtime.jar" value="${tomcat.build}/common/lib/jasper-runtime.jar"/>
<property name="catalina.home" value="${tomcat.build}"/>
<property name="commons-el.jar" location="${commons-el.jar}" />
</ant>
</target>
<target name="build-admin" unless="admin.build.notrequired"
depends="init" description="build admin" >
<echo>========== Building: admin </echo>
<ant dir="${catalina.home}/webapps/admin" target="build-main">
<property name="webapps.build" value="${tomcat.build}/server/webapps" />
<property name="classes.dir" value="${tomcat.build}/classes" />
<property name="tomcat-util.jar" value="${tomcat.build}/server/lib/tomcat-util.jar"/>
<property name="catalina.deploy" value="${tomcat.build}" />
<property name="flags.hide" value="true" />
</ant>
<touch file="${tomcat.build}/server/webapps/admin/WEB-INF/web.xml" />
</target>
<target name="build-webapps-precompile"
depends="init" description="Precompile webapps" >
<!-- JSPC -->
<property name="admin.base" location="${tomcat.build}/server/webapps/admin" />
<property name="ROOT.base" location="${tomcat.build}/webapps/ROOT" />
<property name="jsp-examples.base" location="${tomcat.build}/webapps/jsp-examples" />
<mkdir dir="${admin.base}/WEB-INF/src/admin" />
<mkdir dir="${ROOT.base}/WEB-INF/src" />
<mkdir dir="${ROOT.base}/WEB-INF/classes" />
<mkdir dir="${jsp-examples.base}/WEB-INF/src" />
<path id="jspc.classpath">
<pathelement location="${java.home}/../lib/tools.jar"/>
<pathelement location="${commons-logging.jar}"/>
<pathelement location="${tomcat.build}/server/classes"/>
<fileset dir="${tomcat.build}/server/lib">
<include name="*.jar"/>
</fileset>
<pathelement location="${tomcat.build}/common/classes"/>
<fileset dir="${tomcat.build}/common/lib">
<include name="*.jar"/>
</fileset>
<pathelement location="${tomcat.build}/common/classes"/>
<fileset dir="${tomcat.build}/common/endorsed">
<include name="*.jar"/>
</fileset>
<fileset dir="${tomcat.build}/common/lib">
<include name="*.jar"/>
</fileset>
</path>
<taskdef classname="org.apache.jasper.JspC" name="jasper2" >
<classpath refid="jspc.classpath"/>
</taskdef>
<jasper2
compile="false"
validateXml="false"
uriroot="${ROOT.base}"
webXmlFragment="${ROOT.base}/WEB-INF/generated_web.xml"
addWebXmlMappings="true"
outputDir="${ROOT.base}/WEB-INF/src"
javaEncoding="UTF-8" />
<jasper2
compile="false"
validateXml="false"
uriroot="${jsp-examples.base}"
webXmlFragment="${jsp-examples.base}/WEB-INF/generated_web.xml"
addWebXmlMappings="true"
outputDir="${jsp-examples.base}/WEB-INF/src"
javaEncoding="UTF-8" />
<jasper2
package="admin"
compile="false"
validateXml="false"
uriroot="${admin.base}"
webXmlFragment="${admin.base}/WEB-INF/generated_web.xml"
addWebXmlMappings="true"
outputDir="${admin.base}/WEB-INF/src/admin"
javaEncoding="UTF-8" />
<javac destdir="${ROOT.base}/WEB-INF/classes"
optimize="off"
debug="${compile.debug}"
deprecation="${compile.deprecation}"
source="${compile.source}"
failonerror="false"
srcdir="${ROOT.base}/WEB-INF/src"
excludes="**/*.smap"
encoding="UTF-8">
<classpath>
<pathelement location="${java.home}/../lib/tools.jar"/>
<fileset dir="${tomcat.build}/server/lib">
<include name="*.jar"/>
</fileset>
<fileset dir="${tomcat.build}/common/lib">
<include name="*.jar"/>
</fileset>
<pathelement location="${tomcat.build}/classes"/>
</classpath>
<include name="**" />
</javac>
<mkdir dir="${jsp-examples.base}/WEB-INF/src/tags"/>
<copy todir="${jsp-examples.base}/WEB-INF/classes">
<fileset dir="${jsp-examples.base}/WEB-INF/src">
<include name="**/*.class" />
</fileset>
</copy>
<javac destdir="${jsp-examples.base}/WEB-INF/classes"
optimize="off"
debug="${compile.debug}"
deprecation="${compile.deprecation}"
source="${compile.source}"
failonerror="false"
srcdir="${jsp-examples.base}/WEB-INF/src"
excludes="**/*.smap"
encoding="UTF-8">
<classpath>
<pathelement location="${java.home}/../lib/tools.jar"/>
<fileset dir="${tomcat.build}/server/lib">
<include name="*.jar"/>
</fileset>
<fileset dir="${jsp-examples.base}/WEB-INF/lib">
<include name="*.jar"/>
</fileset>
<fileset dir="${tomcat.build}/common/lib">
<include name="*.jar"/>
</fileset>
<pathelement location="${tomcat.build}/classes"/>
<pathelement location="${jsp-examples.base}/WEB-INF/classes"/>
</classpath>
<include name="**" />
<exclude name="tags/**" />
</javac>
<javac destdir="${admin.base}/WEB-INF/classes"
optimize="off"
debug="${compile.debug}"
deprecation="${compile.deprecation}"
source="${compile.source}"
failonerror="false"
srcdir="${admin.base}/WEB-INF/src"
excludes="**/*.smap"
encoding="UTF-8">
<classpath>
<pathelement location="${java.home}/../lib/tools.jar"/>
<fileset dir="${tomcat.build}/server/lib">
<include name="*.jar"/>
</fileset>
<fileset dir="${admin.base}/WEB-INF/lib">
<include name="*.jar"/>
</fileset>
<fileset dir="${tomcat.build}/common/lib">
<include name="*.jar"/>
</fileset>
<pathelement location="${tomcat.build}/classes"/>
</classpath>
<include name="admin/**" />
</javac>
</target>
<target name="build-catalina" depends="init"
description="Builds catalina">
<echo>========== Building: catalina in ${tomcat.build}</echo>
<ant dir="${catalina.home}/catalina" target="build-static">
<property name="catalina.build" value="${tomcat.build}" />
<property name="classes.dir" value="${tomcat.build}/classes" />
<property name="tomcat-util.jar"
value="${tomcat.build}/server/lib/tomcat-util.jar"/>
<property name="catalina.deploy" value="${tomcat.build}" />
<property name="flags.hide" value="true" />
</ant>
<ant dir="${catalina.home}/catalina" target="catalina-jars">
<!-- in-place building -->
<property name="tomcat-coyote.jar" value="${tomcat.build}/server/lib/tomcat-coyote.jar" />
<property name="catalina.build" value="${tomcat.build}" />
<property name="classes.dir" value="${tomcat.build}/classes" />
<property name="tomcat-util.jar"
value="${tomcat.build}/server/lib/tomcat-util.jar"/>
<property name="catalina.deploy" value="${tomcat.build}" />
<property name="flags.hide" value="true" />
</ant>
<ant dir="${catalina.home}/catalina" target="deploy-static-only">
<property name="catalina.build" value="${tomcat.build}" />
<property name="classes.dir" value="${tomcat.build}/classes" />
<property name="tomcat-util.jar"
value="${tomcat.build}/server/lib/tomcat-util.jar"/>
<property name="catalina.deploy" value="${tomcat.build}" />
<property name="flags.hide" value="false" />
</ant>
<ant dir="${catalina.home}/modules" target="build">
<property name="catalina.build" value="${tomcat.build}" />
<property name="cluster.dist" value="${tomcat.build}/server/lib" />
<property name="config.dist" value="${tomcat.build}/server/lib" />
<property name="catalina.deploy" value="${tomcat.build}" />
<property name="flags.hide" value="true" />
</ant>
</target>
<target name="build" depends="init"
description="Builds all components">
<antcall target="build-tomcatapr"/>
<antcall target="build-tomcatutil"/>
<antcall target="build-tomcatcoyote"/>
<antcall target="build-tomcathttp11"/>
<antcall target="build-catalina"/>
<antcall target="build-tomcatjk"/>
<antcall target="build-juli"/>
<antcall target="build-jasper"/>
<antcall target="build-i18n"/>
<!-- Correct permissions and line endings on "bin" scripts -->
<fixcrlf srcdir="${tomcat.build}/bin" includes="*.sh" eol="lf"
encoding="ISO-8859-1" fixlast="false" />
<fixcrlf srcdir="${tomcat.build}/bin" includes="*.bat" eol="crlf"
encoding="ISO-8859-1" fixlast="false" />
<chmod dir="${tomcat.build}/bin" includes="*.sh" perm="+x"/>
</target>
<target name="build-i18n">
<!-- i18n JARs -->
<jar jarfile="${tomcat.build}/common/i18n/tomcat-i18n-es.jar">
<fileset dir="${tomcat.build}/classes">
<include name="**/LocalStrings_es.properties" />
<exclude name="**/tomcat4/**" />
</fileset>
</jar>
<jar jarfile="${tomcat.build}/common/i18n/tomcat-i18n-fr.jar">
<fileset dir="${tomcat.build}/classes">
<include name="**/LocalStrings_fr.properties" />
<exclude name="**/tomcat4/**" />
</fileset>
</jar>
<jar jarfile="${tomcat.build}/common/i18n/tomcat-i18n-ja.jar">
<fileset dir="${tomcat.build}/classes">
<include name="**/LocalStrings_ja.properties" />
<exclude name="**/tomcat4/**" />
</fileset>
</jar>
<!-- Build baseline _en bundle to ease -->
<copy todir="${tomcat.build}/classes" includeemptydirs="false">
<fileset dir="${tomcat.build}/classes">
<include name="**/LocalStrings.properties"/>
</fileset>
<mapper type="glob" from="*.properties" to="*_en.properties"/>
</copy>
<jar jarfile="${tomcat.build}/common/i18n/tomcat-i18n-en.jar">
<fileset dir="${tomcat.build}/classes">
<include name="**/LocalStrings_en.properties" />
<exclude name="**/tomcat4/**" />
</fileset>
</jar>
</target>
<!-- ====================== Build dependent code =================== -->
<target name="build-all" depends="init,deploy-static,build,build-webapps,compat,deployer"
description="build tomcat, webapps, embed, compat, deployer" />
<target name="build-depends" depends="init"
description="Builds various dependent components - APIs, dbcp, jdt">
<antcall target="build-servletapi"/>
<antcall target="build-jspapi"/>
<!--<antcall target="downloadgz">
<param name="sourcefile" value="${commons-collections-src.loc}"/>
<param name="destfile" value="${tomcat-dbcp.jar}" />
</antcall>
-->
<antcall target="downloadgz">
<param name="sourcefile" value="${commons-pool-src.loc}"/>
<param name="destfile" value="${commons-pool.home}/build.xml" />
</antcall>
<antcall target="downloadgz">
<param name="sourcefile" value="${commons-dbcp-src.loc}"/>
<param name="destfile" value="${commons-dbcp.home}/build.xml" />
</antcall>
<antcall target="build-tomcat-dbcp" />
<antcall target="downloadzip">
<param name="sourcefile" value="${jdt.loc}"/>
<param name="destfile" value="${jdt.jar}"/>
<param name="destdir" value="${base.path}"/>
</antcall>
<antcall target="build-jasper-compiler-jdt" />
</target>
<target name="build-tomcat-dbcp">
<mkdir dir="${tomcat-dbcp.home}"/>
<antcall target="-build-tomcat-dbcp">
<param name="basedir" value="${tomcat-dbcp.home}" />
</antcall>
</target>
<target name="-build-tomcat-dbcp">
<copy todir="${tomcat-dbcp.home}">
<!-- <fileset dir="${commons-collections.home}" >
<include name="**/collections/CursorableLinkedList.java" />
<include name="**/collections/KeyValue.java" />
<include name="**/collections/LRUMap.java" />
<include name="**/collections/SequencedHashMap.java" />
</fileset>
-->
<fileset dir="${commons-pool.home}">
<include name="**/*.java" />
<exclude name="**/test/**" />
</fileset>
<fileset dir="${commons-dbcp.home}">
<include name="**/*.java" />
<exclude name="**/test/**" />
<exclude name="**/managed/**" />
</fileset>
</copy>
<!-- <replace dir="${tomcat-dbcp.home}/src/java/org/apache/commons"
encoding="ISO-8859-1">
<replacefilter token="return UnmodifiableList.decorate(l);"
value="return l;" />
<replacefilter token="import org.apache.commons.collections.list.UnmodifiableList;"
value=" " />
</replace>
-->
<replace dir="${tomcat-dbcp.home}/src/java/org/apache/commons" encoding="ISO-8859-1">
<replacefilter token="org.apache.commons"
value="org.apache.tomcat.dbcp" />
</replace>
<mkdir dir="${tomcat-dbcp.home}/src/java/org/apache/tomcat/dbcp" />
<move todir="${tomcat-dbcp.home}/src/java/org/apache/tomcat/dbcp">
<fileset dir="${tomcat-dbcp.home}/src/java/org/apache/commons" />
</move>
<mkdir dir="${tomcat-dbcp.home}/classes"/>
<javac destdir="classes"
optimize="off"
debug="${compile.debug}"
deprecation="${compile.deprecation}"
source="${compile.source}"
sourcepath="${tomcat-dbcp.home}/src/java"
srcdir="src/java"
encoding="ISO-8859-1">
<include name="**" />
</javac>
<jar jarfile="${tomcat-dbcp.jar}">
<fileset dir="${tomcat-dbcp.home}/classes">
<include name="**/*.class" />
<include name="**/*.properties" />
</fileset>
</jar>
</target>
<target name="build-jasper-compiler-jdt">
<mkdir dir="${jasper-compiler-jdt.home}"/>
<antcall target="-build-jasper-compiler-jdt">
<param name="basedir" value="${jasper-compiler-jdt.home}" />
</antcall>
</target>
<target name="-build-jasper-compiler-jdt">
<unjar src="${jdt.jar}" dest="${jasper-compiler-jdt.home}" />
<jar destfile="${jasper-compiler-jdt.jar}">
<fileset dir="${jasper-compiler-jdt.home}">
<include name="org/eclipse/jdt/core/compiler/**"/>
<include name="org/eclipse/jdt/internal/compiler/**"/>
<include name="org/eclipse/jdt/internal/core/util/CommentRecorder*"/>
</fileset>
</jar>
</target>
<target name="build-webapps" depends="init"
description="build webapps">
<echo>========== Building: webapps </echo>
<mkdir dir="${tomcat.build}/webapps" />
<mkdir dir="${tomcat.build}/server/webapps" />
<!-- The build files are far too difficult to hack - just build it and copy -->
<ant dir="${api.home}/jsr154" target="dist">
</ant>
<ant dir="${api.home}/jsr152" target="dist">
</ant>
<mkdir dir="${tomcat.build}/webapps/servlets-examples"/>
<copy todir="${tomcat.build}/webapps/servlets-examples">
<fileset dir="${api.home}/jsr154/build/examples" includes="**"/>
</copy>
<mkdir dir="${tomcat.build}/webapps/jsp-examples"/>
<copy todir="${tomcat.build}/webapps/jsp-examples">
<fileset dir="${api.home}/jsr152/build/examples">
<exclude name="WEB-INF/tagPlugins.xml" />
</fileset>
</copy>
<ant dir="${catalina.home}/webapps/ROOT" target="build-main">
<property name="webapps.build" value="${tomcat.build}/webapps" />
<property name="classes.dir" value="${tomcat.build}/classes" />
<property name="tomcat-util.jar" value="${tomcat.build}/server/lib/tomcat-util.jar"/>
<property name="catalina.deploy" value="${tomcat.build}" />
<property name="flags.hide" value="true" />
</ant>
<ant dir="${catalina.home}/webapps/docs" target="build-main">
<property name="webapps.build" value="${tomcat.build}/webapps" />
<property name="classes.dir" value="${tomcat.build}/classes" />
<property name="tomcat-util.jar" value="${tomcat.build}/server/lib/tomcat-util.jar"/>
<property name="catalina.deploy" value="${tomcat.build}" />
<property name="flags.hide" value="true" />
</ant>
<antcall target="build-admin" />
<ant dir="${catalina.home}/webapps/manager" target="build-main">
<property name="webapps.build" value="${tomcat.build}/server/webapps" />
<property name="classes.dir" value="${tomcat.build}/classes" />
<property name="tomcat-util.jar" value="${tomcat.build}/server/lib/tomcat-util.jar"/>
<property name="catalina.deploy" value="${tomcat.build}" />
<property name="flags.hide" value="true" />
</ant>
<ant dir="${catalina.home}/webapps/host-manager" target="build-main">
<property name="webapps.build" value="${tomcat.build}/server/webapps" />
<property name="classes.dir" value="${tomcat.build}/classes" />
<property name="tomcat-util.jar" value="${tomcat.build}/server/lib/tomcat-util.jar"/>
<property name="catalina.deploy" value="${tomcat.build}" />
<property name="flags.hide" value="true" />
</ant>
<ant dir="${catalina.home}/webapps/balancer" target="build-main">
<property name="webapps.build" value="${tomcat.build}/webapps" />
<property name="classes.dir" value="${tomcat.build}/classes" />
<property name="tomcat-util.jar" value="${tomcat.build}/server/lib/tomcat-util.jar"/>
<property name="catalina.deploy" value="${tomcat.build}" />
<property name="flags.hide" value="true" />
</ant>
<ant dir="${catalina.home}/webapps/webdav" target="build-main">
<property name="webapps.build" value="${tomcat.build}/webapps" />
</ant>
<!-- Precompiling and fixing webapps -->
<antcall target="build-webapps-precompile" />
<antcall target="fix-webapps" />
</target>
<target name="fix-webapps" depends="init" >
<!-- Extra build steps for webapps -->
<filter token="VERSION" value="${version}"/>
<!-- Add release notes to the root webapp -->
<copy file="${basedir}/RELEASE-NOTES"
tofile="${tomcat.build}/webapps/ROOT/RELEASE-NOTES.txt"
filtering="true" encoding="ISO-8859-1" />
<!-- Add documents to the tomcat-docs webapp -->
<copy file="${basedir}/resources/build.xml"
todir="${tomcat.build}/webapps/tomcat-docs" />
<copy file="./RELEASE-NOTES"
tofile="${tomcat.build}/webapps/tomcat-docs/RELEASE-NOTES.txt"
filtering="true" encoding="ISO-8859-1" />
<!-- Build JARs for webapps classes -->
<mkdir dir="${tomcat.build}/server/webapps/admin/WEB-INF/lib" />
<jar jarfile="${tomcat.build}/server/webapps/admin/WEB-INF/lib/catalina-admin.jar">
<fileset dir="${tomcat.build}/server/webapps/admin/WEB-INF/classes">
<include name="**/*.class" />
<include name="**/*.properties" />
</fileset>
</jar>
<mkdir dir="${tomcat.build}/server/webapps/manager/WEB-INF/lib" />
<jar jarfile="${tomcat.build}/server/webapps/manager/WEB-INF/lib/catalina-manager.jar">
<fileset dir="${tomcat.build}/server/webapps/manager/WEB-INF/classes">
<include name="**/*.class" />
<include name="**/*.properties" />
</fileset>
</jar>
<mkdir dir="${tomcat.build}/server/webapps/host-manager/WEB-INF/lib" />
<jar jarfile="${tomcat.build}/server/webapps/host-manager/WEB-INF/lib/catalina-host-manager.jar">
<fileset dir="${tomcat.build}/server/webapps/host-manager/WEB-INF/classes">
<include name="**/*.class" />
<include name="**/*.properties" />
</fileset>
</jar>
<mkdir dir="${tomcat.build}/webapps/balancer/WEB-INF/lib" />
<jar jarfile="${tomcat.build}/webapps/balancer/WEB-INF/lib/catalina-balancer.jar">
<fileset dir="${tomcat.build}/webapps/balancer/WEB-INF/classes">
<include name="**/*.class" />
<include name="**/*.properties" />
</fileset>
</jar>
<mkdir dir="${tomcat.build}/webapps/ROOT/WEB-INF/lib" />
<jar jarfile="${tomcat.build}/webapps/ROOT/WEB-INF/lib/catalina-root.jar">
<fileset dir="${tomcat.build}/webapps/ROOT/WEB-INF/classes">
<include name="**/*.class" />
<include name="**/*.properties" />
</fileset>
</jar>
<!-- Add XML declarations for admin, manager and balancer -->
<copy file="${tomcat.build}/server/webapps/manager/manager.xml"
todir="${tomcat.build}/conf/Catalina/localhost" />
<copy file="${tomcat.build}/server/webapps/host-manager/host-manager.xml"
todir="${tomcat.build}/conf/Catalina/localhost" />
<copy file="${tomcat.build}/server/webapps/admin/admin.xml"
todir="${tomcat.build}/conf/Catalina/localhost" />
</target>
<!-- ====================== Embed target =================== -->
<target name="embed" description="Create a set of jars for embedded tomcat" >
<!-- Generic libraries -->
<copy todir="${tomcat.embed}/lib" file="${commons-logging.jar}"/>
<copy todir="${tomcat.embed}/lib" file="${commons-modeler.jar}"/>
<!-- Connector -->
<copy todir="${tomcat.embed}/lib">
<fileset dir="${tomcat.build}/server/lib">
<!--<include name="tomcat-ajp.jar"/>-->
<include name="tomcat-coyote.jar"/>
<include name="tomcat-http.jar"/>
<include name="tomcat-util.jar"/>
</fileset>
</copy>
<!-- Servlet API implementation -->
<copy todir="${tomcat.embed}/lib">
<fileset dir="${tomcat.build}/common/lib">
<include name="naming-factory.jar"/>
<include name="servlet-api.jar"/>
<include name="naming-resources.jar"/>
</fileset>
<fileset dir="${tomcat.build}/server/lib">
<include name="catalina.jar"/>
<include name="catalina-optional.jar"/>
<include name="servlets-default.jar"/>
</fileset>
</copy>
<!-- JNDI extra
<copy todir="${tomcat.embed}/lib">
<fileset dir="${tomcat.build}/common/lib">
<include name="naming-factory.jar"/>
</fileset>
</copy>
-->
<!-- JSP runtime -->
<copy todir="${tomcat.embed}/lib">
<fileset dir="${tomcat.build}/common/lib">
<include name="commons-el.jar"/>
<include name="jsp-api.jar"/>
<include name="jasper-runtime.jar"/>
</fileset>
</copy>
<!-- JSP compiler - not needed for an minimal server if it
uses precompilation -->
<copy todir="${tomcat.embed}/lib">
<fileset dir="${tomcat.build}/common/lib">
<include name="jasper-compiler.jar"/>
<include name="jasper-compiler-jdt.jar"/>
</fileset>
</copy>
<copy tofile="${tomcat.embed}/build.xml" file="resources/mbeans/tomcat5-ant.xml" />
<!--
<copy tofile="${tomcat.embed}/tomcat5-mbeans.xml" file="resources/mbeans/tomcat5-mbeans.xml" />
<copy tofile="${tomcat.embed}/tomcat5-mlet.xml" file="resources/mbeans/tomcat5-mlet.xml" />
<copy tofile="${tomcat.embed}/tomcat5-service.xml" file="resources/mbeans/tomcat5-service.xml" />
-->
<mkdir dir="${tomcat.embed}/conf"/>
<delete file="${tomcat.embed}/conf/context.xml" />
<copy todir="${tomcat.embed}/conf">
<fileset dir="${tomcat.build}/conf">
<include name="context.xml"/>
<include name="tomcat-users.xml"/>
<include name="web.xml"/>
<!-- no longer needed
<include name="server.xml"/>
-->
</fileset>
</copy>
<replace file="${tomcat.embed}/conf/context.xml"
token="&lt;Context"
value="&lt;Context privileged='true'"
encoding="ISO-8859-1" />
<mkdir dir="${tomcat.embed}/webapps"/>
<copy todir="${tomcat.embed}/webapps" >
<fileset dir="${tomcat.dist}/webapps" includes="ROOT/**"/>
</copy>
<copy todir="${tomcat.embed}/webapps" >
<fileset dir="${tomcat.dist}/server/webapps" includes="manager/**"/>
</copy>
</target>
<!-- ====================== Deployer target =================== -->
<target name="deployer" description="Create the Tomcat deployer binary" >
<!-- Servlet and JSP -->
<copy todir="${tomcat.deployer}/lib">
<fileset dir="${tomcat.build}/common/lib">
<include name="commons-el.jar"/>
<include name="jsp-api.jar"/>
<include name="jasper-runtime.jar"/>
<include name="jasper-compiler.jar"/>
<include name="servlet-api.jar"/>
</fileset>
</copy>
<!-- Digester and dependencies -->
<copy todir="${tomcat.deployer}/lib"
file="${tomcat.build}/server/lib/catalina-ant.jar"/>
<copy todir="${tomcat.deployer}/lib" file="${commons-logging.jar}"/>
<jar jarfile="${tomcat.deployer}/lib/catalina-deployer.jar">
<fileset dir="${tomcat.build}/classes">
<include name="org/apache/catalina/startup/DigesterFactory.class" />
<include name="org/apache/catalina/util/SchemaResolver.class" />
<include name="org/apache/catalina/util/StringManager.class" />
<include name="org/apache/tomcat/util/*" />
<include name="org/apache/tomcat/util/digester/*" />
<exclude name="**/package.html" />
<exclude name="**/LocalStrings_*" />
</fileset>
</jar>
<!-- Main build script -->
<copy todir="${tomcat.deployer}">
<fileset dir="${basedir}/resources/deployer" />
</copy>
<!-- Copy deployer documentation -->
<copy todir="${tomcat.deployer}">
<fileset dir="${tomcat.build}/webapps/tomcat-docs">
<include name="images/jakarta-logo.gif" />
<include name="images/tomcat.gif" />
</fileset>
</copy>
<copy tofile="${tomcat.deployer}/docs/manual.html"
file="${tomcat.build}/webapps/tomcat-docs/printer/deployer-howto.html" />
</target>
<!-- ====================== Compat target =================== -->
<target name="compat" description="Create compatibility binaries for JREs before 1.5" >
<copy todir="${tomcat.compat}/common/endorsed" file="${xercesImpl.jar}"/>
<copy todir="${tomcat.compat}/common/endorsed" file="${xml-apis.jar}"/>
<copy tofile="${tomcat.compat}/bin/jmx.jar" file="${jmx.jar}"/>
</target>
<!-- ====================== DEPLOY: Deploy Components =================== -->
<target name="deploy" depends="deploy-static,build-all,build-webapps"
description="Build and deploy all components" />
<target name="deploy.old" depends="deploy-static">
<echo>Target: Modeler - Dist ...</echo>
<ant dir="${commons-modeler.home}" target="dist"/>
<echo>Target: Catalina - Deploy ...</echo>
<ant dir="${catalina.home}" target="deploy"/>
<!--
<antcall target="build-tomcat-coyote"/>
<antcall target="build-tomcat-jk"/>
<antcall target="build-tomcat-http11"/>
<ant dir="${catalina.home}" target="deploy-catalina"/>
-->
<copy todir="${tomcat.build}">
<fileset dir="${catalina.home}/build"/>
</copy>
<filter token="VERSION" value="${version}"/>
<antcall target="build-jasper"/>
<!-- Correct permissions and line endings on "bin" scripts -->
<fixcrlf srcdir="${tomcat.build}/bin" includes="*.sh" eol="lf"
encoding="ISO-8859-1" fixlast="false" />
<fixcrlf srcdir="${tomcat.build}/bin" includes="*.bat" eol="crlf"
encoding="ISO-8859-1" fixlast="false" />
<chmod dir="${tomcat.build}/bin" includes="*.sh" perm="+x"/>
<antcall target="fix-webapps"/>
<!-- Copy the examples webapps -->
<copy todir="${tomcat.build}/webapps/jsp-examples">
<fileset dir="${api.home}/jsr152/build/examples"/>
</copy>
<copy todir="${tomcat.build}/webapps/servlets-examples">
<fileset dir="${api.home}/jsr154/build/examples"/>
</copy>
<echo>Target: Webapps precompilation ...</echo>
<antcall target="build-admin"/>
<ant dir="." target="build-webapps-precompile" />
</target>
<!-- ====================== COMBO: Clean All Directories ================ -->
<target name="clean-depend"
description="Clean depend src components">
<delete dir="${tomcat-dbcp.home}"/>
<delete dir="${jasper-compiler-jdt.home}"/>
</target>
<target name="clean"
description="Clean all components">
<delete dir="${tomcat.build}"/>
<delete dir="${tomcat.embed}"/>
<delete dir="${tomcat.compat}"/>
<delete dir="${tomcat.deployer}"/>
<echo>Target: Servlet API - Clean ...</echo>
<ant dir="${api.home}/jsr154" target="clean"/>
<echo>Target: JSP API - Clean ...</echo>
<ant dir="${api.home}/jsr152" target="clean"/>
<echo>Target: Catalina - Clean ...</echo>
<ant dir="${catalina.home}" target="clean"/>
<echo>Target: Jasper - Clean ...</echo>
<ant dir="${jasper.home}" target="clean">
<property name="catalina.home" value="${tomcat.build}"/>
</ant>
<delete dir="${tomcat.dist}"/>
</target>
<!-- ======================= COMBO: Build All Components ================ -->
<target name="all"
description="Clean, build, and deploy all components">
<echo>Target: Servlet API - Dist ...</echo>
<ant dir="${api.home}/jsr154" target="dist"/>
<echo>Target: JSP API - Dist ...</echo>
<ant dir="${api.home}/jsr152" target="dist"/>
<echo>Target: Catalina - All ...</echo>
<ant dir="${catalina.home}" target="all"/>
<echo>Target: Jasper - All ...</echo>
<ant dir="${jasper.home}" target="all">
<property name="catalina.home" value="${tomcat.build}"/>
</ant>
</target>
<!-- ======================= COMBO: Test All Components ================= -->
<target name="test"
description="Unit tests on all components">
<echo>Target: Catalina - Test ...</echo>
<ant dir="${catalina.home}" target="test"/>
<echo>Target: Jasper - Test ...</echo>
<ant dir="${jasper.home}" target="test">
<property name="catalina.home" value="${tomcat.build}"/>
</ant>
</target>
<!-- ======================= TESTER: Run Catalina Tester Tests=========== -->
<target name="dist-tester"
description="Build the Catalina tester">
<ant dir="${catalina.home}/tester" target="dist">
<property name="tester.deploy" value="${tomcat.build}"/>
</ant>
<ant dir="${catalina.home}/tester" target="deploy">
<property name="tester.deploy" value="${tomcat.build}"/>
</ant>
</target>
<target name="clean-tester"
description="Clean the Catalina tester">
<ant dir="${catalina.home}/tester" target="clean" />
</target>
<target name="run-tester"
description="Catalina Tests" depends="dist-tester">
<!-- For Java 1.4 -->
<copy file="${jmx.jar}" tofile="${tomcat.build}/bin/jmx.jar" />
<copy todir="${tomcat.build}/common/endorsed" file="${xercesImpl.jar}"/>
<copy todir="${tomcat.build}/common/endorsed" file="${xml-apis.jar}"/>
<parallel>
<java classname="LauncherBootstrap" fork="yes">
<arg value="-launchfile"/>
<arg value="catalina.xml"/>
<arg value="-verbose"/>
<arg value="catalina"/>
<arg value="start"/>
<classpath>
<pathelement path="${java.class.path}"/>
<pathelement path="${tomcat.build}/bin"/>
</classpath>
</java>
<sequential>
<!-- Let tomcat starts before starting Tester -->
<sleep seconds="${tester.delay}"/>
<ant dir="${catalina.home}/tester/dist/bin" antfile="tester.xml"
target="all">
<property name="catalina.home" value="${tomcat.build}"/>
</ant>
<java classname="LauncherBootstrap" fork="yes">
<arg value="-launchfile"/>
<arg value="catalina.xml"/>
<arg value="-verbose"/>
<arg value="catalina"/>
<arg value="stop"/>
<classpath>
<pathelement path="${java.class.path}"/>
<pathelement path="${tomcat.build}/bin"/>
</classpath>
</java>
</sequential>
</parallel>
</target>
<!-- ====================== DIST: Create Directories ==================== -->
<target name="dist-prepare">
<mkdir dir="${tomcat.dist}"/>
<mkdir dir="${tomcat.dist}/bin"/>
<mkdir dir="${tomcat.dist}/common"/>
<mkdir dir="${tomcat.dist}/common/classes"/>
<mkdir dir="${tomcat.dist}/common/endorsed"/>
<mkdir dir="${tomcat.dist}/common/lib"/>
<mkdir dir="${tomcat.dist}/conf"/>
<mkdir dir="${tomcat.dist}/logs"/>
<mkdir dir="${tomcat.dist}/server"/>
<mkdir dir="${tomcat.dist}/server/classes"/>
<mkdir dir="${tomcat.dist}/server/lib"/>
<mkdir dir="${tomcat.dist}/shared/classes"/>
<mkdir dir="${tomcat.dist}/shared/lib"/>
<mkdir dir="${tomcat.dist}/webapps"/>
<mkdir dir="${tomcat.dist}/work"/>
<mkdir dir="${tomcat.dist}/temp"/>
</target>
<!-- ====================== DIST: Copy Static Files ===================== -->
<target name="dist-static" depends="dist-prepare">
<filter token="VERSION" value="${version}"/>
<!-- Copy the top-level documentation files -->
<copy todir="${tomcat.dist}" filtering="true" encoding="ISO-8859-1">
<fileset dir=".">
<include name="INSTALLING.txt"/>
<include name="README.txt"/>
<include name="RELEASE*"/>
<include name="RUNNING.txt"/>
<include name="eclipse.classpath"/>
<include name="eclipse.project"/>
</fileset>
<fileset dir="..">
<include name="LICENSE"/>
<include name="NOTICE"/>
</fileset>
</copy>
<!-- Copy the contents of each "build" directory -->
<copy todir="${tomcat.dist}/bin">
<fileset dir="${tomcat.build}/bin">
<exclude name="catalina.xml"/>
<exclude name="commons-launcher.jar"/>
<exclude name="*-using-launcher.*"/>
<exclude name="LauncherBootstrap.class"/>
<exclude name="launcher.properties"/>
</fileset>
</copy>
<copy todir="${tomcat.dist}/common/classes">
<fileset dir="${tomcat.build}/common/classes" />
</copy>
<copy todir="${tomcat.dist}/common/endorsed">
<fileset dir="${tomcat.build}/common/endorsed" />
</copy>
<copy todir="${tomcat.dist}/common/i18n">
<fileset dir="${tomcat.build}/common/i18n" />
</copy>
<copy todir="${tomcat.dist}/common/lib">
<fileset dir="${tomcat.build}/common/lib" />
</copy>
<copy todir="${tomcat.dist}/conf">
<fileset dir="${tomcat.build}/conf">
<exclude name="MANIFEST.MF" />
<exclude name="jk2.manifest" />
<exclude name="jk2.properties" />
<exclude name="jkconf.ant.xml" />
<exclude name="jkconfig.manifest" />
<exclude name="shm.manifest" />
<exclude name="tomcat-jk2.manifest" />
<exclude name="uriworkermap.properties" />
<exclude name="workers2.properties" />
<exclude name="workers2.properties.minimal" />
<exclude name="workers.properties" />
<exclude name="workers.properties.minimal" />
</fileset>
</copy>
<copy todir="${tomcat.dist}/server/lib">
<fileset dir="${tomcat.build}/server/lib" />
</copy>
<copy todir="${tomcat.dist}/server/webapps">
<fileset dir="${tomcat.build}/server/webapps">
<exclude name="admin/**/*.jsp" />
<exclude name="admin/**/*.jspf" />
<exclude name="admin/WEB-INF/classes/**" />
<exclude name="admin/WEB-INF/src/**" />
<exclude name="manager/WEB-INF/classes/**" />
<exclude name="host-manager/WEB-INF/classes/**" />
</fileset>
</copy>
<!--
<copy todir="${tomcat.dist}/shared/lib">
<fileset dir="${tomcat.build}/shared/lib" />
</copy>
-->
<copy todir="${tomcat.dist}/webapps">
<fileset dir="${tomcat.build}/webapps">
<exclude name="**/balancer/WEB-INF/classes/**" />
<exclude name="**/ROOT/WEB-INF/classes/**" />
<exclude name="**/WEB-INF/src/**" />
</fileset>
</copy>
<!-- Bugzilla 37035: http://issues.apache.org/bugzilla/show_bug.cgi?id=37035 -->
<touch file="${tomcat.dist}/temp/bugzilla37035-safeToDelete.tmp" />
<!-- Windows binaries for each platform -->
<!-- 32 bit -->
<copy file="${commons-daemon.home}/windows/prunsrv.exe"
tofile="${tomcat.dist}/bin/tomcat${version.major}.exe" />
<copy file="${commons-daemon.home}/windows/prunmgr.exe"
tofile="${tomcat.dist}/bin/tomcat${version.major}w.exe" />
<!-- 64 bit amd -->
<copy file="${commons-daemon.home}/windows/amd64/prunsrv.exe"
tofile="${tomcat.dist}/bin/x64/tomcat${version.major}.exe" />
<!-- 64 bit ia -->
<copy file="${commons-daemon.home}/windows/ia64/prunsrv.exe"
tofile="${tomcat.dist}/bin/i64/tomcat${version.major}.exe" />
<!-- tc native -->
<copy file="${tomcat-native.home}/tcnative-1.dll.x86"
tofile="${tomcat.dist}/bin/tcnative-1.dll" />
<!-- tc native 64 bit for amd/emt -->
<copy file="${tomcat-native.home}/tcnative-1.dll.x64"
tofile="${tomcat.dist}/bin/x64/tcnative-1.dll" />
<!-- tc native 64 bit for ia -->
<copy file="${tomcat-native.home}/tcnative-1.dll.i64"
tofile="${tomcat.dist}/bin/i64/tcnative-1.dll" />
<!-- Correct permissions and line endings on "bin" scripts -->
<fixcrlf srcdir="${tomcat.dist}/bin" includes="*.sh" eol="lf"
encoding="ISO-8859-1" fixlast="false" />
<fixcrlf srcdir="${tomcat.dist}/bin" includes="*.bat" eol="crlf"
encoding="ISO-8859-1" fixlast="false" />
<chmod dir="${tomcat.dist}/bin" includes="*.sh" perm="+x"/>
</target>
<!-- ====================== DIST: Create Javadoc ======================== -->
<target name="dist-javadoc">
<!--
<ant dir="${catalina.home}" target="dist-javadoc"/>
<mkdir dir="${tomcat.dist}/webapps/tomcat-docs/catalina/docs/api"/>
<copy todir="${tomcat.dist}/webapps/tomcat-docs/catalina/docs/api">
<fileset dir="${catalina.build}/javadoc" />
</copy>
<ant dir="${jasper.home}" target="javadoc"/>
<mkdir dir="${tomcat.dist}/webapps/tomcat-docs/jasper/docs/api"/>
<copy todir="${tomcat.dist}/webapps/tomcat-docs/jasper/docs/api">
<fileset dir="${jasper.build}/javadoc" />
</copy>
-->
<mkdir dir="${tomcat.dist}/webapps/tomcat-docs/servletapi"/>
<copy todir="${tomcat.dist}/webapps/tomcat-docs/servletapi">
<fileset dir="${api.home}/jsr154/dist/docs/api" />
</copy>
<mkdir dir="${tomcat.dist}/webapps/tomcat-docs/jspapi"/>
<copy todir="${tomcat.dist}/webapps/tomcat-docs/jspapi">
<fileset dir="${api.home}/jsr152/dist/docs/api" />
</copy>
</target>
<!-- ====================== DIST: Create Sources ======================== -->
<target name="dist-source">
<mkdir dir="${tomcat.dist}/src"/>
<mkdir dir="${tomcat.dist}/src/${api.project}"/>
<mkdir dir="${tomcat.dist}/src/${tomcat.project}"/>
<mkdir dir="${tomcat.dist}/src/${catalina.project}"/>
<mkdir dir="${tomcat.dist}/src/${jtc.project}"/>
<mkdir dir="${tomcat.dist}/src/${jasper.project}"/>
<!-- Main build file -->
<copy todir="${tomcat.dist}/src">
<fileset dir="${basedir}/resources">
<include name="build.xml" />
</fileset>
<fileset dir="..">
<include name="LICENSE" />
<include name="NOTICE" />
<include name="KEYS" />
<include name="eclipse.classpath" />
<include name="eclipse.project" />
</fileset>
</copy>
<!-- tomcat-5 source -->
<copy todir="${tomcat.dist}/src/${tomcat.project}">
<fileset dir="${basedir}">
<exclude name="bin/**"/>
<exclude name="build/**"/>
<exclude name="dist/**"/>
<exclude name="release/**"/>
<exclude name="compat/**"/>
<exclude name="deployer/**"/>
<exclude name="embed/**"/>
<exclude name="build.properties"/>
</fileset>
</copy>
<!-- servletapi-5 source -->
<copy todir="${tomcat.dist}/src/${api.project}">
<fileset dir="${api.home}">
<include name="jsr154/**"/>
<include name="jsr152/**"/>
<exclude name="**/build/**"/>
<exclude name="**/dist/**"/>
<exclude name="build.properties"/>
</fileset>
</copy>
<!-- tomcat container source -->
<copy todir="${tomcat.dist}/src/${catalina.project}">
<fileset dir="${catalina.home}">
<exclude name="bin/**"/>
<exclude name="**/build/**"/>
<exclude name="**/dist/**"/>
</fileset>
</copy>
<copy todir="${tomcat.dist}/src/${catalina.project}/modules/groupcom/build">
<fileset dir="${catalina.home}/modules/groupcom/build" />
</copy>
<!-- tomcat jasper source -->
<copy todir="${tomcat.dist}/src/${jasper.project}">
<fileset dir="${jasper.home}">
<exclude name="bin/**"/>
<exclude name="**/build/**"/>
<exclude name="**/dist/**"/>
</fileset>
</copy>
<!-- tomcat connectors source -->
<copy todir="${tomcat.dist}/src/${jtc.project}">
<fileset dir="${jtc.home}">
<exclude name="bin/**"/>
<exclude name="coyote/build/**"/>
<exclude name="http11/build/**"/>
<exclude name="jk/build/**"/>
<exclude name="util/build/**"/>
<exclude name="webapp/**"/>
<exclude name="lib/**"/>
<exclude name="build.properties"/>
</fileset>
</copy>
</target>
<!-- ====================== DIST: Create Archives ======================= -->
<target name="dist" depends="deploy,dist-static,dist-javadoc,embed"
description="Create binary distribution">
</target>
<!-- ================= DIST: Create Windows Installer =================== -->
<target name="installer"
description="Create Windows installer" if="execute.installer">
<echo message="Builds a Windows installer based on Nullsoft Installer"/>
<copy todir="${tomcat.dist}">
<fileset dir="resources" />
</copy>
<copy file="${nsis.installoptions.dll}" todir="${tomcat.dist}" />
<copy file="${nsis.nsexec.dll}" todir="${tomcat.dist}" />
<copy file="${nsis.nsisdl.dll}" todir="${tomcat.dist}" />
<filter token="VERSION" value="${version}"/>
<filter token="VERSION_NUMBER" value="${version.number}"/>
<filter token="VERSION_MAJOR" value="${version.major}"/>
<filter token="VERSION_MAJOR_MINOR" value="${version.major.minor}"/>
<copy file="tomcat.nsi" tofile="${tomcat.dist}/tomcat.nsi"
filtering="true" encoding="ISO-8859-1" />
<exec dir="${tomcat.dist}" executable="${nsis.exe}">
<arg value="/DNSISDIR=${nsis.home}" />
<arg value="tomcat.nsi" />
</exec>
<move file="${tomcat.dist}/tomcat-installer.exe" tofile="${tomcat.release}/v${version}/bin/${final.name}.exe" />
<antcall target="md5sum">
<param name="file" value="${tomcat.release}/v${version}/bin/${final.name}.exe" />
</antcall>
</target>
<!-- ==================== RELEASE: Create Release ======================= -->
<target name="release" depends="clean,dist,dist-source,prepare-release,installer,package-zip,package-tgz,package-embed-zip,package-embed-tgz,package-deployer-zip,package-deployer-tgz,package-compat-zip,package-compat-tgz,package-admin-zip,package-admin-tgz,package-src-zip,package-src-tgz,package-docs-tgz,clean-tester,run-tester"
description="Create a Tomcat 5 packaged distribution">
<filter token="VERSION" value="${version}"/>
<copy file="../KEYS"
todir="${tomcat.release}/v${version}"/>
<copy file="RELEASE-NOTES"
todir="${tomcat.release}/v${version}"
filtering="true"
encoding="ISO-8859-1" />
<copy file="resources/welcome.main.html"
tofile="${tomcat.release}/v${version}/README.html"
filtering="true"
encoding="ISO-8859-1" />
<copy file="resources/welcome.bin.html"
tofile="${tomcat.release}/v${version}/bin/README.html"
filtering="true"
encoding="ISO-8859-1" />
</target>
<!-- Packages the core zip distro -->
<target name="package-zip">
<zip zipfile="${tomcat.release}/v${version}/bin/${final.name}.zip">
<zipfileset dir="${tomcat.dist}" prefix="${final.name}">
<include name="bin/**"/>
<include name="common/**"/>
<include name="conf/**"/>
<include name="logs/**"/>
<include name="server/**"/>
<include name="shared/**"/>
<include name="webapps/**"/>
<include name="work/**"/>
<include name="temp/**"/>
<include name="LICENSE"/>
<include name="NOTICE"/>
<include name="README.txt"/>
<include name="RELEASE-NOTES"/>
<include name="RUNNING.txt"/>
<include name="BENCHMARKS.txt"/>
<exclude name="server/webapps/admin/**"/>
<exclude name="conf/Catalina/localhost/admin.xml"/>
</zipfileset>
</zip>
<antcall target="md5sum">
<param name="file" value="${tomcat.release}/v${version}/bin/${final.name}.zip" />
</antcall>
</target>
<!-- Packages the embedded Tomcat distro in zip format -->
<target name="package-embed-zip">
<zip zipfile="${tomcat.release}/v${version}/bin/${final.name}-embed.zip">
<zipfileset dir="${tomcat.embed}" prefix="${final.name}-embed"
includes="**" />
<zipfileset dir="${tomcat.dist}" prefix="${final.name}-embed"
includes="LICENSE" />
<zipfileset dir="${tomcat.dist}" prefix="${final.name}-embed"
includes="NOTICE" />
<zipfileset dir="${tomcat.dist}" prefix="${final.name}-embed"
includes="README.txt" />
<zipfileset dir="${tomcat.dist}" prefix="${final.name}-embed"
includes="RELEASE-NOTES" />
</zip>
<antcall target="md5sum">
<param name="file" value="${tomcat.release}/v${version}/bin/${final.name}-embed.zip" />
</antcall>
</target>
<!-- Packages the deployer distribution in zip format -->
<target name="package-deployer-zip">
<zip zipfile="${tomcat.release}/v${version}/bin/${final.name}-deployer.zip">
<zipfileset dir="${tomcat.deployer}" prefix="${final.name}-deployer" includes="**" />
<zipfileset dir="${tomcat.dist}" prefix="${final.name}-deployer" includes="LICENSE" />
<zipfileset dir="${tomcat.dist}" prefix="${final.name}-deployer" includes="NOTICE" />
<zipfileset dir="${tomcat.dist}" prefix="${final.name}-deployer" includes="README.txt" />
<zipfileset dir="${tomcat.dist}" prefix="${final.name}-deployer" includes="RELEASE-NOTES" />
</zip>
<antcall target="md5sum">
<param name="file" value="${tomcat.release}/v${version}/bin/${final.name}-deployer.zip" />
</antcall>
</target>
<!-- Packages the JDK 1.4 compatibility distro in zip format -->
<target name="package-compat-zip">
<zip zipfile="${tomcat.release}/v${version}/bin/${final.name}-compat.zip">
<zipfileset dir="${tomcat.compat}" prefix="${final.name}" includes="**" />
<zipfileset dir="${tomcat.dist}" prefix="${final.name}" includes="LICENSE" />
<zipfileset dir="${tomcat.dist}" prefix="${final.name}" includes="NOTICE" />
<zipfileset dir="${tomcat.dist}" prefix="${final.name}" includes="README.txt" />
<zipfileset dir="${tomcat.dist}" prefix="${final.name}" includes="RELEASE-NOTES" />
</zip>
<antcall target="md5sum">
<param name="file" value="${tomcat.release}/v${version}/bin/${final.name}-compat.zip" />
</antcall>
</target>
<!-- Packages the admin webapp distro in zip format -->
<target name="package-admin-zip">
<zip zipfile="${tomcat.release}/v${version}/bin/${final.name}-admin.zip">
<zipfileset dir="${tomcat.dist}" prefix="${final.name}">
<include name="server/webapps/admin/**"/>
<include name="conf/Catalina/localhost/admin.xml"/>
<exclude name="*.jsp" />
</zipfileset>
<zipfileset dir="${tomcat.dist}" prefix="${final.name}" includes="LICENSE" />
<zipfileset dir="${tomcat.dist}" prefix="${final.name}" includes="NOTICE" />
<zipfileset dir="${tomcat.dist}" prefix="${final.name}" includes="README.txt" />
<zipfileset dir="${tomcat.dist}" prefix="${final.name}" includes="RELEASE-NOTES" />
</zip>
<antcall target="md5sum">
<param name="file" value="${tomcat.release}/v${version}/bin/${final.name}-admin.zip" />
</antcall>
</target>
<!-- Prepares for cutting the release -->
<target name="prepare-release">
<mkdir dir="${tomcat.release}"/>
<mkdir dir="${tomcat.release}/v${version}"/>
<mkdir dir="${tomcat.release}/v${version}/bin"/>
<mkdir dir="${tomcat.release}/v${version}/src"/>
<!-- This is why releasing must be done on a Windows box:
otherwise this check fails and the .exe distro is not generated -->
<condition property="execute.installer">
<and>
<not><isset property="skip.installer" /></not>
<os family="windows" />
<available file="${nsis.exe}" />
<available file="${nsis.installoptions.dll}" />
<available file="${nsis.nsexec.dll}" />
<available file="${nsis.nsisdl.dll}" />
</and>
</condition>
</target>
<!-- Packages the core tar.gz distro -->
<target name="package-tgz">
<fixcrlf srcdir="${tomcat.dist}" includes="*.txt,LICENSE,NOTICE" eol="lf"
encoding="ISO-8859-1" fixlast="false" />
<fixcrlf srcdir="${tomcat.dist}/conf" eol="lf"
encoding="ISO-8859-1" fixlast="false" />
<tar longfile="gnu" compression="gzip"
tarfile="${tomcat.release}/v${version}/bin/${final.name}.tar.gz">
<tarfileset dir="${tomcat.dist}" mode="755" prefix="${final.name}">
<include name="bin/catalina.sh" />
<include name="bin/digest.sh" />
<include name="bin/jasper.sh" />
<include name="bin/jspc.sh" />
<include name="bin/setclasspath.sh" />
<include name="bin/startup.sh" />
<include name="bin/shutdown.sh" />
<include name="bin/tool-wrapper.sh" />
<include name="bin/tool-wrapper-using-launcher.sh" />
<include name="bin/shutdown-using-launcher.sh" />
<include name="bin/startup-using-launcher.sh" />
</tarfileset>
<tarfileset dir="${tomcat.dist}" mode="600" prefix="${final.name}">
<include name="conf/**" />
<exclude name="conf/Catalina/localhost/admin.xml" />
</tarfileset>
<tarfileset dir="${tomcat.dist}" prefix="${final.name}">
<include name="bin/**" />
<include name="common/**" />
<include name="logs/**" />
<include name="server/**" />
<include name="shared/**" />
<include name="temp/**" />
<include name="webapps/**" />
<include name="work/**" />
<include name="LICENSE" />
<include name="NOTICE" />
<include name="README.txt" />
<include name="RELEASE-NOTES" />
<include name="RUNNING.txt" />
<include name="BENCHMARKS.txt" />
<exclude name="bin/catalina.sh" />
<exclude name="bin/digest.sh" />
<exclude name="bin/jasper.sh" />
<exclude name="bin/jspc.sh" />
<exclude name="bin/setclasspath.sh" />
<exclude name="bin/startup.sh" />
<exclude name="bin/shutdown.sh" />
<exclude name="bin/tool-wrapper.sh" />
<exclude name="bin/tool-wrapper-using-launcher.sh" />
<exclude name="bin/shutdown-using-launcher.sh" />
<exclude name="bin/startup-using-launcher.sh" />
<exclude name="conf/**" />
<exclude name="src/**" />
<exclude name="server/webapps/admin/**" />
</tarfileset>
</tar>
<antcall target="md5sum">
<param name="file" value="${tomcat.release}/v${version}/bin/${final.name}.tar.gz" />
</antcall>
</target>
<!-- Packages the embedded Tomcat distro in tar.gz format -->
<target name="package-embed-tgz">
<fixcrlf srcdir="${tomcat.dist}"
includes="*.txt,LICENSE,NOTICE" eol="lf"
encoding="ISO-8859-1" fixlast="false" />
<fixcrlf srcdir="${tomcat.embed}" includes="*.xml" eol="lf"
encoding="ISO-8859-1" fixlast="false" />
<tar longfile="gnu" compression="gzip"
tarfile="${tomcat.release}/v${version}/bin/${final.name}-embed.tar.gz">
<tarfileset dir="${tomcat.dist}" prefix="${final.name}-embed">
<include name="LICENSE" />
<include name="NOTICE" />
<include name="README.txt" />
<include name="RELEASE-NOTES" />
</tarfileset>
<tarfileset dir="${tomcat.embed}" prefix="${final.name}-embed">
<include name="**" />
</tarfileset>
</tar>
<antcall target="md5sum">
<param name="file" value="${tomcat.release}/v${version}/bin/${final.name}-embed.tar.gz" />
</antcall>
</target>
<!-- Packages the deployer Tomcat distro in tar.gz format -->
<target name="package-deployer-tgz">
<fixcrlf srcdir="${tomcat.dist}"
includes="*.txt,LICENSE,NOTICE" eol="lf"
encoding="ISO-8859-1" fixlast="false" />
<fixcrlf srcdir="${tomcat.deployer}" includes="*.xml" eol="lf"
encoding="ISO-8859-1" fixlast="false" />
<tar longfile="gnu" compression="gzip"
tarfile="${tomcat.release}/v${version}/bin/${final.name}-deployer.tar.gz">
<tarfileset dir="${tomcat.dist}" prefix="${final.name}-deployer">
<include name="LICENSE" />
<include name="NOTICE" />
<include name="README.txt" />
<include name="RELEASE-NOTES" />
</tarfileset>
<tarfileset dir="${tomcat.deployer}" prefix="${final.name}-deployer">
<include name="**" />
</tarfileset>
</tar>
<antcall target="md5sum">
<param name="file" value="${tomcat.release}/v${version}/bin/${final.name}-deployer.tar.gz" />
</antcall>
</target>
<!-- Packages the 1.4 compatibility distro in tar.gz format -->
<target name="package-compat-tgz">
<fixcrlf srcdir="${tomcat.dist}" includes="*.txt,LICENSE,NOTICE" eol="lf"
encoding="ISO-8859-1" fixlast="false" />
<tar longfile="gnu" compression="gzip"
tarfile="${tomcat.release}/v${version}/bin/${final.name}-compat.tar.gz">
<tarfileset dir="${tomcat.dist}" prefix="${final.name}">
<include name="LICENSE" />
<include name="NOTICE" />
<include name="README.txt" />
<include name="RELEASE-NOTES" />
</tarfileset>
<tarfileset dir="${tomcat.compat}" prefix="${final.name}">
<include name="**" />
</tarfileset>
</tar>
<antcall target="md5sum">
<param name="file" value="${tomcat.release}/v${version}/bin/${final.name}-compat.tar.gz" />
</antcall>
</target>
<!-- Packages the admin webapp distro in tar.gz format -->
<target name="package-admin-tgz">
<fixcrlf srcdir="${tomcat.dist}" includes="*.txt,LICENSE,NOTICE" eol="lf"
encoding="ISO-8859-1" fixlast="false" />
<tar longfile="gnu" compression="gzip"
tarfile="${tomcat.release}/v${version}/bin/${final.name}-admin.tar.gz">
<tarfileset dir="${tomcat.dist}" prefix="${final.name}">
<include name="LICENSE" />
<include name="NOTICE" />
<include name="README.txt" />
<include name="RELEASE-NOTES" />
</tarfileset>
<tarfileset dir="${tomcat.dist}" prefix="${final.name}">
<include name="server/webapps/admin/**" />
<exclude name="*.jsp" />
</tarfileset>
<tarfileset dir="${tomcat.dist}" mode="600" prefix="${final.name}">
<include name="conf/Catalina/localhost/admin.xml" />
</tarfileset>
</tar>
<antcall target="md5sum">
<param name="file" value="${tomcat.release}/v${version}/bin/${final.name}-admin.tar.gz" />
</antcall>
</target>
<!-- Packages the documentation distro in tar.gz format -->
<target name="package-docs-tgz" depends="prepare-release">
<!-- Generate docs -->
<ant dir="${catalina.home}" target="dist-javadoc"/>
<mkdir dir="${tomcat.dist}/webapps/tomcat-docs/catalina/docs/api"/>
<copy todir="${tomcat.dist}/webapps/tomcat-docs/catalina/docs/api">
<fileset dir="${catalina.build}/javadoc" />
</copy>
<ant dir="${jasper.home}" target="javadoc"/>
<mkdir dir="${tomcat.dist}/webapps/tomcat-docs/jasper/docs/api"/>
<copy todir="${tomcat.dist}/webapps/tomcat-docs/jasper/docs/api">
<fileset dir="${jasper.build}/javadoc" />
</copy>
<!-- Package gocs -->
<fixcrlf srcdir="${tomcat.dist}" includes="*.txt,LICENSE,NOTICE" eol="lf"
encoding="ISO-8859-1" fixlast="false" />
<tar longfile="gnu" compression="gzip"
tarfile="${tomcat.release}/v${version}/bin/${final.name}-fulldocs.tar.gz">
<tarfileset dir="${tomcat.dist}" prefix="tomcat-5.5-doc">
<include name="LICENSE" />
<include name="NOTICE" />
<include name="README.txt" />
<include name="RUNNING.txt" />
</tarfileset>
<tarfileset dir="${tomcat.dist}/webapps/tomcat-docs" prefix="tomcat-5.5-doc">
<include name="**" />
</tarfileset>
</tar>
<antcall target="md5sum">
<param name="file" value="${tomcat.release}/v${version}/bin/${final.name}-fulldocs.tar.gz" />
</antcall>
</target>
<!-- Packages the source code distribution in zip format -->
<target name="package-src-zip">
<fixcrlf srcdir="${tomcat.dist}/src" eol="crlf"
encoding="ISO-8859-1" fixlast="false" >
<patternset refid="src.files"/>
</fixcrlf>
<zip zipfile="${tomcat.release}/v${version}/src/${final-src.name}.zip">
<zipfileset dir="${tomcat.dist}/src" prefix="${final-src.name}" />
</zip>
<antcall target="md5sum">
<param name="file" value="${tomcat.release}/v${version}/src/${final-src.name}.zip" />
</antcall>
</target>
<!-- Packages the source code distribution in tar.gz format -->
<target name="package-src-tgz">
<fixcrlf srcdir="${tomcat.dist}/src" eol="lf"
encoding="ISO-8859-1" fixlast="false" >
<patternset refid="src.files"/>
</fixcrlf>
<tar longfile="gnu" compression="gzip"
tarfile="${tomcat.release}/v${version}/src/${final-src.name}.tar.gz">
<tarfileset dir="${tomcat.dist}/src" mode="755" prefix="${final-src.name}">
<include name="${jtc.project}/jk/native/buildconf.sh" />
<include name="${jtc.project}/jk/native/apache-1.3/build-hpux-cc.sh" />
<include name="${jtc.project}/jk/native/apache-1.3/build-solaris.sh" />
<include name="${jtc.project}/jk/native/apache-1.3/build-unix.sh" />
<include name="${jtc.project}/jk/native/apache-2.0/build-unix.sh" />
<include name="${jtc.project}/jk/native/apache-2.0/install-unix.sh" />
<include name="${jtc.project}/jk/native/domino/mkini.sh" />
</tarfileset>
<tarfileset dir="${tomcat.dist}/src" prefix="${final-src.name}">
<exclude name="${jtc.project}/jk/native/buildconf.sh" />
<exclude name="${jtc.project}/jk/native/apache-1.3/build-hpux-cc.sh" />
<exclude name="${jtc.project}/jk/native/apache-1.3/build-solaris.sh" />
<exclude name="${jtc.project}/jk/native/apache-1.3/build-unix.sh" />
<exclude name="${jtc.project}/jk/native/apache-2.0/build-unix.sh" />
<exclude name="${jtc.project}/jk/native/apache-2.0/install-unix.sh" />
<exclude name="${jtc.project}/jk/native/domino/mkini.sh" />
</tarfileset>
</tar>
<antcall target="md5sum">
<param name="file" value="${tomcat.release}/v${version}/src/${final-src.name}.tar.gz" />
</antcall>
</target>
<!-- Helper target, used to create a md5 checksum file -->
<!-- Requires 'file' as a parameter. -->
<target name="md5sum">
<fail unless="file" />
<fail if="filename" />
<fail if="value" />
<basename file="${file}" property="filename" />
<checksum file="${file}" property="value" />
<echo file="${file}.md5" message="${value}${md5sum.binary-prefix}${filename}" />
</target>
<!-- ==================== Download or build the required binary packages ==================== -->
<target name="download" depends="proxyflags"
description="Download binary packages" >
<mkdir dir="${base.path}" />
<!-- Download any sub package or tools needed. -->
<antcall target="downloadgz">
<param name="sourcefile" value="${commons-beanutils.loc}"/>
<param name="destfile" value="${commons-beanutils.jar}"/>
</antcall>
<antcall target="downloadgz">
<param name="sourcefile" value="${commons-collections.loc}"/>
<param name="destfile" value="${commons-collections.jar}"/>
</antcall>
<antcall target="downloadgz">
<param name="sourcefile" value="${commons-digester.loc}"/>
<param name="destfile" value="${commons-digester.jar}"/>
</antcall>
<antcall target="downloadgz">
<param name="sourcefile" value="${commons-el.loc}"/>
<param name="destfile" value="${commons-el.jar}"/>
</antcall>
<antcall target="downloadgz">
<param name="sourcefile" value="${commons-logging.loc}"/>
<param name="destfile" value="${commons-logging.jar}"/>
</antcall>
<antcall target="downloadgz">
<param name="sourcefile" value="${commons-modeler.loc}"/>
<param name="destfile" value="${commons-modeler.jar}"/>
</antcall>
<antcall target="downloadgz">
<param name="sourcefile" value="${commons-fileupload.loc}"/>
<param name="destfile" value="${commons-fileupload.jar}"/>
</antcall>
<antcall target="downloadgz">
<param name="sourcefile" value="${commons-io.loc}"/>
<param name="destfile" value="${commons-io.jar}"/>
</antcall>
<antcall target="downloadgz">
<!-- xerces2 brings 2 files, test for one of them -->
<param name="sourcefile" value="${xerces.loc}"/>
<param name="destfile" value="${xml-apis.jar}"/>
</antcall>
<antcall target="downloadgz">
<param name="sourcefile" value="${jmx.loc}"/>
<param name="destfile" value="${jmx.jar}"/>
</antcall>
<antcall target="downloadzip">
<param name="sourcefile" value="${junit.loc}"/>
<param name="destfile" value="${junit.jar}"/>
<param name="destdir" value="${base.path}"/>
</antcall>
<antcall target="downloadgz">
<param name="sourcefile" value="${commons-launcher.loc}"/>
<param name="destfile" value="${commons-launcher.jar}"/>
</antcall>
<antcall target="downloadzip">
<param name="sourcefile" value="${nsis.loc}"/>
<param name="destfile" value="${nsis.exe}"/>
<param name="destdir" value="${nsis.home}/.."/>
</antcall>
<antcall target="downloadgz">
<param name="sourcefile" value="${struts.loc}"/>
<param name="destfile" value="${struts.jar}"/>
</antcall>
<antcall target="downloadgz">
<param name="sourcefile" value="${commons-daemon.bin.loc}"/>
<param name="destfile" value="${commons-daemon.jar}"/>
</antcall>
<antcall target="downloadfile">
<param name="sourcefile" value="${commons-daemon.native.src.loc}"/>
<param name="destfile" value="${commons-daemon.native.src.tgz}"/>
<param name="destdir" value="${commons-daemon.home}"/>
</antcall>
<antcall target="downloadzip">
<param name="sourcefile" value="${commons-daemon.native.win.loc}"/>
<param name="destfile" value="${commons-daemon.native.win.mgr.exe}"/>
<param name="destdir" value="${commons-daemon.native.win.home}"/>
</antcall>
<antcall target="downloadfile">
<param name="sourcefile" value="${tomcat-native.loc}"/>
<param name="destfile" value="${tomcat-native.tar.gz}"/>
<param name="destdir" value="${tomcat-native.home}"/>
</antcall>
<antcall target="downloadfile">
<param name="sourcefile" value="${tomcat-native.dll}/win32/tcnative-1.dll"/>
<param name="destfile" value="${tomcat-native.home}/tcnative-1.dll.x86"/>
<param name="destdir" value="${tomcat-native.home}"/>
</antcall>
<antcall target="downloadfile">
<param name="sourcefile" value="${tomcat-native.dll}/win64/x64/tcnative-1.dll"/>
<param name="destfile" value="${tomcat-native.home}/tcnative-1.dll.x64"/>
<param name="destdir" value="${tomcat-native.home}"/>
</antcall>
<antcall target="downloadfile">
<param name="sourcefile" value="${tomcat-native.dll}/win64/ia64/tcnative-1.dll"/>
<param name="destfile" value="${tomcat-native.home}/tcnative-1.dll.i64"/>
<param name="destdir" value="${tomcat-native.home}"/>
</antcall>
<!-- Grab the JAF/Javamail dependencies if doing full release -->
<antcall target="fulldist"/>
<!-- Build the dependencies that are not yet released -->
<antcall target="build-depends"/>
</target>
<target name="fulldist" if="full.dist">
<antcall target="downloadfile">
<param name="sourcefile" value="${mail.loc}"/>
<param name="destfile" value="${mail.jar}"/>
<param name="destdir" value="${mail.home}"/>
</antcall>
<antcall target="downloadfile">
<param name="sourcefile" value="${activation.loc}"/>
<param name="destfile" value="${activation.jar}"/>
<param name="destdir" value="${activation.home}"/>
</antcall>
</target>
<target name="proxyflags">
<!-- check proxy parameters. -->
<condition property="useproxy">
<equals arg1="${proxy.use}" arg2="on" />
</condition>
</target>
<target name="setproxy" depends="proxyflags" if="useproxy">
<taskdef name="setproxy"
classname="org.apache.tools.ant.taskdefs.optional.net.SetProxy" />
<setproxy proxyhost="${proxy.host}" proxyport="${proxy.port}"/>
<echo message="Using ${proxy.host}:${proxy.port} to download ${sourcefile}"/>
</target>
<target name="testexist">
<echo message="Testing for ${destfile}"/>
<available file="${destfile}" property="exist"/>
</target>
<target name="downloadgz" unless="exist" depends="setproxy,testexist">
<!-- Download and extract the package -->
<get src="${sourcefile}" dest="${base.path}/file.tar.gz" />
<gunzip src="${base.path}/file.tar.gz" dest="${base.path}/file.tar"/>
<untar src="${base.path}/file.tar" dest="${base.path}"/>
<delete file="${base.path}/file.tar"/>
<delete file="${base.path}/file.tar.gz"/>
</target>
<target name="downloadzip" unless="exist" depends="setproxy,testexist">
<!-- Download and extract the package -->
<get src="${sourcefile}" dest="${base.path}/file.zip" />
<mkdir dir="${destdir}" />
<unzip src="${base.path}/file.zip" dest="${destdir}"/>
<delete file="${base.path}/file.zip"/>
</target>
<target name="downloadfile" unless="exist" depends="setproxy,testexist">
<!-- Download extract the file -->
<mkdir dir="${destdir}" />
<get src="${sourcefile}" dest="${destfile}" />
</target>
<!-- ==================== Modeler tricks ====================
-->
<target name="convert-mbeans" description="Hack: regenerate the ser form of the descriptors">
<path id="tomcatCP" >
<fileset dir="${tomcat.build}/common/lib" includes="*.jar"/>
<fileset dir="${tomcat.build}/server/lib" includes="*.jar" />
</path>
<taskdef resource="org/apache/commons/modeler/ant/ant.properties"
classpathref="tomcatCP" />
<mbeans-descriptors file="${catalina.home}/catalina/src/share/org/apache/catalina/mbeans/mbeans-descriptors.xml"
out="build/classes/org/apache/catalina/mbeans/mbeans-descriptors.xml.ser" />
<mbeans-descriptors file="${catalina.home}/catalina/src/share/org/apache/catalina/core/mbeans-descriptors.xml"
out="build/classes/org/apache/catalina/core/mbeans-descriptors.xml.ser" />
<mbeans-descriptors file="${catalina.home}/catalina/src/share/org/apache/catalina/valves/mbeans-descriptors.xml"
out="build/classes/org/apache/catalina/valves/mbeans-descriptors.xml.ser" />
<mbeans-descriptors file="${jtc.home}/coyote/src/java/org/apache/coyote/tomcat5/mbeans-descriptors.xml"
out="build/classes/org/apache/coyote/tomcat5/mbeans-descriptors.xml.ser" />
</target>
<target name="gumpy-build" description="Target for Gump builds"
depends="gumpy-prepare,prepare-release,dist,dist-source,installer,package-zip,package-tgz,package-src-zip,package-src-tgz" />
<target name="gumpy-prepare" description="Collect Gump-built jar files" >
<mkdir dir="${tomcat.build}"/>
<mkdir dir="${tomcat.build}/classes" />
<mkdir dir="${tomcat.build}/server/lib" />
<mkdir dir="${tomcat.build}/common/lib" />
<copy file="${tomcat-util.jar}" tofile="${tomcat.build}/server/lib/tomcat-util.jar"/>
<copy file="${tomcat-ajp.jar}" tofile="${tomcat.build}/server/lib/tomcat-ajp.jar"/>
<copy file="${tomcat-coyote.jar}" tofile="${tomcat.build}/server/lib/tomcat-coyote.jar"/>
<copy file="${tomcat-http11.jar}" tofile="${tomcat.build}/server/lib/tomcat-http11.jar"/>
<copy file="${tomcat-jni.jar}" tofile="${tomcat.build}/server/lib/tomcat-apr.jar" />
<property name="tomcat.aprbuild.notrequired" value="true" />
<copy file="${jasper-runtime.jar}" tofile="${tomcat.build}/common/lib/jasper-runtime.jar"/>
<copy file="${jasper-compiler.jar}" tofile="${tomcat.build}/common/lib/jasper-compiler.jar"/>
<property name="jasper.build.notrequired" value="true" />
</target>
</project>