Tomcat ant build script : Big Project Ant Script « Ant « Java






Tomcat ant build script


<?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.
-->
<project name="Tomcat 6.0" 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 top level 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="project"               value="apache-tomcat" />
  <property name="name"                  value="Apache Tomcat" />
  <tstamp>
    <format property="year" pattern="yyyy" locale="en"/>
  </tstamp>
  <property name="version.major"         value="6" />
  <property name="version.minor"         value="0" />
  <property name="version.build"         value="0" />
  <property name="version.patch"         value="0" />
  <property name="version.suffix"        value="-dev" />

  <property name="version"               value="${version.major}.${version.minor}.${version.build}${version.suffix}" />
  <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="final.name"            value="${project}-${version}" />
  <property name="final-src.name"        value="${project}-${version}-src" />

  <!-- Build Defaults -->
  <property name="tomcat.home"           value="${basedir}"/>
  <property name="tomcat.build"          value="${basedir}/output/build"/>
  <property name="tomcat.classes"        value="${basedir}/output/classes"/>
  <property name="tomcat.dist"           value="${basedir}/output/dist"/>
  <property name="tomcat.tmp"            value="${basedir}/output/tmp"/>
  <property name="test.failonerror"      value="true"/>
  <property name="test.runner"           value="junit.textui.TestRunner"/>

  <!-- Can't be lower - jsp uses templates -->
  <property name="compile.source" value="1.5"/>
  <!-- Can't be higher - must run on 1.5 -->
  <property name="compile.target" value="1.5"/>

  <!-- Exact spec versions (for the manifests) -->
  <property name="servlet.revision" value="MR2" />
  <property name="jsp.revision" value="FR" />

  <!-- JAR artifacts -->
  <property name="bootstrap.jar" value="${tomcat.build}/bin/bootstrap.jar"/>
  <property name="tomcat-juli.jar" value="${tomcat.build}/bin/tomcat-juli.jar"/>

  <property name="annotations-api.jar" value="${tomcat.build}/lib/annotations-api.jar"/>
  <property name="servlet-api.jar" value="${tomcat.build}/lib/servlet-api.jar"/>
  <property name="jsp-api.jar" value="${tomcat.build}/lib/jsp-api.jar"/>
  <property name="el-api.jar" value="${tomcat.build}/lib/el-api.jar"/>
  <property name="catalina.jar" value="${tomcat.build}/lib/catalina.jar"/>
  <property name="catalina-tribes.jar" value="${tomcat.build}/lib/catalina-tribes.jar"/>
  <property name="catalina-ha.jar" value="${tomcat.build}/lib/catalina-ha.jar"/>
  <property name="catalina-ant.jar" value="${tomcat.build}/lib/catalina-ant.jar"/>
  <property name="tomcat-coyote.jar" value="${tomcat.build}/lib/tomcat-coyote.jar"/>

  <property name="jasper.jar" value="${tomcat.build}/lib/jasper.jar"/>
  <property name="jasper-el.jar" value="${tomcat.build}/lib/jasper-el.jar"/>

  <property name="tomcat-dbcp.home" value="${base.path}/tomcat${version.major}-deps/dbcp" />
  <property name="jasper-jdt.home" value="${base.path}/tomcat${version.major}-deps/jdt" />
  <property name="tomcat-dbcp.jar" value="${tomcat-dbcp.home}/tomcat-dbcp.jar"/>
  <property name="jasper-jdt.jar" value="${jasper-jdt.home}/jasper-jdt.jar"/>
  <available property="tomcat-dbcp.present" file="${tomcat-dbcp.jar}" />
  <available property="jdk16.present" classname="javax.sql.StatementEvent" />

  <!-- Classpath -->
  <path id="tomcat.classpath">
    <pathelement location="${ant.jar}"/>
    <pathelement location="${jdt.jar}"/>
  </path>

  <!-- Version info filter set -->
  <tstamp>
    <format property="TODAY" pattern="MMM d yyyy" locale="en"/>
    <format property="TSTAMP" pattern="hh:mm:ss"/>
  </tstamp>
  <filterset id="version.filters">
    <filter token="YEAR" value="${year}"/>
    <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}"/>
    <filter token="VERSION_BUILT" value="${TODAY} ${TSTAMP}"/>
  </filterset>

  <!-- Just build Tomcat -->
  <target name="build-prepare">

    <available classname="junit.framework.TestCase" property="junit.present" />

    <mkdir dir="${tomcat.classes}"/>

    <delete dir="${tomcat.build}/temp" />
    <delete dir="${tomcat.build}/work" />

    <mkdir dir="${tomcat.build}"/>
    <mkdir dir="${tomcat.build}/bin"/>
    <mkdir dir="${tomcat.build}/conf"/>
    <mkdir dir="${tomcat.build}/lib"/>
    <mkdir dir="${tomcat.build}/logs"/>
    <mkdir dir="${tomcat.build}/temp"/>
    <mkdir dir="${tomcat.build}/webapps"/>

  </target>

  <target name="compile">

    <!-- Compile internal server components -->
    <javac srcdir="java" destdir="${tomcat.classes}"
           debug="${compile.debug}"
           deprecation="${compile.deprecation}"
           source="${compile.source}"
           target="${compile.target}"
           optimize="${compile.optimize}"
           excludes="**/CVS/**,**/.svn/**"
           encoding="ISO-8859-1">
