blob: 474a3084a8a9ec6f8f8d9539de625e22d36762b2 [file] [log] [blame]
<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="${jdbc20ext.jar}"/>
<pathelement location="${jmx.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="${jdbc20ext.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" />
<!-- 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>
<condition property="jta.present">
<and>
<available classname="javax.sql.XADataSource"
classpath="${jdbc20ext.jar}" />
<available classname="javax.transaction.UserTransaction"
classpath="${jta.jar}" />
</and>
</condition>
<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="jdbc20ext.jar.present" file="${jdbc20ext.jar}" />
<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="jdbc20ext.jar.present=${jdbc20ext.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" />
</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/**"/>
</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"/>
</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"/>
<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>
</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" />
</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" />
<!-- 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>
<!-- 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>