alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

Tomcat example source code file (build.xml)

This example Tomcat source code file (build.xml) is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Java - Tomcat tags/keywords

catalina, download, file, file, implementation, jar, jar, javadoc, javadoc, license, localstrings_, localstrings_, tomcat, version

The Tomcat build.xml source code

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

  <!-- See "build.properties.sample" in the top level directory for all     -->
  <!-- property values you must customize for successful building!!!        -->
  <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="2007" />
  <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"               value="6.0.0-dev" />
  <property name="version.number"        value="${version.major}.${version.minor}.${version.build}.${version.patch}" />

  <property name="project"               value="apache-tomcat" />
  <property name="final.name"            value="${project}-${version}" />
  <property name="final-src.name"        value="${project}-${version}-src" />

  <!-- Build Defaults -->
  <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="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"/>

  <!-- 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}/tomcat6-deps/dbcp" />
  <property name="jasper-jdt.home" value="${base.path}/tomcat6-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"/>

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

  <!-- 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}/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}"
           optimize="${compile.optimize}"
           excludes="**/CVS/**,**/.svn/**">
<!-- Comment this in to show unchecked warnings:     
      <classpath refid="tomcat.classpath" />
      <exclude name="org/apache/tomcat/util/net/puretls/**" />
      <exclude name="org/apache/naming/factory/webservices/**" />
    </javac>
    <tstamp>
      <format property="TODAY" pattern="MMM d yyyy" locale="en"/>
      <format property="TSTAMP" pattern="hh:mm:ss"/>        
    </tstamp>    
    <!-- Copy static resource files -->
    <filter token="VERSION" value="${version}"/>
    <filter token="VERSION_NUMBER" value="${version.number}"/>
    <filter token="VERSION_BUILT" value="${TODAY} ${TSTAMP}"/>
    <copy todir="${tomcat.classes}" filtering="true">
      <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" />

  <target name="package" >

    <!-- Common Annotations 1.0 JAR File -->
    <jar  jarfile="${annotations-api.jar}">
      <fileset dir="${tomcat.classes}">
        <include name="javax/annotation/*" />
        <include name="javax/annotation/security/*" />
        <include name="javax/ejb/*" />
        <include name="javax/persistence/*" />
        <include name="javax/xml/ws/*" />
        <!-- Javadoc and i18n exclusions -->
        <exclude name="**/package.html" />
        <exclude name="**/LocalStrings_*" />
      </fileset>
    </jar>

    <!-- Servlet 2.5 Implementation JAR File -->
    <jar  jarfile="${servlet-api.jar}">
      <fileset dir="${tomcat.classes}">
        <include name="javax/servlet/*" />
        <include name="javax/servlet/http/*" />
        <include name="javax/servlet/resources/*" />
        <!-- Javadoc and i18n exclusions -->
        <exclude name="**/package.html" />
        <exclude name="**/LocalStrings_*" />
      </fileset>
    </jar>

    <!-- JSP 2.1 Implementation JAR File -->
    <jar  jarfile="${jsp-api.jar}">
      <fileset dir="${tomcat.classes}">
        <include name="javax/servlet/jsp/**" />
        <!-- Javadoc and i18n exclusions -->
        <exclude name="**/package.html" />
        <exclude name="**/LocalStrings_*" />
      </fileset>
    </jar>

    <!-- JSP 2.1 EL Implementation JAR File -->
    <jar  jarfile="${el-api.jar}">
      <fileset dir="${tomcat.classes}">
        <include name="javax/el/*" />
        <!-- Javadoc and i18n exclusions -->
        <exclude name="**/package.html" />
        <exclude name="**/LocalStrings_*" />
      </fileset>
    </jar>

    <!-- Bootstrap JAR File -->
    <jar jarfile="${bootstrap.jar}" 
        manifest="res/bootstrap.jar.manifest">
      <fileset dir="${tomcat.classes}">
        <include name="org/apache/catalina/startup/Bootstrap.class" />
        <include name="org/apache/catalina/startup/catalina.properties" />
        <include name="org/apache/catalina/startup/CatalinaProperties.class" />
        <include name="org/apache/catalina/startup/ClassLoaderFactory.class" />
        <include name="org/apache/catalina/startup/Tool.class" />
        <include name="org/apache/catalina/loader/StandardClassLoader*.class" />
        <include name="org/apache/catalina/loader/Extension.class" />
        <include name="org/apache/catalina/loader/Reloader.class" />
        <include name="org/apache/catalina/security/SecurityClassLoad.class" />
        <include name="org/apache/naming/JndiPermission.class" />
        <include name="org/apache/tomcat/util/compat/*" />
        <!-- Javadoc and i18n exclusions -->
        <exclude name="**/package.html" />
        <exclude name="**/LocalStrings_*" />
      </fileset>
    </jar>

    <!-- Tomcat-juli JAR File -->
    <jar jarfile="${tomcat-juli.jar}">
      <fileset dir="${tomcat.classes}">
        <include name="org/apache/juli/**" />
        <!-- Javadoc and i18n exclusions -->
        <exclude name="**/package.html" />
        <exclude name="**/LocalStrings_*" />
      </fileset>
    </jar>

    <!-- Catalina Main JAR File -->
    <jar jarfile="${catalina.jar}">
      <fileset dir="${tomcat.classes}">
        <include name="org/apache/*" />
        <include name="org/apache/catalina/**" />
        <include name="org/apache/naming/**" />
        <!-- Javadoc and i18n exclusions -->
        <exclude name="**/package.html" />
        <exclude name="**/LocalStrings_*" />
        <!-- Modules -->
        <exclude name="org/apache/catalina/ant/**" />
        <exclude name="org/apache/catalina/cluster/**" />
        <exclude name="org/apache/catalina/ha/**" />
        <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/**" />
      </fileset>
    </jar>
    
    <!-- Catalina GroupCom/Tribes JAR File -->
    <jar jarfile="${catalina-tribes.jar}">
      <fileset dir="${tomcat.classes}">
        <exclude name="**/package.html" />
        <exclude name="**/LocalStrings_*" />
        <!-- Modules -->
        <include name="org/apache/catalina/tribes/**" />
      </fileset>
    </jar>
    <!-- Catalina Cluster/HA JAR File -->
    <jar jarfile="${catalina-ha.jar}">
      <fileset dir="${tomcat.classes}">
        <exclude name="**/package.html" />
        <exclude name="**/LocalStrings_*" />
        <!-- Modules -->
        <include name="org/apache/catalina/ha/**" />
      </fileset>
    </jar>

    <!-- Catalina Ant Tasks JAR File -->
    <jar jarfile="${catalina-ant.jar}">
      <fileset dir="${tomcat.classes}">
        <include name="org/apache/catalina/ant/*" />
        <include name="org/apache/catalina/ant/jmx/*" />
        <include name="org/apache/catalina/util/Base64.class" />
        <!-- Javadoc and i18n exclusions -->
        <exclude name="**/package.html" />
        <exclude name="**/LocalStrings_*" />
      </fileset>
    </jar>

    <!-- Protocol handlers - Coyote -->
    <jar jarfile="${tomcat-coyote.jar}">
      <fileset dir="${tomcat.classes}">
        <include name="org/apache/coyote/**" />
        <include name="org/apache/tomcat/jni/**" />
        <include name="org/apache/jk/**" />
        <include name="org/apache/tomcat/util/**" />
        <!-- Javadoc and i18n exclusions -->
        <exclude name="**/package.html" />
        <exclude name="**/LocalStrings_*" />
      </fileset>
    </jar>

    <!-- Jasper Implementation JAR File -->
    <jar  jarfile="${jasper.jar}">
      <fileset dir="${tomcat.classes}">
        <include name="org/apache/*" />
        <include name="org/apache/jasper/**" />
        <!-- Javadoc and i18n exclusions -->
        <exclude name="**/package.html" />
        <exclude name="**/LocalStrings_*" />
      </fileset>
    </jar>

    <!-- Jasper EL Implementation JAR File -->
    <jar  jarfile="${jasper-el.jar}">
      <fileset dir="${tomcat.classes}">
        <include name="org/apache/el/**" />
        <!-- Javadoc and i18n exclusions -->
        <exclude name="**/package.html" />
        <exclude name="**/LocalStrings_*" />
      </fileset>
    </jar>

    <!-- i18n JARs -->
    <jar jarfile="${tomcat.build}/lib/tomcat-i18n-es.jar">
      <fileset dir="${tomcat.classes}">
        <include name="**/LocalStrings_es.properties" />
      </fileset>
    </jar>
    <jar jarfile="${tomcat.build}/lib/tomcat-i18n-fr.jar">
      <fileset dir="${tomcat.classes}">
        <include name="**/LocalStrings_fr.properties" />
      </fileset>
    </jar>
    <jar jarfile="${tomcat.build}/lib/tomcat-i18n-ja.jar">
      <fileset dir="${tomcat.classes}">
        <include name="**/LocalStrings_ja.properties" />
      </fileset>
    </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">
      <fileset dir=".">
        <include name="BUILDING.txt"/>
        <include name="NOTICE"/>
        <include name="RUNNING.txt"/>
      </fileset>
    </copy>
    <filter token="VERSION" value="${version}"/>
    <copy tofile="${tomcat.build}/webapps/docs/RELEASE-NOTES.txt" file="RELEASE-NOTES" 
          filtering="true" />

    <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 -->
    <style 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="."/>
    </style>
    <style 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=".."/>
    </style>
    <style 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=".."/>
    </style>
    <style 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=".."/>
    </style>
    <style 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=".."/>
    </style>
    
    <style 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=".."/>
    </style>

  	<!-- Print friendly version -->
  	<mkdir dir="${tomcat.build}/webapps/docs/printer" />
    <copy todir="${tomcat.build}/webapps/docs/printer">
      <fileset dir=".">
        <include name="BUILDING.txt"/>
        <include name="NOTICE"/>
        <include name="RUNNING.txt"/>
      </fileset>
    </copy>
  	<mkdir dir="${tomcat.build}/webapps/docs/appdev/printer" />
    <copy todir="${tomcat.build}/webapps/docs/appdev/printer">
        <fileset dir="webapps">
          <include name="docs/appdev/*.txt"/>
        </fileset>
    </copy>
  	<mkdir dir="${tomcat.build}/webapps/docs/funcspecs/printer" />
    <mkdir dir="${tomcat.build}/webapps/docs/architecture/printer"/>
    <mkdir dir="${tomcat.build}/webapps/docs/config/printer"/>

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

  </target>

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

    <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"/>
      </fileset>
    </copy>

  	<!-- Copy static resource files -->
    <copy todir="${tomcat.build}/conf">
      <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/**"/>
        <include name="examples/**"/>
        <include name="manager/**"/>
        <include name="host-manager/**"/>
      </fileset>
    </copy>

    <filter token="VERSION" value="${version}"/>
    <copy tofile="${tomcat.build}/webapps/ROOT/RELEASE-NOTES.txt" file="RELEASE-NOTES" 
          filtering="true" />

    <!-- 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}"
             optimize="${compile.optimize}"
    	     classpath="${tomcat.classes}"
             excludes="**/CVS/**,**/.svn/**">
    </javac>
  	
    <javac   srcdir="webapps/examples/jsp/plugin/applet" 
             destdir="${tomcat.build}/webapps/examples/jsp/plugin/applet"
             debug="${compile.debug}" deprecation="${compile.deprecation}"
             optimize="${compile.optimize}"
    	     classpath="$tomcat.lcasses}"
             excludes="**/CVS/**,**/.svn/**">
    </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" />
    <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}" />
  </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="Builds and download dependent components">

    <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="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-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="${tomcat-dbcp.jar}" />
    </antcall>
    <antcall target="downloadgz">
      <param name="sourcefile" value="${commons-dbcp-src.loc}"/>
      <param name="destfile" value="${tomcat-dbcp.jar}" />
    </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>

  </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/**" />
      </fileset>
    </copy>
  	<!--
    <replace dir="${tomcat-dbcp.home}/src/java/org/apache/commons">
      <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" >
      <replacefilter token="org.apache.commons"
            value="org.apache.tomcat.dbcp" />
    </replace>
    <replace dir="${tomcat-dbcp.home}/src/java/org/apache/commons/pool/impl" >
      <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}"
           sourcepath="${tomcat-dbcp.home}/src/java"
           srcdir="${tomcat-dbcp.home}/src/java" >
      <include name="**" />
    </javac>
    <jar jarfile="${tomcat-dbcp.jar}"
         index="true">
      <fileset dir="${tomcat-dbcp.home}/classes">
        <include name="**/*.class" />
        <include name="**/*.properties" />
      </fileset>
    </jar>
  </target>

  <target name="build-jasper-jdt">
    <unjar src="${jdt.jar}" dest="${jasper-jdt.home}" />
    <jar destfile="${jasper-jdt.jar}" index="true">
      <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>
    </jar>
  </target>

</project>

Other Tomcat examples (source code examples)

Here is a short list of links related to this Tomcat build.xml source code file:

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.