<!-- Comment this in to show unchecked warnings:
      <compilerarg value="-Xlint:unchecked"/>
 -->
      <classpath refid="tomcat.classpath" />
      <exclude name="org/apache/naming/factory/webservices/**" />
    </javac>
    <!-- Copy static resource files -->
    <copy todir="${tomcat.classes}" encoding="ISO-8859-1">
      <filterset refid="version.filters"/>
      <fileset dir="java">
        <include name="**/*.properties"/>
        <include name="**/*.dtd"/>
        <include name="**/*.tasks"/>
        <include name="**/*.xsd"/>
        <include name="**/*.xml"/>
      </fileset>
    </copy>

  </target>

  <target name="build-only" depends="build-prepare,compile,package" />

  <!-- Pattern sets for jar files -->
  <patternset id="files.annotations-api">
    <include name="javax/annotation/*" />
    <include name="javax/annotation/security/*" />
    <include name="javax/ejb/*" />
    <include name="javax/persistence/*" />
    <include name="javax/xml/ws/*" />
  </patternset>

  <patternset id="files.servlet-api">
    <include name="javax/servlet/*" />
    <include name="javax/servlet/http/*" />
    <include name="javax/servlet/resources/*" />
  </patternset>

  <patternset id="files.jsp-api">
    <include name="javax/servlet/jsp/**" />
  </patternset>

  <patternset id="files.el-api">
    <include name="javax/el/*" />
  </patternset>

  <patternset id="files.bootstrap">
    <include name="org/apache/catalina/startup/Bootstrap.*" />
    <include name="org/apache/catalina/startup/catalina.properties" />
    <include name="org/apache/catalina/startup/CatalinaProperties.*" />
    <include name="org/apache/catalina/startup/ClassLoaderFactory.*" />
    <include name="org/apache/catalina/startup/Tool.*" />
    <include name="org/apache/catalina/loader/StandardClassLoader*.*" />
    <include name="org/apache/catalina/loader/Extension.*" />
    <include name="org/apache/catalina/loader/Reloader.*" />
    <include name="org/apache/catalina/security/SecurityClassLoad.*" />
    <include name="org/apache/naming/JndiPermission.*" />
    <include name="org/apache/tomcat/util/compat/*" />
  </patternset>

  <patternset id="files.tomcat-juli">
    <include name="org/apache/juli/**" />
  </patternset>

  <patternset id="files.catalina">
    <include name="org/apache/*" />
    <include name="org/apache/catalina/**" />
    <include name="org/apache/naming/**" />
    <!-- Modules -->
    <exclude name="org/apache/catalina/ant/**" />
    <exclude name="org/apache/catalina/cluster/**" />
    <exclude name="org/apache/catalina/ha/**" />
    <exclude name="org/apache/catalina/mbeans/JmxRemote*" />
    <exclude name="org/apache/catalina/tribes/**" />
    <exclude name="org/apache/catalina/launcher/**" />
    <exclude name="org/apache/catalina/storeconfig/**" />
    <exclude name="org/apache/naming/factory/webservices/**" />
  </patternset>

  <patternset id="files.catalina-tribes">
    <include name="org/apache/catalina/tribes/**" />
  </patternset>

  <patternset id="files.catalina-ha">
    <include name="org/apache/catalina/ha/**" />
  </patternset>

  <patternset id="files.catalina-ant">
    <include name="org/apache/catalina/ant/*" />
    <include name="org/apache/catalina/ant/jmx/*" />
    <include name="org/apache/catalina/util/Base64.*" />
  </patternset>

  <patternset id="files.tomcat-coyote">
    <include name="org/apache/coyote/**" />
    <include name="org/apache/tomcat/jni/**" />
    <include name="org/apache/jk/**" />
    <include name="org/apache/tomcat/util/**" />
  </patternset>

  <patternset id="files.jasper">
    <include name="org/apache/*" />
    <include name="org/apache/jasper/**" />
  </patternset>

  <patternset id="files.jasper-el">
    <include name="org/apache/el/**" />
  </patternset>


  <macrodef name="jarIt" description="utility macro for standard JAR packaging">
    <attribute name="jarfile" description="the name of the JAR file to create"/>
    <attribute name="filesId" description="the patternset id of the files to use"/>
    <attribute name="manifest" description="the manifest file use"/>
    <attribute name="notice" description="the LICENSE file to use"/>
    <attribute name="license" description="the NOTICE file to use"/>
    <sequential>
      <jar  jarfile="@{jarfile}" manifest="@{manifest}">
        <fileset dir="${tomcat.classes}">
          <patternset refid="@{filesId}"/>
          <!-- Javadoc and i18n exclusions -->
          <exclude name="**/package.html" />
          <exclude name="**/LocalStrings_*" />
        </fileset>
        <zipfileset file="@{notice}" fullpath="META-INF/NOTICE" />
        <zipfileset file="@{license}" fullpath="META-INF/LICENSE" />
      </jar>
    </sequential>
  </macrodef>

  <target name="build-manifests" >
    <!-- Filtering tokens for JAR manifests-->
    <filter token="source.jdk" value="${compile.source}"/>
    <filter token="target.jdk" value="${compile.target}"/>
    <filter token="servlet.revision" value="${servlet.revision}"/>
    <filter token="jsp.revision" value="${jsp.revision}"/>

    <mkdir dir="${tomcat.tmp}" />
    <copy todir="${tomcat.tmp}" overwrite="yes" filtering="yes"
      encoding="ISO-8859-1">
      <filterset refid="version.filters"/>
      <fileset dir="res/META-INF" includes="*.manifest" />
    </copy>

  </target>

  <target name="package" depends="build-manifests" >
    <!-- Common Annotations 1.0 JAR File -->
    <jarIt jarfile="${annotations-api.jar}" filesId="files.annotations-api"
      manifest="${tomcat.tmp}/default.manifest"
      notice="res/META-INF/default.notice"
      license="res/META-INF/default.license" />

    <!-- Servlet 2.5 Implementation JAR File -->
    <jarIt jarfile="${servlet-api.jar}" filesId="files.servlet-api"
      manifest="${tomcat.tmp}/servlet-api.jar.manifest"
      notice="res/META-INF/default.notice"
      license="res/META-INF/default.license" />

    <!-- JSP 2.1 Implementation JAR File -->
    <jarIt jarfile="${jsp-api.jar}" filesId="files.jsp-api"
      manifest="${tomcat.tmp}/jsp-api.jar.manifest"
      notice="res/META-INF/default.notice"
      license="res/META-INF/default.license" />


    <!-- JSP 2.1 EL Implementation JAR File -->
    <jarIt jarfile="${el-api.jar}" filesId="files.el-api"
      manifest="${tomcat.tmp}/default.manifest"
      notice="res/META-INF/default.notice"
      license="res/META-INF/default.license" />

    <!-- Bootstrap JAR File -->
    <jarIt jarfile="${bootstrap.jar}" filesId="files.bootstrap"
      manifest="${tomcat.tmp}/bootstrap.jar.manifest"
      notice="res/META-INF/default.notice"
      license="res/META-INF/default.license" />

    <!-- Tomcat-juli JAR File -->
    <jarIt jarfile="${tomcat-juli.jar}" filesId="files.tomcat-juli"
      manifest="${tomcat.tmp}/default.manifest"
      notice="res/META-INF/default.notice"
      license="res/META-INF/default.license" />

    <!-- Catalina Main JAR File -->
    <jarIt jarfile="${catalina.jar}" filesId="files.catalina"
      manifest="${tomcat.tmp}/default.manifest"
      notice="res/META-INF/default.notice"
      license="res/META-INF/default.license" />

    <!-- Catalina GroupCom/Tribes JAR File -->
    <jarIt jarfile="${catalina-tribes.jar}" filesId="files.catalina-tribes"
      manifest="${tomcat.tmp}/default.manifest"
      notice="res/META-INF/default.notice"
      license="res/META-INF/default.license" />

    <!-- Catalina Cluster/HA JAR File -->
    <jarIt jarfile="${catalina-ha.jar}" filesId="files.catalina-ha"
      manifest="${tomcat.tmp}/default.manifest"
      notice="res/META-INF/default.notice"
      license="res/META-INF/default.license" />

    <!-- Catalina Ant Tasks JAR File -->
    <jarIt jarfile="${catalina-ant.jar}" filesId="files.catalina-ant"
      manifest="${tomcat.tmp}/default.manifest"
      notice="res/META-INF/default.notice"
      license="res/META-INF/default.license" />

    <!-- Protocol handlers - Coyote -->
    <jarIt jarfile="${tomcat-coyote.jar}" filesId="files.tomcat-coyote"
      manifest="${tomcat.tmp}/default.manifest"
      notice="res/META-INF/default.notice"
      license="res/META-INF/default.license" />

    <!-- Jasper Implementation JAR File -->
    <jarIt jarfile="${jasper.jar}" filesId="files.jasper"
      manifest="${tomcat.tmp}/default.manifest"
      notice="res/META-INF/default.notice"
      license="res/META-INF/default.license" />

    <!-- Jasper EL Implementation JAR File -->
    <jarIt jarfile="${jasper-el.jar}" filesId="files.jasper-el"
      manifest="${tomcat.tmp}/default.manifest"
      notice="res/META-INF/default.notice"
      license="res/META-INF/default.license" />

    <!-- i18n JARs -->
    <jar jarfile="${tomcat.build}/lib/tomcat-i18n-es.jar"
      manifest="${tomcat.tmp}/default.manifest" >
      <fileset dir="${tomcat.classes}">
        <include name="**/LocalStrings_es.properties" />
      </fileset>
      <zipfileset file="res/META-INF/default.notice"
        fullpath="META-INF/NOTICE" />
      <zipfileset file="res/META-INF/default.license"
        fullpath="META-INF/LICENSE" />
    </jar>
    <jar jarfile="${tomcat.build}/lib/tomcat-i18n-fr.jar"
      manifest="${tomcat.tmp}/default.manifest" >
      <fileset dir="${tomcat.classes}">
        <include name="**/LocalStrings_fr.properties" />
      </fileset>
      <zipfileset file="res/META-INF/default.notice"
        fullpath="META-INF/NOTICE" />
      <zipfileset file="res/META-INF/default.license"
        fullpath="META-INF/LICENSE" />
    </jar>
    <jar jarfile="${tomcat.build}/lib/tomcat-i18n-ja.jar"
      manifest="${tomcat.tmp}/default.manifest" >
      <fileset dir="${tomcat.classes}">
        <include name="**/LocalStrings_ja.properties" />
      </fileset>
      <zipfileset file="res/META-INF/default.notice"
        fullpath="META-INF/NOTICE" />
      <zipfileset file="res/META-INF/default.license"
        fullpath="META-INF/LICENSE" />
    </jar>

  </target>

  <target name="build-docs">

    <copy todir="${tomcat.build}/webapps">
      <fileset dir="webapps">
        <include name="docs/images/**"/>
        <include name="docs/**/*.html"/>
        <include name="docs/WEB-INF/**"/>
        <include name="docs/appdev/*.txt"/>
        <include name="docs/appdev/sample/**"/>
      </fileset>
        <fileset dir="webapps">
          <include name="docs/architecture/**"/>
          <exclude name="docs/architecture/*.xml"/>
        </fileset>
    </copy>
    <copy todir="${tomcat.build}/webapps/docs" encoding="ISO-8859-1">
      <filterset refid="version.filters"/>
      <fileset dir=".">
        <include name="BUILDING.txt"/>
        <include name="RUNNING.txt"/>
      </fileset>
    </copy>
    <copy tofile="${tomcat.build}/webapps/docs/RELEASE-NOTES.txt" file="RELEASE-NOTES" encoding="ISO-8859-1">
      <filterset refid="version.filters"/>
    </copy>

    <copy   tofile="${tomcat.build}/webapps/docs/appdev/sample/build.xml"
              file="webapps/docs/appdev/build.xml.txt"/>

    <mkdir dir="${tomcat.build}/webapps/docs/funcspecs" />

    <!-- XSL processing -->
    <xslt basedir="webapps/docs"
           destdir="${tomcat.build}/webapps/docs"
         extension=".html"
             style="webapps/docs/tomcat-docs.xsl"
          excludes="build.xml project.xml"
          includes="*.xml">
      <param name="relative-path" expression="."/>
    </xslt>
    <xslt basedir="webapps/docs/appdev"
           destdir="${tomcat.build}/webapps/docs/appdev"
         extension=".html"
             style="webapps/docs/tomcat-docs.xsl"
          excludes="project.xml"
          includes="*.xml">
      <param name="relative-path" expression=".."/>
    </xslt>
    <xslt basedir="webapps/docs/funcspecs"
           destdir="${tomcat.build}/webapps/docs/funcspecs"
         extension=".html"
             style="webapps/docs/tomcat-docs.xsl"
          excludes="project.xml"
          includes="*.xml">
      <param name="relative-path" expression=".."/>
    </xslt>
    <xslt basedir="webapps/docs/config"
           destdir="${tomcat.build}/webapps/docs/config"
         extension=".html"
             style="webapps/docs/tomcat-docs.xsl"
          excludes="project.xml"
          includes="*.xml">
      <param name="relative-path" expression=".."/>
    </xslt>
    <xslt basedir="webapps/docs/architecture"
           destdir="${tomcat.build}/webapps/docs/architecture"
         extension=".html"
             style="webapps/docs/tomcat-docs.xsl"
          excludes="project.xml"
          includes="*.xml">
      <param name="relative-path" expression=".."/>
    </xslt>

    <xslt basedir="webapps/docs/tribes"
               destdir="${tomcat.build}/webapps/docs/tribes"
             extension=".html"
                 style="webapps/docs/tomcat-docs.xsl"
              excludes="project.xml"
              includes="*.xml">
          <param name="relative-path" expression=".."/>
    </xslt>
  </target>

  <target name="warn.dbcp" unless="tomcat-dbcp.present">
    <echo>WARNING: tomcat-dbcp.jar not included, this build can't be used
    in a release. Please run 'ant download' with JDK1.5 if you are 
    building a tomcat release.</echo>
  </target>

  <target name="deploy" depends="build-only,build-docs,warn.dbcp">

    <copy tofile="${tomcat.build}/bin/tomcat-native.tar.gz"
            file="${tomcat-native.tar.gz}" />

    <copy todir="${tomcat.build}/bin" file="${commons-daemon.jar}" />
    <copy todir="${tomcat.build}/bin" file="${commons-daemon.jsvc.tar.gz}" />

    <!-- Copy scripts -->
    <copy todir="${tomcat.build}/bin">
      <fileset dir="bin">
         <exclude name="**/*.launch"/>
         <exclude name="**/*.sh"/>
         <exclude name="**/*.bat"/>
      </fileset>
    </copy>
    <copy todir="${tomcat.build}/bin" encoding="ISO-8859-1">
      <filterset refid="version.filters"/>
      <fileset dir="bin">
         <include name="**/*.sh"/>
         <include name="**/*.bat"/>
      </fileset>
    </copy>
    <!-- Copy doesn't retain permissions -->
    <chmod dir="${tomcat.build}/bin" includes="*.sh" perm="+x"/>

    <!-- Copy static resource files -->
    <copy todir="${tomcat.build}/conf" encoding="ISO-8859-1">
      <filterset refid="version.filters"/>
      <fileset dir="conf">
        <include name="**/*.policy"/>
        <include name="**/*.xml"/>
        <include name="**/*.properties"/>
      </fileset>
    </copy>

    <!-- Copy other regular webapps -->
    <copy todir="${tomcat.build}/webapps">
      <fileset dir="webapps">
        <include name="ROOT/**"/>
        <exclude name="ROOT/index.html"/>
        <exclude name="ROOT/index.jsp"/>
        <include name="examples/**"/>
        <include name="manager/**"/>
        <include name="host-manager/**"/>
      </fileset>
    </copy>
    <copy todir="${tomcat.build}/webapps" encoding="ISO-8859-1">
      <filterset refid="version.filters" />
      <fileset dir="webapps">
        <include name="ROOT/index.html"/>
        <include name="ROOT/index.jsp"/>
      </fileset>
    </copy>

    <copy tofile="${tomcat.build}/webapps/ROOT/RELEASE-NOTES.txt" file="RELEASE-NOTES" encoding="ISO-8859-1">
      <filterset refid="version.filters"/>
    </copy>

    <!-- Build classes for examples webapp -->
    <javac   srcdir="webapps/examples/WEB-INF/classes"
             destdir="${tomcat.build}/webapps/examples/WEB-INF/classes"
             debug="${compile.debug}" deprecation="${compile.deprecation}"
             source="${compile.source}"
             target="${compile.target}"
             optimize="${compile.optimize}"
             classpath="${tomcat.classes}"
             excludes="**/CVS/**,**/.svn/**"
             encoding="ISO-8859-1">
    </javac>

    <javac   srcdir="webapps/examples/jsp/plugin/applet"
             destdir="${tomcat.build}/webapps/examples/jsp/plugin/applet"
             debug="${compile.debug}" deprecation="${compile.deprecation}"
             source="${compile.source}"
             target="${compile.target}"
             optimize="${compile.optimize}"
             classpath="$tomcat.lcasses}"
             excludes="**/CVS/**,**/.svn/**"
             encoding="ISO-8859-1">
    </javac>

    <!-- Add sources for examples -->
    <taskdef    name="txt2html"
           classname="org.apache.tomcat.buildutil.Txt2Html"
           classpath="${tomcat.classes}" />
    <txt2html todir="${tomcat.build}/webapps/examples/jsp/jsp2/simpletag">
      <fileset dir="webapps/examples/WEB-INF/classes/jsp2/examples">
        <include name="BookBean.java"/>
      </fileset>
      <fileset dir="webapps/examples/WEB-INF/classes/jsp2/examples/simpletag">
        <include name="FindBookSimpleTag.java"/>
        <include name="RepeatSimpleTag.java"/>
        <include name="HelloWorldSimpleTag.java"/>
      </fileset>
      <fileset dir="webapps/examples/WEB-INF/classes/jsp2/examples/el">
        <include name="Functions.java"/>
      </fileset>
    </txt2html>

    <txt2html todir="${tomcat.build}/webapps/examples/jsp/jsp2/jspattribute">
      <fileset dir="webapps/examples/WEB-INF/classes/jsp2/examples">
        <include name="FooBean.java"/>
      </fileset>
      <fileset dir="webapps/examples/WEB-INF/classes/jsp2/examples/simpletag">
        <include name="ShuffleSimpleTag.java"/>
        <include name="TileSimpleTag.java"/>
        <include name="HelloWorldSimpleTag.java"/>
      </fileset>
    </txt2html>

    <txt2html todir="${tomcat.build}/webapps/examples/jsp/cal">
      <fileset dir="webapps/examples/WEB-INF/classes/cal">
        <include name="Entries.java"/>
        <include name="Entry.java"/>
        <include name="JspCalendar.java"/>
        <include name="TableBean.java"/>
      </fileset>
    </txt2html>

    <txt2html todir="${tomcat.build}/webapps/examples/jsp/jsptoserv">
      <fileset dir="webapps/examples/WEB-INF/classes">
        <include name="servletToJsp.java"/>
      </fileset>
    </txt2html>

    <txt2html todir="${tomcat.build}/webapps/examples/jsp/jsp2/el">
      <fileset dir="webapps/examples/WEB-INF/classes/jsp2/examples/el">
        <include name="Functions.java"/>
      </fileset>
    </txt2html>

    <txt2html todir="${tomcat.build}/webapps/examples/jsp/jsp2/misc">
      <fileset dir="webapps/examples/WEB-INF/classes/jsp2/examples/simpletag">
        <include name="EchoAttributesTag.java"/>
      </fileset>
    </txt2html>

    <txt2html todir="${tomcat.build}/webapps/examples/jsp/jsp2/tagfiles">
      <fileset dir="webapps/examples/WEB-INF/tags">
        <include name="**/*.tag" />
      </fileset>
    </txt2html>

    <txt2html todir="${tomcat.build}/webapps/examples">
      <fileset dir="webapps/examples">
        <include name="**/*.jsp" />
        <include name="**/*.jspx" />
        <include name="**/*.jspf" />
        <exclude name="error/errorpge.jsp"/>
        <exclude name="forward/one.jsp"/>
        <exclude name="include/foo.jsp"/>
        <exclude name="jsptoserv/hello.jsp"/>
        <exclude name="security/protected/error.jsp"/>
        <exclude name="security/protected/index.jsp"/>
        <exclude name="security/protected/login.jsp"/>
        <exclude name="source.jsp"/>
      </fileset>
    </txt2html>

    <copy file="${tomcat-dbcp.jar}" todir="${tomcat.build}/lib"
      failonerror="false"/>
    <copy file="${jasper-jdt.jar}" todir="${tomcat.build}/lib" />

  </target>

  <target name="clean-depend"
          description="Clean depend src components">
     <delete dir="${tomcat-dbcp.home}"/>
     <delete dir="${jasper-jdt.home}"/>
  </target>

  <target name="clean">
    <delete dir="${tomcat.classes}" />
    <delete dir="${tomcat.build}" />
    <delete dir="${tomcat.tmp}" />
  </target>

  <!-- Download and dependency building -->
  <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}"
              proxyuser="${proxy.user}" proxypassword="${proxy.password}" />
    <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>

  <target name="download"
          description="Download (and build as necessary) dependent components"
          depends="build-manifests">

    <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>

    <antcall target="downloadgz">
      <param name="sourcefile" value="${commons-daemon.loc}"/>
      <param name="destfile" value="${commons-daemon.jar}"/>
    </antcall>

    <!-- Build Tomcat DBCP bundle -->
    <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>
    <mkdir dir="${tomcat-dbcp.home}"/>
    <antcall target="build-tomcat-dbcp">
      <param name="basedir" value="${tomcat-dbcp.home}" />
    </antcall>

    <!-- Build Jasper JDT bundle -->
    <antcall target="downloadzip">
      <param name="sourcefile" value="${jdt.loc}"/>
      <param name="destfile" value="${jdt.jar}"/>
      <param name="destdir" value="${base.path}"/>
    </antcall>
    <mkdir dir="${jasper-jdt.home}"/>
    <antcall target="build-jasper-jdt">
      <param name="basedir" value="${jasper-jdt.home}" />
    </antcall>

    <antcall target="downloadzip">
      <param name="sourcefile" value="${nsis.loc}"/>
      <param name="destfile" value="${nsis.exe}"/>
      <param name="destdir" value="${nsis.home}/.."/>
    </antcall>

  </target>

  <target name="build-tomcat-dbcp" unless="jdk16.present">
    <copy todir="${tomcat-dbcp.home}">
      <fileset dir="${commons-pool.home}">
        <include name="**/*.java" />
        <exclude name="**/test/**" />
      </fileset>
      <fileset dir="${commons-dbcp.home}">
        <include name="**/*.java" />
        <exclude name="**/test/**" />
      </fileset>
    </copy>
    <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>
    <replace dir="${tomcat-dbcp.home}/src/java/org/apache/commons/pool/impl"
        encoding="ISO-8859-1">
      <replacefilter token="enum"
            value="enumeration" />
    </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="${tomcat-dbcp.home}/classes"
           optimize="off"
           debug="${compile.debug}"
           deprecation="${compile.deprecation}"
           source="${compile.source}"
           target="${compile.target}"
           sourcepath="${tomcat-dbcp.home}/src/java"
           srcdir="${tomcat-dbcp.home}/src/java"
           encoding="ISO-8859-1">
      <include name="**" />
    </javac>
    <jar jarfile="${tomcat-dbcp.jar}"
         index="true"
         manifest="${tomcat.tmp}/default.manifest">
      <fileset dir="${tomcat-dbcp.home}/classes">
        <include name="**/*.class" />
        <include name="**/*.properties" />
      </fileset>
      <zipfileset file="${tomcat.home}/res/META-INF/default.notice"
        fullpath="META-INF/NOTICE" />
      <zipfileset file="${tomcat.home}/res/META-INF/default.license"
        fullpath="META-INF/LICENSE" />
    </jar>
  </target>

  <target name="build-jasper-jdt">
    <unjar src="${jdt.jar}" dest="${jasper-jdt.home}" />
    <jar destfile="${jasper-jdt.jar}" index="true"
         manifest="${tomcat.tmp}/default.manifest">
      <fileset dir="${jasper-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>
      <zipfileset file="${tomcat.home}/res/META-INF/jasper-jdt.jar.notice"
        fullpath="META-INF/NOTICE" />
      <zipfileset file="${tomcat.home}/res/META-INF/jasper-jdt.jar.license"
        fullpath="META-INF/LICENSE" />
    </jar>
  </target>

