| <!-- |
| XML file for launching Catalina applications using ant. |
| --> |
| |
| <project name="Catalina Launcher" default="catalina" basedir="."> |
| <property file="${user.home}/.tomcat5.properties"/> |
| |
| <!-- Set the application home to the parent directory of this directory --> |
| <property name="catalina.home" location="${basedir}/.."/> |
| <property name="bootstrap.jar" location="${catalina.home}/bin/bootstrap.jar"/> |
| |
| <!-- Import the user's custom properties --> |
| <property file="${catalina.home}/bin/catalina.properties"/> <!-- XXX shold it be conf ?? --> |
| <property file="${catalina.home}/conf/catalina.properties"/> <!-- XXX shold it be conf ?? --> |
| |
| |
| <!-- Set user configurable properties --> |
| <property name="jsse.home" location="${catalina.home}"/> |
| <property name="catalina.base" location="${catalina.home}"/> |
| <property name="catalina.tmpdir" location="${catalina.base}/temp"/> |
| <property name="catalina.out" location="${catalina.base}/logs/catalina.out"/> |
| <property name="catalina.policy" location="${catalina.base}/conf/catalina.policy"/> |
| <property name="catalina.jvm.args" value="-Dsun.io.useCanonCaches=false"/> |
| |
| <property name="catalina.source.path" value="${catalina.home}/../../jakarta-servletapi-5/src/share:${catalina.home}/../../jakarta-tomcat-jasper/jasper2/src/share:${catalina.home}/../../jakarta-tomcat-connectors/coyote/src/java:${catalina.home}/../../jakarta-tomcat-catalina/catalina/src/share"/> |
| |
| |
| <!-- Build the classpath relative to the application home --> |
| <path id="base.class.path"> |
| <pathelement location="${bootstrap.jar}"/> |
| <pathelement path="${jsse.home}/lib/jsse.jar:${jsse.home}/lib/jcert.jar:${jsse.home}/lib/jnet.jar"/> |
| </path> |
| |
| <property name="basedir" location="."/> |
| |
| <property name="tools.jar" location="${java.home}/../lib/tools.jar" /> |
| |
| <path id="tomcatcp" > |
| <pathelement location="${catalina.home}/bin/bootstrap.jar"/> |
| <!-- |
| <fileset dir="${catalina.home}/common/lib" includes="*.jar"/> |
| <fileset dir="${catalina.home}/server/lib" includes="*.jar"/> |
| <pathelement location="${catalina.home}/common/classes"/> |
| --> |
| <!-- |
| <pathelement location="${ant.home}/lib/xercesImpl.jar" /> |
| <pathelement location="${ant.home}/lib/xml-apis.jar" /> |
| --> |
| <pathelement location="${ant.home}/lib/ant.jar" /> |
| <pathelement location="${tools.jar}" /> |
| </path> |
| |
| |
| <!-- =================== Initialization/helpers ================== --> |
| |
| |
| <target name="init" |
| description="Display configuration and conditional compilation flags"> |
| </target> |
| |
| <target name="init-launcher" > |
| <!-- Build the sysproperties relative to the application home --> |
| <syspropertyset id="base.sys.properties"> |
| <sysproperty key="java.endorsed.dirs" file="${catalina.home}/common/endorsed"/> |
| <sysproperty key="java.io.tmpdir" file="${catalina.tmpdir}"/> |
| <sysproperty key="catalina.home" file="${catalina.home}"/> |
| <sysproperty key="catalina.base" file="${catalina.base}"/> |
| </syspropertyset> |
| |
| <!-- Build the standard jvmargs --> |
| <jvmargset id="base.jvm.args"> |
| <jvmarg line="${catalina.jvm.args}"/> |
| <jvmarg value="-Xdebug" if="jpda.settings"/> |
| <jvmarg value="-Xrunjdwp:${jpda.settings}" if="jpda.settings"/> |
| <jvmarg value="-sourcepath" if="jdb"/> |
| <jvmarg path="${catalina.source.path}" if="jdb"/> |
| </jvmargset> |
| </target> |
| |
| <target name="echo-config" > |
| <echo>TOMCAT_HOME=${catalina.home}</echo> |
| <echo>CLASSPATH=${toString:tomcatcp}</echo> |
| </target> |
| |
| <target name="help" > |
| <echo> |
| To run any of the applications in the JDB debugger, execute the Launcher with |
| a "-Ddebug=true" argument. |
| |
| To run any of the applications in JPDA mode, execute the Launcher with a |
| "-Djpda=true" argument. |
| </echo> |
| </target> |
| |
| <!-- Target that sets JDB properties when the "debug" property is set --> |
| <target name="setjdb" description="Set JDB properties" if="debug"> |
| <property name="jdb" value="true"/> |
| </target> |
| |
| <!-- Target that sets JPDA properties when the "jpda" property is set --> |
| <target name="setjpda" description="Set JPDA properties" if="jpda"> |
| <condition property="jpda.transport" value="dt_shmem"> |
| <os family="windows"/> |
| </condition> |
| <condition property="jpda.transport" value="dt_socket"> |
| <not> |
| <os family="windows"/> |
| </not> |
| </condition> |
| <condition property="jpda.address" value="jdbconn"> |
| <equals arg1="${jpda.transport}" arg2="dt_shmem"/> |
| </condition> |
| <condition property="jpda.address" value="8000"> |
| <not> |
| <equals arg1="${jpda.transport}" arg2="dt_shmem"/> |
| </not> |
| </condition> |
| <property name="jpda.suspend" value="y"/> |
| <property name="jpda.settings" value="transport=${jpda.transport},address=${jpda.address},server=y,suspend=${jpda.suspend}"/> |
| </target> |
| |
| <!-- =================== Launcher-based ================== --> |
| |
| <!-- Target that executes Catalina --> |
| <target name="catalina" description="Execute Catalina" |
| depends="init-launcher,setjdb,setjpda" > |
| |
| <!-- Set default title for minimized window --> |
| <property name="catalina.window.title" value="Catalina"/> |
| |
| <!-- |
| Launch Catalina. Note that the "filterclassname" attribute will force |
| the "waitforchild" attribute to "true" if any invalid arguments are |
| used or if "start" is not the last argument. |
| --> |
| <launch classname="org.apache.catalina.startup.Bootstrap" |
| waitforchild="${wait}" |
| debug="${jdb}" |
| print="${print}" |
| filterclassname="org.apache.catalina.launcher.CatalinaLaunchFilter" |
| filterclasspath="${bootstrap.jar}" |
| usesystemin="false" |
| requiretools="true" |
| redirectoutput="true" |
| output="${catalina.out}" |
| displayMinimizedWindow="true" |
| minimizedWindowTitle="${catalina.window.title}"> |
| <jvmargset refid="base.jvm.args"/> |
| <syspropertyset refid="base.sys.properties"/> |
| <sysproperty key="java.security.manager" value="" if="security"/> |
| <sysproperty key="java.security.policy" value="=${catalina.policy}" if="security"/> |
| <classpath refid="base.class.path"/> |
| </launch> |
| |
| </target> |
| |
| <!-- Target that executes the Catalina tool wrapper --> |
| <target name="tool-wrapper" description="Execute Catalina tool wrapper" |
| depends="setjdb,setjpda" > |
| |
| <!-- Launch Catalina tool wrapper --> |
| <launch classname="org.apache.catalina.startup.Tool" |
| debug="${jdb}" |
| print="${print}" |
| usesystemin="false" |
| requiretools="true"> |
| <jvmargset refid="base.jvm.args"/> |
| <syspropertyset refid="base.sys.properties"/> |
| <classpath refid="base.class.path"/> |
| </launch> |
| |
| </target> |
| |
| <!-- ======================= Ant/JMX based ================ --> |
| |
| <target name="taskdef" > |
| <property name="tomcat.home" location=".." /> |
| |
| <path id="jmx.test.classpath"> |
| <pathelement location="${commons-modeler.jar}" /> |
| <fileset dir="${tomcat.home}/common/lib" includes="*.jar"/> |
| <fileset dir="${tomcat.home}/server/lib" includes="*.jar"/> |
| <fileset dir="${tomcat.home}/bin" includes="*.jar"/> |
| </path> |
| |
| <!-- part of modeler --> |
| <taskdef resource="META-INF/ant.properties" |
| classpathref="jmx.test.classpath" /> |
| </target> |
| |
| |
| <target name="run" depends="echo-config,taskdef" |
| description="Start tomcat as a task and return"> |
| |
| <MLET code="org.apache.commons.modeler.BaseModelMBean" |
| name="catalina:type=server" > |
| <arg value="org.apache.catalina.startup.Catalina" /> |
| </MLET> |
| |
| <jmxSet name="catalina:type=server" |
| attribute="catalinaHome" |
| value="${tomcat.home}"/> |
| |
| <!-- We could also call init and set other properties - |
| init should load the modules --> |
| |
| <jmx name="catalina:type=server" |
| method="start" /> |
| |
| <echo message="Tomcat5 running"/> |
| |
| </target> |
| |
| |
| <!-- ======================= Exec/java ================ --> |
| |
| <target name="java-start" depends="echo-config" |
| description="Run tomcat in-process and wait for it to end, using java task" > |
| |
| <property name="tomcat.fork" value="false" /> |
| |
| <java classname="org.apache.catalina.startup.Bootstrap" fork="${tomcat.fork}"> |
| <classpath refid="tomcatcp" /> |
| <arg value="startd" /> |
| <sysproperty key="catalina.home" value="${catalina.home}"/> |
| <sysproperty key="build.compiler" value="jikes"/> |
| <sysproperty key="java.endorsed.dirs" value="${ant.home}/lib:${java.home}/lib"/> |
| </java> |
| |
| <echo message="Tomcat5 running"/> |
| |
| </target> |
| |
| </project> |