<?xml version="1.0"?>
<!--
   Copyright 1999-2005 The Apache Software Foundation
 
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at
 
       http://www.apache.org/licenses/LICENSE-2.0
 
   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->
<project name="JMeter" default="all" basedir=".">
  <description>
    To build JMeter from source and install:
      ant [all]
    To rebuild and install:
      ant install

    To update documentation (requires Anakia to be present)
      ant docs-site
      ant docs-printable
    To build API documentation (Javadoc)
      ant docs-api
    To build all the docs
      ant docs-all

    To build all and package up the files for distribution
      ant distribution [ -Djmeter.version=vvvv ]

    To create tar and tgz of the web-site documentation (docs and api)
      ant site [ -Djmeter.version=vvvv ]
      
      
    For more info:
      ant -projecthelp

    To diagnose usage of deprecated APIs:
      ant -Ddeprecation=on clean compile
  </description>
  
  <!--

  Note
  ====
  As with most other Jakarta projects, Gump (http://jakarta.apache.org/gump/) is used to
  perform automated builds and tests on JMeter.
  
  Gump uses its project/jakarta-jmeter.xml file to determine which target to use.
  The current setting is: <ant target="dist">
  
  Any changes to the dependency list for dist may affect Gump.
  
  Now the dist target depends on "assume-libs-present", so if additional libraries are added to that,
  the Gump project file for JMeter must also be updated.

  Jars that are not required by the dist target do not need to be added to the Gump project file.

  -->
  
  <!-- Are we running under Gump? -->
  <property name="gump.run" value="false"/>
  
  <!-- The version of this file -->
  <property name="version.build" value="$Revision$"/>
  
  <!-- Renamed targets -->
  <target name="all-docs">
    <echo message="Target has been renamed to docs-all"/>
    <antcall target="docs-all"/>
   </target>

  <target name="api-docs">
    <echo message="Target has been renamed to docs-api"/>
    <antcall target="docs-api"/>
   </target>
   
   <target name="printable-docs">
    <echo message="Target has been renamed to docs-printable"/>
    <antcall target="docs-printable"/>
   </target>
   
   <target name="docs">
    <echo message="Target has been renamed to docs-site"/>
    <antcall target="docs-site"/>
   </target>
   
   <target name="src-dist">
    <echo message="Target has been renamed to dist-src"/>
    <antcall target="dist-src"/>
   </target>
   
   <!-- Findbugs task and target -->
   <!--
   Findbugs is licensed under the Lesser GNU Public License
   HomePage: http://www.cs.umd.edu/~pugh/java/bugs/
   
   To use the findbugs target, download and install the findbugs binary distribution
   Set the value of findbugs.homedir according to where you installed findbugs, for example:
   ant findbugs -Dfindbugs.homedir=/etc/findbugs -Dfindbugs.level=medium
  [The defaults are /findbugs and medium]
   -->
   <property name="findbugs.homedir" value="/findbugs" />
   <property name="findbugs.level" value="medium" />
   <property name="findbugs.xsldir" value="${findbugs.homedir}/src/xsl" />
   <property name="findbugs.xslname" value="fancy" />
   <property name="findbugs.outName" value="reports/jmeter-fb" />
   <target name="findbugs" description="Run the stand-alone Findbugs detector">
    <echoproperties prefix="findbugs"/>
    <mkdir dir="reports"/>
    <taskdef name="findbugs" 
        classpath="${findbugs.homedir}/lib/findbugs-ant.jar" 
        classname="edu.umd.cs.findbugs.anttask.FindBugsTask"/>
    <findbugs home="${findbugs.homedir}"
              output="xml:withMessages"
              reportlevel="${findbugs.level}"
              excludeFilter="fb-excludes.xml"
              outputFile="${findbugs.outName}.xml" >
      <class location="${dest.jar}/*.jar" />
      <class location="${dest.jar.jmeter}/*.jar" />
      <sourcePath path="${src.core}" />
      <sourcePath path="${src.http}" />
      <sourcePath path="${src.ftp}" />
      <sourcePath path="${src.java}" />
      <sourcePath path="${src.junit}" />
      <sourcePath path="${src.jdbc}" />
      <sourcePath path="${src.ldap}" />
      <sourcePath path="${src.mail}" />
      <sourcePath path="${src.components}" />
      <sourcePath path="${src.functions}" />
      <class location="${lib.dir}/jorphan.jar" />
      <sourcePath path="${src.jorphan}" />
      <sourcePath path="${src.tcp}" />
      <sourcePath path="${src.jms}" />
      <sourcePath path="${src.report}" />

	<!--
      Uncomment the following 2 lines to include htmlparser in the analysis
      <class location="${lib.dir}/htmlparser.jar" />
      <sourcePath path="${src.htmlparser}" />
      -->

      <auxClasspath>
       	<fileset dir="${lib.dir}">
       		<include name="*.jar"/>
       	</fileset>
      </auxClasspath>

      <auxClasspath>
       	<fileset dir="${lib.opt}">
       		<include name="*.jar"/>
       	</fileset>
      </auxClasspath>

    </findbugs>
    <antcall target="findbugs-style"/>
    <antcall target="findbugs-xsl"/>
  </target>
  
  <!-- Convert findbugs XML output to CSV -->
   <target name="findbugs-style">
     <xslt style="fb-csv.xsl" 
       force="true"
       in="${findbugs.outName}.xml" 
       out="${findbugs.outName}.csv">
     </xslt>
   </target>

  <!-- Convert findbugs XML output to HTML -->
   <target name="findbugs-xsl">
     <xslt style="${findbugs.xsldir}/${findbugs.xslname}.xsl" 
       force="true"
       in="${findbugs.outName}.xml" 
       out="${findbugs.outName}_${findbugs.xslname}.html">
     </xslt>
   </target>

  <!-- Where the Sources live -->
  <property name="src.dir" value="src"/>
  <property name="src.core" value="src/core"/>
  <property name="src.http" value="src/protocol/http"/>
  <property name="src.ftp" value="src/protocol/ftp"/>
  <property name="src.test" value="test/src"/>
  <property name="src.jdbc" value="src/protocol/jdbc"/>
  <property name="src.java" value="src/protocol/java"/>
  <property name="src.junit" value="src/junit"/>
  <property name="src.components" value="src/components"/>
  <property name="src.functions" value="src/functions"/>
  <property name="src.jorphan" value="src/jorphan"/>
  <property name="src.ldap" value="src/protocol/ldap"/>
  <property name="src.htmlparser" value="src/htmlparser"/>
  <property name="src.htmlparser16" value="src/htmlparser16"/>
  <property name="src.tcp" value="src/protocol/tcp"/>
  <property name="src.examples" value="src/examples"/>
  <property name="src.mail" value="src/protocol/mail"/>
  <property name="src.monitor.components" value="src/monitor/components"/>
  <property name="src.monitor.model" value="src/monitor/model"/>
  <property name="src.jms" value="src/protocol/jms"/>
  <property name="src.report" value="src/reports"/>

  <!-- Where the documentation sources live -->
  <property name="src.docs" value="xdocs"/>
  <property name="src.images" value="xdocs/images"/>
  <property name="src.demos" value="xdocs/demos"/>

  <!-- Javadoc sources -->
  <path id="srcpaths">
    <pathelement location="${src.core}"/>
    <pathelement location="${src.components}"/>
    <pathelement location="${src.functions}"/>
    <pathelement location="${src.http}"/>
    <pathelement location="${src.ftp}"/>
    <pathelement location="${src.jdbc}"/>
    <pathelement location="${src.java}"/>
    <pathelement location="${src.junit}"/>
    <pathelement location="${src.jorphan}"/>
    <pathelement location="${src.ldap}"/>
    <pathelement location="${src.htmlparser}"/>
    <pathelement location="${src.htmlparser16}"/>
    <pathelement location="${src.tcp}"/>
    <pathelement location="${src.examples}"/>
    <pathelement location="${src.mail}"/>
    <pathelement location="${src.monitor.components}"/>
    <pathelement location="${src.monitor.model}"/>
    <pathelement location="${src.jms}"/>
    <pathelement location="${src.report}"/>
  </path>

  <!-- Temporary build directories: where the .class live -->
  <property name="build.dir" location="build"/>
  <property name="build.core" value="build/core"/>
  <property name="build.http" value="build/protocol/http"/>
  <property name="build.ftp" value="build/protocol/ftp"/>
  <property name="build.jdbc" value="build/protocol/jdbc"/>
  <property name="build.java" value="build/protocol/java"/>
  <property name="build.junit" value="build/junit"/>
  <property name="build.components" value="build/components"/>
  <property name="build.functions" value="build/functions"/>
  <property name="build.jorphan" value="build/jorphan"/>
  <property name="build.ldap" location="build/protocol/ldap"/>
  <property name="build.mail" location="build/protocol/mail"/>
  <property name="build.htmlparser" location="build/htmlparser"/>
  <property name="build.htmlparser16" location="build/htmlparser16"/>
  <property name="build.tcp" location="build/protocol/tcp"/>
  <property name="build.examples" location="build/examples"/>
  <property name="build.monitor.components" location="build/monitor/components"/>
  <property name="build.monitor.model" location="build/monitor/model"/>
  <property name="build.jms" location="build/protocol/jms"/>
  <property name="build.report" location="build/reports"/>
  <property name="build.test" location="build/test"/>
  
  <!-- Path prefix to allow Anakia to find stylesheets if running under Eclipse -->
  <!--
  Anakia looks for stylesheets relative to the java launch directory.
  Use the External Tools properties page to define the variable
  as the relative path to the directory where this build file is found.
  For example: 
               eclipse.anakia=workspace/jmeter
  
  An alternative is to define it as a command-line argument on the Main page;
  this allows one to use a macro name, so is more portable.
  For example:
               -Declipse.anakia=workspace/${project_name}
  WARNING: you must ensure that you have selected a file or directory in
  the Navigator pane before attempting to run the build, or Eclipse will
  complain that it cannot resolve the variable name, and it can mark the
  launch configuration as having failed.
  -->
  <property name="eclipse.anakia" value="."/>

  <!-- Where the build result .jars will be placed -->
  <property name="dest.jar" value="lib/ext"/>
  <property name="dest.jar.jmeter" value="bin"/>

  <!-- Where the API documentation lives -->
  <property name="dest.docs.api" value="docs/api"/>

  <!-- Where the doc results live -->
  <property name="dest.docs" value="docs"/>
  <property name="dest.printable_docs" value="printable_docs"/>

  <!-- Directory where these 3rd party libraries will live -->
  <property name="lib.dir" value="lib"/>

  <!-- Currently just for old version of jdom needed for Anakia -->
  <property name="legacy.dir" value="legacy"/>
  
  <!-- Directory where Optional 3rd party libraries will live -->
  <property name="lib.opt" value="lib/opt"/>

  <!-- Other stuff -->
  <property name="extras.dir" value="extras"/>

  <!-- Where the distribution packages will be created -->
  <property name="dist.dir" value="dist"/>

  <!-- Where the web-site packages will be created -->
  <property name="site.dir" value="site"/>

  <!-- Compilation parameters -->
  <property name="optimize" value="on"/>
  <property name="deprecation" value="off"/>
  <property name="target.java.version" value="1.3"/>
  <property name="src.java.version" value="1.3"/>
  <property name="encoding" value="UTF-8"/>

  <!-- 3rd party libraries to be included in the binary distribution -->
  <property name="avalon-framework.jar" value="${lib.dir}/avalon-framework-4.1.4.jar"/>
  <property name="apache-bsf.jar" value="${lib.dir}/bsf-2.3.0.jar"/>
  <property name="jakarta-oro.jar" value="${lib.dir}/jakarta-oro-2.0.8.jar"/>
  <property name="commons-codec.jar" value="${lib.dir}/commons-codec-1.3.jar"/>
  <property name="commons-collections.jar" value="${lib.dir}/commons-collections.jar"/>
  <property name="commons-httpclient.jar" value="${lib.dir}/commons-httpclient-3.0.1.jar"/>
  <property name="commons-jexl.jar" value="${lib.dir}/commons-jexl-1.0.jar"/>
  <property name="commons-logging.jar" value="${lib.dir}/commons-logging-1.1.jar"/>
  <property name="excalibur-logger.jar" value="${lib.dir}/excalibur-logger-1.1.jar"/>
  <property name="excalibur-i18n.jar" value="${lib.dir}/excalibur-i18n-1.1.jar"/>
  <property name="excalibur-compatibility.jar" value="${lib.dir}/excalibur-compatibility-1.1.jar"/>
  <property name="batik-awt-util.jar" value="${lib.dir}/batik-awt-util.jar"/>
  <property name="jcharts.jar" value="${lib.dir}/jCharts-0.7.5.jar"/>
  <property name="junit.jar" value="${lib.dir}/junit.jar"/>
  <property name="logkit.jar" value="${lib.dir}/logkit-1.2.jar"/>
  <property name="excalibur-datasource.jar" value="${lib.dir}/excalibur-datasource-1.1.1.jar"/>
  <property name="excalibur-pool.jar" value="${lib.dir}/excalibur-pool-1.2.jar"/>
  <property name="excalibur-instrument.jar" value="${lib.dir}/excalibur-instrument-1.0.jar"/>
  <property name="xstream.jar" value="${lib.dir}/xstream-1.1.3.jar"/>
  <property name="xpp3.jar" value="${lib.dir}/xpp3_min-1.1.3.4.I.jar"/>
	  
  <!-- The following 3 jars are probably optional for JDK1.4 -->
  <property name="xalan.jar" value="${lib.dir}/xalan.jar"/>
  <property name="xerces.jar" value="${lib.dir}/xercesImpl.jar"/>
  <property name="xml-apis.jar" value="${lib.dir}/xml-apis.jar"/>
  
  <property name="jdom.jar" value="${lib.dir}/jdom-1.0.jar"/>
  <property name="js.jar" value="${lib.dir}/js.jar"/>
  <property name="soap.jar" value="${lib.dir}/soap.jar"/>
  <property name="tidy.jar" value="${lib.dir}/Tidy.jar"/>

  <!-- The following jars are only needed for source distributions -->
  <property name="velocity.jar" value="${lib.dir}/velocity-1.4-dev.jar"/>

  <!-- Jars for binary release -->
  <patternset id="external.jars">
    <include name="LICENSE"/>
    <include name="NOTICE"/>
    <include name="README"/>
    <include name="MANIFEST"/>
    <include name="${lib.dir}/*.html"/>
    <include name="${lib.dir}/LICENSE*.*"/>
    <include name="${avalon-framework.jar}"/>
    <include name="${apache-bsf.jar}"/>
    <include name="${jakarta-oro.jar}"/>
    <include name="${commons-codec.jar}"/>
    <include name="${commons-collections.jar}"/>
    <include name="${commons-httpclient.jar}"/>
    <include name="${commons-jexl.jar}"/>
    <include name="${commons-logging.jar}"/>
    <include name="${excalibur-logger.jar}"/>
    <include name="${excalibur-i18n.jar}"/>
    <include name="${excalibur-compatibility.jar}"/>
    <include name="${jcharts.jar}"/>
    <include name="${junit.jar}"/>
    <include name="${logkit.jar}"/>
    <include name="${xalan.jar}"/>
    <include name="${xerces.jar}"/>
    <include name="${xml-apis.jar}"/>
    <include name="${jdom.jar}"/>
    <include name="${js.jar}"/>
    <include name="${soap.jar}"/>
    <include name="${tidy.jar}"/>
    <include name="${excalibur-datasource.jar}"/>
    <include name="${excalibur-pool.jar}"/>
    <include name="${excalibur-instrument.jar}"/>
    <include name="${batik-awt-util.jar}"/>
    <include name="${xstream.jar}"/>
    <include name="${xpp3.jar}"/>
  </patternset>

  <!--
  Optional jars, not included in distribution.
  Any such jars need to be downloaded separately.
  These can be put into ${lib.dir} or ${lib.opt}
  - both of these are included in the build classpath
  
  Any jars put into ${lib.dir} will be included in
  the classpath used by JMeter to load classes.
  Jars in ${lib.opt} are NOT normally included by JMeter.
  
  Placing an optional jar in ${lib.opt} means that it
  will be included in the build classpath, but it will
  not be included in the runtime classpath. This is intended
  for testing JMeter without the optional Jar file(s).
  -->
  
  <!-- Build classpath (includes the optional jar directory) -->
  <!-- Exclude the htmlparser jars to prevent clashes between versions -->
  <path id="classpath">
    <fileset dir="${lib.dir}" includes="*.jar" excludes="htmlparser*.jar"/>
    <fileset dir="${lib.opt}" includes="*.jar" excludes="htmlparser*.jar"/>
  </path>

  <!-- Anakia classpath -->
  <!--
  N.B. On some OSes - e.g. VMS - multiple "." are converted to other characters
  So replace the version part with "*" to match any version.
  -->
  <path id="anakia.classpath">
    <fileset dir="${lib.dir}" includes="velocity*.jar"/>
    <fileset dir="${legacy.dir}" includes="jdom-b9.jar"/>
    <fileset dir="${lib.dir}" includes="commons-collections*.jar"/>
    <fileset dir="${lib.dir}" includes="logkit-*.jar"/>
  </path>
  

  <target name="init-version">
  	<tstamp/>
  	<!-- JMeter version -->
  <property name="jmeter.version" value="2.1.2.${DSTAMP}"/>
  </target>

  <target name="init" depends="check-libs,report-missing-libs,init-version">
    <!-- Create the optional directory (fileset complains if it is missing) -->
    <mkdir dir="${lib.opt}"/>
  </target>

  	<!-- JMeter Javadoc version (own variable is used so can be overriden independently) -->
  <property name="docversion" value="${jmeter.version}"/>
  
  <target name="init-docs" depends="check-anakia,report-anakia-missing">
  	<echo>eclipse.anakia = ${eclipse.anakia}</echo>
  	</target>

  <!--
    - Check for optional libraries.
    -->
  <target name="check-libs" description="Check availability of optional libraries." unless="assuming.libs.present">
    <!-- Create the optional directory (fileset complains if it is missing) -->
    <mkdir dir="${lib.opt}"/>
    <available classname="com.sun.net.ssl.internal.ssl.Provider" property="jsse.present">
      <classpath refid="classpath"/>
    </available>
    <condition property="javamail.complete">
      <and>
        <available classname="javax.mail.Transport" classpathref="classpath"/>
        <available classname="javax.activation.DataHandler" classpathref="classpath"/>
      </and>
    </condition>
    <available classname="bsh.Interpreter" property="beanshell.present">
      <classpath refid="classpath"/>
    </available>
    <available classname="org.htmlparser.Tag" property="htmlparser16.present">
      <classpath>
    	<fileset dir="${lib.opt}" includes="htmlparser1_6.jar"/>
      </classpath>
    </available>
    <available classname="javax.jms.Message" property="jms.present">
      <classpath refid="classpath"/>
    </available>
  </target>
  
  <!--
    - Messages for missing libraries
    -->
  <target name="ssl-message" depends="check-libs" unless="jsse.present">
    <echo message="Classes for SSL not found in classpath"/>
  </target>

  <target name="mail-message" depends="check-libs" unless="javamail.complete">
    <echo message="Classes for Mail support not found in classpath"/>
  </target>

  <target name="beanshell-message" depends="check-libs" unless="beanshell.present">
    <echo message="Classes for BeanShell support not found in classpath"/>
  </target>

  <target name="htmlparser16-message" depends="check-libs" unless="htmlparser16.present">
    <echo message="Classes for HTMLParser 1.6 support not found in classpath"/>
  </target>

  <target name="jms-message" depends="check-libs" unless="jms.present">
    <echo message="Classes for JMS support not found in classpath"/>
  </target>

  <target name="report-missing-libs" 
      depends="ssl-message,mail-message,beanshell-message,htmlparser16-message,jms-message"
  />

  <!--
    - Check for anakia task
    -->
  <target name="check-anakia">
    <available classpathref="anakia.classpath" classname="org.apache.velocity.anakia.AnakiaTask" property="AnakiaTask.present"/>
  </target>
  <target name="report-anakia-missing" depends="check-anakia" unless="AnakiaTask.present">
    <echo>
      AnakiaTask is not present, documentation will not be generated.
    </echo>
  </target>

  <target name="compile-core" depends="compile-jorphan,update-version" description="Compile JMeter core classes.">
    <mkdir dir="${build.core}"/>
    <javac srcdir="${src.core}" destdir="${build.core}" optimize="${optimize}" source="${src.java.version}" debug="on" target="${target.java.version}" deprecation="${deprecation}" encoding="${encoding}">
      <include name="**/*.java"/>
      <exclude name="org/apache/jmeter/util/JsseSSLManager.java" unless="jsse.present"/>
      <exclude name="org/apache/jmeter/util/keystore/DefaultKeyStore.java" unless="jsse.present"/>
      <classpath>
        <pathelement location="${build.jorphan}"/>
        <path refid="classpath"/>
      </classpath>
    </javac>
  </target>

  <target name="update-version" unless="version.noupdate">
    <echo>Updating version string</echo>
    <replaceregexp file="${src.core}/org/apache/jmeter/util/JMeterVersion.java"
    	match="VERSION = &quot;.*?&quot;"
	replace="VERSION = &quot;${jmeter.version}&quot;"/>
  </target>

  <target name="compile-components" depends="compile-jorphan,compile-core" description="Compile generic (protocol-independent) components.">
    <mkdir dir="${build.components}"/>
    <javac srcdir="${src.components}" destdir="${build.components}" source="${src.java.version}" optimize="${optimize}" debug="on" target="${target.java.version}" deprecation="${deprecation}" encoding="${encoding}">
      <include name="**/*.java"/>
      <exclude name="org/apache/jmeter/visualizers/MailerVisualizer.java" unless="javamail.complete"/>
      <exclude name="org/apache/jmeter/reporters/MailerModel.java" unless="javamail.complete"/>
      <exclude name="org/apache/jmeter/reporters/MailerResultCollector.java" unless="javamail.complete"/>
      <exclude name="org/apache/jmeter/assertions/**/BeanShell*.java" unless="beanshell.present"/>
      <classpath>
        <pathelement location="${build.jorphan}"/>
        <pathelement location="${build.core}"/>
        <path refid="classpath"/>
      </classpath>
    </javac>
  </target>

  <target name="compile-functions" depends="compile-jorphan,compile-core" description="Compile functions.">
    <mkdir dir="${build.functions}"/>
    <javac srcdir="${src.functions}" destdir="${build.functions}" source="${src.java.version}" optimize="${optimize}" debug="on" target="${target.java.version}" deprecation="${deprecation}" encoding="${encoding}">
      <include name="**/*.java"/>
      <classpath>
        <pathelement location="${build.jorphan}"/>
        <pathelement location="${build.core}"/>
        <path refid="classpath"/>
      </classpath>
    </javac>
  </target>

  <target name="compile-http" depends="compile-jorphan,compile-core,compile-components,compile-htmlparser" description="Compile components specific to HTTP sampling.">
    <mkdir dir="${build.http}"/>
    <!-- Directory needs to exist, or jar will fail -->
    <mkdir dir="${build.htmlparser16}"/>
    <javac srcdir="${src.http}" destdir="${build.http}" source="${src.java.version}" optimize="${optimize}" debug="on" target="${target.java.version}" deprecation="${deprecation}" encoding="${encoding}">
      <include name="**/*.java"/>
      <exclude name="org/apache/jmeter/protocol/http/sampler/WebServiceSampler.java" unless="javamail.complete"/>
      <exclude name="org/apache/jmeter/protocol/http/control/gui/WebServiceSamplerGui.java" unless="javamail.complete"/>
      <classpath>
        <pathelement location="${build.jorphan}"/>
        <pathelement location="${build.core}"/>
        <pathelement location="${build.components}"/>
        <pathelement location="${build.htmlparser}"/>
        <path refid="classpath"/>
      </classpath>
    </javac>
  </target>

  <target name="compile-htmlparser16" depends="compile-http,compile-htmlparser" description="Compile htmlparser 1.6 support" if="htmlparser16.present">
    <mkdir dir="${build.htmlparser16}"/>
    <javac srcdir="${src.htmlparser16}" destdir="${build.htmlparser16}" optimize="${optimize}" debug="on" source="${src.java.version}" target="${target.java.version}" deprecation="${deprecation}" encoding="${encoding}">
      <include name="**/*.java"/>
      <classpath>
        <pathelement location="${build.jorphan}"/>
        <pathelement location="${build.core}"/>
        <pathelement location="${build.http}"/>
      	<fileset dir="${lib.opt}" includes="htmlparser1_6.jar"/>
        <pathelement location="${}"/>
        <path refid="classpath"/>
      </classpath>
    </javac>
  </target>
  
  <target name="compile-tests" description="Compile test components only">
    <mkdir dir="${build.test}"/>
    <javac srcdir="${src.test}" destdir="${build.test}" source="${src.java.version}" optimize="${optimize}" debug="on" target="${target.java.version}" deprecation="${deprecation}" encoding="${encoding}">
      <classpath>
        <pathelement location="${build.jorphan}"/>
        <pathelement location="${build.core}"/>
        <pathelement location="${build.components}"/>
        <pathelement location="${build.http}"/>
        <pathelement location="${build.ftp}"/>
        <pathelement location="${build.functions}"/>
        <pathelement location="${build.java}"/>
        <pathelement location="${build.jdbc}"/>
        <pathelement location="${build.ldap}"/>
        <pathelement location="${build.mail}"/>
        <pathelement location="${build.monitor.components}"/>
        <pathelement location="${build.monitor.model}"/>
        <pathelement location="${build.report}"/>
        <pathelement location="${build.tcp}"/>
        <path refid="classpath"/>
      </classpath>
    </javac>
  </target>

  <target name="compile-ftp" depends="compile-jorphan,compile-core" description="Compile components specific to FTP sampling.">
    <mkdir dir="${build.ftp}"/>
    <javac srcdir="${src.ftp}" destdir="${build.ftp}" source="${src.java.version}" optimize="${optimize}" debug="on" target="${target.java.version}" deprecation="${deprecation}" encoding="${encoding}">
      <include name="**/*.java"/>
      <classpath>
        <pathelement location="${build.jorphan}"/>
        <pathelement location="${build.core}"/>
        <path refid="classpath"/>
      </classpath>
    </javac>
  </target>

  <target name="compile-jdbc" depends="compile-jorphan,compile-core" description="Compile components specific to JDBC sampling.">
    <mkdir dir="${build.jdbc}"/>
    <javac srcdir="${src.jdbc}" destdir="${build.jdbc}" source="${src.java.version}" optimize="${optimize}" debug="on" target="${target.java.version}" deprecation="${deprecation}" encoding="${encoding}">
      <include name="**/*.java"/>
      <classpath>
        <pathelement location="${build.jorphan}"/>
        <pathelement location="${build.core}"/>
        <path refid="classpath"/>
      </classpath>
    </javac>
  </target>
  
  <target name="compile-ldap" depends="compile-jorphan,compile-core" 
    description="Compile components specific to LDAP sampling.">
    <mkdir dir="${build.ldap}"/>
    <javac srcdir="${src.ldap}" destdir="${build.ldap}" source="${src.java.version}" optimize="${optimize}" debug="on" target="${target.java.version}" deprecation="${deprecation}" encoding="${encoding}">
      <include name="**/*.java"/>
      <classpath>
        <pathelement location="${build.jorphan}"/>
        <pathelement location="${build.core}"/>
        <path refid="classpath"/>
      </classpath>
    </javac>
  </target>

  <target name="create-mail-dir">
    <mkdir dir="${build.mail}"/>
  </target>

  <target name="compile-mail" depends="compile-jorphan,compile-core,create-mail-dir" if="javamail.complete"
    description="Compile components specific to IMAP and POP3 sampling.">
    <javac srcdir="${src.mail}" destdir="${build.mail}" source="${src.java.version}" optimize="${optimize}" debug="on" target="${target.java.version}" deprecation="${deprecation}" encoding="${encoding}">
      <include name="**/*.java"/>
      <classpath>
        <pathelement location="${build.jorphan}"/>
        <pathelement location="${build.core}"/>
        <path refid="classpath"/>
      </classpath>
    </javac>
  </target>

  <target name="compile-java" depends="compile-jorphan,compile-core" description="Compile components specific to Java sampling.">
    <mkdir dir="${build.java}"/>
    <javac srcdir="${src.java}" destdir="${build.java}" source="${src.java.version}" optimize="${optimize}" debug="on" target="${target.java.version}" deprecation="${deprecation}" encoding="${encoding}">
      <include name="**/*.java"/>
      <exclude name="org/apache/jmeter/protocol/java/**/BeanShell*.java" unless="beanshell.present"/>
      <classpath>
        <pathelement location="${build.jorphan}"/>
        <pathelement location="${build.core}"/>
        <path refid="classpath"/>
      </classpath>
    </javac>
  </target>

  <target name="compile-junit" depends="compile-jorphan,compile-core" description="Compile components specific to JUnit sampling.">
    <mkdir dir="${build.junit}"/>
    <javac srcdir="${src.junit}" destdir="${build.junit}" source="${src.java.version}" optimize="${optimize}" debug="on" target="${target.java.version}" deprecation="${deprecation}" encoding="${encoding}">
      <include name="**/*.java"/>
      <classpath>
        <pathelement location="${build.jorphan}"/>
        <pathelement location="${build.core}"/>
        <path refid="classpath"/>
      </classpath>
    </javac>
  </target>

  <target name="compile-report" depends="compile-jorphan,compile-core,compile-components" 
    description="Compile report components.">
    <mkdir dir="${build.report}"/>
    <javac srcdir="${src.report}" destdir="${build.report}" source="${src.java.version}" optimize="${optimize}" debug="on" target="${target.java.version}" deprecation="${deprecation}" encoding="${encoding}">
      <include name="**/*.java"/>
      <classpath>
        <pathelement location="${build.jorphan}"/>
        <pathelement location="${build.core}"/>
        <pathelement location="${build.components}"/>
        <path refid="classpath"/>
      </classpath>
    </javac>
  </target>

  <target name="compile-tcp" depends="compile-jorphan,compile-core" description="Compile components specific to TCP sampling.">
    <mkdir dir="${build.tcp}"/>
    <javac srcdir="${src.tcp}" destdir="${build.tcp}" source="${src.java.version}" optimize="${optimize}" debug="on" target="${target.java.version}" deprecation="${deprecation}" encoding="${encoding}">
      <include name="**/*.java"/>
      <classpath>
        <pathelement location="${build.jorphan}"/>
        <pathelement location="${build.core}"/>
        <path refid="classpath"/>
      </classpath>
    </javac>
  </target>

  <target name="compile-protocols" depends="compile-http,compile-htmlparser16,compile-ftp,compile-jdbc,compile-java,compile-ldap,compile-mail,compile-tcp" description="Compile all protocol-specific components."/>

  <target name="compile-examples" depends="compile-jorphan,compile-core" description="Compile example components.">
    <mkdir dir="${build.examples}"/>
    <javac srcdir="${src.examples}" destdir="${build.examples}" source="${src.java.version}" optimize="${optimize}" debug="on" target="${target.java.version}" deprecation="${deprecation}" encoding="${encoding}">
      <include name="**/*.java"/>
      <classpath>
        <pathelement location="${build.jorphan}"/>
        <pathelement location="${build.core}"/>
        <path refid="classpath"/>
      </classpath>
    </javac>
  </target>

  <target name="compile-monitor" depends="compile-monitor-model,compile-monitor-components"/>

  <target name="compile-monitor-components"
    depends="compile-jorphan,compile-core,compile-components,compile-monitor-model">
    <mkdir dir="${build.monitor.components}"/>
    <javac srcdir="${src.monitor.components}" source="${src.java.version}" destdir="${build.monitor.components}" optimize="${optimize}" debug="on" target="${target.java.version}" deprecation="${deprecation}" encoding="${encoding}">
      <include name="**/*.java"/>
      <classpath>
        <pathelement location="${build.monitor.model}"/>
        <pathelement location="${build.http}"/>
        <pathelement location="${build.jorphan}"/>
        <pathelement location="${build.core}"/>
        <pathelement location="${build.components}"/>
        <path refid="classpath"/>
      </classpath>
    </javac>
  </target>

  <target name="compile-monitor-model" depends="compile-jorphan,compile-core">
    <mkdir dir="${build.monitor.model}"/>
    <javac srcdir="${src.monitor.model}" destdir="${build.monitor.model}" source="${src.java.version}" optimize="${optimize}" debug="on" target="${target.java.version}" deprecation="${deprecation}" encoding="${encoding}">
      <include name="**/*.java"/>
      <classpath>
        <pathelement location="${build.jorphan}"/>
        <pathelement location="${build.core}"/>
        <path refid="classpath"/>
      </classpath>
    </javac>
  </target>

  <target name="compile-jorphan" depends="init" description="Compile JOrphan utility classes.">
    <mkdir dir="${build.jorphan}"/>
    <javac srcdir="${src.jorphan}" destdir="${build.jorphan}" source="${src.java.version}" optimize="${optimize}" debug="on" target="${target.java.version}" deprecation="${deprecation}" encoding="${encoding}">
      <include name="**/*.java"/>
      <classpath>
        <path refid="classpath"/>
      </classpath>
    </javac>
  </target>

  <target name="compile-rmi" depends="compile-jorphan,compile-core" description="Compile RMI stubs and skeletons.">
    <rmic base="${build.core}" classname="org.apache.jmeter.engine.RemoteJMeterEngineImpl">
      <classpath>
        <pathelement location="${build.jorphan}"/>
        <pathelement path="${build.core}"/>
        <path refid="classpath"/>
      </classpath>
    </rmic>
    <rmic base="${build.core}" classname="org.apache.jmeter.samplers.RemoteSampleListenerImpl">
      <classpath>
        <pathelement path="${build.core}"/>
        <path refid="classpath"/>
      </classpath>
    </rmic>
  </target>

  <target name="compile-htmlparser" depends="" description="Compile htmlparser.">
    <mkdir dir="${build.htmlparser}"/>
    <javac srcdir="${src.htmlparser}" destdir="${build.htmlparser}" optimize="${optimize}" debug="on" source="${src.java.version}" target="${target.java.version}" deprecation="${deprecation}" encoding="${encoding}">
      <include name="**/*.java"/>
      <classpath>
        <pathelement location="${build.jorphan}"/>
        <pathelement location="${build.core}"/>
        <path refid="classpath"/>
      </classpath>
    </javac>
  </target>

  <target name="compile-jms" depends="compile-jorphan,compile-core,compile-components" 
      	description="Compile components specific to JMS sampling."
  	    if="jms.present">
    <mkdir dir="${build.jms}"/>
    <javac srcdir="${src.jms}" destdir="${build.jms}" source="${src.java.version}" optimize="${optimize}" debug="on" target="${target.java.version}" deprecation="${deprecation}" encoding="${encoding}">
      <include name="**/*.java"/>
      <classpath>
        <pathelement location="${build.jorphan}"/>
        <pathelement location="${build.core}"/>
        <path refid="classpath"/>
      </classpath>
    </javac>
  </target>

  <target name="compile" 
  depends="compile-core,compile-components,compile-functions,compile-protocols,compile-rmi,compile-htmlparser,compile-monitor,compile-junit,compile-jms,compile-report"
  description="Compile everything."/>

  <target name="package" depends="compile, package-only"
     description="Compile everything and create the jars"/>
  
<!--
N.B. Eclipse (and perhaps other Java IDEs) copies all files to the build directory, unless
told otherwise. This means that there might be copies of property and image files in the
build directory. To avoid including the files twice in the jar file, we include only .class
files in the list of files to be processed.

An alternative solution is to copy the extra resources to the build tree, and then
include everything from the build tree.
This has the disadvantage that there are then two copies of each
properties file visible in Eclipse, and it is easy to pick the wrong one to edit,
especially as the build directory appears first ...
The advantage would be that JMeter could theoretically be run from the classes, without
needing to create jar files first. However, this would mean changing the way JMeter loads
some of its classes - at present JMeter can only run from jar files.
-->
  <target name="package-only" description="Package already-compiled classes (shortcut for IDE users)">
    <mkdir dir="${dest.jar}"/>
    
    <!-- perhaps ought to include a basic jmeter.properties file in one of the jars,
    given that JMeterUtils looks for it if it cannot find the external one
    - otherwise, change utils to ignore it -->
    
    <!-- JMeter launch jar -->
    <jar jarfile="${dest.jar.jmeter}/ApacheJMeter.jar" 
    	includes="**/NewDriver*,**/DynamicClassLoader*" 
        basedir="${build.core}" 
    	manifest="MANIFEST">
        <metainf dir="." includes="LICENSE,NOTICE"/>
    	<manifest>
           <attribute name="Main-Class" value="org.apache.jmeter.NewDriver"/>
           <attribute name="Built-By" value="${user.name}"/>
           <attribute name="Implementation-Version" value="${jmeter.version}"/>
           <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
           <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
    	</manifest>
    </jar>

    <!-- core -->    
    <jar jarfile="${dest.jar}/ApacheJMeter_core.jar" 
    	excludes="**/NewDriver*,**/DynamicClassLoader*"
    	manifest="MANIFEST">
      <!-- Only include class files from build tree - see above -->
      <fileset dir="${build.core}" includes="**/*.class"
    	excludes="**/BeanShellClient*.class"/>
      <fileset dir="${src.core}" includes="org/apache/jmeter/images/**" 
		excludes="**/*.properties"/>
      <fileset dir="${src.core}" includes="**/*.properties">
        <exclude name="*eucJP*"/>
      </fileset>
      <!-- This file is used by the jmeter -h option -->
      <fileset dir="${src.core}" includes="org/apache/jmeter/help.txt"/>
        <metainf dir="." includes="LICENSE,NOTICE"/>
    	<manifest>
           <attribute name="Built-By" value="${user.name}"/>
           <attribute name="Implementation-Version" value="${jmeter.version}"/>
           <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
           <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
    	</manifest>
    </jar>
    
    <!-- components -->
    <jar jarfile="${dest.jar}/ApacheJMeter_components.jar" manifest="MANIFEST">
      <fileset dir="${build.components}" includes="**/*.class" />
      <fileset dir="${src.components}" includes="**/*.properties" />
        <metainf dir="." includes="LICENSE,NOTICE"/>
    	<manifest>
           <attribute name="Built-By" value="${user.name}"/>
           <attribute name="Implementation-Version" value="${jmeter.version}"/>
           <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
           <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
    	</manifest>
    </jar>
    
    <!-- functions -->
    <jar jarfile="${dest.jar}/ApacheJMeter_functions.jar" manifest="MANIFEST">
      <fileset dir="${build.functions}" includes="**/*.class" />
      <fileset dir="${src.functions}" includes="**/*.properties" />
        <metainf dir="." includes="LICENSE,NOTICE"/>
    	<manifest>
           <attribute name="Built-By" value="${user.name}"/>
           <attribute name="Implementation-Version" value="${jmeter.version}"/>
           <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
           <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
    	</manifest>
    </jar>

    <!-- http without HtmlParserHTMLParser -->
    <jar jarfile="${dest.jar}/ApacheJMeter_http.jar" manifest="MANIFEST">
      <fileset dir="${build.http}" includes="**/*.class" 
      	excludes="**/HtmlParserHTMLParser.class"/>
      <fileset dir="${src.http}" includes="**/*.properties" />
        <metainf dir="." includes="LICENSE,NOTICE"/>
    	<manifest>
           <attribute name="Built-By" value="${user.name}"/>
           <attribute name="Implementation-Version" value="${jmeter.version}"/>
           <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
           <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
    	</manifest>
    </jar>
    
    <!-- HtmlParserHTMLParser -->
    <jar jarfile="${lib.dir}/htmlparserparser.jar" manifest="MANIFEST">
      <fileset dir="${build.http}" includes="**/HtmlParserHTMLParser.class"/>
        <metainf dir="." includes="LICENSE,NOTICE"/>
    	<manifest>
           <attribute name="Built-By" value="${user.name}"/>
           <attribute name="Implementation-Version" value="${jmeter.version}"/>
           <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
           <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
    	</manifest>
    </jar>
  	    
    <!-- HtmlParserHTMLParser16 -->
    <jar jarfile="${lib.dir}/htmlparserparser16.jar" manifest="MANIFEST">
      <fileset dir="${build.htmlparser16}" includes="**/HtmlParserHTMLParser16.class"/>
        <metainf dir="." includes="LICENSE,NOTICE"/>
    	<manifest>
           <attribute name="Built-By" value="${user.name}"/>
           <attribute name="Implementation-Version" value="${jmeter.version}"/>
           <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
           <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
    	</manifest>
    </jar>
  	  	    
    <!-- ftp -->
    <jar jarfile="${dest.jar}/ApacheJMeter_ftp.jar" manifest="MANIFEST">
      <fileset dir="${build.ftp}" includes="**/*.class" />
      <fileset dir="${src.ftp}" includes="**/*.properties" />
        <metainf dir="." includes="LICENSE,NOTICE"/>
    	<manifest>
           <attribute name="Built-By" value="${user.name}"/>
           <attribute name="Implementation-Version" value="${jmeter.version}"/>
           <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
           <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
    	</manifest>
    </jar>
    
    <!-- jdbc -->
    <jar jarfile="${dest.jar}/ApacheJMeter_jdbc.jar" manifest="MANIFEST">
      <fileset dir="${build.jdbc}" includes="**/*.class" />
      <fileset dir="${src.jdbc}" includes="**/*.properties" />
        <metainf dir="." includes="LICENSE,NOTICE"/>
    	<manifest>
           <attribute name="Built-By" value="${user.name}"/>
           <attribute name="Implementation-Version" value="${jmeter.version}"/>
           <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
           <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
    	</manifest>
    </jar>
    
    <!-- java -->
    <jar jarfile="${dest.jar}/ApacheJMeter_java.jar" manifest="MANIFEST">
      <fileset dir="${build.java}" includes="**/*.class" />
      <fileset dir="${src.java}" includes="**/*.properties" />
        <metainf dir="." includes="LICENSE,NOTICE"/>
    	<manifest>
           <attribute name="Built-By" value="${user.name}"/>
           <attribute name="Implementation-Version" value="${jmeter.version}"/>
           <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
           <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
    	</manifest>
    </jar>
    
    <!-- BeanShell Client -->
    <jar jarfile="${lib.dir}/bshclient.jar" manifest="MANIFEST">
      <fileset dir="${build.core}" includes="**/BeanShellClient*.class" />
        <metainf dir="." includes="LICENSE,NOTICE"/>
    	<manifest>
	   <attribute name="Main-Class" value="org.apache.jmeter.util.BeanShellClient"/>
           <attribute name="Built-By" value="${user.name}"/>
           <attribute name="Implementation-Version" value="${jmeter.version}"/>
           <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
           <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
    	</manifest>
    </jar>
  	    
    <!-- junit -->
    <jar jarfile="${dest.jar}/ApacheJMeter_junit.jar" manifest="MANIFEST">
      <fileset dir="${build.junit}" includes="**/*.class" />
      <fileset dir="${src.junit}" includes="**/*.properties" />
        <metainf dir="." includes="LICENSE,NOTICE"/>
    	<manifest>
           <attribute name="Built-By" value="${user.name}"/>
           <attribute name="Implementation-Version" value="${jmeter.version}"/>
           <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
           <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
    	</manifest>
    </jar>

    <!-- report -->
    <jar jarfile="${dest.jar}/ApacheJMeter_report.jar" manifest="MANIFEST">
      <fileset dir="${build.report}" includes="**/*.class" />
      <fileset dir="${src.report}" includes="**/*.properties" />
        <metainf dir="." includes="LICENSE,NOTICE"/>
    	<manifest>
           <attribute name="Built-By" value="${user.name}"/>
           <attribute name="Implementation-Version" value="${jmeter.version}"/>
           <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
           <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
    	</manifest>
    </jar>

    <!-- ldap -->
    <jar jarfile="${dest.jar}/ApacheJMeter_ldap.jar" manifest="MANIFEST">
      <fileset dir="${build.ldap}" includes="**/*.class" />
      <fileset dir="${src.ldap}" includes="**/*.properties" />
        <metainf dir="." includes="LICENSE,NOTICE"/>
    	<manifest>
           <attribute name="Built-By" value="${user.name}"/>
           <attribute name="Implementation-Version" value="${jmeter.version}"/>
           <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
           <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
    	</manifest>
    </jar>
    
    <!-- mail -->
    <jar jarfile="${dest.jar}/ApacheJMeter_mail.jar" manifest="MANIFEST">
      <fileset dir="${build.mail}" includes="**/*.class"  />
      <fileset dir="${src.mail}" includes="**/*.properties" />
        <metainf dir="." includes="LICENSE,NOTICE"/>
    	<manifest>
           <attribute name="Built-By" value="${user.name}"/>
           <attribute name="Implementation-Version" value="${jmeter.version}"/>
           <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
           <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
    	</manifest>
    </jar>
    
    <!-- tcp -->
    <jar jarfile="${dest.jar}/ApacheJMeter_tcp.jar" manifest="MANIFEST">
      <fileset dir="${build.tcp}" includes="**/*.class" />
      <fileset dir="${src.tcp}" includes="**/*.properties" />
        <metainf dir="." includes="LICENSE,NOTICE"/>
    	<manifest>
           <attribute name="Built-By" value="${user.name}"/>
           <attribute name="Implementation-Version" value="${jmeter.version}"/>
           <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
           <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
    	</manifest>
    </jar>
    
    <!-- monitor -->
    <jar jarfile="${dest.jar}/ApacheJMeter_monitors.jar" manifest="MANIFEST">
      <fileset dir="${build.monitor.model}" includes="**/*.class" />
      <fileset dir="${build.monitor.components}" includes="**/*.class" />
        <metainf dir="." includes="LICENSE,NOTICE"/>
    	<manifest>
           <attribute name="Built-By" value="${user.name}"/>
           <attribute name="Implementation-Version" value="${jmeter.version}"/>
           <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
           <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
    	</manifest>
    </jar>

    <!-- jms -->
    <!-- Ensure that build dir exists, even if JMS has not been built -->
    <mkdir dir="${build.jms}"/>
    <jar jarfile="${dest.jar}/ApacheJMeter_jms.jar" manifest="MANIFEST">
      <fileset dir="${build.jms}" includes="**/*.class" />
      <fileset dir="${src.jms}" includes="**/*.properties" />
        <metainf dir="." includes="LICENSE,NOTICE"/>
    	<manifest>
           <attribute name="Built-By" value="${user.name}"/>
           <attribute name="Implementation-Version" value="${jmeter.version}"/>
           <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
           <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
    	</manifest>
    </jar>
    
    <jar jarfile="${lib.dir}/htmlparser.jar" manifest="MANIFEST">
        <fileset dir="${build.htmlparser}" includes="**/*.class" excludes="org/htmlparser/tests/**/*.class"/>
        <fileset dir="${src.htmlparser}" includes="**/*.properties" />
        <metainf dir="." includes="LICENSE,NOTICE"/>
    	<manifest>
           <attribute name="Built-By" value="${user.name}"/>
           <attribute name="Implementation-Version" value="${jmeter.version}"/>
           <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
           <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
    	</manifest>
    </jar>
  	
    <jar jarfile="${lib.dir}/jorphan.jar" manifest="MANIFEST">
        <fileset dir="${build.jorphan}" includes="**/*.class"/>
        <fileset dir="${src.jorphan}" includes="**/*.properties"/>
        <metainf dir="." includes="LICENSE,NOTICE"/>
    	<manifest>
           <attribute name="Built-By" value="${user.name}"/>
           <attribute name="Implementation-Version" value="${jmeter.version}"/>
           <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
           <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
    	</manifest>
    </jar>
  </target>

  <target name="install" depends="package" description="Install JMeter. (Compiles code and creates jars)">
    <fixcrlf srcdir="." eol="lf" includes="**/jmeter,**/jmeter-server,**/jmeter-report"/>
  </target>

  <target name="all" depends="clean,install" 
    description="Default: build from source. Does not create docs."/>

  <target name="install-examples" depends="compile-examples" description="Build and installs the example components.">
    <jar jarfile="${dest.jar}/ApacheJMeter_examples.jar" manifest="MANIFEST">
      <fileset dir="${build.examples}" includes="**/*.class" />
      <fileset dir="${src.examples}" includes="**/*.properties" />
        <metainf dir="." includes="LICENSE,NOTICE"/>
    	<manifest>
           <attribute name="Built-By" value="${user.name}"/>
           <attribute name="Implementation-Version" value="${jmeter.version}"/>
           <attribute name="X-Compile-Source-JDK" value="${src.java.version}"/>
           <attribute name="X-Compile-Target-JDK" value="${target.java.version}"/>
    	</manifest>
    </jar>
  </target>

  <!--
  N.B. This target is used by the "dist" target, which is set up as the Gump target. 
  Any libraries in this list need also to be set up in the Gump file:
    projects/jakarta-jmeter.xml
  -->
  <target name="assume-libs-present">
  <!-- Show the build version in gump logs -->
  <echo>Version $Revision$ Last updated: $Date$</echo>
    <!-- try to avoid Gump classpath complaint -->
    <mkdir dir="${lib.opt}"/>
    <property name="assuming.libs.present" value="true"/>
    <property name="jsse.present" value="assume"/>
    <property name="javamail.complete" value="assume"/>
    <property name="beanshell.present" value="assume"/>
    <property name="jms.present" value="assume"/>
    <property name="htmlparser16.present" value="assume"/>
  </target>

  <!-- list of files needed for a binary distribution (excluding library files) -->
  <patternset id="dist.binaries">
    <include name="LICENSE"/>
    <include name="NOTICE"/>
    <include name="README"/>
    <include name="MANIFEST"/>
    <include name="${dest.jar.jmeter}/ApacheJMeter.jar"/>
    <include name="${dest.jar.jmeter}/BeanShell*.bshrc"/>
    <include name="${dest.jar.jmeter}/jmeter*"/>
    <exclude name="${dest.jar.jmeter}/jmetertest.properties"/>
    <include name="${dest.jar.jmeter}/log4j.conf"/>
    <include name="${dest.jar.jmeter}/logkit.xml"/>
    <include name="${dest.jar.jmeter}/upgrade.properties"/>
    <include name="${dest.jar.jmeter}/saveservice.properties"/>
    <include name="${dest.jar.jmeter}/users.dtd"/>
    <include name="${dest.jar.jmeter}/users.xml"/>
    <!-- Sample override properties files -->
    <include name="${dest.jar.jmeter}/system.properties"/>
    <include name="${dest.jar.jmeter}/user.properties"/>
    <!-- Exclude any files that might be present from testing the release -->
    <exclude name="${dest.jar.jmeter}/*.log"/>
    <include name="${dest.jar}/"/>
    <include name="${dest.printable_docs}/**"/>
    <include name="${extras.dir}/**"/>
    <include name="${lib.dir}/bshclient.jar"/>
    <include name="${lib.dir}/jorphan.jar"/>
    <include name="${lib.dir}/htmlparser.jar"/>
    <include name="${lib.dir}/htmlparserparser.jar"/>
    <include name="${lib.dir}/htmlparserparser16.jar"/>
    <include name="${lib.dir}/junit/test.jar"/>
  </patternset>

  <!--
      List of Unix executable files in the binary distribution
      These need special handling to create the correct file mode
  -->
  <property name="dist.executables" value="${dest.jar.jmeter}/jmeter ${dest.jar.jmeter}/jmeter-server"/>

  <patternset id="dist.sources">
    <include name="LICENSE"/>
    <include name="NOTICE"/>
    <include name="README"/>
    <include name="MANIFEST"/>
    <include name="${src.dir}/**"/>
    <include name="${src.docs}/**"/>
    <include name="${src.test}/**"/>
    <include name="build.xml"/>
    <include name="${dest.jar.jmeter}/jmetertest.properties"/>
    <include name="${dest.jar.jmeter}/testfiles/**"/>
    <exclude name="${dest.jar.jmeter}/testfiles/*.out"/>
    <include name="eclipse.classpath"/>
    <include name="eclipse.readme"/>
    <include name="${lib.dir}/jar_usage.txt"/>
    <include name="fb-*.x*"/>
    <include name="KEYS.txt"/>
  </patternset>
  
  	<!-- Files to be included in full download -->
	<patternset id="dist_bin_files">
  		<patternset refid="dist.binaries"/>
  		<patternset refid="external.jars"/>
  		<include name="${dest.docs}/**"/>
  		<exclude name="${dest.docs}/api/**"/>
  	</patternset>
	<!-- TODO: find way to share images etc between the two document sets -->

	<!-- Files to be included in source download -->
	<patternset id="dist_src_files">
  		<!--patternset refid="external.jars"/-->
  		<patternset refid="dist.sources"/>
  		<include name="${dest.docs}/api/**"/>
		<include name="${velocity.jar}"/>
		<include name="${legacy.dir}/"/>
  	</patternset>

	<!-- Invoke with -Djmeter.version=m.n 
	     N.B. Included in distribution target
	-->
	<target name="site" 
		depends="init-version,docs-site,docs-api,pack-site"
		description="Build site documentation separately (see: distribution)"/>

	<!-- Invoke with -Djmeter.version=m.n -Duser.name=xyz@apache.org
	Creates clean build and all documentation
	Creates runtime and source distributions and site documentation
	-->
	<target name="distribution" 
		depends="assume-libs-present,clean,install,docs-all,test,_distribution,pack-site"
		description="Build JMeter for end-user distribution (includes site)"/>

	<!-- Internal target -->
	<target name="_distribution">
  	<property name="dist.name" value="jakarta-jmeter-${jmeter.version}"/>
  	<property name="pack.name" value="${dist.name}"/>
	<echo>Creating JMeter distribution ${dist.name}</echo>
    <mkdir dir="${dist.dir}"/>
	
	<!-- Runtime archives -->
    <tar destfile="${dist.dir}/${pack.name}.tar" longfile="gnu">
      <tarfileset dir="." prefix="${dist.name}" excludes="${dist.executables}" defaultexcludes="yes">
        <patternset refid="dist_bin_files"/>
      </tarfileset>
      <tarfileset mode="755" includes="${dist.executables}" dir="." prefix="${dist.name}" defaultexcludes="yes"/>
    </tar>

	<gzip zipfile="${dist.dir}/${pack.name}.tgz" src="${dist.dir}/${pack.name}.tar" />
	<!-- no longer needed -->
	<delete file="${dist.dir}/${pack.name}.tar"/>
	<antcall target="_md5">
		<param name="path" value="${dist.dir}/${dist.name}.tgz"/>
	</antcall>

		
    <zip  zipfile="${dist.dir}/${pack.name}.zip">
      <zipfileset dir="." prefix="${dist.name}" defaultexcludes="yes">
        <patternset refid="dist_bin_files"/>
      </zipfileset>
    </zip>
	<antcall target="_md5">
		<param name="path" value="${dist.dir}/${dist.name}.zip"/>
	</antcall>

	<!-- Source archives -->
    <tar destfile="${dist.dir}/${pack.name}_src.tar" longfile="gnu">
      <tarfileset dir="." prefix="${dist.name}" excludes="${dist.executables}" defaultexcludes="yes">
        <patternset refid="dist_src_files"/>
      </tarfileset>
      <tarfileset mode="755" includes="${dist.executables}" dir="." prefix="${dist.name}" defaultexcludes="yes"/>
    </tar>

	<gzip zipfile="${dist.dir}/${pack.name}_src.tgz" src="${dist.dir}/${pack.name}_src.tar" />
	<!-- no longer needed -->
	<delete file="${dist.dir}/${pack.name}_src.tar"/>
	<antcall target="_md5">
		<param name="path" value="${dist.dir}/${dist.name}_src.tgz"/>
	</antcall>

	<zip  zipfile="${dist.dir}/${pack.name}_src.zip">
      <zipfileset dir="." prefix="${dist.name}" defaultexcludes="yes">
        <patternset refid="dist_src_files"/>
      </zipfileset>
    </zip>
	<antcall target="_md5">
		<param name="path" value="${dist.dir}/${dist.name}_src.zip"/>
	</antcall>

</target>

  <!--
  Gump targets.
  There are separate build, test and documentation projects for the jmeter module.
  -->
  <!-- Used by project jakarta-jmeter-cvs -->
  <target name="gump-build" 
      depends="_gump_properties,assume-libs-present,clean,install" 
      description="Build JMeter">
    <property name="dist.name" value="jakarta-jmeter-${jmeter.version}"/>
    <antcall target="_pack-binaries"/>
    <antcall target="_pack-libraries"/>
    <antcall target="_pack-source"/>
  </target>
  
  <!-- Used by project jakarta-jmeter -->
  <target name="gump-compile" 
      depends="_gump_properties,assume-libs-present,clean,compile" 
      description="Compile JMeter only">
  </target>

  <!-- Used by project jakarta-jmeter-test -->
  <target name="gump-test" 
      depends="_gump_properties,compile-tests,_test"
      description="Test JMeter in Gump">
    <!-- Show the log file -->
    <concat>
      <filelist dir="bin" files="jmeter-test.log" />
    </concat>
  	<antcall target="gump-check"/>
  </target>

	<target name="gump-check">
	  	<!-- check if /usr and /x1 are the same -->
	  	<checksum file="/usr/local/gump/public/workspace/jakarta-jmeter-21/lib/jorphan.jar" property="usrMD5"/>
	  	<echo>usrMD5 = ${usrMD5}</echo>
	  	<checksum        file="/x1/gump/public/workspace/jakarta-jmeter-21/lib/jorphan.jar" property="x1MD5"/>
	  	<echo>x1MD5  = ${x1MD5}</echo>
	</target>

	<!-- Used by project jakarta-jmeter-javadoc -->
  <target name="gump-javadoc"
      depends="_gump_properties,docs-api"
      description="Create JMeter javadocs">
    <property name="dist.name" value="jakarta-jmeter-${jmeter.version}"/>
    <antcall target="_pack-javadoc"/>
  </target>
  
  <target name="_gump_properties">
  <echo level="info">
 Gump properties for this run
  jmeter.version      = ${jmeter.version}
  gump.run            = ${gump.run}
  date.projectfile    = ${date.projectfile}
  version.projectfile = ${version.projectfile}
 Build file:
  version.build       = ${version.build}
 Java properties:
  target.java.version = ${target.java.version}
  src.java.version    = ${src.java.version}
  optimize            = ${optimize}
  deprecation         = ${deprecation}
  encoding            = ${encoding}
  </echo>
  <echoproperties prefix="ant"/>
  <echoproperties prefix="gump"/>
  <echoproperties prefix="os"/>

  </target>

  <target name="pack-src" depends="init-version">
    <property name="dist.name" value="jakarta-jmeter-${jmeter.version}"/>
    <antcall target="_pack-source"/>
  </target>

  <target name="pack-dist" depends="init-version">
    <property name="dist.name" value="jakarta-jmeter-${jmeter.version}"/>
    <antcall target="_pack-binaries"/>
    <antcall target="_pack-libraries"/>
    <antcall target="_pack-javadoc"/>
    <antcall target="_pack-source"/>
  </target>

   <target name="_pack-binaries">
    <property name="pack.name" value="${dist.name}_bin"/>
    <mkdir dir="${dist.dir}"/>
    <tar destfile="${dist.dir}/${pack.name}.tar" longfile="gnu">
      <tarfileset dir="." prefix="${dist.name}" excludes="${dist.executables}" defaultexcludes="yes">
        <patternset refid="dist.binaries"/>
      </tarfileset>
      <tarfileset mode="755" includes="${dist.executables}" dir="." prefix="${dist.name}" defaultexcludes="yes"/>
    </tar>
    <gzip zipfile="${dist.dir}/${pack.name}.tgz" src="${dist.dir}/${pack.name}.tar" />
	<!-- no longer needed -->
	<delete file="${dist.dir}/${pack.name}.tar"/>
    <zip  zipfile="${dist.dir}/${pack.name}.zip">
      <zipfileset dir="." prefix="${dist.name}" defaultexcludes="yes">
        <patternset refid="dist.binaries"/>
      </zipfileset>
    </zip>
    </target>

   <target name="_pack-libraries">
    <property name="pack.name" value="${dist.name}_lib"/>
    <mkdir dir="${dist.dir}"/>
    <tar destfile="${dist.dir}/${pack.name}.tar" longfile="gnu">
      <tarfileset dir="." prefix="${dist.name}" defaultexcludes="yes">
        <patternset refid="external.jars"/>
      </tarfileset>
    </tar>
    <gzip zipfile="${dist.dir}/${pack.name}.tgz" src="${dist.dir}/${pack.name}.tar" />
	<!-- no longer needed -->
	<delete file="${dist.dir}/${pack.name}.tar"/>
    <zip  zipfile="${dist.dir}/${pack.name}.zip">
      <zipfileset dir="." prefix="${dist.name}" defaultexcludes="yes">
        <patternset refid="external.jars"/>
      </zipfileset>
    </zip>
    </target>

   <target name="_pack-javadoc">
    <property name="pack.name" value="${dist.name}_api"/>
    <mkdir dir="${dist.dir}"/>
    <tar destfile="${dist.dir}/${pack.name}.tar" longfile="gnu">
      <tarfileset includes="${dest.docs.api}/" dir="." prefix="${dist.name}" defaultexcludes="yes"/>
    </tar>
    <gzip zipfile="${dist.dir}/${pack.name}.tgz" src="${dist.dir}/${pack.name}.tar" />
	<!-- no longer needed -->
	<delete file="${dist.dir}/${pack.name}.tar"/>
    <zip  zipfile="${dist.dir}/${pack.name}.zip">
      <zipfileset includes="${dest.docs.api}/" dir="." prefix="${dist.name}" defaultexcludes="yes"/>
    </zip>
    </target>

   <target name="_pack-source">   
    <property name="pack.name" value="${dist.name}_src"/>
    <mkdir dir="${dist.dir}"/>
    <tar destfile="${dist.dir}/${pack.name}.tar" longfile="gnu">
      <tarfileset dir="." prefix="${dist.name}" excludes="${dist.executables}" defaultexcludes="yes">
        <patternset refid="dist.sources"/>
      </tarfileset>
      <tarfileset mode="755" includes="${dist.executables}" dir="." prefix="${dist.name}" defaultexcludes="yes"/>
    </tar>
    <gzip zipfile="${dist.dir}/${pack.name}.tgz" src="${dist.dir}/${pack.name}.tar" />
	<!-- no longer needed -->
	<delete file="${dist.dir}/${pack.name}.tar"/>
    <zip  zipfile="${dist.dir}/${pack.name}.zip">
      <zipfileset dir="." prefix="${dist.name}" defaultexcludes="yes">
        <patternset refid="dist.sources"/>
      </zipfileset>
    </zip>
    </target>


   <!-- When creating the tars for the web-site, no version prefix directory is added -->
   <target name="pack-site"  depends="init-version">
     <property name="dist.name" value="jakarta-jmeter-${jmeter.version}"/>
     <!-- Note: define pack.name here so it overrides any existing value -->
     <antcall target="_pack_site_api">
        <param name="pack.name" value="${dist.name}_api"/>
     </antcall>
     <antcall target="_pack_site_doc">
        <param name="pack.name" value="${dist.name}_doc"/>
     </antcall>
   </target>
 
   <target name="_pack_site_doc">
    <property name="pack.name" value="${dist.name}_doc"/>
     <mkdir dir="${site.dir}"/>
     <tar destfile="${site.dir}/${pack.name}.tar" longfile="gnu">
      <tarfileset dir="${dest.docs}" includes="**" excludes="api/**" prefix="" defaultexcludes="yes"/>
     </tar>
    <gzip zipfile="${site.dir}/${pack.name}.tgz" src="${site.dir}/${pack.name}.tar" />
	<!-- no longer needed -->
	<delete file="${dist.dir}/${pack.name}.tar"/>
     <!-- no point in creating Zip version as well -->
    </target>

   <target name="_pack_site_api">
    <property name="pack.name" value="${dist.name}_api"/>
     <mkdir dir="${site.dir}"/>
     <tar destfile="${site.dir}/${pack.name}.tar" longfile="gnu">
      <tarfileset dir="${dest.docs.api}" includes="**"  prefix="api" defaultexcludes="yes"/>
     </tar>
    <gzip zipfile="${site.dir}/${pack.name}.tgz" src="${site.dir}/${pack.name}.tar" />
	<!-- no longer needed -->
	<delete file="${dist.dir}/${pack.name}.tar"/>
     <!-- no point in creating Zip version as well -->
    </target>
    
<!-- 
    Utility target to create MD5 checksums in standard format (with *filename) 
    Usage:
	<antcall target="_md5">
		<param name="path" value="archive.jar|zip|gz"/>
	</antcall>
-->

    <target name="_md5" unless="md5.skip">
    	<echo message="Creating MD5 for ${path}"/>
		<basename property="_base" file="${path}"/>
   	    <checksum file="${path}" property="md5"/>
   	    <echo message="${md5} *${_base}" file="${path}.md5"/>
    </target>
	
  <target name="clean" description="Clean up to force a build from source.">
    <delete file="${dest.jar.jmeter}/ApacheJMeter.jar"/>
    <delete quiet="true" file="${lib.dir}/jorphan.jar"/>
    <delete quiet="true" file="${lib.dir}/htmlparser.jar"/>
    <delete quiet="true" file="${lib.dir}/htmlparserparser.jar"/>
    <delete quiet="true" file="${lib.dir}/htmlparserparser16.jar"/>
    <delete quiet="true">
        <fileset dir="${dest.jar}"/>
    </delete>
    <delete dir="${build.dir}"/>
    <delete dir="${dest.docs.api}"/>
    <delete quiet="true">
        <fileset dir="${dest.docs}"/>
    </delete>
    <delete dir="${dest.printable_docs}"/>
    <delete dir="${dist.dir}"/>
    <delete dir="${site.dir}"/>
  </target>

  <target name="docs-api" depends="init-version" description="Generate the API documentation.">
  	<tstamp>
  	  <!-- Used to ensure end-year is up to date -->
      <format property="THISYEAR" pattern="yyyy"/>
    </tstamp>
    <mkdir dir="${dest.docs.api}"/>
    <javadoc sourcepathref="srcpaths" 
    additionalparam="-breakiterator" 
    destdir="${dest.docs.api}" 
    protected="yes" author="yes" version="yes" 
       doctitle="Apache JMeter API Specification" 
    windowtitle="Apache JMeter API Specification" 
    header="&lt;b&gt;Apache JMeter&lt;/b&gt;&lt;br&gt;&lt;font size='-1'&gt;${docversion}&lt;/font&gt;" bottom="Copyright &#xA9; 1998-${THISYEAR} Apache Software Foundation. All Rights Reserved."
    packagenames="org.apache.jmeter.*,org.apache.jorphan.*"
    excludepackagenames="org.apache.jmeter.util.keystore,org.apache.jorphan.timer">
      <classpath refid="classpath"/>
      <link href="http://java.sun.com/products/jdk/1.3/docs/api/"/>
    </javadoc>
  </target>

<!--
	Run Doccheck: See http://java.sun.com/j2se/javadoc/doccheck/docs/DocCheck.html
	Download the doclet, and put the jar in lib/opt.
	Output is in reports/ directory
-->
<target name="docs-check">
    <javadoc sourcepathref="srcpaths"
    destdir="reports" 
    docletpath="${lib.opt}/doccheck.jar"
    packagenames="org.apache.jmeter.*,org.apache.jorphan.*"
    excludepackagenames="org.apache.jmeter.util.keystore,org.apache.jorphan.timer">
      <classpath refid="classpath"/>
      <doclet name="com.sun.tools.doclets.doccheck.DocCheck">
      	<!-- 
      		-execDepth: 1=org.* 2=org.apache.* 3+=org.apache.jmeter.*
      		-evident does not seem to work
      	 -->
      	<param name="-execDepth" value="3"/>
      	<param name="-evident" value="4"/>
      </doclet>
    </javadoc>
</target>

  <target name="docs-site" depends="init-docs" if="AnakiaTask.present" description="Generate browsable HTML documentation in web-site format.">
    <taskdef name="anakia" classpathref="anakia.classpath" classname="org.apache.velocity.anakia.AnakiaTask"/>
    <anakia basedir="${src.docs}" destdir="${dest.docs}/" extension=".html" style="${eclipse.anakia}/xdocs/stylesheets/site.vsl" projectFile="./stylesheets/project.xml" excludes="**/stylesheets/**" includes="**/*.xml" lastModifiedCheck="true" velocityPropertiesFile="${src.docs}/velocity.properties"/>
    <copy todir="${dest.docs}/images">
      <fileset dir="${src.images}"/>
    </copy>
    <copy todir="${dest.docs}/demos">
      <fileset dir="${src.demos}"/>
    </copy>
  	<copy todir="${dest.docs}/usermanual">
  	  <fileset file="${src.docs}/usermanual/*.pdf"/>
    </copy>
  </target>

  <target name="docs-printable" depends="init-docs" if="AnakiaTask.present" description="Generate printable HTML documentation.">
    <taskdef name="anakia" classpathref="anakia.classpath" classname="org.apache.velocity.anakia.AnakiaTask"/>
    <anakia basedir="${src.docs}" destdir="${dest.printable_docs}/" extension=".html" style="${eclipse.anakia}/xdocs/stylesheets/site_printable.vsl" projectFile="./stylesheets/printable_project.xml" excludes="**/stylesheets/**" includes="**/*.xml" lastModifiedCheck="true" velocityPropertiesFile="${src.docs}/velocity.properties"/>
    <!--
    Share images with non-printable version
    Means printable version won't work on web-site
    -->
    <copy todir="${dest.docs}/images">
      <fileset dir="${src.images}"/>
    </copy>
    <copy todir="${dest.printable_docs}/demos">
      <fileset dir="${src.demos}"/>
    </copy>
    <copy todir="${dest.printable_docs}/usermanual">
        <fileset file="${src.docs}/usermanual/*.pdf"/>
    </copy>
  </target>

  <target name="docs-all" depends="docs-site,docs-printable,docs-api" 
  	description="Generate documentation. (site, printable, api)"/>

  <target name="test" depends="compile-tests,_test" description="Run tests"/>
  
  <target name="test-both" depends="test-headless,test-headed"/>

  <target name="test-headless">
    <antcall target="_test">
      <param name="test.headless" value="true"/>
    </antcall>
  </target>

  <target name="test-headed">
    <antcall target="_test">
      <param name="test.headless" value="false"/>
    </antcall>
  </target>
  
   <!-- Generic test target, not intended to be called directly -->
   <target name="_test">
   <!-- 
   The property java.awt.headless is not automatically passed on,
   because the tests are run in a separate JVM from the build.
   
   It is assumed that Gump sets java.awt.headless if required.
   
   Set test.headless from the java.awt property, if that
   is defined, otherwise it us set to "".
   N.B. if test.headless is already set, it will not be changed
   This allows the property to be over-ridden by test-headless etc.
   -->
    <condition property="test.headless" value="${java.awt.headless}">
      <isset property="java.awt.headless"/>
    </condition>
     <!-- make sure test.headless is set to something -->
     <condition property="test.headless" value="">
      <not><isset property="java.awt.headless"/></not>
     </condition>
   
   <!-- set build.test.gump to build.test if not already set -->
    <condition property="build.test.gump" value="${build.test}">
      <not><isset property="build.test.gump"/></not>
    </condition>
   <echo>
   gump.run = ${gump.run}
   java.awt.headless = ${java.awt.headless}
   test.headless = ${test.headless}
   user.dir = ${user.dir}
   basedir = ${basedir}
   test dir = ${build.test}
   test dir gump = ${build.test.gump}
   testsaveservice.saveout = ${testsaveservice.saveout}
   </echo>
   <java classname="org.apache.jorphan.test.AllTests" fork="yes" dir="${basedir}/bin">
      <classpath>
    	<fileset dir="${dest.jar}" includes="*.jar"/>
        <pathelement location="${build.test}"/>
    	<fileset dir="${lib.dir}" includes="htmlparser.jar"/>
    	<fileset dir="${lib.dir}" includes="htmlparserparser.jar"/>
    	<path refid="classpath"/>
      </classpath>
      <sysproperty key="java.awt.headless" value="${test.headless}"/>
      <sysproperty key="testsaveservice.saveout" value="${testsaveservice.saveout}" />
      <arg value="${build.test.gump},../lib/ext"/>
      <arg value="./jmetertest.properties"/>
      <arg value="org.apache.jmeter.util.JMeterUtils"/>
    </java>
  </target>

<!--
    In order to run JUnit, both junit.jar and optional.jar need to be on the Ant classpath
    optional.jar is normally found in ANT_HOME/lib
-->
  <target name="junit"  description="Run individual JUnit test">
  <mkdir dir="reports"/>
  <property name="test.format" value="brief"/>
  <property name="test.case1" value="org.apache.jmeter.junit.JMeterTest"/>
  <property name="test.case" value="org.apache.jorphan.test.AllTests"/>
  <junit fork="true"
   dir="${basedir}/bin"
   showoutput="true"
   printsummary="withOutAndErr">
  <formatter type="${test.format}" usefile="no"/>
  <formatter type="xml"/>
      <classpath>
        <fileset dir="${dest.jar}" includes="*.jar"/>
        <fileset dir="${lib.opt}" includes="optional.jar"/>
        <path refid="classpath"/>
      </classpath>
  <test name="${test.case}" todir="reports"/>
  </junit>
  </target>

  <!-- Utility target to collate reports -->
  <target name="junitreport">
    <mkdir dir="reports"/>
    <junitreport todir="reports">
      <fileset dir="reports">
        <include name="TEST-*.xml"/>
      </fileset>
      <report format="frames" todir="reports"/>
    </junitreport>
  </target>

  <!-- Run the HTML Parser unit tests -->
  <target name="testparser" description="run the JUnit tests">
    <echo message="**********************************"/>
    <echo message="*  Running HtmlParser unit tests *"/>
    <echo message="**********************************"/>
<!--
    <javac srcdir="${src}" includes="org/htmlparser/tests/**" debug="on">
      <classpath>
        <pathelement location="src"/>
        <pathelement location="${junit.jar}"/>
        <pathelement location="${commons-logging.jar}"/>
      </classpath>
    </javac>
-->
    <java classname="org.htmlparser.tests.AllTests" fork="yes" failonerror="yes">
      <classpath>
	<pathelement location="${build.htmlparser}"/>
        <pathelement location="${lib.dir}/htmlparser.jar"/>
        <pathelement location="${junit.jar}"/>
        <pathelement location="${log-kit.jar}"/>
      </classpath>
      <arg value="-text"/>
    </java>
  </target>
  
</project>