</project>


File: build.properties.default

# -----------------------------------------------------------------------------
# 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.
# -----------------------------------------------------------------------------
# build.properties.sample
#
# This is an example "build.properties" file, used to customize building 
# Tomcat for your local environment.  It defines the location of all external
# modules that Tomcat depends on.  Copy this file to "build.properties"
# in the top-level source directory, and customize it as needed.
#
# $Id: build.properties.default 900770 2010-01-19 13:24:49Z jfclere $
# -----------------------------------------------------------------------------

# ----- Version Control Flags -----
version.major=6
version.minor=0
version.build=0
version.patch=0
version=6.0.24

# ----- Default Base Path for Dependent Packages -----
# Please note this path must be absolute, not relative,
# as it is referenced with different working directory
# contexts by the various build scripts.
base.path=/usr/share/java
#base.path=C:/path/to/the/repository
#base.path=/usr/local

compile.source=1.5
compile.target=1.5
compile.debug=true

base-commons.loc=http://archive.apache.org/dist/commons
base-tomcat.loc=http://archive.apache.org/dist/tomcat
base-sf.loc=http://downloads.sourceforge.net

# ----- Commons Logging, version 1.1 or later -----
commons-logging-version=1.1.1
commons-logging-src.loc=${base-commons.loc}/logging/source/commons-logging-${commons-logging-version}-src.tar.gz

