blob: 1155138dae02c0ff08db1ec82423c1a390cb4517 [file] [log] [blame]
<?xml version="1.0"?>
<project name="Catalina" 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="build.properties"/>
<property file="../build.properties"/>
<property file="${user.home}/build.properties"/-->
<!-- Build Defaults -->
<property name="catalina.home" location=".."/>
<property name="catalina.build" value="${catalina.home}/catalina/build"/>
<property name="classes.dir" value="${catalina.build}/server/classes" />
<property name="catalina.deploy" value="${catalina.home}/build"/>
<property name="catalina.dist" value="${catalina.home}/dist"/>
<property name="test.failonerror" value="true"/>
<property name="test.runner" value="junit.textui.TestRunner"/>
<property name="test.webapp" value="../webapps/build/ROOT"/>
<property name="test.webapp.war" value="${java.io.tmpdir}/webapp.war"/>
<!-- Source dependencies -->
<property name="tomcat-util.home" value="${jtc.home}/util"/>
<property name="tomcat-coyote.home" value="${jtc.home}/coyote"/>
<property name="tomcat-jk.home" value="${jtc.home}/jk"/>
<property name="tomcat-http11.home" value="${jtc.home}/http11"/>
<!-- Dependent JARs and files -->
<property name="ant.jar" value="${ant.home}/lib/ant.jar"/>
<property name="servlet-api.jar" value="${api.home}/jsr154/dist/lib/servlet-api.jar"/>
<property name="tomcat-util.jar"
value="${tomcat-util.home}/build/lib/tomcat-util.jar"/>
<property name="tomcat-coyote.jar"
value="${tomcat-coyote.home}/build/lib/tomcat-coyote.jar"/>
<property name="tomcat-jk2.jar"
value="${tomcat-jk.home}/build/lib/tomcat-jk2.jar"/>
<property name="tomcat-jni.jar"
value="${tomcat-jk.home}/build/lib/tomcat-jni.jar"/>
<property name="jk2.properties"
value="${tomcat-jk.home}/build/conf/jk2.properties"/>
<property name="tomcat-http11.jar"
value="${tomcat-http11.home}/build/lib/tomcat-http11.jar"/>
<property name="tomcat-dbcp.jar"
value="${base.path}/tomcat-deps/naming-factory-dbcp.jar"/>
<!-- Construct Catalina classpath -->
<path id="catalina.classpath">
<pathelement location="${activation.jar}"/>
<pathelement location="${ant.jar}"/>
<pathelement location="${commons-beanutils.jar}"/>
<pathelement location="${commons-collections.jar}"/>
<pathelement location="${tomcat-dbcp.jar}"/>
<pathelement location="${commons-digester.jar}"/>
<pathelement location="${commons-fileupload.jar}"/>
<pathelement location="${commons-launcher.jar}"/>
<pathelement location="${commons-logging.jar}"/>
<pathelement location="${commons-modeler.jar}"/>
<pathelement location="${tomcat-util.jar}"/>
<pathelement location="${tomcat-coyote.jar}"/>
<pathelement location="${jaas.jar}"/>
<pathelement location="${javagroups.jar}"/>
<pathelement location="${jcert.jar}"/>
<pathelement location="${jmx.jar}"/>
<pathelement location="${jmx-remote.jar}"/>
<pathelement location="${jndi.jar}"/>
<pathelement location="${jnet.jar}"/>
<pathelement location="${jsse.jar}"/>
<pathelement location="${java.home}/lib/jsse.jar"/>
<pathelement location="${jta.jar}"/>
<pathelement location="${ldap.jar}"/>
<pathelement location="${mail.jar}"/>
<pathelement location="${regexp.jar}"/>
<pathelement location="${servlet-api.jar}"/>
<pathelement location="${xercesImpl.jar}"/>
<pathelement location="${xml-apis.jar}"/>
<pathelement location="${classes.dir}"/>
</path>
<!-- Construct unit tests classpath -->
<path id="test.classpath">
<pathelement location="${junit.jar}"/>
<pathelement location="${activation.jar}"/>
<pathelement location="${ant.jar}"/>
<pathelement location="${commons-beanutils.jar}"/>
<pathelement location="${commons-collections.jar}"/>
<pathelement location="${tomcat-dbcp.jar}"/>
<pathelement location="${commons-digester.jar}"/>
<pathelement location="${commons-fileupload.jar}"/>
<pathelement location="${commons-launcher.jar}"/>
<pathelement location="${commons-logging.jar}"/>
<pathelement location="${commons-modeler.jar}"/>
<pathelement location="${jaas.jar}"/>
<pathelement location="${jcert.jar}"/>
<pathelement location="${jmx.jar}"/>
<pathelement location="${jndi.jar}"/>
<pathelement location="${jnet.jar}"/>
<pathelement location="${jsse.jar}"/>
<pathelement location="${jta.jar}"/>
<pathelement location="${ldap.jar}"/>
<pathelement location="${mail.jar}"/>
<pathelement location="${regexp.jar}"/>
<pathelement location="${servlet-api.jar}"/>
<pathelement location="${xercesImpl.jar}"/>
<pathelement location="${xml-apis.jar}"/>
<pathelement location="${classes.dir}"/>
<pathelement location="${catalina.build}/tests"/>
</path>
<!-- Source path -->
<path id="javadoc.sourcepath">
<pathelement location="src/share"/>
<pathelement location="${tomcat-util.home}/java"/>
<pathelement location="${tomcat-coyote.home}/src/java"/>
<pathelement location="${tomcat-jk.home}/java"/>
<pathelement location="${tomcat-http11.home}/src/java"/>
<pathelement location="../modules/cluster/src/share"/>
<pathelement location="../modules/storeconfig/src/share"/>
</path>
<!-- =================== BUILD: Set compile flags ======================= -->
<target name="flags">
<!-- JDK flags -->
<available property="jdk.1.2.present" classname="java.util.HashMap" />
<available property="jdk.1.3.present"
classname="java.lang.reflect.Proxy" />
<available property="jdk.1.4.present" classname="java.nio.Buffer" />
<available property="jdk.1.5.present"
classname="java.util.concurrent.Semaphore" />
<!-- Ant flags -->
<available property="style.available"
classname="org.apache.tools.ant.taskdefs.optional.TraXLiaison" />
<!-- Source path -->
<available property="jtc.home.present" file="${jtc.home}" />
<!-- Class availability flags -->
<available property="beanutils.present"
classname="org.apache.commons.beanutils.BeanUtils"
classpath="${commons-beanutils.jar}"/>
<available property="collections.present"
classname="org.apache.commons.collections.FastHashMap"
classpath="${commons-collections.jar}"/>
<available property="dbcp.present"
classname="org.apache.tomcat.dbcp.dbcp.ConnectionFactory"
classpath="${tomcat-dbcp.jar}"/>
<available property="digester.present"
classname="org.apache.commons.digester.Digester"
classpath="${commons-digester.jar}"/>
<available property="fileupload.present"
classname="org.apache.commons.fileupload.FileUpload"
classpath="${commons-fileupload.jar}"/>
<available property="launcher.present"
classname="org.apache.commons.launcher.Launcher"
classpath="${commons-launcher.jar}"/>
<available property="launcher.bootstrap.present"
file="${commons-launcher.bootstrap.class}"/>
<available property="logging.present"
classname="org.apache.commons.logging.Log"
classpath="${commons-logging.jar}"/>
<available property="modeler.present"
classname="org.apache.commons.modeler.Registry"
classpath="${commons-modeler.jar}:${jmx.jar}"/>
<available property="jaas.present"
classname="javax.security.auth.Subject"
classpath="${jaas.jar}" />
<condition property="jaxp.present">
<and>
<available classname="javax.xml.parsers.SAXParser"
classpath="${xml-apis.jar}" />
<available classname="org.xml.sax.ContentHandler"
classpath="${xml-apis.jar}" />
</and>
</condition>
<condition property="javamail.present">
<and>
<available classname="javax.activation.DataSource"
classpath="${activation.jar}" />
<available classname="javax.mail.Service"
classpath="${mail.jar}" />
</and>
</condition>
<available property="jmx.present"
classname="javax.management.MBeanServer"
classpath="${jmx.jar}" />
<available property="jndi.present"
classname="javax.naming.Context"
classpath="${jndi.jar}" />
<condition property="jsse.present">
<and>
<available classname="javax.security.cert.Certificate"
classpath="${jcert.jar}" />
<available classname="javax.net.SocketFactory"
classpath="${jnet.jar}" />
<available classname="javax.net.ssl.SSLSocket"
classpath="${jsse.jar}" />
</and>
</condition>
<available property="jta.present"
classname="javax.transaction.UserTransaction"
classpath="${jta.jar}" />
<available property="junit.present"
classname="junit.framework.TestCase"
classpath="${junit.jar}" />
<available property="ldap.present"
classname="com.sun.jndi.ldap.LdapClient"
classpath="${ldap.jar}" />
<available property="pool.present"
classname="org.apache.tomcat.dbcp.pool.ObjectPool"
classpath="${tomcat-dbcp.jar}"/>
<available property="regexp.present"
classname="org.apache.regexp.RE"
classpath="${regexp.jar}" />
<available property="xerces.present"
classname="org.apache.xerces.parsers.SAXParser"
classpath="${xercesImpl.jar}" />
<!-- JAR files availability flags -->
<available property="dbcp.jar.present" file="${tomcat-dbcp.jar}" />
<available property="fileupload.jar.present" file="${commons-fileupload.jar}" />
<available property="jaas.jar.present" file="${jaas.jar}" />
<condition property="javamail.jar.present">
<and>
<available file="${activation.jar}" />
<available file="${mail.jar}" />
</and>
</condition>
<available property="jmx.jar.present" file="${jmx.jar}" />
<available property="jcert.jar.present" file="${jcert.jar}" />
<available property="jndi.jar.present" file="${jndi.jar}" />
<available property="jnet.jar.present" file="${jnet.jar}" />
<available property="jsse.jar.present" file="${jsse.jar}" />
<available property="jta.jar.present" file="${jta.jar}" />
<available property="junit.jar.present" file="${junit.jar}" />
<condition property="launcher.jars.present">
<and>
<equals arg1="${launcher.present}" arg2="true"/>
<equals arg1="${launcher.bootstrap.present}" arg2="true"/>
</and>
</condition>
<available property="ldap.jar.present" file="${ldap.jar}" />
<available property="logging.jar.present" file="${commons-logging.jar}" />
<available property="modeler.jar.present" file="${commons-modeler.jar}" />
<available property="pool.jar.present" file="${tomcat-dbcp.jar}" />
<available property="regexp.jar.present" file="${regexp.jar}" />
<available property="servlet-api.jar.present" file="${servlet-api.jar}" />
<available property="tomcat-util.jar.present" file="${tomcat-util.jar}" />
<available property="xercesImpl.jar.present" file="${xercesImpl.jar}"/>
<available property="xml-apis.jar.present" file="${xml-apis.jar}"/>
<condition property="xerces2.jars.present">
<and>
<equals arg1="${xercesImpl.jar.present}" arg2="true"/>
<equals arg1="${xml-apis.jar.present}" arg2="true"/>
</and>
</condition>
<!-- Conditional compilation flags (determined from the flags above) -->
<condition property="compile.dbcp">
<or>
<equals arg1="${full.dist}" arg2="on" />
<and>
<equals arg1="${dbcp.present}" arg2="true" />
<equals arg1="${pool.present}" arg2="true" />
</and>
</or>
</condition>
<condition property="compile.jaas">
<or>
<equals arg1="${full.dist}" arg2="on" />
<equals arg1="${jaas.present}" arg2="true" />
</or>
</condition>
<condition property="compile.javamail">
<or>
<equals arg1="${full.dist}" arg2="on" />
<equals arg1="${javamail.present}" arg2="true" />
</or>
</condition>
<condition property="compile.jmx">
<or>
<equals arg1="${full.dist}" arg2="on" />
<and>
<equals arg1="${jmx.present}" arg2="true" />
<equals arg1="${modeler.present}" arg2="true" />
</and>
</or>
</condition>
<condition property="compile.jndi">
<or>
<equals arg1="${full.dist}" arg2="on" />
<equals arg1="${jndi.present}" arg2="true" />
<equals arg1="${jdk.1.3.present}" arg2="true" />
</or>
</condition>
<condition property="compile.jsse">
<or>
<equals arg1="${full.dist}" arg2="on" />
<equals arg1="${jsse.present}" arg2="true" />
<equals arg1="${jdk.1.4.present}" arg2="true" />
</or>
</condition>
<condition property="compile.jta">
<or>
<equals arg1="${full.dist}" arg2="on" />
<equals arg1="${jta.present}" arg2="true" />
</or>
</condition>
<condition property="compile.junit">
<or>
<equals arg1="${full.dist}" arg2="on" />
<equals arg1="${junit.present}" arg2="true" />
</or>
</condition>
<condition property="compile.launcher">
<or>
<equals arg1="${full.dist}" arg2="on" />
<and>
<equals arg1="${launcher.present}" arg2="true" />
<equals arg1="${launcher.bootstrap.present}" arg2="true" />
</and>
</or>
</condition>
<condition property="compile.ldap">
<or>
<equals arg1="${full.dist}" arg2="on" />
<equals arg1="${ldap.present}" arg2="true" />
<equals arg1="${jdk.1.3.present}" arg2="true" />
</or>
</condition>
<property name="compile.ssi" value="true"/>
<!-- Conditional copy flags (determined from the flags above) -->
<condition property="copy.dbcp.jar">
<or>
<equals arg1="${full.dist}" arg2="on" />
<equals arg1="${dbcp.present}" arg2="true" />
</or>
</condition>
<condition property="copy.jmx.jar">
<or>
<equals arg1="${full.dist}" arg2="on" />
<equals arg1="${jmx.jar.present}" arg2="true" />
</or>
</condition>
<condition property="copy.lang.jar">
<or>
<equals arg1="${full.dist}" arg2="on" />
<equals arg1="${lang.present}" arg2="true" />
</or>
</condition>
<condition property="copy.launcher.jars">
<or>
<equals arg1="${full.dist}" arg2="on" />
<equals arg1="${launcher.jars.present}" arg2="true" />
</or>
</condition>
<condition property="copy.modeler.jar">
<or>
<equals arg1="${full.dist}" arg2="on" />
<equals arg1="${modeler.present}" arg2="true" />
</or>
</condition>
<condition property="copy.logging.jar">
<or>
<equals arg1="${full.dist}" arg2="on" />
<equals arg1="${logging.present}" arg2="true" />
</or>
</condition>
<condition property="copy.pool.jar">
<or>
<equals arg1="${full.dist}" arg2="on" />
<equals arg1="${pool.present}" arg2="true" />
</or>
</condition>
</target>
<!-- =================== BUILD: Set compile flags ======================= -->
<target name="flags.display" depends="flags" unless="flags.hide">
<echo message="--- Build environment for Catalina ---" />
<echo message="If ${property_name} is displayed, then the property is not set)" />
<echo message="--- Build options ---" />
<echo message="full.dist=${full.dist}" />
<echo message="build.sysclasspath=${build.sysclasspath}" />
<echo message="compile.debug=${compile.debug}" />
<echo message="compile.deprecation=${compile.deprecation}" />
<echo message="compile.optimize=${compile.optimize}" />
<echo message="--- Ant Flags ---" />
<echo message="&lt;style&gt; task available (required)=${style.available}" />
<echo message="--- JDK ---" />
<echo message="jdk.1.2.present=${jdk.1.2.present}" />
<echo message="jdk.1.3.present=${jdk.1.3.present}" />
<echo message="jdk.1.4.present=${jdk.1.4.present}" />
<echo message="--- Source Dependencies ---" />
<echo message="jtc.home.present=${jtc.home.present}" />
<echo message="--- Required Libraries ---" />
<echo message="beanutils.present=${beanutils.present}" />
<echo message="collections.present=${collections.present}" />
<echo message="digester.present=${digester.present}" />
<echo message="jaxp.present=${jaxp.present}" />
<echo message="jndi.present=${jndi.present}" />
<echo message="logging.present=${logging.present}" />
<echo message="regexp.present=${regexp.present}" />
<echo message="--- Optional Libraries ---" />
<echo message="dbcp.present=${dbcp.present}" />
<echo message="fileupload.present=${fileupload.present}" />
<echo message="jaas.present=${jaas.present}" />
<echo message="javamail.present=${javamail.present}" />
<echo message="jmx.present=${jmx.present}" />
<echo message="jsse.present=${jsse.present}" />
<echo message="jta.present=${jta.present}" />
<echo message="junit.present=${junit.present}" />
<echo message="lang.present=${lang.present}" />
<echo message="launcher.present=${launcher.present}" />
<echo message="launcher.bootstrap.present=${launcher.bootstrap.present}" />
<echo message="ldap.present=${ldap.present}" />
<echo message="modeler.present=${modeler.present}" />
<echo message="pool.present=${pool.present}" />
<echo message="--- Required JARs ---" />
<echo message="jndi.jar.present(except JDK 1.3+)=${jndi.jar.present}" />
<echo message="regexp.jar.present=${regexp.jar.present}" />
<echo message="servlet-api.jar.present=${servlet-api.jar.present}" />
<echo message="xerces2.jars.present(except JDK 1.4+)=${xerces2.jars.present}" />
<echo message="--- Optional JARs ---" />
<echo message="dbcp.jar.present=${dbcp.jar.present}" />
<echo message="fileupload.jar.present=${fileupload.jar.present}" />
<echo message="jaas.jar.present=${jaas.jar.present}" />
<echo message="javamail.jar.present=${javamail.jar.present}" />
<echo message="jmx.jar.present=${jmx.jar.present}" />
<echo message="jta.jar.present=${jta.jar.present}" />
<echo message="junit.jar.present=${junit.jar.present}" />
<echo message="modeler.jar.present=${modeler.jar.present}" />
<echo message="pool.jar.present=${pool.jar.present}" />
<echo message="--- Conditional compilation flags ---" />
<echo message="compile.dbcp=${compile.dbcp}" />
<echo message="compile.jaas=${compile.jaas}" />
<echo message="compile.javamail=${compile.javamail}" />
<echo message="compile.jmx=${compile.jmx}" />
<echo message="compile.jndi=${compile.jndi}" />
<echo message="compile.jsse=${compile.jsse}" />
<echo message="compile.jta=${compile.jta}" />
<echo message="compile.junit=${compile.junit}" />
<echo message="compile.ldap=${compile.ldap}" />
<echo message="compile.ssi=${compile.ssi}" />
<echo message="--- Distribution flags ---" />
<echo message="copy.dbcp.jar=${copy.dbcp.jar}" />
<echo message="copy.jmx.jar=${copy.jmx.jar}" />
<echo message="copy.launcher.jars=${copy.launcher.jars}" />
<echo message="copy.logging.jar=${copy.logging.jar}" />
<echo message="copy.modeler.jar=${copy.modeler.jar}" />
<echo message="copy.pool.jar=${copy.pool.jar}" />
</target>
<!-- =================== BUILD: Create Directories ====================== -->
<target name="build-prepare">
<mkdir dir="${catalina.build}"/>
<mkdir dir="${catalina.build}/bin"/>
<mkdir dir="${catalina.build}/common/classes"/>
<mkdir dir="${catalina.build}/common/lib"/>
<mkdir dir="${catalina.build}/common/endorsed"/>
<mkdir dir="${catalina.build}/conf"/>
<mkdir dir="${catalina.build}/logs"/>
<mkdir dir="${classes.dir}"/>
<mkdir dir="${catalina.build}/server/lib"/>
<mkdir dir="${catalina.build}/shared/classes"/>
<mkdir dir="${catalina.build}/shared/lib"/>
<mkdir dir="${catalina.build}/work"/>
<mkdir dir="${catalina.build}/temp"/>
</target>
<!-- ======================== BUILD: Copy JARs ========================== -->
<target name="copy-dbcp.jar" if="copy.dbcp.jar">
<copy todir="${catalina.build}/common/lib" file="${commons-dbcp.jar}"/>
</target>
<target name="copy-fileupload.jar" if="fileupload.jar.present">
</target>
<target name="copy-jmx.jar" if="copy.jmx.jar">
<copy tofile="${catalina.build}/bin/jmx.jar" file="${jmx.jar}"/>
</target>
<target name="copy-launcher.jars" if="copy.launcher.jars">
<!-- <copy todir="${catalina.build}/common/lib" file="${ant.jar}"/> -->
<copy todir="${catalina.build}/bin" file="${commons-launcher.jar}"/>
<copy todir="${catalina.build}/bin" file="${commons-launcher.bootstrap.class}"/>
<copy todir="${catalina.build}/bin">
<fileset dir="src/bin" includes="*-using-launcher.*,launcher.properties,catalina.xml" />
</copy>
</target>
<target name="copy-modeler.jar" if="copy.modeler.jar">
<copy todir="${catalina.build}/server/lib" file="${commons-modeler.jar}"/>
</target>
<target name="copy-pool.jar" if="copy.pool.jar">
<copy todir="${catalina.build}/common/lib" file="${commons-pool.jar}"/>
</target>
<target name="copy-tomcat-util.jar">
<!--
<copy todir="${catalina.build}/server/lib" file="${tomcat-util.jar}"/>
-->
<jar jarfile="${tomcat-util.jar}"
index="true">
<fileset dir="${catalina.build}/classes">
<include name="org/apache/tomcat/util/**"/>
<!-- Javadoc and i18n exclusions -->
<exclude name="**/package.html" />
<exclude name="**/LocalStrings_*" />
</fileset>
</jar>
</target>
<target name="copy-xerces2.jars">
<copy todir="${catalina.build}/common/endorsed" file="${xercesImpl.jar}"/>
<copy todir="${catalina.build}/common/endorsed" file="${xml-apis.jar}"/>
</target>
<!-- =================== BUILD: Copy Static Files ======================= -->
<target name="build-static" depends="flags,flags.display,build-prepare,copy-fileupload.jar,copy-launcher.jars,copy-modeler.jar">
<!-- Executable Commands -->
<copy todir="${catalina.build}/bin">
<fileset dir="src/bin" excludes="*-using-launcher.*,launcher.properties,catalina.xml,*-tasks.xml" />
</copy>
<fixcrlf srcdir="${catalina.build}/bin" includes="*.sh" eol="lf"/>
<fixcrlf srcdir="${catalina.build}/bin" includes="*.bat" eol="crlf"/>
<chmod perm="+x" dir="${catalina.build}/bin" includes="*.sh"/>
<!-- Common Extensions -->
<copy todir="${catalina.build}/bin"
file="${commons-logging-api.jar}"/>
<!--
<copy todir="${catalina.build}/common/lib" file="${servlet-api.jar}"/>
-->
<copy todir="${catalina.build}/common/lib"
file="${tomcat-dbcp.jar}" />
<!-- Configuration Files -->
<copy todir="${catalina.build}/conf">
<fileset dir="src/conf">
<exclude name="catalina.conf.xml" />
</fileset>
</copy>
<!-- JVM Temporary Directory README -->
<copy todir="${catalina.build}/temp"
file="src/temp/README.txt"/>
<!-- Catalina Server Libraries -->
<!--
<copy todir="${catalina.build}/server/lib" file="${regexp.jar}"/>
-->
</target>
<!-- =================== BUILD: Build tomcat-util ======================= -->
<target name="build-tomcat-util">
<ant dir="${tomcat-util.home}" target="build-main">
<property name="jmx.jar" value="${jmx.jar}" />
<property name="puretls.jar" value="${puretls.jar}" />
<property name="jsse.lib" value="${jsse.lib}" />
</ant>
<copy todir="${catalina.build}/server/lib"
file="${tomcat-util.jar}"/>
</target>
<!-- ================ BUILD: Compile Catalina Components ================ -->
<target name="build-catalina" depends="build-catalina-core,build-catalina-optional"/>
<target name="build-catalina-core">
<!-- Compile internal server components -->
<javac srcdir="src/share" destdir="${classes.dir}"
debug="${compile.debug}"
deprecation="${compile.deprecation}"
source="${compile.source}"
optimize="${compile.optimize}"
excludes="**/CVS/**">
<classpath refid="catalina.classpath" />
<exclude name="org/apache/catalina/util/ProcessHelper.java"
unless="jdk.1.3.present"/>
<exclude name="org/apache/catalina/valves/CertificatesValve.java"
unless="compile.jsse"/>
<exclude name="org/apache/catalina/servlets/CGIServlet.java" />
<exclude name="org/apache/catalina/servlets/HTMLManagerServlet.java" />
<exclude name="org/apache/naming/factory/DbcpDataSourceFactory.java" />
<exclude name="org/apache/catalina/ssi/**"/>
<exclude name="org/apache/catalina/cluster/**"/>
<exclude name="org/apache/naming/factory/MailSessionFactory.java"/>
<exclude name="org/apache/naming/factory/SendMailFactory.java"/>
<exclude name="org/apache/catalina/launcher/**"/>
<exclude name="org/apache/catalina/valves/SemaphoreValve.java"/>
</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="${classes.dir}" filtering="true" encoding="ISO-8859-1">
<fileset dir="src/share">
<exclude name="**/*.java"/>
<exclude name="**/*.ser"/>
</fileset>
</copy>
<copy todir="${classes.dir}">
<fileset dir="src/share">
<include name="**/*.ser"/>
</fileset>
</copy>
</target>
<target name="build-catalina-optional" unless="build.tomcat.base">
<!-- Compile internal server components -->
<javac srcdir="src/share" destdir="${classes.dir}"
debug="${compile.debug}"
deprecation="${compile.deprecation}"
optimize="${compile.optimize}"
source="${compile.source}"
excludes="**/CVS/**">
<classpath refid="catalina.classpath" />
<exclude name="org/apache/naming/factory/MailSessionFactory.java"
unless="compile.javamail"/>
<exclude name="org/apache/naming/factory/SendMailFactory.java"
unless="compile.javamail"/>
<exclude name="org/apache/catalina/valves/CertificatesValve.java"
unless="compile.jsse"/>
<exclude name="org/apache/catalina/valves/SemaphoreValve.java"
unless="jdk.1.5.present"/>
</javac>
<!-- Copy static resource files -->
<filter token="VERSION" value="${version}"/>
<copy todir="${classes.dir}" filtering="true">
<fileset dir="src/share">
<exclude name="**/*.java"/>
</fileset>
</copy>
</target>
<!-- ================== BUILD: Build tomcat-coyote ====================== -->
<target name="build-tomcat-coyote">
<ant dir="${tomcat-coyote.home}" target="compile">
<property name="catalina.home" value="${catalina.deploy}"/>
<property name="servlet.jar" value="${servlet-api.jar}"/>
<property name="commons-logging.jar" value="${commons-logging.jar}"/>
<property name="commons-modeler.jar" value="${commons-modeler.jar}"/>
<property name="jmx.jar" value="${jmx.jar}"/>
</ant>
<!--
<copy todir="${catalina.deploy}/server/lib"
file="${tomcat-coyote.jar}"/>
-->
</target>
<!-- ==================== BUILD: Build tomcat-jk ======================== -->
<target name="build-tomcat-jk">
<ant dir="${tomcat-jk.home}" target="build-main">
<property name="tomcat5.home" value="${catalina.deploy}"/>
<property name="commons-logging.jar" value="${commons-logging.jar}"/>
<property name="commons-modeler.jar" value="${commons-modeler.jar}"/>
<property name="jmx.jar" value="${jmx.jar}"/>
</ant>
<!--
<copy tofile="${catalina.deploy}/server/lib/tomcat-ajp.jar"
file="${tomcat-jk2.jar}"/>
-->
<!--
<copy todir="${catalina.deploy}/conf"
file="${jk2.properties}"/>
-->
</target>
<!-- ============== BUILD: Build tomcat-coyote-http11 =================== -->
<target name="build-tomcat-http11">
<ant dir="${tomcat-http11.home}" target="compile">
<property name="commons-logging.jar" value="${commons-logging.jar}"/>
<property name="commons-modeler.jar" value="${commons-modeler.jar}"/>
<property name="jmx.jar" value="${jmx.jar}"/>
</ant>
<!--
<copy todir="${catalina.deploy}/server/lib"
file="${tomcat-http11.jar}"/>
-->
</target>
<!-- ================= BUILD: Compile All Server Components ============= -->
<target name="build-main" depends="build-static,build-tomcat-util,build-catalina">
</target>
<!-- ================ BUILD: Create Catalina Javadocs =================== -->
<target name="javadoc" unless="docs.uptodate" >
<delete dir="${catalina.build}/javadoc"/>
<mkdir dir="${catalina.build}/javadoc"/>
<!-- To fix Bugzilla 35880, we need to ensure files that use J2SE 5.0
syntax are not JavaDoc'ed. Even though no other target uses
javadoc.sourcepath and I could rewrite the javadoc target below,
that might impact users who use javadoc.sourcepath in their own
build scripts. Accordingly, let's try this ugly temporary
fix. When we start building Tomcat with J2SE 5.0, we can remove
this ugliness.
-->
<move file="${jtc.home}/util/java/org/apache/tomcat/util/net/jsse/JSSE15SocketFactory.java"
tofile="${jtc.home}/util/java/org/apache/tomcat/util/net/jsse/JSSE15SocketFactory.temp" />
<javadoc packagenames="org.apache.*"
classpathref="catalina.classpath"
sourcepathref="javadoc.sourcepath"
destdir="${catalina.build}/javadoc"
author="true"
version="true"
windowtitle="Tomcat API Documentation"
doctitle="Tomcat API"
bottom="Copyright &#169; 2000-2005 Apache Software Foundation. All Rights Reserved."
additionalparam="-breakiterator">
<excludepackage name="org.apache.ajp.*" />
<excludepackage name="org.apache.coyote.tomcat3" />
<excludepackage name="org.apache.coyote.tomcat4" />
<excludepackage name="org.apache.jk.apr" />
</javadoc>
<move file="${jtc.home}/util/java/org/apache/tomcat/util/net/jsse/JSSE15SocketFactory.temp"
tofile="${jtc.home}/util/java/org/apache/tomcat/util/net/jsse/JSSE15SocketFactory.java" />
</target>
<!-- ======================= BUILD: Clean Directory ===================== -->
<target name="build-clean">
<delete dir="${catalina.build}"/>
<ant dir="${tomcat-util.home}" target="clean"/>
<ant dir="${tomcat-coyote.home}" target="clean"/>
<ant dir="${tomcat-jk.home}" target="clean"/>
<ant dir="${tomcat-http11.home}" target="clean"/>
</target>
<!-- ==================== BUILD: Rebuild Everything ===================== -->
<target name="all" depends="build-clean,build-main"
description="Clean, build, and deploy Catalina component"/>
<!-- ================ TEST: Compile Unit Tests ========================== -->
<target name="build-tests" depends="build-main" if="junit.present">
<mkdir dir="${catalina.build}/tests"/>
<!-- Compile unit test classes -->
<javac srcdir="src/test" destdir="${catalina.build}/tests"
deprecation="${compile.deprecation}"
debug="${compile.debug}"
optimize="off"
source="${compile.source}"
excludes="**/CVS/**">
<classpath refid="test.classpath"/>
</javac>
</target>
<!-- ==================== TEST: Execute Unit Tests ====================== -->
<target name="test" if="junit.present"
description="Run all unit test cases"
depends="build-tests,test-dir-context,test-util">
</target>
<target name="test-dir-context" if="junit.present">
<echo message="Running FileDirContext tests"/>
<java classname="${test.runner}" fork="yes"
failonerror="${test.failonerror}">
<sysproperty key="doc.base" value="${test.webapp}"/>
<arg value="org.apache.naming.resources.FileDirContextTestCase"/>
<classpath refid="test.classpath"/>
</java>
<echo message="Running WARDirContext tests"/>
<jar jarfile="${test.webapp.war}">
<fileset dir="${test.webapp}"/>
</jar>
<java classname="${test.runner}" fork="yes"
failonerror="${test.failonerror}">
<sysproperty key="doc.base" value="${test.webapp.war}"/>
<arg value="org.apache.naming.resources.WARDirContextTestCase"/>
<classpath refid="test.classpath"/>
</java>
<delete file="${test.webapp.war}"/>
</target>
<target name="test-util" if="junit.present">
<echo message="Running CookieTools tests"/>
<java classname="${test.runner}" fork="yes"
failonerror="${test.failonerror}">
<arg value="org.apache.catalina.util.CookieToolsTestCase"/>
<classpath refid="test.classpath"/>
</java>
<echo message="Running URL tests"/>
<java classname="${test.runner}" fork="yes"
failonerror="${test.failonerror}">
<arg value="org.apache.catalina.util.URLTestCase"/>
<classpath refid="test.classpath"/>
</java>
</target>
<!-- ====================== DEPLOY: Create Directories ================== -->
<target name="deploy-prepare">
<mkdir dir="${catalina.deploy}"/>
<mkdir dir="${catalina.deploy}/bin"/>
<mkdir dir="${catalina.deploy}/conf"/>
<mkdir dir="${catalina.deploy}/logs"/>
<mkdir dir="${catalina.deploy}/common/classes"/>
<mkdir dir="${catalina.deploy}/common/endorsed"/>
<mkdir dir="${catalina.deploy}/common/i18n"/>
<mkdir dir="${catalina.deploy}/common/lib"/>
<mkdir dir="${catalina.deploy}/server/classes"/>
<mkdir dir="${catalina.deploy}/server/lib"/>
<mkdir dir="${catalina.deploy}/work"/>
<mkdir dir="${catalina.deploy}/temp"/>
</target>
<!-- ====================== DEPLOY: Copy Static Files =================== -->
<target name="deploy-static" depends="build-main,deploy-prepare,deploy-static-only,deploy-libs"/>
<target name="deploy-static-only" depends="deploy-prepare">
<!-- Executable Commands -->
<copy todir="${catalina.deploy}/bin">
<fileset dir="src/bin" excludes="*-using-launcher.*,launcher.properties,catalina.xml" />
</copy>
<fixcrlf srcdir="${catalina.deploy}/bin" includes="*.sh" eol="lf"/>
<fixcrlf srcdir="${catalina.deploy}/bin" includes="*.bat" eol="crlf"/>
<chmod perm="+x" dir="${catalina.build}/bin" includes="*.sh"/>
<!-- Configuration Files -->
<copy todir="${catalina.deploy}/conf">
<fileset dir="${catalina.build}/conf" />
</copy>
</target>
<target name="deploy-libs">
<!-- Common Extensions -->
<copy todir="${catalina.deploy}/common/endorsed">
<fileset dir="${catalina.build}/common/endorsed" />
</copy>
<copy todir="${catalina.deploy}/common/lib">
<fileset dir="${catalina.build}/common/lib" />
</copy>
<!-- Server Components -->
<copy todir="${catalina.deploy}/server/lib">
<fileset dir="${catalina.build}/server/lib" />
</copy>
<!-- Shared Extensions -->
<!--
<copy todir="${catalina.deploy}/shared/lib">
<fileset dir="${catalina.build}/shared/lib" />
</copy>
-->
</target>
<!-- ====================== DEPLOY: Create Catalina JARs ================ -->
<target name="catalina-jars" depends="build-static,deploy-prepare,flags,flags.display,build-catalina"
description="Build catalina jars">
<!-- Catalina Bootstrap JAR File. It is a very wrong idea to split packages in multiple jars !!! -->
<jar jarfile="${catalina.deploy}/bin/bootstrap.jar"
manifest="etc/bootstrap.MF">
<fileset dir="${classes.dir}">
<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/catalina/launcher/CatalinaLaunchFilter.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>
<!-- Catalina Main JAR File -->
<!-- Excluding files from here is worse than duplicating them - a loader that uses the
package name as index and includes both bootstrap and catalina will be confused -->
<jar jarfile="${catalina.deploy}/server/lib/catalina.jar">
<fileset dir="${classes.dir}">
<include name="org/apache/catalina/**" />
<!-- 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/launcher/**" />
<exclude name="org/apache/catalina/servlets/**" />
<exclude name="org/apache/catalina/startup/Bootstrap.class" />
<exclude name="org/apache/catalina/storeconfig/**" />
<exclude name="org/apache/catalina/ssi/**" />
<exclude name="org/apache/naming/**" />
<!-- Catalina-optional classes -->
<exclude name="org/apache/catalina/realm/DataSourceRealm.class" />
<exclude name="org/apache/catalina/realm/JAAS*" />
<exclude name="org/apache/catalina/realm/JDBC*" />
<exclude name="org/apache/catalina/realm/JNDI*" />
<exclude name="org/apache/catalina/realm/Memory*" />
<exclude name="org/apache/catalina/session/StoreBase.class" />
<exclude name="org/apache/catalina/session/*Store.class" />
<exclude name="org/apache/catalina/session/PersistentManager*" />
<exclude name="org/apache/catalina/util/CGIProcessEnvironment.class" />
<exclude name="org/apache/catalina/util/CookieTools.class" />
<exclude name="org/apache/catalina/util/DateTool.class" />
<exclude name="org/apache/catalina/util/DOMWriter.class" />
<exclude name="org/apache/catalina/util/FastDateFormat.class" />
<exclude name="org/apache/catalina/util/IOTools.class" />
<exclude name="org/apache/catalina/util/MIME2Java.class" />
<exclude name="org/apache/catalina/util/Process*" />
<exclude name="org/apache/catalina/util/Queue.class" />
<exclude name="org/apache/catalina/util/Strftime.class" />
<exclude name="org/apache/catalina/util/XMLWriter.class" />
<exclude name="org/apache/catalina/valves/ExtendedAccessLogValve.class" />
<exclude name="org/apache/catalina/valves/FastCommonAccessLogValve.class" />
<exclude name="org/apache/catalina/valves/FieldInfo.class" />
<exclude name="org/apache/catalina/valves/JDBCAccessLogValve.class" />
<exclude name="org/apache/catalina/valves/PersistentValve.class" />
<exclude name="org/apache/catalina/valves/Remote*" />
<exclude name="org/apache/catalina/valves/RequestDumperValve.class" />
<exclude name="org/apache/catalina/valves/RequestFilterValve.class" />
<exclude name="org/apache/catalina/valves/SemaphoreValve.class" />
</fileset>
</jar>
<jar jarfile="${catalina.deploy}/server/lib/catalina-optional.jar">
<fileset dir="${classes.dir}">
<include name="org/apache/catalina/realm/DataSourceRealm.class" />
<include name="org/apache/catalina/realm/JAAS*" />
<include name="org/apache/catalina/realm/JDBC*" />
<include name="org/apache/catalina/realm/JNDI*" />
<include name="org/apache/catalina/realm/Memory*" />
<include name="org/apache/catalina/session/StoreBase.class" />
<include name="org/apache/catalina/session/*Store.class" />
<include name="org/apache/catalina/session/PersistentManager*" />
<include name="org/apache/catalina/util/CGIProcessEnvironment.class" />
<include name="org/apache/catalina/util/CookieTools.class" />
<include name="org/apache/catalina/util/DateTool.class" />
<include name="org/apache/catalina/util/DOMWriter.class" />
<include name="org/apache/catalina/util/FastDateFormat.class" />
<include name="org/apache/catalina/util/IOTools.class" />
<include name="org/apache/catalina/util/MIME2Java.class" />
<include name="org/apache/catalina/util/Process*" />
<include name="org/apache/catalina/util/Queue.class" />
<include name="org/apache/catalina/util/Strftime.class" />
<include name="org/apache/catalina/util/XMLWriter.class" />
<include name="org/apache/catalina/valves/ExtendedAccessLogValve.class" />
<include name="org/apache/catalina/valves/FastCommonAccessLogValve.class" />
<include name="org/apache/catalina/valves/FieldInfo.class" />
<include name="org/apache/catalina/valves/JDBCAccessLogValve.class" />
<include name="org/apache/catalina/valves/PersistentValve.class" />
<include name="org/apache/catalina/valves/Remote*" />
<include name="org/apache/catalina/valves/RequestDumperValve.class" />
<include name="org/apache/catalina/valves/RequestFilterValve.class" />
<include name="org/apache/catalina/valves/SemaphoreValve.class" />
<!-- Javadoc and i18n exclusions -->
<exclude name="**/package.html" />
<exclude name="**/LocalStrings_*" />
</fileset>
</jar>
<!-- Catalina Ant Tasks JAR File -->
<jar jarfile="${catalina.deploy}/server/lib/catalina-ant.jar">
<fileset dir="${classes.dir}">
<include name="org/apache/catalina/ant/*" />
<include name="org/apache/catalina/util/Base64.class" />
<!-- Javadoc and i18n exclusions -->
<exclude name="**/package.html" />
<exclude name="**/LocalStrings_*" />
</fileset>
</jar>
<!-- Catalina JMX Accessor Ant Tasks JAR File -->
<jar jarfile="${catalina.deploy}/server/lib/catalina-ant-jmx.jar">
<fileset dir="${classes.dir}">
<include name="org/apache/catalina/ant/jmx/*" />
<!-- Javadoc and i18n exclusions -->
<exclude name="**/package.html" />
<exclude name="**/LocalStrings_*" />
</fileset>
</jar>
<!-- Naming - Factory JAR File -->
<jar jarfile="${catalina.deploy}/common/lib/naming-factory.jar" index="true">
<fileset dir="${classes.dir}">
<include name="org/apache/naming/**" />
<exclude name="org/apache/naming/resources/**" />
<exclude name="org/apache/naming/JndiPermission.class" />
<exclude name="org/apache/naming/NameParserImpl.class" />
<exclude name="org/apache/naming/NamingContextBindingsEnumeration.class" />
<exclude name="org/apache/naming/NamingContextEnumeration.class" />
<exclude name="org/apache/naming/NamingEntry.class" />
<exclude name="org/apache/naming/StringManager.class" />
<!-- Javadoc and i18n exclusions -->
<exclude name="**/package.html" />
<exclude name="**/LocalStrings_*" />
</fileset>
</jar>
<!-- Naming - Resources JAR File -->
<jar jarfile="${catalina.deploy}/common/lib/naming-resources.jar" index="true">
<fileset dir="${classes.dir}">
<include name="org/apache/naming/JndiPermission.class" />
<include name="org/apache/naming/NameParserImpl.class" />
<include name="org/apache/naming/NamingContextBindingsEnumeration.class" />
<include name="org/apache/naming/NamingContextEnumeration.class" />
<include name="org/apache/naming/NamingEntry.class" />
<include name="org/apache/naming/StringManager.class" />
<include name="org/apache/naming/resources/**" />
<!-- Javadoc and i18n exclusions -->
<exclude name="**/package.html" />
<exclude name="**/LocalStrings_*" />
</fileset>
</jar>
<!-- Servlets - CGI Servlet -->
<jar jarfile="${catalina.deploy}/server/lib/servlets-cgi.renametojar" index="true">
<fileset dir="${classes.dir}">
<include name="org/apache/catalina/servlets/CGI*" />
</fileset>
</jar>
<!-- Servlets - Default File-Serving Servlet -->
<jar jarfile="${catalina.deploy}/server/lib/servlets-default.jar" index="true">
<fileset dir="${classes.dir}">
<include name="org/apache/catalina/servlets/Default*" />
<include name="org/apache/catalina/servlets/Constants.class" />
<include name="org/apache/catalina/servlets/LocalStrings.properties" />
</fileset>
</jar>
<!-- Servlets - Invoker Servlet -->
<jar jarfile="${catalina.deploy}/server/lib/servlets-invoker.jar" index="true">
<fileset dir="${classes.dir}">
<include name="org/apache/catalina/servlets/Invoker*" />
</fileset>
</jar>
<!-- Servlets - SSI Servlet -->
<jar jarfile="${catalina.deploy}/server/lib/servlets-ssi.renametojar" index="true">
<fileset dir="${classes.dir}">
<include name="org/apache/catalina/ssi/**" />
<!-- Javadoc and i18n exclusions -->
<exclude name="**/package.html" />
<exclude name="**/LocalStrings_*" />
</fileset>
</jar>
<!-- Servlets - Webdav Servlet -->
<jar jarfile="${catalina.deploy}/server/lib/servlets-webdav.jar" index="true">
<fileset dir="${classes.dir}">
<include name="org/apache/catalina/servlets/Webdav*" />
</fileset>
</jar>
</target>
<target name="deploy-catalina" depends="deploy-static,build-main,catalina-jars"
description="Build and deploy Catalina component">
</target>
<!-- ====================== DEPLOY: Create Catalina JARs ================ -->
<target name="deploy" depends="deploy-catalina,build-tomcat-coyote,build-tomcat-jk,build-tomcat-http11"
description="Build and deploy Catalina">
</target>
<!-- ================ DIST: Create Distribution ========================= -->
<target name="dist" depends="build-main"
description="Create binary distribution">
<!-- Executable Commands -->
<mkdir dir="${catalina.dist}/bin"/>
<copy todir="${catalina.dist}/bin">
<fileset dir="src/bin" excludes="*-using-launcher.*,launcher.properties,catalina.xml" />
</copy>
<fixcrlf srcdir="${catalina.dist}/bin" includes="*.sh" eol="lf"/>
<fixcrlf srcdir="${catalina.dist}/bin" includes="*.bat" eol="crlf"/>
<chmod perm="+x" dir="${catalina.build}/bin" includes="*.sh"/>
<!-- Common Extensions -->
<mkdir dir="${catalina.dist}/common/classes"/>
<copy todir="${catalina.dist}/common/classes">
<fileset dir="${catalina.build}/common/classes" />
</copy>
<mkdir dir="${catalina.dist}/common/lib"/>
<copy todir="${catalina.dist}/common/lib">
<fileset dir="${catalina.build}/common/lib" />
</copy>
<!-- Configuration Files -->
<mkdir dir="${catalina.dist}/conf"/>
<copy todir="${catalina.dist}/conf">
<fileset dir="${catalina.build}/conf" />
</copy>
<!-- Server Components -->
<mkdir dir="${catalina.dist}/server/classes"/>
<!-- Do we want to copy the classes ?
<copy todir="${catalina.dist}/server/classes">
<fileset dir="${classes.dir}" />
</copy>
-->
<mkdir dir="${catalina.dist}/server/lib"/>
<copy todir="${catalina.dist}/server/lib">
<fileset dir="${catalina.build}/server/lib" />
</copy>
<!-- Shared Extensions -->
<mkdir dir="${catalina.dist}/shared/classes"/>
<copy todir="${catalina.dist}/shared/classes">
<fileset dir="${catalina.build}/shared/classes" />
</copy>
<mkdir dir="${catalina.dist}/shared/lib"/>
<copy todir="${catalina.dist}/shared/lib">
<fileset dir="${catalina.build}/shared/lib" />
</copy>
</target>
<!-- ======================== DIST: Clean Directory ===================== -->
<target name="dist-clean">
<delete dir="${catalina.dist}"/>
</target>
<!-- ====================== Convenient Synonyms ========================= -->
<target name="clean" depends="build-clean, dist-clean"
description="Clean build and dist directories"/>
</project>