# ----- Webservices -----
jaxrpc-src.loc=http://repo1.maven.org/maven2/geronimo-spec/geronimo-spec-jaxrpc/1.1-rc4/geronimo-spec-jaxrpc-1.1-rc4.jar
wsdl4j-src.loc=http://repo1.maven.org/maven2/wsdl4j/wsdl4j/1.6.1/wsdl4j-1.6.1.jar

# ----- Eclipse JDT, version 3.2 or later -----
jdt.home=${base.path}/eclipse/plugins
jdt.lib=${jdt.home}
jdt.jar=${jdt.lib}/org.eclipse.jdt.core_3.3.1.v_780_R33x.jar
jdt.loc=http://archive.eclipse.org/eclipse/downloads/drops/R-3.3.1-200709211145/eclipse-JDT-3.3.1.zip

# ----- Tomcat native library -----
tomcat-native.version=1.1.19
tomcat-native.home=${base.path}/tomcat-native-${tomcat-native.version}
tomcat-native.tar.gz=${tomcat-native.home}/tomcat-native.tar.gz
tomcat-native.loc=${base-tomcat.loc}/tomcat-connectors/native/${tomcat-native.version}/source/tomcat-native-${tomcat-native.version}-src.tar.gz
tomcat-native.dll=${base-tomcat.loc}/tomcat-connectors/native/${tomcat-native.version}/binaries

# ----- Commons DBCP, version 1.1 or later -----
commons-dbcp.version=1.2.2
commons-dbcp.home=${base.path}/commons-dbcp-1.2.2-src
commons-dbcp-src.loc=${base-commons.loc}/dbcp/source/commons-dbcp-1.2.2-src.tar.gz

# ----- Commons Pool, version 1.1 or later -----
commons-pool.home=${base.path}/commons-pool-1.5.4-src
commons-pool-src.loc=${base-commons.loc}/pool/source/commons-pool-1.5.4-src.tar.gz

# ----- NSIS, version 2.0 or later -----
nsis.home=${base.path}/nsis-2.45
nsis.exe=${nsis.home}/makensis.exe
nsis.installoptions.dll=${nsis.home}/Plugins/InstallOptions.dll
nsis.nsexec.dll=${nsis.home}/Plugins/nsExec.dll
nsis.nsisdl.dll=${nsis.home}/Plugins/NSISdl.dll
nsis.loc=${base-sf.loc}/nsis/nsis-2.45.zip

# ----- Commons Daemon, version 1.0-Alpha or later -----
commons-daemon.home=${base.path}/commons-daemon-1.0.1
commons-daemon.lib=${commons-daemon.home}
commons-daemon.jar=${commons-daemon.lib}/commons-daemon.jar
commons-daemon.loc=${base-commons.loc}/daemon/binaries/commons-daemon-1.0.1.tar.gz
commons-daemon.jsvc.tar.gz=${commons-daemon.lib}/bin/jsvc.tar.gz

 








Related examples in the same category

1.Ant script for xmlgraphics-commons
2.nutch ant script
3.rhino ant build script
4.apache solr ant script
5.OFBiz ant build script
6.Apache Lenya Build System
7.Apache pivot ant build script
8.XmlSchema ant script
9.xml security
10.velocity tools ant script
11.weka build script
12.xml bean ant script
13.xml graphics common ant script
14.uPortal ant script
15.SmartGWT ant script
16.Build file to fetch maven2 tasks; extracted from (Ant's) fetch.xml
17.Build file to fetch optional libraries for Apache Ant
18.Ant build script
19.Build script for apache-cassandra-0.5.1-src
20.apache-log4j-site\build.xml
21.apache-roller-src-4.0.1
22.Build script from apache dbutils
23.Fop build script
24.Google guice ant script
25.GWT ant script
26.hadoop ant build script
27.jakarta jmeter ant script
28.jakarta oro ant script
29.jakarta regexp ant script
30.jedit build script
31.jibx ant build script
32.lucene ant build script