<?xml version="1.0" encoding="UTF-8"?>
<!--
* JBoss, Home of Professional Open Source
* Copyright 2005, JBoss Inc., and individual contributors as indicated
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-->

<!-- $Id: build.xml 5420 2009-09-01 19:48:55Z ron.sigal@jboss.com $ -->

<project default="most" name="JBossRemoting">

   <!-- ================================================================== -->
   <!-- Configuration                                                      -->
   <!-- ================================================================== -->

   <condition property = "os.unix">
     <os family = "unix" />
   </condition>

   <condition property = "os.windows">
     <os family = "windows" />
   </condition>

   <!-- used by "compile" and "tests.compile"/-->
   <property name="compile.source" value="${ant.java.version}"/>
   <property name="compile.target" value="${ant.java.version}"/>

   <!-- ================================================================== -->
   <!-- Sets bind address and port used by jrunit/jgroups multicast socket -->
   <!-- ================================================================== -->
   <target name="configure.jrunit"
      depends="setbindaddress,setmulticastaddress,setmulticastport,
               setReceiveOnAllInterfaces,setSendOnAllInterfaces,setSendInterfaces"/>
   
   <target name="setbindaddress" 
      depends="setbindaddress.sub,setbindaddress.true,setbindaddress.false"/>

   <target name="setbindaddress.sub">
      <property environment="env"/>
      <property name="cond.bind.address" value="${jrunit.bind_addr}"/>    
      <condition property="bind.address.set">
         <not>
            <contains string="${cond.bind.address}" substring="$"/>
         </not>
      </condition>
   </target>
         
   <target name="setbindaddress.true" if="bind.address.set">
      <property name="bind.address" value="${cond.bind.address}"/>
      <echo>bind.address: ${bind.address}</echo>
   </target>
   
   <target name="setbindaddress.false" unless="bind.address.set">
      <property name="bind.address" value="127.0.0.1"/>
      <echo>bind.address: 127.0.0.1</echo>
   </target>
   
   <target name="setmulticastaddress"
      depends="setmulticastaddress.sub,
               setmulticastaddress.isset,
               setmulticastaddress.jdk14,
               setmulticastaddress.jdk15,
               setmulticastaddress.jdk16"/>
   
   <target name="setmulticastaddress.sub">
      <property name="cond.multicastaddress" value="${jrunit.mcast_addr}"/>    
      <condition property="multicastaddress.set">
         <not>
            <contains string="${cond.multicastaddress}" substring="$"/>
         </not>
      </condition>
   </target>
   
   <target name="setmulticastaddress.isset" if="multicastaddress.set">
      <property name="multicast.address" value="${cond.multicastaddress}"/>
      <echo>multicast.address: ${multicast.address}</echo>
   </target>
   
   <target name="setmulticastaddress.jdk14" unless="multicastaddress.set" if="isJDK4">
      <property name="multicast.address" value="228.15.2.3"/>
      <echo>multicast.address: ${multicast.address}</echo>
   </target>
   
   <target name="setmulticastaddress.jdk15" unless="multicastaddress.set" if="isJDK5">
      <property name="multicast.address" value="228.15.2.4"/>
      <echo>multicast.address: ${multicast.address}</echo>
   </target>
         
   <target name="setmulticastaddress.jdk16" unless="multicastaddress.set" if="isJDK6">
      <property name="multicast.address" value="228.15.2.5"/>
      <echo>multicast.address: ${multicast.address}</echo>
   </target>  

  <target name="setmulticastport"
      depends="setmulticastport.sub,
               setmulticastport.isset,
               setmulticastport.jdk14,
               setmulticastport.jdk15,
               setmulticastport.jdk16"/>
   
   <target name="setmulticastport.sub">
      <property name="cond.multicastport" value="${jrunit.mcast_port}"/>    
      <condition property="multicastport.set">
         <not>
            <contains string="${cond.multicastport}" substring="$"/>
         </not>
      </condition>
   </target>
   
   <target name="setmulticastport.isset" if="multicastport.set">
      <property name="multicast.port" value="${cond.multicastport}"/>
      <echo>multicast.port: ${multicast.port}</echo>
   </target>
   
   <target name="setmulticastport.jdk14" unless="multicastport.set" if="isJDK4">
      <property name="multicast.port" value="45566"/>
      <echo>multicast.port: ${multicast.port}</echo>
   </target>
   
   <target name="setmulticastport.jdk15" unless="multicastport.set" if="isJDK5">
      <property name="multicast.port" value="45567"/>
      <echo>multicast.port: ${multicast.port}</echo>
   </target>
         
   <target name="setmulticastport.jdk16" unless="multicastport.set" if="isJDK6">
      <property name="multicast.port" value="45568"/>
      <echo>multicast.port: ${multicast.port}</echo>
   </target>  

   <target name="setReceiveOnAllInterfaces"
      depends="setReceiveOnAllInterfaces.sub,
               setReceiveOnAllInterfaces.isset.true,
               setReceiveOnAllInterfaces.isset.false"/>

   <target name="setReceiveOnAllInterfaces.sub">
      <property name="cond.receiveOnAllInterfaces" value="${jrunit.receive_on_all_interfaces}"/>    
      <condition property="receiveOnAllInterfaces.set">
         <not>
            <contains string="${cond.receiveOnAllInterfaces}" substring="$"/>
         </not>
      </condition>
   </target>
   
   <target name="setReceiveOnAllInterfaces.isset.true" if="receiveOnAllInterfaces.set">
      <property name="receiveOnAllInterfaces" value="${cond.receiveOnAllInterfaces}"/>
      <echo>receiveOnAllInterfaces: ${receiveOnAllInterfaces}</echo>
   </target>

   <target name="setReceiveOnAllInterfaces.isset.false" unless="receiveOnAllInterfaces.set">
      <property name="receiveOnAllInterfaces" value="false"/>
      <echo>receiveOnAllInterfaces: ${receiveOnAllInterfaces}</echo>
   </target>
   
   <target name="setSendOnAllInterfaces"
      depends="setSendOnAllInterfaces.sub,
               setSendOnAllInterfaces.isset.true,
               setSendOnAllInterfaces.isset.false"/>

   <target name="setSendOnAllInterfaces.sub">
      <property name="cond.sendOnAllInterfaces" value="${jrunit.send_on_all_interfaces}"/>    
      <condition property="sendOnAllInterfaces.set">
         <not>
            <contains string="${cond.sendOnAllInterfaces}" substring="$"/>
         </not>
      </condition>
   </target>
   
   <target name="setSendOnAllInterfaces.isset.true" if="sendOnAllInterfaces.set">
      <property name="sendOnAllInterfaces" value="${cond.sendOnAllInterfaces}"/>
      <echo>sendOnAllInterfaces: ${sendOnAllInterfaces}</echo>
   </target>

   <target name="setSendOnAllInterfaces.isset.false" unless="sendOnAllInterfaces.set">
      <property name="sendOnAllInterfaces" value="false"/>
      <echo>sendOnAllInterfaces: ${sendOnAllInterfaces}</echo>
   </target>

   <target name="setSendInterfaces"
      depends="setSendInterfaces.sub,
               setSendInterfaces.isset.true,
               setSendInterfaces.isset.false"/>

   <target name="setSendInterfaces.sub">
      <property name="cond.sendInterfaces" value="${jrunit.send_interfaces}"/>    
      <condition property="sendInterfaces.set">
         <not>
            <contains string="${cond.sendInterfaces}" substring="$"/>
         </not>
      </condition>
   </target>
   
   <target name="setSendInterfaces.isset.true" if="sendInterfaces.set">
      <property name="sendInterfaces" value="${cond.sendInterfaces}"/>
      <echo>sendInterfaces: ${sendInterfaces}</echo>
   </target>

   <target name="setSendInterfaces.isset.false" unless="sendInterfaces.set">
      <property name="sendInterfaces" value="none"/>
      <echo>sendInterfaces: ${sendInterfaces}</echo>
   </target>
   <!-- ================================================================== -->
   
   <target name="configure" depends="get-jvm,configure.jrunit" unless="configure.disable">
      <property file="local.properties" />
      
       <!-- This is for the jrunit benchmark results -->
      <property file="database.properties"/>

      <!-- Module name(s) & version -->
      <property name="module.name" value="remoting"/>
      <property name="module.Name" value="JBoss Remoting"/>
      <property name="module.version" value="2.5.3.SP1"/>
      <!-- extension is for the file suffix to use for dtribution build -->
      <property name="module.version.extension" value="2_5_3_SP1"/>

      <property name="implementation.url" value="http://www.jboss.org/products/remoting"/>
      <property name="root.dir" value="${basedir}"/>
      <property name="doc.dir" value="${root.dir}/docs"/>
      <property name="src.dir" value="${root.dir}/src/main"/>
      <property name="tests.dir" value="${root.dir}/src/tests"/>
      <property name="etc.dir" value="${root.dir}/src/etc"/>
      <property name="output.dir" value="${root.dir}/output"/>
      <property name="output.lib.dir" value="${output.dir}/lib"/>
      <property name="output.etc.dir" value="${output.dir}/etc"/>
      <property name="output.doc.dir" value="${output.dir}/doc"/>
      <property name="output.api.dir" value="${output.doc.dir}/api"/>
      <property name="compile.dir" value="${output.dir}/classes"/>
      <property name="lib.dir" value="${root.dir}/lib"/>
      <property name="dist.dir" value="${output.dir}/dist"/>
      <!-- rmic specific variables -->
      <property name="rmic.verify" value="true"/>
      <property name="rmic.iiop" value="false"/>
      <property name="rmic.iiopops" value=""/>
      <property name="rmic.idl" value="false"/>
      <property name="rmic.idlops" value=""/>
      <property name="rmic.debug" value="false"/>
      <property name="rmic.stubVersion" value="1.2"/>
      <!-- javadoc includes -->
      <property name="javadoc.packages" value="org.jboss.remoting.*"/>
      <!-- test properties -->
      <property name="tests.src.dir" value="${tests.dir}"/>
      <property name="tests.compile.dir" value="${output.dir}/tests/classes"/>
      <property name="output.tests" value="${output.dir}/tests"/>
      <property name="output.tests.classes" value="${output.dir}/tests/classes"/>
      <property name="output.tests.results" value="${output.dir}/tests/results"/>
      <property name="output.tests.performance" value="${output.dir}/tests/performance"/>
      <property name="output.tests.stress" value="${output.dir}/tests/stress"/>
      <property name="output.tests.tmp" value="${output.dir}/tests/tmp"/>

      <property name="manifest.file" value="${output.etc.dir}/default.mf"/>

      <property name="servlet.invoker.war" value="servlet-invoker.war"/>

      <!--<property name="jdbc.driver.dir" value="C:/Software/mysql/mysql-connector-java-3.1.7"/>-->
      <!--<property name="jdbc-driver-jar" value="${jdbc.driver.dir}/mysql-connector-java-3.1.7-bin.jar"/>-->

      <path id="third_party.classpath">
         <fileset dir="${lib.dir}">
            <include name="**/*.jar"/>
            <!--exclude name="apache-tomcat/*.jar" unless="isJDK4"/-->
            <exclude name="**/jdk14/*.jar" unless="isJDK4"/>
            <include name="**/jdk14/*.jar" if="isJDK4"/>
            <exclude name="apache-log4j/lib/log4j.jar" if="isJDK4"/>
            <exclude name="jboss/jboss-j2se.jar" if="isJDK4"/>
            <exclude name="jboss/jboss-common-core.jar" if="isJDK4"/>
            <exclude name="jboss/jboss-jmx.jar" if="isJDK4"/>
            <exclude name="jboss/jboss-logging-log4j.jar" if="isJDK4"/>
            <exclude name="jboss/jboss-logging-spi.jar" if="isJDK4"/>
            <exclude name="jboss/jnpserver.jar" if="isJDK4"/>
            <exclude name="jbossweb/*.jar" if="isJDK4"/>
            <exclude name="oswego-concurrent/lib/concurrent.jar" if="isJDK4"/>
            <exclude name="sun-servlet/lib/servlet-api.ja" if="isJDK4"/>
         </fileset>
      </path>
      
      <!-- The combined library classpath -->
      <path id="library.classpath">
         <pathelement path="${output.lib.dir}/jboss-remoting.jar"/>
         <!--pathelement location="${compile.dir}"/-->
         <pathelement location="${etc.dir}"/>
         <path refid="third_party.classpath"/>
      </path>

      <path id="tests.classpath">
         <pathelement path="${ant.library.dir}/ant.jar"/>
         <pathelement path="${ant.library.dir}/ant-junit.jar"/>
         <pathelement location="${tests.compile.dir}"/>
         <path refid="library.classpath"/>
         <!--<pathelement path="${output.lib.dir}/jboss-remoting.jar"/>-->
         <pathelement path="${jdbc-driver-jar}"/>
      </path>
      
      <path id="tests.classpath.invokerregistrysecurity">
         <pathelement path="${ant.library.dir}/ant.jar"/>
         <pathelement path="${ant.library.dir}/ant-junit.jar"/>
         <pathelement path="${output.lib.dir}/jboss-remoting-tests.jar"/>
         <pathelement path="${output.lib.dir}/jboss-remoting-invokerregistry-test.jar"/>
         <path refid="library.classpath"/>
         <pathelement path="${jdbc-driver-jar}"/>
      </path>
      
      <path id="third_party.classpath.tomcat">
         <fileset dir="${lib.dir}">
            <include name="**/*.jar"/>
            <exclude name="jbossweb/*.jar"/>
         </fileset>
      </path>
      
      <!-- The combined library classpath -->
      <path id="library.classpath.tomcat">
         <!--pathelement location="${compile.dir}"/-->
         <pathelement path="${output.lib.dir}/jboss-remoting.jar"/>
         <pathelement location="${etc.dir}"/>
         <path refid="third_party.classpath.tomcat"/>
      </path>

      <path id="tests.classpath.tomcat">
         <pathelement path="${ant.library.dir}/ant.jar"/>
         <pathelement path="${ant.library.dir}/ant-junit.jar"/>
         <pathelement location="${tests.compile.dir}"/>
         <path refid="library.classpath.tomcat"/>
         <!--pathelement path="${output.lib.dir}/jboss-remoting.jar"/-->
         <pathelement path="${jdbc-driver-jar}"/>
      </path>

      <path id="tests.marshall.classpath">
         <path refid="library.classpath"/>
         <!--pathelement path="${output.lib.dir}/jboss-remoting.jar"/-->
      </path>

      <!--<path id="remoting.version_1_4.classpath">-->
         <!--<pathelement path="${etc.dir}/lib/remoting_1_4_0/jboss-remoting.jar"/>-->
      <!--</path>-->

      <path id="tests.version.classpath">
         <pathelement path="${ant.library.dir}/ant.jar"/>
         <pathelement path="${ant.library.dir}/ant-junit.jar"/>
         <pathelement location="${tests.compile.dir}"/>
         <pathelement path="${jdbc-driver-jar}"/>
      </path>

      <patternset id="compile-rmi.pattern">
         <include name="**/RMIServerInvoker.class"/>
      </patternset>

      <patternset id="compile-rmi.pattern.test">
         <include name="**/RMICallbackServer.class"/>
         <include name="**/RMIServer.class"/>
      </patternset>

      <!-- properties for tests.performance.sequence -->
      <property name="perf.seq.numofcalls" value="100000"/>
      <property name="perf.seq.numofclients" value="1"/>
      <property name="perf.seq.payloadsize" value="1024"/>
      <property name="perf.seq.dojava" value="yes"/>
      <property name="perf.seq.dojboss" value="yes"/>
      
      <property name="enable.security.manager" value="true"/>
      <condition property="java.security.manager.key" value="java.security.manager">
         <equals arg1="true" arg2="${enable.security.manager}"/>
      </condition>
      <condition property="java.security.manager.key" value="dummy">
         <not><equals arg1="true" arg2="${enable.security.manager}"/></not>
      </condition>
      <property name="java.security.manager" value=""/>
      <property name="java.security.policy" value="${output.tests}/remoting.security.policy"/>
      <property name="java.security.policy.marshal" value="${output.tests}/remoting.security.policy.marshal"/>
      <property name="java.security.policy.strict" value="${output.tests}/remoting.security.policy.strict"/>
      <property name="java.security.policy.invokerregistry" value="${output.tests}/remoting.security.policy.invokerregistry"/>
      <!--<property name="java.security.manager" value="org.jboss.test.security.LoggingSecurityManager"/>-->
      <!--property name="java.security.debug" value="access,failure"/-->
      <property name="java.security.debug" value=""/>
      
      <!-- Create security policy file -->
      <concat destfile="${output.tests}/remoting.security.policy">
         <filelist dir="${etc.dir}"
                   files="remoting.security.policy.core,
                          remoting.security.policy.tests"/>
      </concat>
      
      <!-- Create strict security policy file -->
      <concat destfile="${output.tests}/remoting.security.policy.strict">
         <filelist dir="${etc.dir}"
                   files="remoting.security.policy.core,
                          remoting.security.policy.tests.minimal"/>
      </concat>
      
      <!-- Create security policy file for tests.marshall -->
      <concat destfile="${output.tests}/remoting.security.policy.marshal">
         <filelist dir="${etc.dir}"
                   files="remoting.security.policy.core,
                          remoting.security.policy.tests.marshal"/>
      </concat>
   	
      <!-- Create security policy file for tests.functional.invokerregistry.security -->
      <concat destfile="${output.tests}/remoting.security.policy.invokerregistry">
         <filelist dir="${etc.dir}"
                   files="remoting.security.policy.core,
                          remoting.security.policy.tests.invokerregistry"/>
      </concat>
   </target>

   <!-- ================================================================== -->
   <!-- Compile                                                            -->
   <!-- ================================================================== -->
   <target name="compile" description="Compile all source files." depends="configure">

      <mkdir dir="${compile.dir}"/>

      <!-- java source compile -->
      <javac destdir="${compile.dir}"
             target="${compile.target}"
             source="${compile.source}"
             debug="on"
             deprecation="on"
             optimize="off"
             includes="**/*.java"
             failonerror="true"
             sourcepath="">
         <src path="${src.dir}"/>
         <include name="**/*.java"/>
         <exclude name="org/jboss/remoting/transport/coyote/**" if="isJDK4"/>
         <exclude name="org/jboss/remoting/transport/http/TransportServerFactory.java" if="isJDK4"/>
         <exclude name="org/jboss/remoting/transport/https/TransportServerFactory.java" if="isJDK4"/>
         <classpath refid="library.classpath"/>
      </javac>

      <!-- rmi stub compile -->
      <rmic base="${compile.dir}"
            verify="${rmic.verify}"
            iiop="${rmic.iiop}"
            iiopopts="${rmic.iiopops}"
            idl="${rmic.idl}"
            idlopts="${rmic.idlops}"
            debug="${rmic.debug}"
            stubVersion="${rmic.stubVersion}">
         <classpath refid="library.classpath"/>
         <patternset refid="compile-rmi.pattern"/>
      </rmic>

      <!-- etc copy -->
      <mkdir dir="${output.etc.dir}"/>
      <copy todir="${output.etc.dir}" filtering="yes">
         <fileset dir="${etc.dir}">
            <include name="**"/>
         </fileset>
      </copy>

   </target>

   <target name="compile_micro" description="Compile all source files." depends="configure">

      <mkdir dir="${compile.dir}"/>

      <!-- java source compile -->
      <javac destdir="${compile.dir}"
             debug="on"
             deprecation="on"
             optimize="off"
             includes="**/*.java"
             failonerror="true">
         <src path="${src.dir}">
            <fileset>
               <include name="org/jboss/remoting/InvokerLocator.java"/>
               <include name="org/jboss/remoting/Invoker.java"/>
               <include name="org/jboss/remoting/AbstractInvoker.java"/>
               <include name="org/jboss/remoting/MicroRemoteClientInvoker.java"/>
               <include name="org/jboss/remoting/transport/socket/MicroSocketClientInvoker.java"/>
            </fileset>
         </src>
         <classpath refid="library.classpath"/>
      </javac>

      <!-- rmi stub compile -->
      <rmic base="${compile.dir}"
            verify="${rmic.verify}"
            iiop="${rmic.iiop}"
            iiopopts="${rmic.iiopops}"
            idl="${rmic.idl}"
            idlopts="${rmic.idlops}"
            debug="${rmic.debug}"
            stubVersion="${rmic.stubVersion}">
         <classpath refid="library.classpath"/>
         <patternset refid="compile-rmi.pattern"/>
      </rmic>

      <!-- etc copy -->
      <mkdir dir="${output.etc.dir}"/>
      <copy todir="${output.etc.dir}" filtering="yes">
         <fileset dir="${etc.dir}">
            <include name="**"/>
         </fileset>
      </copy>

   </target>

   <target name="tests.compile" description="Compile all test source files." depends="jars">

      <mkdir dir="${tests.compile.dir}"/>

      <!-- java source compile -->
      <javac destdir="${tests.compile.dir}"
             target="${compile.target}"
             source="${compile.source}"
             debug="on"
             deprecation="on"
             optimize="off"
             includes="**/*.java"
             failonerror="true"
             sourcepath="">
         <src path="${tests.src.dir}"/>
         <include name="**/*.java"/>
         <exclude name="org/jboss/test/remoting/**/http/**" if="isJDK4"/>
         <exclude name="org/jboss/test/remoting/**/https/**" if="isJDK4"/>
         <exclude name="org/jboss/test/remoting/**/servlet/**" if="isJDK4"/>
         <classpath refid="tests.classpath"/>
      </javac>

      <!-- rmi stub compile -->
      <rmic base="${tests.compile.dir}"
            verify="${rmic.verify}"
            iiop="${rmic.iiop}"
            iiopopts="${rmic.iiopops}"
            idl="${rmic.idl}"
            idlopts="${rmic.idlops}"
            debug="${rmic.debug}"
            stubVersion="${rmic.stubVersion}">
         <classpath refid="tests.classpath"/>
         <patternset refid="compile-rmi.pattern.test"/>
      </rmic>


      <!-- copy everything from test dir since will need key and trust stores -->
      <copy todir="${tests.compile.dir}" filtering="yes">
         <fileset dir="${tests.src.dir}">
            <include name="**"/>
            <exclude name="**/*.java"/>
         </fileset>
      </copy>

   </target>

   <!-- ================================================================== -->
   <!-- Archives                                                           -->
   <!-- ================================================================== -->

   <target name="jars" description="Creates the jar files" depends="compile, manifest">

      <mkdir dir="${output.lib.dir}"/>

      <jar jarfile="${output.lib.dir}/jboss-remoting.jar"
           manifest="${manifest.file}">
         <fileset dir="${compile.dir}">
            <!-- Include everything else -->
            <include name="**"/>
         </fileset>
         <fileset dir="${output.etc.dir}">
            <!-- Include xmbean descriptors -->
            <include name="org/jboss/**/*.xml"/>
            <!-- Include keys -->
            <include name="org/jboss/**/*.key"/>
            <!-- Include XMl schemas -->
            <include name="connector.xsd"/>
         </fileset>
      </jar>
      
      <jar jarfile="${output.lib.dir}/jboss-remoting-src.jar"
           manifest="${manifest.file}">
         <fileset dir="${src.dir}">
            <include name="**"/>
         </fileset>
      </jar>

      <!-- build out the server invoker war -->
      <mkdir dir="${output.lib.dir}/${servlet.invoker.war}/WEB-INF"/>
      <mkdir dir="${output.lib.dir}/${servlet.invoker.war}/WEB-INF/classes"/>
      <copy todir="${output.lib.dir}/${servlet.invoker.war}/WEB-INF/classes">
         <fileset dir="${compile.dir}">
            <include name="org/jboss/remoting/transport/servlet/web/**"/>
         </fileset>
      </copy>
      <copy todir="${output.lib.dir}/${servlet.invoker.war}/WEB-INF">
         <fileset dir="${output.etc.dir}/web">
            <include name="**"/>
         </fileset>
      </copy>

   </target>

   <target name="tests.jars" description="Creates the tests jar files" depends="tests.compile">

      <mkdir dir="${output.lib.dir}"/>

      <jar jarfile="${output.lib.dir}/jboss-remoting-tests.jar"
           manifest="${manifest.file}">
         <fileset dir="${tests.compile.dir}">
            <include name="org/jboss/test/remoting/**"/>
            <include name="org/jboss/ant/taskdefs/**"/>
            <include name="org/jboss/test/dtf/**"/>
            <exclude name="org/jboss/test/remoting/marshall/dynamic/remote/**/Test*Marshaller*"/>
            <exclude name="org/jboss/test/remoting/marshall/dynamic/remote/**/TestWrapper*"/>
            <exclude name="org/jboss/test/remoting/marshall/dynamic/remote/**/TestObject*"/>
            <exclude name="org/jboss/test/remoting/marshall/dynamic/remote/**/ResponseImpl*"/>
            <exclude name="org/jboss/test/remoting/security/InvokerRegistryCaller*"/>
         </fileset>
      </jar>
      <jar jarfile="${output.lib.dir}/jboss-remoting-loading-tests.jar"
           manifest="${manifest.file}">
         <fileset dir="${tests.compile.dir}">
            <include name="org/jboss/test/remoting/marshall/dynamic/remote/**/Test*Marshaller*"/>
            <include name="org/jboss/test/remoting/marshall/dynamic/remote/**/TestWrapper*"/>
            <include name="org/jboss/test/remoting/marshall/dynamic/remote/**/TestObject*"/>
            <include name="org/jboss/test/remoting/marshall/dynamic/remote/classloaders/ResponseImpl.class"/>
         </fileset>
      </jar>
      <jar jarfile="${output.lib.dir}/jboss-remoting-invokerregistry-test.jar" manifest="${manifest.file}">
         <fileset dir="${tests.compile.dir}">
           <include name="org/jboss/test/remoting/security/InvokerRegistryCaller*"/>
         </fileset>
      </jar>
   </target>

   <target name="manifest" depends="configure">
      <tstamp>
        <format property="TODAY" pattern="yyyy-MM-dd hh:mm:ss" />
      </tstamp>
      <mkdir dir="${output.etc.dir}"/>
      <manifest file="${manifest.file}">
         <attribute name="Built-By" value="${user.name}"/>
         <attribute name="Created-On" value="${TODAY}"/>
         <attribute name="Main-Class" value="org.jboss.remoting.Version"/>
         <section name="JBossRemoting">
            <attribute name="Specification-Title" value="JBossRemoting"/>
            <attribute name="Specification-Version" value="${module.version}"/>
            <attribute name="Specification-Vendor" value="JBoss Inc."/>
            <attribute name="Implementation-Title" value="JBossRemoting"/>
            <attribute name="Implementation-Version" value="${module.version}"/>
            <attribute name="Implementation-Vendor" value="JBoss Inc."/>
            <attribute name="Implementation-Vendor-Id" value="http://www.jboss.org"/>
         </section>
      </manifest>
   </target>


   <target name="dist.jars" description="Creates the remoting distribution files" depends="compile, manifest">

      <mkdir dir="${output.lib.dir}"/>

      <jar jarfile="${output.lib.dir}/jboss-remoting-core.jar"
           manifest="${manifest.file}">
         <fileset dir="${compile.dir}">
            <include name="org/jboss/remoting/**"/>
            <include name="org/jboss/remoting/transport/web/WebUtil.class"/>
            <exclude name="org/jboss/remoting/detection/**"/>
            <!--<exclude name="org/jboss/remoting/marshal/http/**"/>-->
            <!--<exclude name="org/jboss/remoting/marshal/rmi/**"/>-->
            <exclude name="org/jboss/remoting/network/**"/>
            <exclude name="org/jboss/remoting/samples/**"/>
            <exclude name="org/jboss/remoting/transport/bisocket/**"/>
            <exclude name="org/jboss/remoting/transport/coyote/**"/>
            <exclude name="org/jboss/remoting/transport/http/**"/>
            <exclude name="org/jboss/remoting/transport/https/**"/>
            <exclude name="org/jboss/remoting/transport/multiplex/**"/>
            <exclude name="org/jboss/remoting/transport/rmi/**"/>
            <exclude name="org/jboss/remoting/transport/servlet/**"/>
            <exclude name="org/jboss/remoting/transport/socket/**"/>
            <exclude name="org/jboss/remoting/transport/sslbisocket/**"/>
            <exclude name="org/jboss/remoting/transport/sslmultiplex/**"/>
            <exclude name="org/jboss/remoting/transport/sslrmi/**"/>
            <exclude name="org/jboss/remoting/transport/sslservlet/**"/>
            <exclude name="org/jboss/remoting/transport/sslsocket/**"/>
            <exclude name="org/jboss/remoting/transport/web/WebServerInvoker*"/>
         </fileset>
         <fileset dir="${output.etc.dir}">
            <include name="org/jboss/**/*.xml"/>
         </fileset>
      </jar>

      <jar jarfile="${output.lib.dir}/jboss-remoting-detection.jar"
           manifest="${manifest.file}">
         <fileset dir="${compile.dir}">
            <include name="org/jboss/remoting/detection/**"/>
            <include name="org/jboss/remoting/network/**"/>
         </fileset>
      </jar>

      <jar jarfile="${output.lib.dir}/jboss-remoting-socket.jar"
           manifest="${manifest.file}">
         <fileset dir="${compile.dir}">
            <include name="org/jboss/remoting/transport/socket/**"/>
            <include name="org/jboss/remoting/transport/sslsocket/**"/>
         </fileset>
      </jar>

      <jar jarfile="${output.lib.dir}/jboss-remoting-socket-client.jar"
           manifest="${manifest.file}">
         <fileset dir="${compile.dir}">
            <include name="org/jboss/remoting/transport/socket/*Client*"/>
            <include name="org/jboss/remoting/transport/socket/ServerAddress*"/>
            <include name="org/jboss/remoting/transport/socket/SocketWrapper*"/>
            <include name="org/jboss/remoting/transport/socket/OpenConnectionChecker*"/>
            <include name="org/jboss/remoting/transport/sslsocket/*Client*"/>
            <include name="org/jboss/remoting/transport/socket/TimedOutputStream*"/>
         </fileset>
      </jar>

     <jar jarfile="${output.lib.dir}/jboss-remoting-bisocket.jar"
           manifest="${manifest.file}">
         <fileset dir="${compile.dir}">
            <include name="org/jboss/remoting/transport/bisocket/**"/>
            <include name="org/jboss/remoting/transport/sslbisocket/**"/>
            <include name="org/jboss/remoting/transport/bisocket/**"/>
            <include name="org/jboss/remoting/transport/socket/LRUPool*"/>
            <include name="org/jboss/remoting/transport/socket/SocketClientInvoker*"/>
            <include name="org/jboss/remoting/transport/socket/SocketServerInvoker*"/>
            <include name="org/jboss/remoting/transport/socket/MicroSocketClientInvoker*"/>
            <include name="org/jboss/remoting/transport/socket/OpenConnectionChecker*"/>
            <include name="org/jboss/remoting/transport/socket/ServerAddress*"/>
            <include name="org/jboss/remoting/transport/socket/ServerThread*"/>
            <include name="org/jboss/remoting/transport/socket/SocketWrapper*"/>
            <include name="org/jboss/remoting/transport/socket/ClientSocketWrapper*"/>   
            <include name="org/jboss/remoting/transport/socket/ServerSocketWrapper*"/> 
            <include name="org/jboss/remoting/transport/socket/TimedOutputStream*"/> 
            <include name="org/jboss/remoting/transport/sslsocket/SSLSocketServerInvokerMBean*"/>
         </fileset>
      </jar>

      <jar jarfile="${output.lib.dir}/jboss-remoting-bisocket-client.jar"
           manifest="${manifest.file}">
         <fileset dir="${compile.dir}">
            <include name="org/jboss/remoting/transport/bisocket/*Client*"/>
            <include name="org/jboss/remoting/transport/sslbisocket/*Client*"/>
            <include name="org/jboss/remoting/transport/bisocket/BisocketServerInvoker*"/>
            <include name="org/jboss/remoting/transport/socket/SocketClientInvoker*"/>
            <include name="org/jboss/remoting/transport/socket/SocketWrapper*"/>
            <include name="org/jboss/remoting/transport/socket/ClientSocketWrapper*"/>   
            <include name="org/jboss/remoting/transport/socket/ServerSocketWrapper*"/> 
            <include name="org/jboss/remoting/transport/socket/TimedOutputStream*"/> 
            <include name="org/jboss/remoting/transport/socket/LRUPool*"/>  
            <include name="org/jboss/remoting/transport/socket/MicroSocketClientInvoker*"/>
            <include name="org/jboss/remoting/transport/socket/OpenConnectionChecker*"/>
            <include name="org/jboss/remoting/transport/socket/ServerAddress*"/> 
            <include name="org/jboss/remoting/transport/socket/SocketServerInvoker*"/>
            <include name="org/jboss/remoting/transport/socket/ServerThread*"/>
         </fileset>
      </jar>

      <jar jarfile="${output.lib.dir}/jboss-remoting-samples.jar"
           manifest="${manifest.file}">
         <fileset dir="${compile.dir}">
            <include name="org/jboss/remoting/samples/**"/>
            <include name="org/jboss/remoting/transport/bisocket/BisocketClientInvoker*"/>
            <include name="org/jboss/remoting/transport/bisocket/BisocketServerInvoker*"/>
            <include name="org/jboss/remoting/transport/multiplex/**"/>
         </fileset>
      </jar>

      <jar jarfile="${output.lib.dir}/jboss-remoting-http.jar"
           manifest="${manifest.file}">
         <fileset dir="${compile.dir}">
            <include name="org/jboss/remoting/transport/coyote/**"/>
            <include name="org/jboss/remoting/transport/http/**"/>
            <include name="org/jboss/remoting/transport/https/**"/>
            <include name="org/jboss/remoting/transport/web/**"/>
         </fileset>
      </jar>

      <jar jarfile="${output.lib.dir}/jboss-remoting-http-client.jar"
           manifest="${manifest.file}">
         <fileset dir="${compile.dir}">
            <include name="org/jboss/remoting/transport/http/**/*Client*"/>
            <include name="org/jboss/remoting/transport/http/**/*SocketFactory*"/>
            <include name="org/jboss/remoting/transport/http/*MetadataConstants*"/>
            <include name="org/jboss/remoting/transport/http/*WebServerError*"/>
            <include name="org/jboss/remoting/transport/https/*Client*"/>
            <include name="org/jboss/remoting/transport/web/*WebUtil*"/>
            <include name="org/jboss/remoting/transport/servlet/*Client*"/>
            <include name="org/jboss/remoting/transport/sslservlet/*Client*"/>
         </fileset>
      </jar>

      <jar jarfile="${output.lib.dir}/jboss-remoting-servlet.jar"
           manifest="${manifest.file}">
         <fileset dir="${compile.dir}">
            <include name="org/jboss/remoting/transport/servlet/**"/>
            <include name="org/jboss/remoting/transport/sslservlet/**"/>
            <include name="org/jboss/remoting/transport/web/**"/>
            <include name="org/jboss/remoting/transport/http/*HTTPMetadataConstants*"/>
            <exclude name="org/jboss/remoting/transport/servlet/web/**"/>
            <exclude name="org/jboss/remoting/transport/sslservlet/*Client*"/>
            <exclude name="org/jboss/remoting/transport/servlet/*Client*"/>
         </fileset>
      </jar>

      <jar jarfile="${output.lib.dir}/jboss-remoting-rmi.jar"
           manifest="${manifest.file}">
         <fileset dir="${compile.dir}">
            <include name="org/jboss/remoting/transport/rmi/**"/>
            <include name="org/jboss/remoting/transport/sslrmi/**"/>
         </fileset>
      </jar>

      <jar jarfile="${output.lib.dir}/jboss-remoting-serialization.jar"
           manifest="${manifest.file}">
         <fileset dir="${compile.dir}">
            <include name="org/jboss/remoting/serialization/**"/>
            <include name="org/jboss/remoting/loading/*ObjectInputStreamWithClassLoader*"/>
         </fileset>
      </jar>

   </target>

   <!-- ================================================================== -->
   <!--  Tests                                                             -->
   <!-- ================================================================== -->
   <target name="one-test-old" if="test" description="Execute a single test." depends="jars, tests.jars">
      <mkdir dir="${output.tests.results}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <junit printsummary="true" fork="yes" includeantruntime="true" tempdir="${output.tests.tmp}">
         <classpath>
            <path refid="tests.classpath"/>
            <pathelement location="${output.lib.dir}/jboss-remoting-tests.jar"/>
         </classpath>
         <!-- this is needed for the remoting.marshall.dynamic.remote.MarshallerLoadingServer -->
         <jvmarg value="-Dloader.path=${output.lib.dir}/jboss-remoting-loading-tests.jar"/>
         <formatter type="xml"/>
         <test fork="yes" todir="${output.tests.results}" name="**/*${test}*"/>
      </junit>
      <antcall target="tests.report.quick"/>
   </target>
	
   <target name="one-test" depends="tests.jars">
      <echo>Running ${test}TestCase</echo>
      <mkdir dir="${output.tests.results}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <junit
            printsummary="true" fork="yes" includeantruntime="true" 
            tempdir="${output.tests.tmp}" maxmemory="1024m">
         <jvmarg value="-Dloader.path=${output.lib.dir}/jboss-remoting-loading-tests.jar"/>
         <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
         <classpath>
            <path refid="tests.classpath"/>
         </classpath>
         <sysproperty key="${java.security.manager.key}" value="${java.security.manager}"/>
         <sysproperty key="java.security.policy" value="${java.security.policy}"/>
         <sysproperty key="java.security.debug" value="${java.security.debug}"/>
         <sysproperty key="build.home" value="${basedir}"/>
         <sysproperty key="remoting.jar.dir" value="${basedir}/output/lib"/>
         <sysproperty key="log4j.jar.dir" value="${basedir}/lib/apache-log4j/lib"/>
         <sysproperty key="log4j.config.dir" value="${basedir}/src/etc"/>
         <sysproperty key="ant.library.dir" value="${ant.library.dir}"/>
         <sysproperty key="jboss-junit-configuration" value="${jboss-junit-configuration}"/>
         <sysproperty key="jrunit.bind_addr"  value="${bind.address}"/>
         <sysproperty key="jrunit.mcast_addr" value="${multicast.address}"/>
         <sysproperty key="jrunit.mcast_port" value="${multicast.port}"/>
         <sysproperty key="jrunit.receive_on_all_interfaces" value="${receiveOnAllInterfaces}"/>
         <sysproperty key="jrunit.send_on_all_interfaces" value="${sendOnAllInterfaces}"/>
         <sysproperty key="jrunit.send_interfaces" value="${sendInterfaces}"/>
         <sysproperty key="jrunit.logdir" value="${output.tests}"/>
         <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                    extension="-${jboss-junit-configuration}.xml"/>
         <batchtest fork="yes" todir="${output.tests.results}"
                    haltonfailure="no">
            <fileset dir="${tests.compile.dir}">
               <include name="**/remoting/**/*${test}TestCase.class"/>
            </fileset>
         </batchtest>
      </junit>
   </target>

   <target name="tests" description="Runs remoting functional and performance tests." depends="tests.jars">
      <antcall target="tests.functional.core" inheritrefs="true"/>
      <!--<antcall target="tests.versioning" inheritrefs="true"/>-->
      <!--<antcall target="tests.performance" inheritrefs="true"/>-->
      <antcall target="tests.report" inheritrefs="true"/>
   </target>

   <target name="tests.all" description="Runs remoting functional and performance tests." depends="jars, tests.jars">
      <antcall target="tests.functional" inheritrefs="true"/>
      <antcall target="tests.versioning" inheritrefs="true"/>
      <antcall target="tests.performance" inheritrefs="true"/>
      <antcall target="tests.report" inheritrefs="true"/>
   </target>

   <target name="tests.quick" description="Runs remoting functional and performance tests." depends="jars, tests.jars">
      <antcall target="tests.functional" inheritrefs="true"/>
      <antcall target="tests.report.quick" inheritrefs="true"/>
   </target>

   <target name="tests.versioning.quick" description="Runs remoting functional and performance tests."
           depends="jars, tests.jars">
      <antcall target="tests.versioning" inheritrefs="true"/>
      <antcall target="tests.report.quick" inheritrefs="true"/>
   </target>

   <target name="tests.versioning.all.quick" description="Runs remoting functional and performance tests."
           depends="jars, tests.jars">
      <antcall target="tests.versioning.all" inheritrefs="true"/>
      <antcall target="tests.report.quick" inheritrefs="true"/>
   </target>

   <target name="tests.report.quick" depends="configure">
      <junitreport todir="${output.tests.results}">
         <fileset dir="${output.tests.results}">
            <include name="TEST-*.xml"/>
         </fileset>
         <report format="frames" todir="${output.tests.results}/html"/>
      </junitreport>
   </target>

   <target name="tests.functional.core" depends="tests.jars">
      <antcall target="tests.functional.serialization.java.core" inheritrefs="true"/>
      <antcall target="tests.functional.serialization.java.http.core" inheritrefs="true"/>
      <antcall target="tests.functional.serialization.jboss.core" inheritrefs="true"/>
      <antcall target="tests.functional.serialization.jboss.http.core" inheritrefs="true"/>
   </target>

   <!-- calls functional main tests and marshall test with both java and jboss (if jdk1.5) serialization -->
   <target name="tests.functional" depends="configure">
      <antcall target="tests.functional.serialization.java" inheritrefs="true"/>
      <antcall target="tests.functional.serialization.java.http" inheritrefs="true"/>
      <antcall target="tests.functional.serialization.jboss" inheritrefs="true"/>
      <antcall target="tests.functional.serialization.jboss.http" inheritrefs="true"/>
   </target>

   <!-- runs functional tests with java serialization -->
   <target name="tests.functional.serialization.java">
      <antcall target="tests.functional.main" inheritrefs="true">
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=java"/>
         <param name="jboss-junit-configuration" value="java_serialization"/>
      </antcall>
      <antcall target="tests.functional.main.security" inheritrefs="true">
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=java"/>
         <param name="jboss-junit-configuration" value="java_serialization_security"/>
      </antcall>
      <!-- there are a few tests that will only run under jdk 1.5 (with/without jboss serialization -->
      <antcall target="tests.functional.main.isJDK5" inheritrefs="true">
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=java"/>
         <param name="jboss-junit-configuration" value="java_serialization"/>
      </antcall>
      <antcall target="tests.marshall" inheritrefs="true">
      </antcall>
   </target>

   <target name="tests.functional.serialization.java.core">
      <antcall target="tests.functional.main.core" inheritrefs="true">
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=java"/>
         <param name="jboss-junit-configuration" value="java_serialization"/>
      </antcall>
      <antcall target="tests.functional.main.security" inheritrefs="true">
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=java"/>
         <param name="jboss-junit-configuration" value="java_serialization_security"/>
      </antcall>
      <antcall target="tests.marshall" inheritrefs="true">
        <param name="remoting.metadata.key" value="remoting.metadata"/>
        <param name="metadata" value="serializationtype=java"/>
        <param name="jboss-junit-configuration" value="java_serialization"/>
      </antcall>
   </target>

   <!-- runs functional tests with jboss serialization if using jdk 1.5 -->
   <target name="tests.functional.serialization.jboss" unless="isJDK4">
      <antcall target="tests.functional.main" inheritrefs="true">
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=jboss"/>
         <param name="jboss-junit-configuration" value="jboss_serialization"/>
      </antcall>
      <antcall target="tests.functional.main.security" inheritrefs="true">
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=jboss"/>
         <param name="jboss-junit-configuration" value="jboss_serialization_security"/>
      </antcall>
      <!-- there are a few tests that will only run under jdk 1.5 (with/without jboss serialization -->
      <antcall target="tests.functional.main.isJDK5" inheritrefs="true">
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=jboss"/>
         <param name="jboss-junit-configuration" value="jboss_serialization"/>
      </antcall>
      <antcall target="tests.nonserializable" inheritrefs="true"/>
      <antcall target="tests.functional.main.serialization.jboss" inheritrefs="true"/>
   </target>

   <target name="tests.functional.serialization.jboss.core" unless="isJDK4">
      <antcall target="tests.functional.main.core" inheritrefs="true">
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=jboss"/>
         <param name="jboss-junit-configuration" value="jboss_serialization"/>
      </antcall>
      <antcall target="tests.functional.main.security" inheritrefs="true">
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=jboss"/>
         <param name="jboss-junit-configuration" value="jboss_serialization_security"/>
      </antcall>
      <antcall target="tests.nonserializable" inheritrefs="true"/>
      <antcall target="tests.functional.main.serialization.jboss" inheritrefs="true"/>
      <antcall target="tests.marshall" inheritrefs="true">
        <param name="remoting.metadata.key" value="remoting.metadata"/>
        <param name="metadata" value="serializationtype=jboss"/>
        <param name="jboss-junit-configuration" value="jboss_serialization"/>
      </antcall>
   </target>


   <target name="tests.functional.http" depends="configure">
      <antcall target="tests.functional.serialization.java.http" inheritrefs="true"/>
      <antcall target="tests.functional.serialization.jboss.http" inheritrefs="true"/>
   </target>

   <target name="tests.functional.serialization.java.http">
      <antcall target="tests.functional.http.jbossweb">
         <param name="serialization" value="java"/>
      </antcall>
      <antcall target="tests.functional.http.tomcat">
         <param name="serialization" value="java"/>
      </antcall>
   </target>
   
   <target name="tests.functional.serialization.jboss.http" unless="isJDK4">
      <antcall target="tests.functional.http.jbossweb">
         <param name="serialization" value="jboss"/>
      </antcall>
      <antcall target="tests.functional.http.tomcat">
         <param name="serialization" value="jboss"/>
      </antcall>
   </target>
         
   <target name="tests.functional.http.jbossweb" unless="isJDK4">
      <antcall target="tests.functional.main.http" inheritrefs="true">
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=${serialization}"/>
         <param name="jboss-junit-configuration" value="${serialization}_serialization_jbossweb"/>
         <param name="classpath" value="tests.classpath"/>
         <param name="version" value="jbossweb"/>
      </antcall>
      <antcall target="tests.functional.main.http.security" inheritrefs="true">
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=${serialization}"/>
         <param name="jboss-junit-configuration" value="${serialization}_serialization_jbossweb_security"/>
         <param name="classpath" value="tests.classpath"/>
         <param name="version" value="jbossweb"/>
      </antcall>
   </target>
   
   <target name="tests.functional.http.tomcat">
      <antcall target="tests.functional.main.http" inheritrefs="true">
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=${serialization}"/>
         <param name="jboss-junit-configuration" value="${serialization}_serialization_tomcat"/>
         <param name="classpath" value="tests.classpath.tomcat"/>
         <param name="version" value="tomcat"/>
      </antcall>
      <antcall target="tests.functional.main.http.security" inheritrefs="true">
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=${serialization}"/>
         <param name="jboss-junit-configuration" value="${serialization}_serialization_tomcat_security"/>
         <param name="classpath" value="tests.classpath.tomcat"/>
         <param name="version" value="tomcat"/>
      </antcall>
   </target>

   <target name="tests.functional.http.core" depends="configure">
      <antcall target="tests.functional.serialization.java.http.core" inheritrefs="true"/>
      <antcall target="tests.functional.serialization.jboss.http.core" inheritrefs="true"/>
   </target>
   
   <target name="tests.functional.serialization.java.http.core">
      <antcall target="tests.functional.http.jbossweb.core" inheritrefs="true">
         <param name="serialization" value="java"/>
      </antcall>
      <!--antcall target="tests.functional.http.tomcat.core" inheritrefs="true">
         <param name="serialization" value="java"/>
      </antcall-->
   </target>
   
   <target name="tests.functional.serialization.jboss.http.core" unless="isJDK4">
      <antcall target="tests.functional.http.jbossweb.core" inheritrefs="true">
         <param name="serialization" value="jboss"/>
      </antcall>
      <!--antcall target="tests.functional.http.tomcat.core" inheritrefs="true">
         <param name="serialization" value="jboss"/>
      </antcall-->
   </target>
         
   <target name="tests.functional.http.jbossweb.core" unless="isJDK4">
      <antcall target="tests.functional.main.http.core" inheritrefs="true">
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=${serialization}"/>
         <param name="jboss-junit-configuration" value="${serialization}_serialization_jbossweb"/>
         <param name="classpath" value="tests.classpath"/>
         <param name="version" value="jbossweb"/>
      </antcall>
      <antcall target="tests.functional.main.http.isJDK5.core" inheritrefs="true">
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=${serialization}"/>
         <param name="jboss-junit-configuration" value="${serialization}_serialization_jbossweb"/>
         <param name="classpath" value="tests.classpath"/>
         <param name="version" value="jbossweb"/>
      </antcall>
      <antcall target="tests.functional.main.http.security" inheritrefs="true">
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=${serialization}"/>
         <param name="jboss-junit-configuration" value="${serialization}_serialization_jbossweb_security"/>
         <param name="classpath" value="tests.classpath"/>
         <param name="version" value="jbossweb"/>
      </antcall>
   </target>
   
   <target name="tests.functional.http.tomcat.core">
      <antcall target="tests.functional.main.http.core" inheritrefs="true">
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=${serialization}"/>
         <param name="jboss-junit-configuration" value="${serialization}_serialization_tomcat"/>
         <param name="classpath" value="tests.classpath.tomcat"/>
         <param name="version" value="tomcat"/>
      </antcall>
      <antcall target="tests.functional.main.http.isJDK5.core" inheritrefs="true">
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=${serialization}"/>
         <param name="jboss-junit-configuration" value="${serialization}_serialization_tomcat"/>
         <param name="classpath" value="tests.classpath.tomcat"/>
         <param name="version" value="tomcat"/>
      </antcall>
      <antcall target="tests.functional.main.http.security" inheritrefs="true">
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=${serialization}"/>
         <param name="jboss-junit-configuration" value="${serialization}_serialization_tomcat_security"/>
         <param name="classpath" value="tests.classpath.tomcat"/>
         <param name="version" value="tomcat"/>
      </antcall>
   </target>
            
   <target name="tests.functional.main" depends="tests.jars">
      <mkdir dir="${output.tests.results}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <echo>bisocket/rmi/socket: ${metadata}</echo>
      <junit
            printsummary="true" fork="yes" includeantruntime="true"
            tempdir="${output.tests.tmp}" maxmemory="1024m">
         <jvmarg value="-Dloader.path=${output.lib.dir}/jboss-remoting-loading-tests.jar"/>
         <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
         <classpath>
            <path refid="tests.classpath"/>
         </classpath>
         <sysproperty key="${java.security.manager.key}" value="${java.security.manager}"/>
         <sysproperty key="java.security.policy" value="${java.security.policy}"/>
         <sysproperty key="java.security.debug" value="${java.security.debug}"/>
         <sysproperty key="build.home" value="${basedir}"/>
         <sysproperty key="remoting.jar.dir" value="${basedir}/output/lib"/>
         <sysproperty key="log4j.jar.dir" value="${basedir}/lib/apache-log4j/lib"/>
         <sysproperty key="log4j.config.dir" value="${basedir}/src/etc"/>
         <sysproperty key="ant.library.dir" value="${ant.library.dir}"/>
         <sysproperty key="jboss-junit-configuration" value="${jboss-junit-configuration}"/>
         <sysproperty key="jrunit.bind_addr"  value="${bind.address}"/>
         <sysproperty key="jrunit.mcast_addr" value="${multicast.address}"/>
         <sysproperty key="jrunit.mcast_port" value="${multicast.port}"/>
         <sysproperty key="jrunit.receive_on_all_interfaces" value="${receiveOnAllInterfaces}"/>
         <sysproperty key="jrunit.send_on_all_interfaces" value="${sendOnAllInterfaces}"/>
         <sysproperty key="jrunit.send_interfaces" value="${sendInterfaces}"/>
         <sysproperty key="jrunit.logdir" value="${output.tests}"/>
         <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                    extension="-${jboss-junit-configuration}.xml"/>
         <batchtest fork="yes" todir="${output.tests.results}"
                    haltonfailure="no">
            <fileset dir="${tests.compile.dir}">
               <include name="**/remoting/**/*TestCase.class"/>
               <exclude name="**/remoting/**/http/**/*TestCase.class"/>
               <exclude name="**/remoting/**/*HTTP*TestCase.class"/>
               <exclude name="**/remoting/**/*Http*TestCase.class"/>
               <exclude name="**/remoting/**/*http*TestCase.class"/>
               <exclude name="**/remoting/**/multiplex/**/*TestCase.class"/>
               <exclude name="**/remoting/**/*Multiplex*TestCase.class"/>
               <exclude name="**/remoting/**/JNDIDetector2TestCase.class"/>
               <exclude name="**/remoting/marshall/dynamic/remote/**/*TestCase.class"/>
               <exclude name="**/remoting/serialization/**/jboss/*TestCase.class"/>
               <exclude name="**/remoting/**/performance/**"/>
               <exclude name="**/remoting/**/nonserializable/**"/>
               <exclude name="**/remoting/**/http/chunked/**"/>
               <!-- having to remove peformance tests as running out of memory failures -->
               <exclude name="**/remoting/transport/multiplex/**/**Performance*TestCase.class"/>
               <exclude name="**/remoting/versioning/**/*TestCase.class"/>
               <!-- <exclude name="**/remoting/transport/multiplex/**/MultiplexMultiThreadedPerformanceTestCase.class"/> -->
               <exclude name="**/remoting/**/InvokerRegistrySecurityTestCase.class"/>
            </fileset>
         </batchtest>
      </junit>
   </target>

   <target name="tests.functional.main.core">
      <mkdir dir="${output.tests.results}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <echo>bisocket/rmi/socket: ${metadata}</echo>
      <junit
            printsummary="true" fork="yes" includeantruntime="true" 
            tempdir="${output.tests.tmp}" maxmemory="1024m">
         <jvmarg value="-Dloader.path=${output.lib.dir}/jboss-remoting-loading-tests.jar"/>
         <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
         <classpath>
            <path refid="tests.classpath"/>
         </classpath>
         <sysproperty key="${java.security.manager.key}" value="${java.security.manager}"/>
         <sysproperty key="java.security.policy" value="${java.security.policy}"/>
         <sysproperty key="java.security.debug" value="${java.security.debug}"/>
         <sysproperty key="build.home" value="${basedir}"/>
         <sysproperty key="remoting.jar.dir" value="${basedir}/output/lib"/>
         <sysproperty key="log4j.jar.dir" value="${basedir}/lib/apache-log4j/lib"/>
         <sysproperty key="log4j.config.dir" value="${basedir}/src/etc"/>
         <sysproperty key="ant.library.dir" value="${ant.library.dir}"/>
         <sysproperty key="jboss-junit-configuration" value="${jboss-junit-configuration}"/>
         <sysproperty key="jrunit.bind_addr"  value="${bind.address}"/>
         <sysproperty key="jrunit.mcast_addr" value="${multicast.address}"/>
         <sysproperty key="jrunit.mcast_port" value="${multicast.port}"/>
         <sysproperty key="jrunit.receive_on_all_interfaces" value="${receiveOnAllInterfaces}"/>
         <sysproperty key="jrunit.send_on_all_interfaces" value="${sendOnAllInterfaces}"/>
         <sysproperty key="jrunit.send_interfaces" value="${sendInterfaces}"/>
         <sysproperty key="jrunit.logdir" value="${output.tests}"/>
         <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                    extension="-${jboss-junit-configuration}.xml"/>
         <batchtest fork="yes" todir="${output.tests.results}"
                    haltonfailure="no">
            <fileset dir="${tests.compile.dir}">
               <include name="**/remoting/**/*TestCase.class"/>
               <exclude name="**/remoting/**/http/**/*TestCase.class"/>
               <exclude name="**/remoting/**/*HTTP*TestCase.class"/>
               <exclude name="**/remoting/**/*Http*TestCase.class"/>
               <exclude name="**/remoting/**/*http*TestCase.class"/>
               <exclude name="**/remoting/**/multiplex/**/*TestCase.class"/>
               <exclude name="**/remoting/**/*Multiplex*TestCase.class"/>
               <exclude name="**/remoting/**/JNDIDetector2TestCase.class"/>
               <exclude name="**/remoting/**/ServerBindingTestCase.class"/>
               <exclude name="**/remoting/marshall/dynamic/remote/**/*TestCase.class"/>
               <exclude name="**/remoting/serialization/**/jboss/*TestCase.class"/>
               <exclude name="**/remoting/**/performance/**"/>
               <exclude name="**/remoting/**/nonserializable/**"/>
               <exclude name="**/remoting/**/http/chunked/**"/>
               <!-- these are test cases that are only failing on certain env so will have to run manually -->
               <exclude name="**/remoting/callback/pull/memory/**/*StoreCallbackTestCase*"/>
               <exclude name="**/remoting/detection/multicast/*MulticastUnitTestCase*"/>
               <exclude name="**/remoting/transport/http/compression/*CompressedHTTPInvokerTestCase*"/>
               <!--<exclude name="**/remoting/transport/**/ssl/serversocketrefresh/*TestCase*"/>-->
               <exclude name="**/remoting/transport/multiplex/*RestartServerTestCase*"/>
               <!-- having to remove peformance tests as running out of memory failures -->
               <exclude name="**/remoting/transport/multiplex/**/**Performance*TestCase.class"/>
               <exclude name="**/remoting/versioning/**/*TestCase.class"/>
               <exclude name="**remoting/marshall/encrypt/**"/>
               <!-- <exclude name="**/remoting/transport/multiplex/**/MultiplexMultiThreadedPerformanceTestCase.class"/> -->
               <exclude name="**/remoting/classloader/InvokerTestCase.class" if="isJDK4"/>
               <exclude name="**/remoting/oneway/OnewayThreadPoolTestCase.class" if="isJDK4"/>
               <exclude name="**/remoting/security/ServerSocketFactoryProxyTestCase.class" if="isJDK4"/>
               <exclude name="**/remoting/**/InvokerRegistrySecurityTestCase.class"/>
            </fileset>
         </batchtest>
      </junit>
   </target>
   
   <target name="tests.functional.main.security">
      <mkdir dir="${output.tests.results}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <echo>bisocket/rmi/socket (strict security): ${metadata}</echo>
      <junit
            printsummary="true" fork="yes" includeantruntime="true" 
            tempdir="${output.tests.tmp}" maxmemory="1024m">
         <jvmarg value="-Dloader.path=${output.lib.dir}/jboss-remoting-loading-tests.jar"/>
         <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
         <classpath>
            <path refid="tests.classpath"/>
         </classpath>
         <sysproperty key="${java.security.manager.key}" value="${java.security.manager}"/>
         <sysproperty key="java.security.policy" value="${java.security.policy.strict}"/>
         <sysproperty key="java.security.debug" value="${java.security.debug}"/>
         <sysproperty key="build.home" value="${basedir}"/>
         <sysproperty key="remoting.jar.dir" value="${basedir}/output/lib"/>
         <sysproperty key="log4j.jar.dir" value="${basedir}/lib/apache-log4j/lib"/>
         <sysproperty key="log4j.config.dir" value="${basedir}/src/etc"/>
         <sysproperty key="ant.library.dir" value="${ant.library.dir}"/>
         <sysproperty key="jboss-junit-configuration" value="${jboss-junit-configuration}"/>
         <sysproperty key="jrunit.bind_addr"  value="${bind.address}"/>
         <sysproperty key="jrunit.mcast_addr" value="${multicast.address}"/>
         <sysproperty key="jrunit.mcast_port" value="${multicast.port}"/>
         <sysproperty key="jrunit.receive_on_all_interfaces" value="${receiveOnAllInterfaces}"/>
         <sysproperty key="jrunit.send_on_all_interfaces" value="${sendOnAllInterfaces}"/>
         <sysproperty key="jrunit.send_interfaces" value="${sendInterfaces}"/>
         <sysproperty key="jrunit.logdir" value="${output.tests}"/>
         <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                    extension="-${jboss-junit-configuration}.xml"/>
         <batchtest fork="yes" todir="${output.tests.results}"
                    haltonfailure="no">
            <fileset dir="${tests.compile.dir}">
               <include name="**/remoting/transport/bisocket/BisocketInvokerTestCase.class"/>
               <include name="**/remoting/transport/bisocket/ssl/custom/SSLBisocketInvokerTestCase.class"/>
               <include name="**/remoting/transport/rmi/RMIInvokerSerializableMarshallerTestCase.class"/>
               <include name="**/remoting/transport/rmi/ssl/custom/RMIInvokerTestCase.class"/>
               <include name="**/remoting/transport/socket/SocketInvokerTestCase.class"/>
               <include name="**/remoting/transport/socket/ssl/custom/InvokerTestCase.class"/>
            </fileset>
         </batchtest>
      </junit>
      <antcall target="tests.functional.invokerregistry.security" inheritrefs="true"/>
   </target>

   <target name="tests.functional.invokerregistry.security" depends="tests.jars">
       <mkdir dir="${output.tests.results}"/>
       <mkdir dir="${output.tests.tmp}"/>
       <junit
             printsummary="true" fork="yes" includeantruntime="true" 
             tempdir="${output.tests.tmp}" maxmemory="1024m">
          <jvmarg value="-Dloader.path=${output.lib.dir}/jboss-remoting-loading-tests.jar"/>
          <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
          <classpath>
             <path refid="tests.classpath.invokerregistrysecurity"/>
          </classpath>
          <sysproperty key="java.security.manager" value=""/>
          <sysproperty key="java.security.policy" value="${java.security.policy.invokerregistry}"/>
          <sysproperty key="java.security.debug" value="${java.security.debug}"/>
          <sysproperty key="build.home" value="${basedir}"/>
          <sysproperty key="remoting.jar.dir" value="${basedir}/output/lib"/>
          <sysproperty key="log4j.jar.dir" value="${basedir}/lib/apache-log4j/lib"/>
          <sysproperty key="log4j.config.dir" value="${basedir}/src/etc"/>
          <sysproperty key="ant.library.dir" value="${ant.library.dir}"/>
          <sysproperty key="jboss-junit-configuration" value="${jboss-junit-configuration}"/>
          <sysproperty key="jrunit.bind_addr"  value="${bind.address}"/>
          <sysproperty key="jrunit.mcast_addr" value="${multicast.address}"/>
          <sysproperty key="jrunit.mcast_port" value="${multicast.port}"/>
          <sysproperty key="jrunit.receive_on_all_interfaces" value="${receiveOnAllInterfaces}"/>
          <sysproperty key="jrunit.send_on_all_interfaces" value="${sendOnAllInterfaces}"/>
          <sysproperty key="jrunit.send_interfaces" value="${sendInterfaces}"/>
          <sysproperty key="jrunit.logdir" value="${output.tests}"/>
          <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                     extension="-${jboss-junit-configuration}.xml"/>
          <batchtest fork="yes" todir="${output.tests.results}"
                     haltonfailure="no">
             <fileset dir="${tests.compile.dir}">
                <include name="**/remoting/**/InvokerRegistrySecurityTestCase.class"/>
             </fileset>
          </batchtest>
       </junit>
    </target>
   

   <target name="tests.functional.main.isJDK5" depends="tests.jars" unless="isJDK4">
      <mkdir dir="${output.tests.results}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <junit printsummary="true" fork="yes" includeantruntime="true" tempdir="${output.tests.tmp}">
         <jvmarg value="-Dloader.path=${output.lib.dir}/jboss-remoting-loading-tests.jar"/>
         <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
         <classpath>
            <path refid="tests.classpath"/>
         </classpath>
         <sysproperty key="${java.security.manager.key}" value="${java.security.manager}"/>
         <sysproperty key="java.security.policy" value="${java.security.policy}"/>
         <sysproperty key="java.security.debug" value="${java.security.debug}"/>
         <sysproperty key="ant.library.dir" value="${ant.library.dir}"/>
         <sysproperty key="jboss-junit-configuration" value="${jboss-junit-configuration}"/>
         <sysproperty key="jrunit.bind_addr"  value="${bind.address}"/>
         <sysproperty key="jrunit.mcast_addr" value="${multicast.address}"/>
         <sysproperty key="jrunit.mcast_port" value="${multicast.port}"/>
         <sysproperty key="jrunit.receive_on_all_interfaces" value="${receiveOnAllInterfaces}"/>
         <sysproperty key="jrunit.send_on_all_interfaces" value="${sendOnAllInterfaces}"/>
         <sysproperty key="jrunit.send_interfaces" value="${sendInterfaces}"/>
         <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                    extension="-${jboss-junit-configuration}.xml"/>
         <batchtest fork="yes" todir="${output.tests.results}"
                    haltonfailure="no">
            <fileset dir="${tests.compile.dir}">
               <include name="**/remoting/**/http/chunked/**/*TestCase.class"/>
            </fileset>
         </batchtest>
      </junit>
   </target>

   <target name="tests.functional.main.http.isJDK5.core" unless="isJDK4">
      <mkdir dir="${output.tests.results}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <junit printsummary="true" fork="yes" includeantruntime="true" tempdir="${output.tests.tmp}">
         <jvmarg value="-Dloader.path=${output.lib.dir}/jboss-remoting-loading-tests.jar"/>
         <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
         <classpath>
            <path refid="${classpath}"/>
         </classpath>
         <sysproperty key="${java.security.manager.key}" value="${java.security.manager}"/>
         <sysproperty key="java.security.policy" value="${java.security.policy}"/>
         <sysproperty key="java.security.debug" value="${java.security.debug}"/>
         <sysproperty key="build.home" value="${basedir}"/>
         <sysproperty key="remoting.jar.dir" value="${basedir}/output/lib"/>
         <sysproperty key="log4j.jar.dir" value="${basedir}/lib/apache-log4j/lib"/>
         <sysproperty key="log4j.config.dir" value="${basedir}/src/etc"/>
         <sysproperty key="ant.library.dir" value="${ant.library.dir}"/>
         <sysproperty key="jboss-junit-configuration" value="${jboss-junit-configuration}"/>
         <sysproperty key="jrunit.bind_addr"  value="${bind.address}"/>
         <sysproperty key="jrunit.mcast_addr" value="${multicast.address}"/>
         <sysproperty key="jrunit.mcast_port" value="${multicast.port}"/>
         <sysproperty key="jrunit.receive_on_all_interfaces" value="${receiveOnAllInterfaces}"/>
         <sysproperty key="jrunit.send_on_all_interfaces" value="${sendOnAllInterfaces}"/>
         <sysproperty key="jrunit.send_interfaces" value="${sendInterfaces}"/>
     
          <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                    extension="-${jboss-junit-configuration}.xml"/>
         <batchtest fork="yes" todir="${output.tests.results}"
                    haltonfailure="no">
            <fileset dir="${tests.compile.dir}">
               <include name="**/remoting/**/http/chunked/**/*TestCase.class"/>
            </fileset>
         </batchtest>
      </junit>
   </target>

   <target name="tests.functional.main.http" depends="tests.jars">
      <mkdir dir="${output.tests.results}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <echo>http with ${version}: ${metadata}</echo>
      <junit
            printsummary="true" fork="yes" includeantruntime="true"
              tempdir="${output.tests.tmp}" maxmemory="1024m">
         <jvmarg value="-Dloader.path=${output.lib.dir}/jboss-remoting-loading-tests.jar"/>
         <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
         <classpath>
            <path refid="${classpath}"/>
         </classpath>
         <sysproperty key="${java.security.manager.key}" value="${java.security.manager}"/>
         <sysproperty key="java.security.policy" value="${java.security.policy}"/>
         <sysproperty key="java.security.debug" value="${java.security.debug}"/>
         <sysproperty key="build.home" value="${basedir}"/>
         <sysproperty key="remoting.jar.dir" value="${basedir}/output/lib"/>
         <sysproperty key="log4j.jar.dir" value="${basedir}/lib/apache-log4j/lib"/>
         <sysproperty key="log4j.config.dir" value="${basedir}/src/etc"/>
         <sysproperty key="ant.library.dir" value="${ant.library.dir}"/>
         <sysproperty key="jboss-junit-configuration" value="${jboss-junit-configuration}"/>
         <sysproperty key="jrunit.bind_addr"  value="${bind.address}"/>
         <sysproperty key="jrunit.mcast_addr" value="${multicast.address}"/>
         <sysproperty key="jrunit.mcast_port" value="${multicast.port}"/>
         <sysproperty key="jrunit.receive_on_all_interfaces" value="${receiveOnAllInterfaces}"/>
         <sysproperty key="jrunit.send_on_all_interfaces" value="${sendOnAllInterfaces}"/>
         <sysproperty key="jrunit.send_interfaces" value="${sendInterfaces}"/>
         <sysproperty key="jrunit.logdir" value="${output.tests}"/>
         <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                    extension="-${jboss-junit-configuration}.xml"/>
         <batchtest fork="yes" todir="${output.tests.results}"
                    haltonfailure="no">
            <fileset dir="${tests.compile.dir}">
               <include name="**/remoting/**/http/**/*TestCase.class"/>
               <include name="**/remoting/**/*HTTP*TestCase.class"/>
               <include name="**/remoting/**/*Http*TestCase.class"/>
               <include name="**/remoting/**/*http*TestCase.class"/>
               <exclude name="**/remoting/marshall/dynamic/remote/**/*TestCase.class"/>
               <exclude name="**/remoting/serialization/**/jboss/*TestCase.class"/>
               <exclude name="**/remoting/**/performance/**"/>
               <exclude name="**/remoting/**/nonserializable/**"/>
               <exclude name="**/remoting/**/http/chunked/**"/>
               <exclude name="**/remoting/versioning/**/*TestCase.class"/>
            </fileset>
         </batchtest>
      </junit>
   </target>

   <target name="tests.functional.main.http.security">
      <mkdir dir="${output.tests.results}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <echo>http (strict security) with ${version}: ${metadata}</echo>
      <junit
            printsummary="true" fork="yes" includeantruntime="true"
            tempdir="${output.tests.tmp}" maxmemory="1024m">
         <jvmarg value="-Dloader.path=${output.lib.dir}/jboss-remoting-loading-tests.jar"/>
         <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
         <classpath>
            <path refid="${classpath}"/>
         </classpath>
         <sysproperty key="${java.security.manager.key}" value="${java.security.manager}"/>
         <sysproperty key="java.security.policy" value="${java.security.policy.strict}"/>
         <sysproperty key="java.security.debug" value="${java.security.debug}"/>
         <sysproperty key="build.home" value="${basedir}"/>
         <sysproperty key="remoting.jar.dir" value="${basedir}/output/lib"/>
         <sysproperty key="log4j.jar.dir" value="${basedir}/lib/apache-log4j/lib"/>
         <sysproperty key="log4j.config.dir" value="${basedir}/src/etc"/>
         <sysproperty key="ant.library.dir" value="${ant.library.dir}"/>
         <sysproperty key="jboss-junit-configuration" value="${jboss-junit-configuration}"/>
         <sysproperty key="jrunit.bind_addr"  value="${bind.address}"/>
         <sysproperty key="jrunit.mcast_addr" value="${multicast.address}"/>
         <sysproperty key="jrunit.mcast_port" value="${multicast.port}"/>
         <sysproperty key="jrunit.receive_on_all_interfaces" value="${receiveOnAllInterfaces}"/>
         <sysproperty key="jrunit.send_on_all_interfaces" value="${sendOnAllInterfaces}"/>
         <sysproperty key="jrunit.send_interfaces" value="${sendInterfaces}"/>
         <sysproperty key="jrunit.logdir" value="${output.tests}"/>
         <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                    extension="-${jboss-junit-configuration}.xml"/>
         <batchtest fork="yes" todir="${output.tests.results}"
                    haltonfailure="no">
            <fileset dir="${tests.compile.dir}">
               <include name="**/remoting/transport/http/HTTPInvokerSecurityTestCase.class"/>
               <include name="**/remoting/transport/http/ssl/custom/HTTPSInvokerTestCase.class"/>
            </fileset>
         </batchtest>
      </junit>
   </target>
   
   <target name="tests.functional.main.http.core">
      <mkdir dir="${output.tests.results}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <echo>http with ${version}: ${metadata}</echo>
      <junit
            printsummary="true" fork="yes" includeantruntime="true"
            tempdir="${output.tests.tmp}" maxmemory="1024m">
         <jvmarg value="-Dloader.path=${output.lib.dir}/jboss-remoting-loading-tests.jar"/>
         <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
         <classpath>
            <path refid="${classpath}"/>
         </classpath>
         <sysproperty key="${java.security.manager.key}" value="${java.security.manager}"/>
         <sysproperty key="java.security.policy" value="${java.security.policy}"/>
         <sysproperty key="java.security.debug" value="${java.security.debug}"/>
         <sysproperty key="build.home" value="${basedir}"/>
         <sysproperty key="remoting.jar.dir" value="${basedir}/output/lib"/>
         <sysproperty key="log4j.jar.dir" value="${basedir}/lib/apache-log4j/lib"/>
         <sysproperty key="log4j.config.dir" value="${basedir}/src/etc"/>
         <sysproperty key="ant.library.dir" value="${ant.library.dir}"/>
         <sysproperty key="jboss-junit-configuration" value="${jboss-junit-configuration}"/>
         <sysproperty key="jrunit.bind_addr"  value="${bind.address}"/>
         <sysproperty key="jrunit.mcast_addr" value="${multicast.address}"/>
         <sysproperty key="jrunit.mcast_port" value="${multicast.port}"/>
         <sysproperty key="jrunit.receive_on_all_interfaces" value="${receiveOnAllInterfaces}"/>
         <sysproperty key="jrunit.send_on_all_interfaces" value="${sendOnAllInterfaces}"/>
         <sysproperty key="jrunit.send_interfaces" value="${sendInterfaces}"/>
         <sysproperty key="jrunit.logdir" value="${output.tests}"/>
         <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                    extension="-${jboss-junit-configuration}.xml"/>
         <batchtest fork="yes" todir="${output.tests.results}"
                    haltonfailure="no">
            <fileset dir="${tests.compile.dir}">
               <include name="**/remoting/**/http/**/*TestCase.class"/>
               <include name="**/remoting/**/*HTTP*TestCase.class"/>
               <include name="**/remoting/**/*Http*TestCase.class"/>
               <include name="**/remoting/**/*http*TestCase.class"/>
               <exclude name="**/remoting/**/HTTPSAsynchCallbackTestCase.class"/>
               <exclude name="**/remoting/**/ServerBindingTestCase.class"/>
               <exclude name="**/remoting/marshall/dynamic/remote/**/*TestCase.class"/>
               <exclude name="**/remoting/serialization/**/jboss/*TestCase.class"/>
               <exclude name="**/remoting/**/performance/**"/>
               <exclude name="**/remoting/**/nonserializable/**"/>
               <exclude name="**/remoting/**/http/chunked/**"/>
               <!-- these are test cases that are only failing on certain env so will have to run manually -->
               <exclude name="**/remoting/callback/pull/memory/**/*StoreCallbackTestCase*"/>
               <exclude name="**/remoting/detection/multicast/*MulticastUnitTestCase*"/>
               <exclude name="**/remoting/transport/http/compression/*CompressedHTTPInvokerTestCase*"/>
               <!-- having to remove peformance tests as running out of memory failures -->
               <exclude name="**/remoting/versioning/**/*TestCase.class"/>
               <exclude name="**remoting/marshall/encrypt/**"/>
            </fileset>
         </batchtest>
      </junit>
   </target>
                  
   <!-- tests for sending of non-serializable payloads.  -->
   <target name="tests.nonserializable">
      <mkdir dir="${output.tests.results}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <junit printsummary="true" fork="yes" includeantruntime="true" tempdir="${output.tests.tmp}">
         <jvmarg value="-Dloader.path=${output.lib.dir}/jboss-remoting-loading-tests.jar"/>
         <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
         <classpath>
            <path refid="tests.classpath"/>
         </classpath>
         <sysproperty key="${java.security.manager.key}" value="${java.security.manager}"/>
         <sysproperty key="java.security.policy" value="${java.security.policy}"/>
         <sysproperty key="java.security.debug" value="${java.security.debug}"/>
         <sysproperty key="build.home" value="${basedir}"/>
         <sysproperty key="remoting.jar.dir" value="${basedir}/output/lib"/>
         <sysproperty key="log4j.jar.dir" value="${basedir}/lib/apache-log4j/lib"/>
         <sysproperty key="log4j.config.dir" value="${basedir}/src/etc"/>
         <sysproperty key="ant.library.dir" value="${ant.library.dir}"/>
         <sysproperty key="jboss-junit-configuration" value="${jboss-junit-configuration}"/>
         <sysproperty key="jrunit.bind_addr"  value="${bind.address}"/>
         <sysproperty key="jrunit.mcast_addr" value="${multicast.address}"/>
         <sysproperty key="jrunit.mcast_port" value="${multicast.port}"/>
         <sysproperty key="jrunit.receive_on_all_interfaces" value="${receiveOnAllInterfaces}"/>
         <sysproperty key="jrunit.send_on_all_interfaces" value="${sendOnAllInterfaces}"/>
         <sysproperty key="jrunit.send_interfaces" value="${sendInterfaces}"/>
         <sysproperty key="jrunit.logdir" value="${output.tests}"/>
         <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                    extension="-${jboss-junit-configuration}.xml"/>
         <batchtest fork="yes" todir="${output.tests.results}"
                    haltonfailure="no">
            <fileset dir="${tests.compile.dir}">
               <include name="**/remoting/**/nonserializable/**/*TestCase.class"/>
            </fileset>
         </batchtest>
      </junit>
   </target>

   <target name="tests.functional.main.serialization.jboss">
      <mkdir dir="${output.tests.results}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <junit printsummary="true" fork="yes" includeantruntime="true" tempdir="${output.tests.tmp}">
         <classpath>
            <path refid="tests.classpath"/>
         </classpath>
         <sysproperty key="${java.security.manager.key}" value="${java.security.manager}"/>
         <sysproperty key="java.security.policy" value="${java.security.policy}"/>
         <sysproperty key="java.security.debug" value="${java.security.debug}"/>
         <sysproperty key="build.home" value="${basedir}"/>
         <sysproperty key="remoting.jar.dir" value="${basedir}/output/lib"/>
         <sysproperty key="log4j.jar.dir" value="${basedir}/lib/apache-log4j/lib"/>
         <sysproperty key="log4j.config.dir" value="${basedir}/src/etc"/>
         <sysproperty key="ant.library.dir" value="${ant.library.dir}"/>
         <sysproperty key="jrunit.bind_addr"  value="${bind.address}"/>
         <sysproperty key="jrunit.mcast_addr" value="${multicast.address}"/>
         <sysproperty key="jrunit.mcast_port" value="${multicast.port}"/>
         <sysproperty key="jrunit.receive_on_all_interfaces" value="${receiveOnAllInterfaces}"/>
         <sysproperty key="jrunit.send_on_all_interfaces" value="${sendOnAllInterfaces}"/>
         <sysproperty key="jrunit.send_interfaces" value="${sendInterfaces}"/>
         <sysproperty key="jrunit.logdir" value="${output.tests}"/>
         <!-- this is needed for the remoting.marshall.dynamic.remote.MarshallerLoadingServer -->
         <jvmarg value="-Dloader.path=${output.lib.dir}/jboss-remoting-loading-tests.jar"/>
         <formatter type="xml"/>
         <batchtest fork="yes" todir="${output.tests.results}"
                    haltonfailure="no">
            <formatter type="xml"/>
            <fileset dir="${tests.compile.dir}">
               <include name="**/remoting/serialization/**/jboss/*TestCase.class"/>
               <exclude name="**/remoting/marshall/dynamic/remote/socket/*TestCase.class"/>
               <exclude name="**/remoting/**/performance/**"/>
            </fileset>
         </batchtest>
      </junit>
   </target>

   <!-- check to see if running jdk1.6/jdk1.5/jdk1.4 -->
   <target name="get-jvm">
      <condition property="isJDK6">
         <contains string="${java.runtime.version}" substring="1.6"/>
      </condition>      
      <condition property="isJDK5">
         <contains string="${java.runtime.version}" substring="1.5"/>
      </condition>
      <condition property="isJDK4">
         <contains string="${java.runtime.version}" substring="1.4"/>
      </condition>
   </target>

   <!-- This section is for quick smoke test of java vs. jboss serialization -->
   <target name="tests.socket.serialization" depends="configure">
      <antcall target="tests.socket.serialization.java" inheritrefs="true"/>
      <antcall target="test.socket.serialization.jboss" inheritrefs="true"/>
   </target>
   <target name="tests.socket.serialization.java">
      <antcall target="tests.socket" inheritrefs="true">
         <param name="metadata" value="serializationtype=java"/>
      </antcall>
   </target>
   <target name="test.socket.serialization.jboss" unless="isJDK4">
      <antcall target="tests.socket" inheritrefs="true">
         <param name="metadata" value="serializationtype=jboss"/>
      </antcall>
   </target>

   <target name="tests.socket" depends="tests.jars">
      <mkdir dir="${output.tests.results}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <junit printsummary="true" fork="yes" includeantruntime="true" tempdir="${output.tests.tmp}">

         <jvmarg value="-Dremoting.metadata=${metadata}"/>

         <classpath>
            <path refid="tests.classpath"/>
         </classpath>
         <sysproperty key="${java.security.manager.key}" value="${java.security.manager}"/>
         <sysproperty key="java.security.policy" value="${java.security.policy}"/>
         <sysproperty key="java.security.debug" value="${java.security.debug}"/>
         <sysproperty key="build.home" value="${basedir}"/>
         <sysproperty key="remoting.jar.dir" value="${basedir}/output/lib"/>
         <sysproperty key="log4j.jar.dir" value="${basedir}/lib/apache-log4j/lib"/>
         <sysproperty key="log4j.config.dir" value="${basedir}/src/etc"/>
         <sysproperty key="ant.library.dir" value="${ant.library.dir}"/>
         <!-- this is needed for the remoting.marshall.dynamic.remote.MarshallerLoadingServer -->
         <jvmarg value="-Dloader.path=${output.lib.dir}/jboss-remoting-loading-tests.jar"/>
         <formatter type="xml"/>
         <batchtest fork="yes" todir="${output.tests.results}"
                    haltonfailure="no">
            <formatter type="xml"/>
            <fileset dir="${tests.compile.dir}">
               <include name="**/remoting/**/transport/socket/*TestCase.class"/>
               <exclude name="**/remoting/**/performance/**"/>
            </fileset>
         </batchtest>
      </junit>
   </target>
   <!-- End of socket serialization smoke tests -->

   <!-- Tests dynamic, remote loading of marshaller/unmarshaller -->
   <target name="tests.marshall">
      <echo>remote marshalling tests: ${metadata}</echo>
      <mkdir dir="${output.tests.results}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <junit printsummary="true" fork="yes" includeantruntime="true" tempdir="${output.tests.tmp}">
         <classpath>
            <!-- THIS IS IMPORTANT THAT USE MARSHALL SPECIFIC CLASSPATH -->
            <path refid="tests.marshall.classpath"/>
            <pathelement location="${output.lib.dir}/jboss-remoting-tests.jar"/>
         </classpath>
         <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
         <sysproperty key="${java.security.manager.key}" value="${java.security.manager}"/>
         <sysproperty key="java.security.policy" value="${java.security.policy.marshal}"/>
         <sysproperty key="java.security.debug" value="${java.security.debug}"/>
         <sysproperty key="build.home" value="${basedir}"/>
         <sysproperty key="remoting.jar.dir" value="${basedir}/output/lib"/>
         <sysproperty key="log4j.jar.dir" value="${basedir}/lib/apache-log4j/lib"/>
         <sysproperty key="log4j.config.dir" value="${basedir}/src/etc"/>
         <sysproperty key="ant.library.dir" value="${ant.library.dir}"/>
         <sysproperty key="jboss-junit-configuration" value="${jboss-junit-configuration}"/>
         <sysproperty key="jrunit.bind_addr"  value="${bind.address}"/>
         <sysproperty key="jrunit.mcast_addr" value="${multicast.address}"/>
         <sysproperty key="jrunit.mcast_port" value="${multicast.port}"/>
         <sysproperty key="jrunit.receive_on_all_interfaces" value="${receiveOnAllInterfaces}"/>
         <sysproperty key="jrunit.send_on_all_interfaces" value="${sendOnAllInterfaces}"/>
         <sysproperty key="jrunit.send_interfaces" value="${sendInterfaces}"/>
         <sysproperty key="jrunit.logdir" value="${output.tests}"/>
         <!-- this is needed for the remoting.marshall.dynamic.remote.MarshallerLoadingServer -->
         <jvmarg value="-Dloader.path=${output.lib.dir}/jboss-remoting-loading-tests.jar"/>
         <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                   extension="-${jboss-junit-configuration}.xml"/>
         <batchtest fork="yes" todir="${output.tests.results}"
                    haltonfailure="no">
            <fileset dir="${tests.compile.dir}">
               <include name="**/remoting/marshall/dynamic/remote/**/*TestCase.class"/>
               <exclude name="**/remoting/**/performance/**"/>
            </fileset>
         </batchtest>
      </junit>
   </target>


   <!--=====================================================================-->
   <!--=====================================================================-->
   <!--                     servlet tests                                   -->
   <!--=====================================================================-->
   <!--=====================================================================-->
   <target name="tests.servlet.config" depends="configure">
     <echo>jboss home: ${jboss.home}</echo>
     <property name="jboss.conf.dir" value="${jboss.home}/server/default/conf/"/>
     <property name="jboss.deploy.dir" value="${jboss.home}/server/default/deploy/"/>
     <property name="jboss.log.dir" value="${jboss.home}/server/default/log"/>
     <property name="jboss.lib.dir" value="${jboss.home}/common/lib"/>
     <property name="servlet.tests.dir" value="${tests.dir}/org/jboss/test/remoting/transport/servlet"/>
   </target>
   
   <target name="tests.servlet.setup" depends="tests.jars,tests.servlet.config,tests.servlet.clean">
     <mkdir dir="${output.tests.results}"/>
     <mkdir dir="${basedir}/Save"/>
     <copy file="${jboss.lib.dir}/jboss-remoting.jar" todir="${basedir}/Save" overwrite="true"/>
     <copy file="${jboss.deploy.dir}/jbossweb.sar/server.xml" todir="${basedir}/Save" overwrite="true"/>
     <copy file="${output.lib.dir}/jboss-remoting.jar" todir="${jboss.lib.dir}" overwrite="true"/>
     <copy file="${output.lib.dir}/jboss-remoting-tests.jar" todir="${jboss.lib.dir}" overwrite="true"/>
     <copy file="${servlet.tests.dir}/server.xml" todir="${jboss.deploy.dir}/jbossweb.sar" overwrite="true"/>
     <copy file="${servlet.tests.dir}/ssl/keystore" tofile="${jboss.conf.dir}/keystore"/>
   </target>
   
   <target name="tests.servlet.teardown" depends="tests.servlet.clean">
     <copy file="${basedir}/Save/jboss-remoting.jar" todir="${jboss.lib.dir}" overwrite="true"/>
     <copy file="${basedir}/Save/server.xml" todir="${jboss.deploy.dir}/jbossweb.sar"/>
   </target>

   <target name="tests.servlet.clean">
     <delete file="${jboss.lib.dir}/jboss-remoting-tests.jar" quiet="true"/>
     <delete file="${jboss.conf.dir}/keystore" quiet="true"/>
     <delete file="${jboss.deploy.dir}/remoting-servlet-service.xml" quiet="true"/>
     <delete dir="${jboss.deploy.dir}/servlet-invoker.war" quiet="true"/>
   </target>
  
   <target name="AS.start">
      <property environment="env"/>
      <exec executable="${shell}" searchpath="true" dir="${jboss.home}" spawn="true">
         <env key="Path" path="${env.Path}${path.separator}c:/cygwin/usr/bin"/>
         <env key="JBOSS_HOME" value="${jboss.home}"/>
         <arg file="${jboss.home}/bin/run.sh"/>
      </exec>
      <echo>Going to sleep for ${as.startup.time} seconds</echo>
      <sleep seconds="${as.startup.time}"/>
   </target>

   <target name="AS.start.opts">
      <property environment="env"/>
      <exec executable="${shell}" searchpath="true" dir="${jboss.home}" spawn="true">
         <env key="Path" path="${env.Path}${path.separator}c:/cygwin/usr/bin"/>
         <env key="JAVA_OPTS" value="${java.opts}"/>
         <env key="JBOSS_HOME" value="${jboss.home}"/>
         <arg file="${jboss.home}/bin/run.sh"/>
      </exec>
      <echo>Going to sleep for ${as.startup.time} seconds</echo>
      <sleep seconds="${as.startup.time}"/>
   </target>
  
   <target name="AS.shutdown" depends="tests.servlet.config">
      <property environment="env"/>
      <exec executable="${shell}" searchpath="true" dir="${jboss.home}" spawn="true">
         <env key="Path" path="${env.Path}${path.separator}c:/cygwin/usr/bin"/>
         <env key="JBOSS_HOME" value="${jboss.home}"/>
         <arg file="${jboss.home}/bin/shutdown.sh"/>
         <arg value="-S"/>
      </exec>
      <sleep seconds="${as.shutdown.time}"/>
   </target>
        
   <target name="tests.functional.servlet" depends="tests.servlet.setup">
     <antcall target="tests.servlet.simple" inheritrefs="true"/>
     <sleep seconds="${as.shutdown.time}"/>
     <antcall target="tests.servlet.mbeanserver.platform" inheritrefs="true"/>
     <antcall target="tests.servlet.teardown"/>
   </target>
   
   <target name="tests.servlet.simple">
     <antcall target="AS.start"/>
     <antcall target="tests.servlet" inheritrefs="true"/>
     <antcall target="tests.servlet.callback" inheritrefs="true"/>
     <antcall target="tests.servlet.contenttype" inheritrefs="true"/>
     <antcall target="tests.servlet.marshal" inheritrefs="true"/>
     <antcall target="tests.servlet.marshal.config" inheritrefs="true"/>
     <antcall target="tests.servlet.marshal.noconfig" inheritrefs="true"/>
     <antcall target="tests.servlet.mbeanserver.jboss" inheritrefs="true"/>
     <antcall target="tests.servlet.multihome" inheritrefs="true"/>
     <antcall target="tests.servlet.nopreservelines" inheritrefs="true"/>
     <antcall target="tests.servlet.preservelines" inheritrefs="true"/>
     <antcall target="tests.servlet.ssl" inheritrefs="true"/>
     <antcall target="tests.servlet.ssl.multihome" inheritrefs="true"/>
     <antcall target="AS.shutdown"/>
   </target>
  
   <target name="tests.servlet">
     <copy file="${servlet.tests.dir}/remoting-servlet-service.xml" todir="${jboss.deploy.dir}" overwrite="true"/>
     <sleep seconds="2"/>
     <copy todir="${jboss.deploy.dir}">
       <fileset dir="${output.lib.dir}">
         <include name="servlet-invoker.war/**"/>
       </fileset>
     </copy>
     <copy file="${servlet.tests.dir}/WEB-INF/web.xml"
           todir="${jboss.deploy.dir}/servlet-invoker.war/WEB-INF" overwrite="true"/>
     <sleep seconds="6"/>
     <junit printsummary="true" fork="yes" includeantruntime="true">
       <jvmarg value="-Dloader.path=${output.lib.dir}/jboss-remoting-loading-tests.jar"/>
       <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
       <classpath>
         <path refid="tests.classpath"/>
         <pathelement location="${output.lib.dir}/jboss-remoting-tests.jar"/>
       </classpath>
       <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                  extension="-java_serialization.xml"/>
       <batchtest fork="yes" todir="${output.tests.results}" haltonfailure="no">
         <fileset dir="${tests.compile.dir}">
            <include name="**/remoting/transport/servlet/*TestClient.class"/>
         </fileset>
       </batchtest>
     </junit>
     <delete dir="${jboss.deploy.dir}/servlet-invoker.war" failonerror="false"/>
     <delete file="${jboss.deploy.dir}/remoting-servlet-service.xml" failonerror="false"/>
     <sleep seconds="4"/>
   </target>

   <target name="tests.servlet.callback">
     <copy file="${servlet.tests.dir}/callback/remoting-servlet-service.xml" todir="${jboss.deploy.dir}" overwrite="true"/>
     <sleep seconds="2"/>
     <copy todir="${jboss.deploy.dir}">
       <fileset dir="${output.lib.dir}">
         <include name="servlet-invoker.war/**"/>
       </fileset>
     </copy>
     <copy file="${servlet.tests.dir}/callback/WEB-INF/web.xml"
           todir="${jboss.deploy.dir}/servlet-invoker.war/WEB-INF" overwrite="true"/>
     <sleep seconds="6"/>
     <junit printsummary="true" fork="yes" includeantruntime="true">
        <jvmarg value="-Dloader.path=${output.lib.dir}/jboss-remoting-loading-tests.jar"/>
        <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
        <classpath>
           <path refid="tests.classpath"/>
           <pathelement location="${output.lib.dir}/jboss-remoting-tests.jar"/>
        </classpath>
        <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                   extension="-java_serialization.xml"/>
        <batchtest fork="yes" todir="${output.tests.results}" haltonfailure="no">
           <fileset dir="${tests.compile.dir}">
             <include name="**/remoting/transport/servlet/callback/*TestClient.class"/>
           </fileset>
        </batchtest>
     </junit>
     <delete dir="${jboss.deploy.dir}/servlet-invoker.war" failonerror="false"/>
     <delete file="${jboss.deploy.dir}/remoting-servlet-service.xml" failonerror="false"/>
     <sleep seconds="4"/>
   </target>

   <target name="tests.servlet.contenttype">
     <copy file="${servlet.tests.dir}/contenttype/remoting-servlet-service.xml" todir="${jboss.deploy.dir}" overwrite="true"/>
     <sleep seconds="2"/>
     <copy todir="${jboss.deploy.dir}">
       <fileset dir="${output.lib.dir}">
         <include name="servlet-invoker.war/**"/>
       </fileset>
     </copy>
     <copy file="${servlet.tests.dir}/contenttype/WEB-INF/web.xml"
           todir="${jboss.deploy.dir}/servlet-invoker.war/WEB-INF" overwrite="true"/>
     <sleep seconds="10"/>
     <junit printsummary="true" fork="yes" includeantruntime="true">
        <jvmarg value="-Dloader.path=${output.lib.dir}/jboss-remoting-loading-tests.jar"/>
        <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
        <classpath>
           <path refid="tests.classpath"/>
           <pathelement location="${output.lib.dir}/jboss-remoting-tests.jar"/>
        </classpath>
        <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                   extension="-java_serialization.xml"/>
        <batchtest fork="yes" todir="${output.tests.results}" haltonfailure="no">
           <fileset dir="${tests.compile.dir}">
             <include name="**/remoting/transport/servlet/contenttype/*TestClient.class"/>
           </fileset>
        </batchtest>
     </junit>
     <delete dir="${jboss.deploy.dir}/servlet-invoker.war" failonerror="false"/>
     <delete file="${jboss.deploy.dir}/remoting-servlet-service.xml" failonerror="false"/>
     <sleep seconds="4"/>
   </target>
   
   <target name="tests.servlet.marshal">
     <copy file="${servlet.tests.dir}/marshal/remoting-servlet-service.xml" todir="${jboss.deploy.dir}" overwrite="true"/>
     <sleep seconds="2"/>
     <copy todir="${jboss.deploy.dir}">
       <fileset dir="${output.lib.dir}">
         <include name="servlet-invoker.war/**"/>
       </fileset>
     </copy>
     <copy file="${servlet.tests.dir}/marshal/WEB-INF/web.xml"
           todir="${jboss.deploy.dir}/servlet-invoker.war/WEB-INF" overwrite="true"/>  
     <sleep seconds="8"/>
     <junit printsummary="true" fork="yes" includeantruntime="true">
        <jvmarg value="-Dloader.path=${output.lib.dir}/jboss-remoting-loading-tests.jar"/>
        <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
        <classpath>
           <path refid="tests.classpath"/>
           <pathelement location="${output.lib.dir}/jboss-remoting-tests.jar"/>
        </classpath>
        <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                   extension="-java_serialization.xml"/>
        <batchtest fork="yes" todir="${output.tests.results}" haltonfailure="no">
           <fileset dir="${tests.compile.dir}">
             <include name="**/remoting/transport/servlet/marshal/*TestClient.class"/>
           </fileset>
        </batchtest>
     </junit>
     <delete dir="${jboss.deploy.dir}/servlet-invoker.war" failonerror="false"/>
     <delete file="${jboss.deploy.dir}/remoting-servlet-service.xml" failonerror="false"/>
     <sleep seconds="4"/>
   </target>
   
   <target name="tests.servlet.marshal.config">
     <copy file="${servlet.tests.dir}/marshal/config/remoting-servlet-service.xml" todir="${jboss.deploy.dir}" overwrite="true"/>
     <sleep seconds="2"/>
     <copy todir="${jboss.deploy.dir}">
       <fileset dir="${output.lib.dir}">
         <include name="servlet-invoker.war/**"/>
       </fileset>
     </copy>
     <copy file="${servlet.tests.dir}/marshal/config/WEB-INF/web.xml"
           todir="${jboss.deploy.dir}/servlet-invoker.war/WEB-INF" overwrite="true"/>  
     <sleep seconds="8"/>
     <junit printsummary="true" fork="yes" includeantruntime="true">
        <jvmarg value="-Dloader.path=${output.lib.dir}/jboss-remoting-loading-tests.jar"/>
        <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
        <classpath>
           <path refid="tests.classpath"/>
           <pathelement location="${output.lib.dir}/jboss-remoting-tests.jar"/>
        </classpath>
        <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                   extension="-java_serialization.xml"/>
        <batchtest fork="yes" todir="${output.tests.results}" haltonfailure="no">
           <fileset dir="${tests.compile.dir}">
             <include name="**/remoting/transport/servlet/marshal/config/*TestClient.class"/>
           </fileset>
        </batchtest>
     </junit>
     <delete dir="${jboss.deploy.dir}/servlet-invoker.war" failonerror="false"/>
     <delete file="${jboss.deploy.dir}/remoting-servlet-service.xml" failonerror="false"/>
     <sleep seconds="4"/>
   </target>
   
   <target name="tests.servlet.marshal.noconfig">
     <copy file="${servlet.tests.dir}/marshal/noconfig/remoting-servlet-service.xml" todir="${jboss.deploy.dir}" overwrite="true"/>
     <sleep seconds="2"/>
     <copy todir="${jboss.deploy.dir}">
       <fileset dir="${output.lib.dir}">
         <include name="servlet-invoker.war/**"/>
       </fileset>
     </copy>
     <copy file="${servlet.tests.dir}/marshal/noconfig/WEB-INF/web.xml"
           todir="${jboss.deploy.dir}/servlet-invoker.war/WEB-INF" overwrite="true"/>  
     <sleep seconds="8"/>
     <junit printsummary="true" fork="yes" includeantruntime="true">
        <jvmarg value="-Dloader.path=${output.lib.dir}/jboss-remoting-loading-tests.jar"/>
        <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
        <classpath>
           <path refid="tests.classpath"/>
           <pathelement location="${output.lib.dir}/jboss-remoting-tests.jar"/>
        </classpath>
        <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                   extension="-java_serialization.xml"/>
        <batchtest fork="yes" todir="${output.tests.results}" haltonfailure="no">
           <fileset dir="${tests.compile.dir}">
             <include name="**/remoting/transport/servlet/marshal/noconfig/*TestClient.class"/>
           </fileset>
        </batchtest>
     </junit>
     <delete dir="${jboss.deploy.dir}/servlet-invoker.war" failonerror="false"/>
     <delete file="${jboss.deploy.dir}/remoting-servlet-service.xml" failonerror="false"/>
     <sleep seconds="4"/>
   </target>

   <target name="tests.servlet.mbeanserver.jboss">
     <copy file="${servlet.tests.dir}/remoting-servlet-service.xml" todir="${jboss.deploy.dir}" overwrite="true"/>
     <sleep seconds="2"/>
     <copy todir="${jboss.deploy.dir}">
       <fileset dir="${output.lib.dir}">
         <include name="servlet-invoker.war/**"/>
       </fileset>
     </copy>
     <copy file="${servlet.tests.dir}/mbeanserver/jboss/WEB-INF/web.xml"
           todir="${jboss.deploy.dir}/servlet-invoker.war/WEB-INF" overwrite="true"/>  
     <sleep seconds="8"/>
     <junit printsummary="true" fork="yes" includeantruntime="true">
        <jvmarg value="-Dloader.path=${output.lib.dir}/jboss-remoting-loading-tests.jar"/>
        <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
        <classpath>
           <path refid="tests.classpath"/>
           <pathelement location="${output.lib.dir}/jboss-remoting-tests.jar"/>
        </classpath>
        <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                   extension="-java_serialization.xml"/>
        <batchtest fork="yes" todir="${output.tests.results}" haltonfailure="no">
           <fileset dir="${tests.compile.dir}">
             <include name="**/remoting/transport/servlet/mbeanserver/jboss/*TestClient.class"/>
           </fileset>
        </batchtest>
     </junit>
     <delete dir="${jboss.deploy.dir}/servlet-invoker.war" failonerror="false"/>
     <delete file="${jboss.deploy.dir}/remoting-servlet-service.xml" failonerror="false"/>
     <sleep seconds="4"/>
   </target>
     
   <target name="tests.servlet.mbeanserver.platform">
     <copy file="${servlet.tests.dir}/remoting-servlet-service.xml" todir="${jboss.deploy.dir}" overwrite="true"/>
     <sleep seconds="2"/>
     <copy todir="${jboss.deploy.dir}">
       <fileset dir="${output.lib.dir}">
         <include name="servlet-invoker.war/**"/>
       </fileset>
     </copy>
     <copy file="${servlet.tests.dir}/mbeanserver/platform/WEB-INF/web.xml"
           todir="${jboss.deploy.dir}/servlet-invoker.war/WEB-INF" overwrite="true"/>  
     <antcall target="AS.start.opts">
        <!--param name="java.opts" value="-Djavax.management.builder.initial=org.jboss.system.server.jmx.MBeanServerBuilderImpl -Djboss.platform.mbeanserver -Dcom.sun.management.jmxremote"/-->
        <param name="java.opts" value=" -Djboss.platform.mbeanserver"/>
     </antcall>
     <sleep seconds="8"/>
     <junit printsummary="true" fork="yes" includeantruntime="true">
        <jvmarg value="-Dloader.path=${output.lib.dir}/jboss-remoting-loading-tests.jar"/>
        <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
        <classpath>
           <path refid="tests.classpath"/>
           <pathelement location="${output.lib.dir}/jboss-remoting-tests.jar"/>
        </classpath>
        <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                   extension="-java_serialization.xml"/>
        <batchtest fork="yes" todir="${output.tests.results}" haltonfailure="no">
           <fileset dir="${tests.compile.dir}">
             <include name="**/remoting/transport/servlet/mbeanserver/platform/*TestClient.class"/>
           </fileset>
        </batchtest>
     </junit>
    <antcall target="AS.shutdown"/>
   </target>

   <target name="tests.servlet.multihome">
     <copy file="${servlet.tests.dir}/multihome/remoting-servlet-service.xml" todir="${jboss.deploy.dir}" overwrite="true"/>
     <sleep seconds="2"/>
     <copy todir="${jboss.deploy.dir}">
       <fileset dir="${output.lib.dir}">
         <include name="servlet-invoker.war/**"/>
       </fileset>
     </copy>
     <copy file="${servlet.tests.dir}/multihome/WEB-INF/web.xml"
           todir="${jboss.deploy.dir}/servlet-invoker.war/WEB-INF" overwrite="true"/>  
      <sleep seconds="8"/>
     <junit printsummary="true" fork="yes" includeantruntime="true">
        <jvmarg value="-Dloader.path=${output.lib.dir}/jboss-remoting-loading-tests.jar"/>
        <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
        <classpath>
           <path refid="tests.classpath"/>
           <pathelement location="${output.lib.dir}/jboss-remoting-tests.jar"/>
        </classpath>
        <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                   extension="-java_serialization.xml"/>
        <batchtest fork="yes" todir="${output.tests.results}" haltonfailure="no">
           <fileset dir="${tests.compile.dir}">
             <include name="**/remoting/transport/servlet/multihome/*TestClient.class"/>
           </fileset>
        </batchtest>
     </junit>
    <delete dir="${jboss.deploy.dir}/servlet-invoker.war" failonerror="false"/>
    <delete file="${jboss.deploy.dir}/remoting-servlet-service.xml" failonerror="false"/>
    <sleep seconds="4"/>
   </target>

   <target name="tests.servlet.nopreservelines">
     <copy file="${servlet.tests.dir}/nopreservelines/remoting-servlet-service.xml" todir="${jboss.deploy.dir}" overwrite="true"/>
     <sleep seconds="2"/>
     <copy todir="${jboss.deploy.dir}">
       <fileset dir="${output.lib.dir}">
         <include name="servlet-invoker.war/**"/>
       </fileset>
     </copy>
     <copy file="${servlet.tests.dir}/nopreservelines/WEB-INF/web.xml"
           todir="${jboss.deploy.dir}/servlet-invoker.war/WEB-INF" overwrite="true"/>  
     <sleep seconds="8"/>
     <junit printsummary="true" fork="yes" includeantruntime="true">
        <jvmarg value="-Dloader.path=${output.lib.dir}/jboss-remoting-loading-tests.jar"/>
        <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
        <classpath>
           <path refid="tests.classpath"/>
           <pathelement location="${output.lib.dir}/jboss-remoting-tests.jar"/>
        </classpath>
        <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                   extension="-java_serialization.xml"/>
        <batchtest fork="yes" todir="${output.tests.results}" haltonfailure="no">
           <fileset dir="${tests.compile.dir}">
             <include name="**/remoting/transport/servlet/nopreservelines/*TestClient.class"/>
           </fileset>
        </batchtest>
     </junit>
    <delete dir="${jboss.deploy.dir}/servlet-invoker.war" failonerror="false"/>
    <delete file="${jboss.deploy.dir}/remoting-servlet-service.xml" failonerror="false"/>
    <sleep seconds="4"/>
   </target>

   <target name="tests.servlet.preservelines">
     <copy file="${servlet.tests.dir}/preservelines/remoting-servlet-service.xml" todir="${jboss.deploy.dir}" overwrite="true"/>
     <sleep seconds="8"/>
     <copy todir="${jboss.deploy.dir}">
       <fileset dir="${output.lib.dir}">
         <include name="servlet-invoker.war/**"/>
       </fileset>
     </copy>
     <copy file="${servlet.tests.dir}/preservelines/WEB-INF/web.xml"
           todir="${jboss.deploy.dir}/servlet-invoker.war/WEB-INF" overwrite="true"/>
     <sleep seconds="8"/>
     <junit printsummary="true" fork="yes" includeantruntime="true">
        <jvmarg value="-Dloader.path=${output.lib.dir}/jboss-remoting-loading-tests.jar"/>
        <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
        <classpath>
           <path refid="tests.classpath"/>
           <pathelement location="${output.lib.dir}/jboss-remoting-tests.jar"/>
        </classpath>
        <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                   extension="-java_serialization.xml"/>
        <batchtest fork="yes" todir="${output.tests.results}" haltonfailure="no">
           <fileset dir="${tests.compile.dir}">
             <include name="**/remoting/transport/servlet/preservelines/*TestClient.class"/>
           </fileset>
        </batchtest>
     </junit>
     <delete dir="${jboss.deploy.dir}/servlet-invoker.war" failonerror="false"/>
     <delete file="${jboss.deploy.dir}/remoting-servlet-service.xml" failonerror="false"/>
     <sleep seconds="4"/>
   </target>
  
   <target name="tests.servlet.ssl">
     <copy file="${servlet.tests.dir}/ssl/remoting-servlet-service.xml" todir="${jboss.deploy.dir}" overwrite="true"/>
     <sleep seconds="8"/>
     <copy todir="${jboss.deploy.dir}">
       <fileset dir="${output.lib.dir}">
         <include name="servlet-invoker.war/**"/>
       </fileset>
     </copy>
     <copy file="${servlet.tests.dir}/ssl/WEB-INF/web.xml"
           todir="${jboss.deploy.dir}/servlet-invoker.war/WEB-INF" overwrite="true"/>
     <sleep seconds="5"/>
     <junit printsummary="true" fork="yes" includeantruntime="true">
        <jvmarg value="-Dloader.path=${output.lib.dir}/jboss-remoting-loading-tests.jar"/>
        <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
        <classpath>
           <path refid="tests.classpath"/>
           <pathelement location="${output.lib.dir}/jboss-remoting-tests.jar"/>
        </classpath>
        <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                   extension="-java_serialization.xml"/>
        <batchtest fork="yes" todir="${output.tests.results}" haltonfailure="no">
           <fileset dir="${tests.compile.dir}">
             <include name="**/remoting/transport/servlet/ssl/*TestClient.class"/>
           </fileset>
        </batchtest>
     </junit>
     <delete dir="${jboss.deploy.dir}/servlet-invoker.war" failonerror="false"/>
     <delete file="${jboss.deploy.dir}/remoting-servlet-service.xml" failonerror="false"/>
     <sleep seconds="4"/>
   </target>

   <target name="tests.servlet.ssl.multihome">
     <copy file="${servlet.tests.dir}/multihome/remoting-servlet-service.xml" todir="${jboss.deploy.dir}" overwrite="true"/>
     <sleep seconds="2"/>
     <copy todir="${jboss.deploy.dir}">
       <fileset dir="${output.lib.dir}">
         <include name="servlet-invoker.war/**"/>
       </fileset>
     </copy>
     <copy file="${servlet.tests.dir}/multihome/WEB-INF/web.xml"
           todir="${jboss.deploy.dir}/servlet-invoker.war/WEB-INF" overwrite="true"/>  
     <sleep seconds="8"/>
     <junit printsummary="true" fork="yes" includeantruntime="true">
        <jvmarg value="-Dloader.path=${output.lib.dir}/jboss-remoting-loading-tests.jar"/>
        <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
        <classpath>
           <path refid="tests.classpath"/>
           <pathelement location="${output.lib.dir}/jboss-remoting-tests.jar"/>
        </classpath>
        <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                   extension="-java_serialization.xml"/>
        <batchtest fork="yes" todir="${output.tests.results}" haltonfailure="no">
           <fileset dir="${tests.compile.dir}">
             <include name="**/remoting/transport/servlet/multihome/*TestClient.class"/>
           </fileset>
        </batchtest>
     </junit>
    <delete dir="${jboss.deploy.dir}/servlet-invoker.war" failonerror="false"/>
    <delete file="${jboss.deploy.dir}/remoting-servlet-service.xml" failonerror="false"/>
    <sleep seconds="4"/>
   </target>
           
   <target name="tests.versioning.beta2.client" depends="jars, tests.jars">
      <!--<antcall target="tests.versioning.all_transports" inheritrefs="true">-->
      <antcall target="tests.versioning.no_multiplex" inheritrefs="true">
         <param name="jboss-junit-configuration" value="2_0_0_beta2-client"/>
         <param name="client.classpath" value="${etc.dir}/lib/remoting_2_0_0_beta2/jboss-remoting.jar"/>
         <param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar"/>
      </antcall>
   </target>

   <target name="tests.versioning"
           description="Runs remoting fuctional tests with different remoting versions for client and server."
           depends="jars, tests.jars">
      <!--<antcall target="tests.versioning.core" inheritrefs="true">-->
         <!--<param name="jboss-junit-configuration" value="${module.version.extension}"/>-->
         <!--<param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar"/>-->
         <!--<param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar"/>-->
      <!--</antcall>-->

      <antcall target="tests.versioning.core" inheritrefs="true">
         <param name="jboss-junit-configuration" value="2_0_0-client"/>
         <param name="client.classpath" value="${etc.dir}/lib/remoting_2_0_0_GA/jboss-remoting.jar"/>
         <param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar"/>
         <param name="jboss.remoting.pre_2_0_compatible" value="false"/>
      </antcall>
      <antcall target="tests.versioning.core" inheritrefs="true">
         <param name="jboss-junit-configuration" value="2_0_0-server"/>
         <param name="server.classpath" value="${etc.dir}/lib/remoting_2_0_0_GA/jboss-remoting.jar"/>
         <param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar"/>
         <param name="jboss.remoting.pre_2_0_compatible" value="false"/>
      </antcall>

      <!--<antcall target="tests.versioning.core" inheritrefs="true">-->
         <!--<param name="jboss-junit-configuration" value="1_4_4-client"/>-->
         <!--<param name="client.classpath" value="${etc.dir}/lib/remoting_1_4_4/jboss-remoting.jar"/>-->
         <!--<param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar"/>-->
         <!--<param name="jboss.remoting.pre_2_0_compatible" value="true"/>-->
      <!--</antcall>-->
      <!--<antcall target="tests.versioning.core" inheritrefs="true">-->
         <!--<param name="jboss-junit-configuration" value="1_4_4-server"/>-->
         <!--<param name="server.classpath" value="${etc.dir}/lib/remoting_1_4_4/jboss-remoting.jar"/>-->
         <!--<param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar"/>-->
         <!--<param name="jboss.remoting.pre_2_0_compatible" value="true"/>-->
      <!--</antcall>-->

      <!--<antcall target="tests.versioning.core" inheritrefs="true">-->
         <!--<param name="jboss-junit-configuration" value="1_4_3-client"/>-->
         <!--<param name="client.classpath" value="${etc.dir}/lib/remoting_1_4_3/jboss-remoting.jar"/>-->
         <!--<param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar"/>-->
         <!--<param name="jboss.remoting.pre_2_0_compatible" value="true"/>-->
      <!--</antcall>-->
      <!--<antcall target="tests.versioning.core" inheritrefs="true">-->
         <!--<param name="jboss-junit-configuration" value="1_4_3-server"/>-->
         <!--<param name="server.classpath" value="${etc.dir}/lib/remoting_1_4_3/jboss-remoting.jar"/>-->
         <!--<param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar"/>-->
         <!--<param name="jboss.remoting.pre_2_0_compatible" value="true"/>-->
      <!--</antcall>-->
   </target>

   <target name="configure.versioning">
      
      <path id="basic.third_party.classpath">
         <fileset dir="${lib.dir}">
            <include name="**/*.jar"/>
            <exclude name="**/jdk14/*.jar"/>
            <exclude name="jboss/jboss-j2se.jar"/>
            <exclude name="jboss/jboss-common-core.jar"/>
            <exclude name="jboss/jboss-jmx.jar"/>
            <exclude name="jboss/jboss-logging-log4j.jar"/>
            <exclude name="jboss/jboss-logging-spi.jar"/>
            <exclude name="jboss/jnpserver.jar"/>
            <exclude name="sun-servlet/lib/servlet-api.jar"/>
         </fileset>
      </path>

      <!-- Versioning classpath for versions 2.5.0.GA and beyond -->
      <property name="jboss.dir" value="${lib.dir}${file.separator}jboss${file.separator}"/>
      <property name="ec1" value="${jboss.dir}jboss-j2se.jar${path.separator}"/>
      <property name="ec2" value="${jboss.dir}jboss-common-core.jar${path.separator}"/>
      <property name="ec3" value="${jboss.dir}jboss-jmx.jar${path.separator}"/>
      <property name="ec4" value="${jboss.dir}jboss-logging-log4j.jar${path.separator}"/>
      <property name="ec5" value="${jboss.dir}jboss-logging-spi.jar${path.separator}"/>
      <property name="ec6" value="${jboss.dir}jnpserver.jar${path.separator}"/>
      <property name="ec7" value="${lib.dir}${file.separator}sun-servlet${file.separator}lib${file.separator}servlet-api.jar"/>
      <property name="extended.classpath" value="${path.separator}${ec1}${ec2}${ec3}${ec4}${ec5}${ec6}${ec7}"/>
      
      <!-- Versioning classpath for versions prior to 2.5.0.GA -->
      <property name="jdk14.dir" value="${lib.dir}${file.separator}jdk14${file.separator}"/>
      <property name="oec1" value="${jdk14.dir}jboss-common.jar${path.separator}"/>
      <property name="oec2" value="${jdk14.dir}jboss-jmx.jar${path.separator}"/>
      <property name="oec3" value="${jdk14.dir}jnpserver.jar${path.separator}"/>
      <property name="oec4" value="${jdk14.dir}servlet-api.jar"/>
      <property name="old.extended.classpath" value="${path.separator}${oec1}${oec2}${oec3}${oec4}"/>
      
      <property name="versioning.repository" value="http://repository.jboss.com/jboss/remoting"/>
      <property name="versioning.dir" value="${basedir}${file.separator}src${file.separator}etc${file.separator}lib"/>
   </target>
   
   <target name="download.version">
     <mkdir dir="${versioning.dir}${file.separator}${version}"/>
     <get src="${versioning.repository}/${version}/lib/jboss-remoting.jar"
          dest="${versioning.dir}${file.separator}${version}${file.separator}jboss-remoting.jar" usetimestamp="true" verbose="true"/>
   </target>
      
   <!-- This runs all the versioning tests -->
   <target name="tests.versioning.all"
           description="Runs remoting fuctional tests with different remoting versions for client and server."
           depends="tests.jars,configure.versioning">

      <!-- ******************************************************************************** -->
      <!--  Current <- -> Current -->
      <antcall target="tests.versioning.all_transports" inheritrefs="true">
         <param name="jboss-junit-configuration" value="${module.version.extension}"/>
         <param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
         <param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
         <param name="check_content_type" value="true"/>
      </antcall>

    <!-- ******************************************************************************** -->
    <!--  Current <- -> 2.5.2.SP2 -->
      <antcall target="download.version">
         <param name="version" value="2.5.2.SP2"/>
      </antcall>
      <antcall target="tests.versioning.all_transports" inheritrefs="true">
         <param name="jboss-junit-configuration" value="2_5_2_SP2-client"/>
         <param name="client.classpath" value="${etc.dir}/lib/2.5.2.SP2/jboss-remoting.jar${extended.classpath}"/>
         <param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
         <param name="check_content_type" value="true"/>
      </antcall>
      <antcall target="tests.versioning.all_transports" inheritrefs="true">
         <param name="jboss-junit-configuration" value="2_5_2_SP2-server"/>
         <param name="server.classpath" value="${etc.dir}/lib/2.5.2.SP2/jboss-remoting.jar${extended.classpath}"/>
         <param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
         <param name="check_content_type" value="true"/>
      </antcall>
   	
      <!-- ******************************************************************************** -->
      <!--  Current <- -> 2.5.2 -->
        <antcall target="download.version">
           <param name="version" value="2.5.2"/>
        </antcall>
        <antcall target="tests.versioning.all_transports" inheritrefs="true">
           <param name="jboss-junit-configuration" value="2_5_2-client"/>
           <param name="client.classpath" value="${etc.dir}/lib/2.5.2/jboss-remoting.jar${extended.classpath}"/>
           <param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
           <param name="check_content_type" value="true"/>
        </antcall>
        <antcall target="tests.versioning.all_transports" inheritrefs="true">
           <param name="jboss-junit-configuration" value="2_5_2-server"/>
           <param name="server.classpath" value="${etc.dir}/lib/2.5.2/jboss-remoting.jar${extended.classpath}"/>
           <param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
           <param name="check_content_type" value="true"/>
        </antcall>
      
    <!-- ******************************************************************************** -->
    <!--  Current <- -> 2.5.1 -->
      <antcall target="download.version">
         <param name="version" value="2.5.1"/>
      </antcall>
      <antcall target="tests.versioning.all_transports" inheritrefs="true">
         <param name="jboss-junit-configuration" value="2_5_1-client"/>
         <param name="client.classpath" value="${etc.dir}/lib/2.5.1/jboss-remoting.jar${extended.classpath}"/>
         <param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
         <param name="check_content_type" value="true"/>
      </antcall>
      <antcall target="tests.versioning.all_transports" inheritrefs="true">
         <param name="jboss-junit-configuration" value="2_5_1-server"/>
         <param name="server.classpath" value="${etc.dir}/lib/2.5.1/jboss-remoting.jar${extended.classpath}"/>
         <param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
         <param name="check_content_type" value="true"/>
      </antcall>
      
    <!-- ******************************************************************************** -->
    <!--  Current <- -> 2.5.0.SP2 -->
      <antcall target="download.version">
         <param name="version" value="2.5.0.SP2"/>
      </antcall>
      <antcall target="tests.versioning.all_transports" inheritrefs="true">
         <param name="jboss-junit-configuration" value="2_5_0_SP2-client"/>
         <param name="client.classpath" value="${etc.dir}/lib/2.5.0.SP2/jboss-remoting.jar${extended.classpath}"/>
         <param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
         <param name="check_content_type" value="true"/>
      </antcall>
      <antcall target="tests.versioning.all_transports" inheritrefs="true">
         <param name="jboss-junit-configuration" value="2_5_0_SP2-server"/>
         <param name="server.classpath" value="${etc.dir}/lib/2.5.0.SP2/jboss-remoting.jar${extended.classpath}"/>
         <param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
         <param name="check_content_type" value="true"/>
      </antcall>
         
    <!-- ******************************************************************************** -->
    <!--  Current <- -> 2.5.0.SP1 -->
      <antcall target="download.version">
         <param name="version" value="2.5.0.SP1"/>
      </antcall>
      <antcall target="tests.versioning.all_transports" inheritrefs="true">
         <param name="jboss-junit-configuration" value="2_5_0_SP1-client"/>
         <param name="client.classpath" value="${etc.dir}/lib/2.5.0.SP1/jboss-remoting.jar${extended.classpath}"/>
         <param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
         <param name="check_content_type" value="true"/>
      </antcall>
      <antcall target="tests.versioning.all_transports" inheritrefs="true">
         <param name="jboss-junit-configuration" value="2_5_0_SP1-server"/>
         <param name="server.classpath" value="${etc.dir}/lib/2.5.0.SP1/jboss-remoting.jar${extended.classpath}"/>
         <param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
         <param name="check_content_type" value="true"/>
      </antcall>
      
      <!-- ******************************************************************************** -->
      <!--  Current <- -> 2.5.0.GA -->
        <antcall target="download.version">
           <param name="version" value="2.5.0.GA"/>
        </antcall>
        <antcall target="tests.versioning.all_transports" inheritrefs="true">
           <param name="jboss-junit-configuration" value="2_5_0_GA-client"/>
           <param name="client.classpath" value="${etc.dir}/lib/2.5.0.GA/jboss-remoting.jar${extended.classpath}"/>
           <param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
           <param name="check_content_type" value="true"/>
        </antcall>
        <antcall target="tests.versioning.all_transports" inheritrefs="true">
           <param name="jboss-junit-configuration" value="2_5_0_GA-server"/>
           <param name="server.classpath" value="${etc.dir}/lib/2.5.0.GA/jboss-remoting.jar${extended.classpath}"/>
           <param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
           <param name="check_content_type" value="true"/>
        </antcall>
      
      <!-- ******************************************************************************** -->
      <!--  Current <- -> 2.4.0.SP1 -->
        <antcall target="download.version">
           <param name="version" value="2.4.0.SP1"/>
        </antcall>
        <antcall target="tests.versioning.all_transports" inheritrefs="true">
           <param name="jboss-junit-configuration" value="2_4_0_SP1-client"/>
           <param name="client.classpath" value="${etc.dir}/lib/2.4.0.SP1/jboss-remoting.jar${old.extended.classpath}"/>
           <param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
           <param name="check_content_type" value="true"/>
        </antcall>
        <antcall target="tests.versioning.all_transports" inheritrefs="true">
           <param name="jboss-junit-configuration" value="2_4_0_SP1-server"/>
           <param name="server.classpath" value="${etc.dir}/lib/2.4.0.SP1/jboss-remoting.jar${old.extended.classpath}"/>
           <param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
           <param name="check_content_type" value="true"/>
        </antcall>
      
      <!-- ******************************************************************************** -->
      <!--  Current <- -> 2.4.0.GA -->
        <antcall target="download.version">
           <param name="version" value="2.4.0.GA"/>
        </antcall>
        <antcall target="tests.versioning.all_transports" inheritrefs="true">
           <param name="jboss-junit-configuration" value="2_4_0_GA-client"/>
           <param name="client.classpath" value="${etc.dir}/lib/2.4.0.GA/jboss-remoting.jar${old.extended.classpath}"/>
           <param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
           <param name="check_content_type" value="true"/>
        </antcall>
        <antcall target="tests.versioning.all_transports" inheritrefs="true">
           <param name="jboss-junit-configuration" value="2_4_0_GA-server"/>
           <param name="server.classpath" value="${etc.dir}/lib/2.4.0.GA/jboss-remoting.jar${old.extended.classpath}"/>
           <param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
           <param name="check_content_type" value="true"/>
        </antcall>

    <!-- ******************************************************************************** -->
    <!--  Current <- -> 2.2.3.SP2 -->
      <antcall target="download.version">
         <param name="version" value="2.2.3.SP2-brew"/>
      </antcall>
      <antcall target="tests.versioning.all_transports_pre_2.4" inheritrefs="true">
         <param name="jboss-junit-configuration" value="2_2_3_SP2_client"/>
         <param name="client.classpath" value="${etc.dir}/lib/2.2.3.SP2-brew/jboss-remoting.jar${old.extended.classpath}"/>
         <param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
         <param name="client.pre_2_0_compatible" value=""/>
         <param name="server.pre_2_0_compatible" value=""/>
         <param name="client.version" value=""/>
         <param name="server.version" value="2"/>
         <param name="check_connection" value="false"/>
      </antcall>
      <antcall target="tests.versioning.all_transports_pre_2.4" inheritrefs="true">
         <param name="jboss-junit-configuration" value="2_2_3_SP2-server"/>
         <param name="server.classpath" value="${etc.dir}/lib/2.2.3.SP2-brew/jboss-remoting.jar${old.extended.classpath}"/>
         <param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
         <param name="client.pre_2_0_compatible" value=""/>
         <param name="server.pre_2_0_compatible" value=""/>
         <param name="client.version" value="2"/>
         <param name="server.version" value=""/>
         <param name="check_connection" value="false"/>
         <param name="check_content_type" value="true"/>
      </antcall>
        	
    <!-- ******************************************************************************** -->
    <!--  Current <- -> 2.2.3.SP1 -->
      <antcall target="download.version">
         <param name="version" value="2.2.3.SP1"/>
      </antcall>
      <antcall target="tests.versioning.all_transports_pre_2.4" inheritrefs="true">
         <param name="jboss-junit-configuration" value="2_2_3_SP1_client"/>
         <param name="client.classpath" value="${etc.dir}/lib/2.2.3.SP1/jboss-remoting.jar${old.extended.classpath}"/>
         <param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
         <param name="client.pre_2_0_compatible" value=""/>
         <param name="server.pre_2_0_compatible" value=""/>
         <param name="client.version" value=""/>
         <param name="server.version" value="2"/>
         <param name="check_connection" value="false"/>
      </antcall>
      <antcall target="tests.versioning.all_transports_pre_2.4" inheritrefs="true">
         <param name="jboss-junit-configuration" value="2_2_3_SP1-server"/>
         <param name="server.classpath" value="${etc.dir}/lib/2.2.3.SP1/jboss-remoting.jar${old.extended.classpath}"/>
         <param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
         <param name="client.pre_2_0_compatible" value=""/>
         <param name="server.pre_2_0_compatible" value=""/>
         <param name="client.version" value="2"/>
         <param name="server.version" value=""/>
         <param name="check_connection" value="false"/>
         <param name="check_content_type" value="true"/>
      </antcall>
      
    <!-- ******************************************************************************** -->
    <!--  Current <- -> 2.2.3 -->
      <antcall target="download.version">
         <param name="version" value="2.2.3"/>
      </antcall>
      <antcall target="tests.versioning.all_transports_pre_2.4" inheritrefs="true">
         <param name="jboss-junit-configuration" value="2_2_3_client"/>
         <param name="client.classpath" value="${etc.dir}/lib/2.2.3/jboss-remoting.jar${old.extended.classpath}"/>
         <param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
         <param name="client.pre_2_0_compatible" value=""/>
         <param name="server.pre_2_0_compatible" value=""/>
         <param name="client.version" value=""/>
         <param name="server.version" value="2"/>
         <param name="check_connection" value="false"/>
      </antcall>
      <antcall target="tests.versioning.all_transports_pre_2.4" inheritrefs="true">
         <param name="jboss-junit-configuration" value="2_2_3-server"/>
         <param name="server.classpath" value="${etc.dir}/lib/2.2.3/jboss-remoting.jar${old.extended.classpath}"/>
         <param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
         <param name="client.pre_2_0_compatible" value=""/>
         <param name="server.pre_2_0_compatible" value=""/>
         <param name="client.version" value="2"/>
         <param name="server.version" value=""/>
         <param name="check_connection" value="false"/>
         <param name="check_content_type" value="true"/>
      </antcall>
      
    <!-- ******************************************************************************** -->
    <!--  Current <- -> 2.2.2.SP11 -->
      <antcall target="download.version">
         <param name="version" value="2.2.2.SP11"/>
      </antcall>
      <antcall target="tests.versioning.all_transports_pre_2.4" inheritrefs="true">
         <param name="jboss-junit-configuration" value="2_2_2_SP11-client"/>
         <param name="client.classpath" value="${etc.dir}/lib/2.2.2.SP11/jboss-remoting.jar${old.extended.classpath}"/>
         <param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
         <param name="client.pre_2_0_compatible" value=""/>
         <param name="server.pre_2_0_compatible" value=""/>
         <param name="client.version" value=""/>
         <param name="server.version" value="2"/>
         <param name="check_connection" value="false"/>
      </antcall>
      <antcall target="tests.versioning.all_transports_pre_2.4" inheritrefs="true">
         <param name="jboss-junit-configuration" value="2_2_2_SP11-server"/>
         <param name="server.classpath" value="${etc.dir}/lib/2.2.2.SP11/jboss-remoting.jar${old.extended.classpath}"/>
         <param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
         <param name="client.pre_2_0_compatible" value=""/>
         <param name="server.pre_2_0_compatible" value=""/>
         <param name="client.version" value="2"/>
         <param name="server.version" value=""/>
         <param name="check_connection" value="false"/>
         <param name="check_content_type" value="true"/>
      </antcall>
           
      <!-- ******************************************************************************** -->
      <!--  Current <- -> 2.2.2.SP10 -->
        <antcall target="download.version">
           <param name="version" value="2.2.2.SP10"/>
        </antcall>
        <antcall target="tests.versioning.all_transports_pre_2.4" inheritrefs="true">
           <param name="jboss-junit-configuration" value="2_2_2_SP10-client"/>
           <param name="client.classpath" value="${etc.dir}/lib/2.2.2.SP10/jboss-remoting.jar${old.extended.classpath}"/>
           <param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
           <param name="client.pre_2_0_compatible" value=""/>
           <param name="server.pre_2_0_compatible" value=""/>
           <param name="client.version" value=""/>
           <param name="server.version" value="2"/>
           <param name="check_connection" value="false"/>
        </antcall>
        <antcall target="tests.versioning.all_transports_pre_2.4" inheritrefs="true">
           <param name="jboss-junit-configuration" value="2_2_2_SP10-server"/>
           <param name="server.classpath" value="${etc.dir}/lib/2.2.2.SP10/jboss-remoting.jar${old.extended.classpath}"/>
           <param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
           <param name="client.pre_2_0_compatible" value=""/>
           <param name="server.pre_2_0_compatible" value=""/>
           <param name="client.version" value="2"/>
           <param name="server.version" value=""/>
           <param name="check_connection" value="false"/>
           <param name="check_content_type" value="true"/>
        </antcall>
      
      <!-- ******************************************************************************** -->
      <!--  Current <- -> 2.2.2.SP9 -->
        <antcall target="download.version">
           <param name="version" value="2.2.2.SP9-brew"/>
        </antcall>
        <antcall target="tests.versioning.all_transports_pre_2.4" inheritrefs="true">
           <param name="jboss-junit-configuration" value="2_2_2_SP9-client"/>
           <param name="client.classpath" value="${etc.dir}/lib/2.2.2.SP9-brew/jboss-remoting.jar${old.extended.classpath}"/>
           <param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
           <param name="client.pre_2_0_compatible" value=""/>
           <param name="server.pre_2_0_compatible" value=""/>
           <param name="client.version" value=""/>
           <param name="server.version" value="2"/>
           <param name="check_connection" value="false"/>
        </antcall>
        <antcall target="tests.versioning.all_transports_pre_2.4" inheritrefs="true">
           <param name="jboss-junit-configuration" value="2_2_2_SP9-server"/>
           <param name="server.classpath" value="${etc.dir}/lib/2.2.2.SP9-brew/jboss-remoting.jar${old.extended.classpath}"/>
           <param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
           <param name="client.pre_2_0_compatible" value=""/>
           <param name="server.pre_2_0_compatible" value=""/>
           <param name="client.version" value="2"/>
           <param name="server.version" value=""/>
           <param name="check_connection" value="false"/>
           <param name="check_content_type" value="true"/>
        </antcall>
              
      <!-- ******************************************************************************** -->
      <!--  Current <- -> 2.2.2.SP7 -->
        <antcall target="download.version">
           <param name="version" value="2.2.2.SP7"/>
        </antcall>
        <antcall target="tests.versioning.all_transports_pre_2.4" inheritrefs="true">
           <param name="jboss-junit-configuration" value="2_2_2_SP7-client"/>
           <param name="client.classpath" value="${etc.dir}/lib/2.2.2.SP7/jboss-remoting.jar${old.extended.classpath}"/>
           <param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
           <param name="client.pre_2_0_compatible" value=""/>
           <param name="server.pre_2_0_compatible" value=""/>
           <param name="client.version" value=""/>
           <param name="server.version" value="2"/>
           <param name="check_connection" value="false"/>
        </antcall>
        <antcall target="tests.versioning.all_transports_pre_2.4" inheritrefs="true">
           <param name="jboss-junit-configuration" value="2_2_2_SP7-server"/>
           <param name="server.classpath" value="${etc.dir}/lib/2.2.2.SP7/jboss-remoting.jar${old.extended.classpath}"/>
           <param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
           <param name="client.pre_2_0_compatible" value=""/>
           <param name="server.pre_2_0_compatible" value=""/>
           <param name="client.version" value="2"/>
           <param name="server.version" value=""/>
           <param name="check_connection" value="false"/>
           <param name="check_content_type" value="true"/>
        </antcall>
      
      <!-- ******************************************************************************** -->
      <!--  Current <- -> 2.2.2.SP4 -->
        <antcall target="download.version">
           <param name="version" value="2.2.2.SP4-brew"/>
        </antcall>
        <antcall target="tests.versioning.all_transports_pre_2.4" inheritrefs="true">
           <param name="jboss-junit-configuration" value="2_2_2_SP4-client"/>
           <param name="client.classpath" value="${etc.dir}/lib/2.2.2.SP4-brew/jboss-remoting.jar${old.extended.classpath}"/>
           <param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
           <param name="client.pre_2_0_compatible" value=""/>
           <param name="server.pre_2_0_compatible" value=""/>
           <param name="client.version" value=""/>
           <param name="server.version" value="2"/>
           <param name="check_connection" value="false"/>
        </antcall>
        <antcall target="tests.versioning.all_transports_pre_2.4" inheritrefs="true">
           <param name="jboss-junit-configuration" value="2_2_2_SP4-server"/>
           <param name="server.classpath" value="${etc.dir}/lib/2.2.2.SP4-brew/jboss-remoting.jar${old.extended.classpath}"/>
           <param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
           <param name="client.pre_2_0_compatible" value=""/>
           <param name="server.pre_2_0_compatible" value=""/>
           <param name="client.version" value="2"/>
           <param name="server.version" value=""/>
           <param name="check_connection" value="false"/>
           <param name="check_content_type" value="true"/>
        </antcall>
           
      <!-- ******************************************************************************** -->
      <!--  Current <- -> 2.2.2.SP2 -->
        <antcall target="download.version">
           <param name="version" value="2.2.2.SP2"/>
        </antcall>
        <antcall target="tests.versioning.all_transports_pre_2.4" inheritrefs="true">
           <param name="jboss-junit-configuration" value="2_2_2_SP2-client"/>
           <param name="client.classpath" value="${etc.dir}/lib/2.2.2.SP2/jboss-remoting.jar${old.extended.classpath}"/>
           <param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
           <param name="client.pre_2_0_compatible" value=""/>
           <param name="server.pre_2_0_compatible" value=""/>
           <param name="client.version" value=""/>
           <param name="server.version" value="2"/>
           <param name="check_connection" value="false"/>
        </antcall>
        <antcall target="tests.versioning.all_transports_pre_2.4" inheritrefs="true">
           <param name="jboss-junit-configuration" value="2_2_2_SP2-server"/>
           <param name="server.classpath" value="${etc.dir}/lib/2.2.2.SP2/jboss-remoting.jar${old.extended.classpath}"/>
           <param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
           <param name="client.pre_2_0_compatible" value=""/>
           <param name="server.pre_2_0_compatible" value=""/>
           <param name="client.version" value="2"/>
           <param name="server.version" value=""/>
           <param name="check_connection" value="false"/>
           <param name="check_content_type" value="true"/>
        </antcall>
 
      <!-- ******************************************************************************** -->
      <!--  Current <- -> 2.2.2.SP1 -->
        <antcall target="download.version">
           <param name="version" value="2.2.2.SP1"/>
        </antcall>
        <antcall target="tests.versioning.all_transports_pre_2.4" inheritrefs="true">
           <param name="jboss-junit-configuration" value="2_2_2_SP1-client"/>
           <param name="client.classpath" value="${etc.dir}/lib/2.2.2.SP1/jboss-remoting.jar${old.extended.classpath}"/>
           <param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
           <param name="client.pre_2_0_compatible" value=""/>
           <param name="server.pre_2_0_compatible" value=""/>
           <param name="client.version" value=""/>
           <param name="server.version" value="2"/>
           <param name="check_connection" value="false"/>
        </antcall>
        <antcall target="tests.versioning.all_transports_pre_2.4" inheritrefs="true">
           <param name="jboss-junit-configuration" value="2_2_2_SP1-server"/>
           <param name="server.classpath" value="${etc.dir}/lib/2.2.2.SP1/jboss-remoting.jar${old.extended.classpath}"/>
           <param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
           <param name="client.pre_2_0_compatible" value=""/>
           <param name="server.pre_2_0_compatible" value=""/>
           <param name="client.version" value="2"/>
           <param name="server.version" value=""/>
           <param name="check_connection" value="false"/>
           <param name="check_content_type" value="true"/>
        </antcall>
      
      <!-- ******************************************************************************** -->
      <!--  Current <- -> 2.2.2.GA -->
        <antcall target="download.version">
           <param name="version" value="2.2.2.GA-brew"/>
        </antcall>
        <antcall target="tests.versioning.all_transports_pre_2.4" inheritrefs="true">
           <param name="jboss-junit-configuration" value="2_2_2_GA-client"/>
           <param name="client.classpath" value="${etc.dir}/lib/2.2.2.GA-brew/jboss-remoting.jar${old.extended.classpath}"/>
           <param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
           <param name="client.pre_2_0_compatible" value=""/>
           <param name="server.pre_2_0_compatible" value=""/>
           <param name="client.version" value=""/>
           <param name="server.version" value="2"/>
           <param name="check_connection" value="false"/>
        </antcall>
        <antcall target="tests.versioning.all_transports_pre_2.4" inheritrefs="true">
           <param name="jboss-junit-configuration" value="2_2_2_GA-server"/>
           <param name="server.classpath" value="${etc.dir}/lib/2.2.2.GA-brew/jboss-remoting.jar${old.extended.classpath}"/>
           <param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
           <param name="client.pre_2_0_compatible" value=""/>
           <param name="server.pre_2_0_compatible" value=""/>
           <param name="client.version" value="2"/>
           <param name="server.version" value=""/>
           <param name="check_connection" value="false"/>
           <param name="check_content_type" value="false"/>
        </antcall>

      <!-- ******************************************************************************** -->
      <!--  Current <- -> 2.2.1.GA -->
        <antcall target="download.version">
           <param name="version" value="2.2.1.GA"/>
        </antcall>
        <antcall target="tests.versioning.all_transports_but_bisocket" inheritrefs="true">
           <param name="jboss-junit-configuration" value="2_2_1_GA-client"/>
           <param name="client.classpath" value="${etc.dir}/lib/2.2.1.GA/jboss-remoting.jar${old.extended.classpath}"/>
           <param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
           <param name="client.pre_2_0_compatible" value=""/>
           <param name="server.pre_2_0_compatible" value=""/>
           <param name="client.version" value=""/>
           <param name="server.version" value="2"/>
           <param name="check_connection" value="false"/>
        </antcall>
        <antcall target="tests.versioning.all_transports_but_bisocket" inheritrefs="true">
           <param name="jboss-junit-configuration" value="2_2_1_GA-server"/>
           <param name="server.classpath" value="${etc.dir}/lib/2.2.1.GA/jboss-remoting.jar${old.extended.classpath}"/>
           <param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
           <param name="client.pre_2_0_compatible" value=""/>
           <param name="server.pre_2_0_compatible" value=""/>
           <param name="client.version" value="2"/>
           <param name="server.version" value=""/>
           <param name="check_connection" value="false"/>
           <param name="check_content_type" value="false"/>
        </antcall>
      
     <!-- ******************************************************************************** -->
     <!--  Current <- -> 2.2.0.SP4 -->
       <antcall target="download.version">
          <param name="version" value="2.2.0.SP4"/>
       </antcall>
       <antcall target="tests.versioning.all_transports_but_bisocket" inheritrefs="true">
          <param name="jboss-junit-configuration" value="2_2_0_SP4-client"/>
          <param name="client.classpath" value="${etc.dir}/lib/2.2.0.SP4/jboss-remoting.jar${old.extended.classpath}"/>
          <param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
          <param name="client.pre_2_0_compatible" value=""/>
          <param name="server.pre_2_0_compatible" value=""/>
          <param name="client.version" value=""/>
          <param name="server.version" value="2"/>
          <param name="check_connection" value="false"/>
       </antcall>
       <antcall target="tests.versioning.all_transports_but_bisocket" inheritrefs="true">
          <param name="jboss-junit-configuration" value="2_2_0_SP4-server"/>
          <param name="server.classpath" value="${etc.dir}/lib/2.2.0.SP4/jboss-remoting.jar${old.extended.classpath}"/>
          <param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
          <param name="client.pre_2_0_compatible" value=""/>
          <param name="server.pre_2_0_compatible" value=""/>
          <param name="client.version" value="2"/>
          <param name="server.version" value=""/>
          <param name="check_connection" value="false"/>
          <param name="check_content_type" value="false"/>
       </antcall>
      
     <!-- ******************************************************************************** -->
     <!--  Current <- -> 2.0.0.GA -->
      <antcall target="download.version">
         <param name="version" value="2.0.0.GA"/>
      </antcall>
      <antcall target="tests.versioning.all_transports_but_bisocket" inheritrefs="true">
         <param name="jboss-junit-configuration" value="2_0_0_GA-client"/>
         <param name="client.classpath" value="${etc.dir}/lib/2.0.0.GA/jboss-remoting.jar${old.extended.classpath}"/>
         <param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
         <param name="client.pre_2_0_compatible" value=""/>
         <param name="server.pre_2_0_compatible" value=""/>
         <param name="client.version" value=""/>
         <param name="server.version" value="2"/>
         <param name="check_connection" value="false"/>
      </antcall>
      <antcall target="tests.versioning.all_transports_but_bisocket" inheritrefs="true">
         <param name="jboss-junit-configuration" value="2_0_0_GA-server"/>
         <param name="server.classpath" value="${etc.dir}/lib/2.0.0.GA/jboss-remoting.jar${old.extended.classpath}"/>
         <param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
         <param name="client.pre_2_0_compatible" value=""/>
         <param name="server.pre_2_0_compatible" value=""/>
         <param name="client.version" value="2"/>
         <param name="server.version" value=""/>
         <param name="check_connection" value="false"/>
         <param name="check_content_type" value="false"/>
      </antcall>
      
     <!-- ******************************************************************************** -->
     <!--  Current <- -> 1.4.6.GA -->
      <antcall target="download.version">
         <param name="version" value="1.4.6.GA"/>
      </antcall>
      <antcall target="tests.versioning.all_but_socket_and_bisocket" inheritrefs="true">
         <param name="jboss-junit-configuration" value="1_4_6_GA-client"/>
         <param name="client.classpath" value="${etc.dir}/lib/1.4.6.GA/jboss-remoting.jar${old.extended.classpath}"/>
         <param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
         <param name="client.pre_2_0_compatible" value=""/>
         <param name="server.pre_2_0_compatible" value="true"/>
         <param name="client.version" value=""/>
         <param name="server.version" value=""/>
      </antcall>
      
      <antcall target="tests.versioning.all_but_socket_and_bisocket" inheritrefs="true">
         <param name="jboss-junit-configuration" value="1_4_6_GA-server"/>
         <param name="server.classpath" value="${etc.dir}/lib/1.4.6.GA/jboss-remoting.jar${old.extended.classpath}"/>
         <param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
         <param name="client.pre_2_0_compatible" value="true"/>
         <param name="server.pre_2_0_compatible" value=""/>
         <param name="client.version" value=""/>
         <param name="server.version" value=""/>
         <param name="check_content_type" value="false"/>
      </antcall>
      
      <antcall target="tests.versioning.socket" inheritrefs="true">
         <param name="version" value="1.4.6.GA"/>
      </antcall>
 
     <!-- ******************************************************************************** -->
     <!--  Current <- -> 1.4.4.GA -->
      <antcall target="download.version">
         <param name="version" value="1.4.4.GA"/>
      </antcall>
      <antcall target="tests.versioning.all_but_socket_and_bisocket" inheritrefs="true">
         <param name="jboss-junit-configuration" value="1_4_4_GA-client"/>
         <param name="client.classpath" value="${etc.dir}/lib/1.4.4.GA/jboss-remoting.jar${old.extended.classpath}"/>
         <param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
         <param name="client.pre_2_0_compatible" value=""/>
         <param name="server.pre_2_0_compatible" value="true"/>
         <param name="client.version" value=""/>
         <param name="server.version" value=""/>
      </antcall>
      
      <antcall target="tests.versioning.all_but_socket_and_bisocket" inheritrefs="true">
         <param name="jboss-junit-configuration" value="1_4_4_GA-server"/>
         <param name="server.classpath" value="${etc.dir}/lib/1.4.4.GA/jboss-remoting.jar${old.extended.classpath}"/>
         <param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
         <param name="client.pre_2_0_compatible" value="true"/>
         <param name="server.pre_2_0_compatible" value=""/>
         <param name="client.version" value=""/>
         <param name="server.version" value=""/>
         <param name="check_content_type" value="false"/>
      </antcall>
      
      <antcall target="tests.versioning.socket" inheritrefs="true">
         <param name="version" value="1.4.4.GA"/>
      </antcall>

     <!-- ******************************************************************************** -->
     <!--  Current <- -> 1.4.3.GA -->
      <antcall target="download.version">
         <param name="version" value="1.4.3.GA"/>
      </antcall>
      <antcall target="tests.versioning.all_but_socket_and_bisocket" inheritrefs="true">
         <param name="jboss-junit-configuration" value="1_4_3_GA-client"/>
         <param name="client.classpath" value="${etc.dir}/lib/1.4.3.GA/jboss-remoting.jar${old.extended.classpath}"/>
         <param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
         <param name="client.pre_2_0_compatible" value=""/>
         <param name="server.pre_2_0_compatible" value="true"/>
         <param name="client.version" value=""/>
         <param name="server.version" value=""/>
      </antcall>
      
      <antcall target="tests.versioning.all_but_socket_and_bisocket" inheritrefs="true">
         <param name="jboss-junit-configuration" value="1_4_3_GA-server"/>
         <param name="server.classpath" value="${etc.dir}/lib/1.4.3.GA/jboss-remoting.jar${old.extended.classpath}"/>
         <param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
         <param name="client.pre_2_0_compatible" value="true"/>
         <param name="server.pre_2_0_compatible" value=""/>
         <param name="client.version" value=""/>
         <param name="server.version" value=""/>
         <param name="check_content_type" value="false"/>
      </antcall>
      
      <antcall target="tests.versioning.socket" inheritrefs="true">
         <param name="version" value="1.4.3.GA"/>
      </antcall>
      
      <!-- ******************************************************************************** -->
      <!--  Current <- -> 1.4.0.final -->
       <!--antcall target="tests.versioning.all_but_socket_and_bisocket" inheritrefs="true">
          <param name="jboss-junit-configuration" value="1_4_0_final-client"/>
          <param name="client.classpath" value="${etc.dir}/lib/remoting_1_4_0_final/jboss-remoting.jar"/>
          <param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar"/>
          <param name="client.pre_2_0_compatible" value=""/>
          <param name="server.pre_2_0_compatible" value="true"/>
          <param name="client.version" value=""/>
          <param name="server.version" value=""/>
       </antcall>
       
       <antcall target="tests.versioning.all_but_socket_and_bisocket" inheritrefs="true">
          <param name="jboss-junit-configuration" value="1_4_0_final-server"/>
          <param name="server.classpath" value="${etc.dir}/lib/remoting_1_4_0_final/jboss-remoting.jar"/>
          <param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar"/>
          <param name="client.pre_2_0_compatible" value="true"/>
          <param name="server.pre_2_0_compatible" value=""/>
          <param name="client.version" value=""/>
          <param name="server.version" value=""/>
          <param name="check_content_type" value="false"/>
       </antcall-->
       
       <!-- 1.4.0.final does not allow turning off socket connection check -->
       <!--antcall target="tests.versioning.socket.1.4.0" inheritrefs="true">
          <param name="version" value="1_4_0_final"/>
       </antcall-->
      
      <!-- ******************************************************************************** -->
      <!--  Current <- -> 1.2.1.final -->
      <!-- Compatibility is not guaranteed with 1.2.1.final
      
       <antcall target="tests.versioning.all_but_socket" inheritrefs="true">
          <param name="jboss-junit-configuration" value="1_2_1_final-client"/>
          <param name="client.classpath" value="${etc.dir}/lib/remoting_1_2_1_final/jboss-remoting.jar"/>
          <param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar"/>
          <param name="client.pre_2_0_compatible" value=""/>
          <param name="server.pre_2_0_compatible" value="true"/>
          <param name="client.version" value=""/>
          <param name="server.version" value=""/>
       </antcall>
       
       <antcall target="tests.versioning.all_but_socket" inheritrefs="true">
          <param name="jboss-junit-configuration" value="1_2_1_final-server"/>
          <param name="server.classpath" value="${etc.dir}/lib/remoting_1_2_1_final/jboss-remoting.jar"/>
          <param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar"/>
          <param name="client.pre_2_0_compatible" value="true"/>
          <param name="server.pre_2_0_compatible" value=""/>
          <param name="client.version" value=""/>
          <param name="server.version" value=""/>
       </antcall>
       
       <antcall target="tests.versioning.socket.1.4.0" inheritrefs="true">
            <param name="version" value="1_2_1_final"/>
       </antcall>
       -->
   </target>
   
   <!-- This runs all the versioning tests against 2.x only -->
   <target name="tests.versioning.2"
           description="Runs remoting fuctional tests with different remoting 2 versions for client and server."
           depends="jars, tests.jars">
      <antcall target="tests.versioning.all_transports.2" inheritrefs="true">
         <param name="jboss-junit-configuration" value="${module.version.extension}"/>
         <param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar"/>
         <param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar"/>
      </antcall>
      <antcall target="tests.versioning.all_transports.2" inheritrefs="true">
         <param name="jboss-junit-configuration" value="2_0_0_GA-client"/>
         <param name="client.classpath" value="${etc.dir}/lib/remoting_2_0_0_GA/jboss-remoting.jar"/>
         <param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar"/>
      </antcall>
      <antcall target="tests.versioning.all_transports.2" inheritrefs="true">
         <param name="jboss-junit-configuration" value="2_0_0_GA-server"/>
         <param name="server.classpath" value="${etc.dir}/lib/remoting_2_0_0_GA/jboss-remoting.jar"/>
         <param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar"/>
      </antcall>

   </target>

   <target name="tests.versioning.all_transports.2"
           description="Runs remoting fuctional tests with different remoting versions for client and server."
           depends="jars, tests.jars">
      <mkdir dir="${output.tests.results}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <junit printsummary="true" fork="yes" includeantruntime="true" tempdir="${output.tests.tmp}">
         <classpath>
            <path refid="third_party.classpath"/>
            <path refid="tests.version.classpath"/>
         </classpath>
         <jvmarg value="-Dclient.path=${client.classpath}"/>
         <jvmarg value="-Dserver.path=${server.classpath}"/>
         <!--<jvmarg value="-Djboss.remoting.pre_2_0_compatible=${jboss.remoting.pre_2_0_compatible}"/>-->
         <sysproperty key="${java.security.manager.key}" value="${java.security.manager}"/>
         <sysproperty key="java.security.policy" value="${java.security.policy}"/>
         <sysproperty key="java.security.debug" value="${java.security.debug}"/>
         <sysproperty key="build.home" value="${basedir}"/>
         <sysproperty key="remoting.jar.dir" value="${basedir}/output/lib"/>
         <sysproperty key="log4j.jar.dir" value="${basedir}/lib/apache-log4j/lib"/>
         <sysproperty key="log4j.config.dir" value="${basedir}/src/etc"/>
         <sysproperty key="jboss-junit-configuration" value="${jboss-junit-configuration}"/>
         <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                    extension="-${jboss-junit-configuration}.xml"/>
         <batchtest fork="yes" todir="${output.tests.results}"
                    haltonfailure="no">
            <fileset dir="${tests.compile.dir}">
               <include name="**/remoting/versioning/transport/**/*TestCase.class"/>
            </fileset>
         </batchtest>
      </junit>
   </target>

   <target name="tests.versioning.all_transports"
           description="Runs remoting fuctional tests with different remoting versions for client and server.">
      <mkdir dir="${output.tests.results}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <echo>Running: ${jboss-junit-configuration}</echo>
      <junit printsummary="true" fork="yes" includeantruntime="true" tempdir="${output.tests.tmp}">
         <classpath>
            <path refid="basic.third_party.classpath"/>
            <path refid="tests.version.classpath"/>
         </classpath>
         <jvmarg value="-Dclient.path=${client.classpath}"/>
         <jvmarg value="-Dserver.path=${server.classpath}"/>
         <jvmarg value="-Dclient.version=${client.version}"/>
         <jvmarg value="-Dserver.version=${server.version}"/>
         <jvmarg value="-Dclient.pre_2_0_compatible=${client.pre_2_0_compatible}"/>
         <jvmarg value="-Dserver.pre_2_0_compatible=${server.pre_2_0_compatible}"/>
         <jvmarg value="-Dremoting.metadata=check_connection=${check_connection}"/>
         <jvmarg value="-Dcheck_content_type=${check_content_type}"/>
         <!--sysproperty key="${java.security.manager.key}" value="${java.security.manager}"/>
         <sysproperty key="java.security.policy" value="${java.security.policy}"/>
         <sysproperty key="java.security.debug" value="${java.security.debug}"/>
         <sysproperty key="build.home" value="${basedir}"/>
         <sysproperty key="remoting.jar.dir" value="${basedir}/output/lib"/>
         <sysproperty key="log4j.jar.dir" value="${basedir}/lib/apache-log4j/lib"/-->
         <sysproperty key="log4j.config.dir" value="${basedir}/src/etc"/>
         <sysproperty key="jboss-junit-configuration" value="${jboss-junit-configuration}"/>
         <sysproperty key="jrunit.logdir" value="${output.tests}"/>
         <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                    extension="-${jboss-junit-configuration}.xml"/>
         <batchtest fork="yes" todir="${output.tests.results}"
                    haltonfailure="no">
            <fileset dir="${tests.compile.dir}">
               <include name="**/remoting/versioning/transport/**/*TestCase.class"/>
               <include name="**/remoting/versioning/lease/**/*TestCase.class"/>
               <exclude name="**/multiplex/**"/>
            </fileset>
         </batchtest>
      </junit>
   </target>
   
   <target name="tests.versioning.all_transports_pre_2.4"
           description="Runs remoting fuctional tests with different remoting versions for client and server.">
      <mkdir dir="${output.tests.results}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <echo>Running: ${jboss-junit-configuration}</echo>
      <junit printsummary="true" fork="yes" includeantruntime="true" tempdir="${output.tests.tmp}">
         <classpath>
            <path refid="basic.third_party.classpath"/>
            <path refid="tests.version.classpath"/>
         </classpath>
         <jvmarg value="-Dclient.path=${client.classpath}"/>
         <jvmarg value="-Dserver.path=${server.classpath}"/>
         <jvmarg value="-Dclient.version=${client.version}"/>
         <jvmarg value="-Dserver.version=${server.version}"/>
         <jvmarg value="-Dclient.pre_2_0_compatible=${client.pre_2_0_compatible}"/>
         <jvmarg value="-Dserver.pre_2_0_compatible=${server.pre_2_0_compatible}"/>
         <jvmarg value="-Dremoting.metadata=check_connection=${check_connection}"/>
         <jvmarg value="-Dcheck_content_type=${check_content_type}"/>
         <!--sysproperty key="${java.security.manager.key}" value="${java.security.manager}"/>
         <sysproperty key="java.security.policy" value="${java.security.policy}"/>
         <sysproperty key="java.security.debug" value="${java.security.debug}"/>
         <sysproperty key="build.home" value="${basedir}"/>
         <sysproperty key="remoting.jar.dir" value="${basedir}/output/lib"/>
         <sysproperty key="log4j.jar.dir" value="${basedir}/lib/apache-log4j/lib"/>
         <sysproperty key="log4j.config.dir" value="${basedir}/src/etc"/-->
         <sysproperty key="jboss-junit-configuration" value="${jboss-junit-configuration}"/>
         <sysproperty key="jrunit.logdir" value="${output.tests}"/>
         <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                    extension="-${jboss-junit-configuration}.xml"/>
         <batchtest fork="yes" todir="${output.tests.results}"
                    haltonfailure="no">
            <fileset dir="${tests.compile.dir}">
               <include name="**/remoting/versioning/transport/**/*TestCase.class"/>
               <include name="**/remoting/versioning/lease/**/*TestCase.class"/>
               <exclude name="**/VersionRMISerializableMarshallerTestCase.class"/>
               <exclude name="**/multiplex/**"/>
            </fileset>
         </batchtest>
      </junit>
   </target>
   
   <target name="tests.versioning.all_transports_but_bisocket"
           description="Runs remoting fuctional tests with different remoting versions for client and server.">
      <mkdir dir="${output.tests.results}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <echo>Running: ${jboss-junit-configuration}</echo>
      <junit printsummary="true" fork="yes" includeantruntime="true" tempdir="${output.tests.tmp}">
         <classpath>
            <path refid="basic.third_party.classpath"/>
            <path refid="tests.version.classpath"/>
         </classpath>
         <jvmarg value="-Dclient.path=${client.classpath}"/>
         <jvmarg value="-Dserver.path=${server.classpath}"/>
         <jvmarg value="-Dclient.version=${client.version}"/>
         <jvmarg value="-Dserver.version=${server.version}"/>
         <jvmarg value="-Dclient.pre_2_0_compatible=${client.pre_2_0_compatible}"/>
         <jvmarg value="-Dserver.pre_2_0_compatible=${server.pre_2_0_compatible}"/>
         <jvmarg value="-Dremoting.metadata=check_connection=${check_connection}"/>
         <jvmarg value="-Dcheck_content_type=${check_content_type}"/>
         <!--sysproperty key="${java.security.manager.key}" value="${java.security.manager}"/>
         <sysproperty key="java.security.policy" value="${java.security.policy}"/>
         <sysproperty key="java.security.debug" value="${java.security.debug}"/>
         <sysproperty key="build.home" value="${basedir}"/>
         <sysproperty key="remoting.jar.dir" value="${basedir}/output/lib"/>
         <sysproperty key="log4j.jar.dir" value="${basedir}/lib/apache-log4j/lib"/>
         <sysproperty key="log4j.config.dir" value="${basedir}/src/etc"/-->
         <sysproperty key="jboss-junit-configuration" value="${jboss-junit-configuration}"/>
         <sysproperty key="jrunit.logdir" value="${output.tests}"/>
         <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                    extension="-${jboss-junit-configuration}.xml"/>
         <batchtest fork="yes" todir="${output.tests.results}"
                    haltonfailure="no">
            <fileset dir="${tests.compile.dir}">
               <include name="**/remoting/versioning/transport/**/*TestCase.class"/>
               <exclude name="**/bisocket/**"/>
               <exclude name="**/VersionRMISerializableMarshallerTestCase.class"/>
               <exclude name="**/multiplex/**"/>
            </fileset>
         </batchtest>
      </junit>
   </target>
   
   <target name="tests.versioning.all_but_socket_and_bisocket"
           description="Runs remoting fuctional tests with different remoting versions for client and server.">
      <mkdir dir="${output.tests.results}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <echo>Running: ${jboss-junit-configuration}</echo>
      <junit printsummary="true" fork="yes" includeantruntime="true" tempdir="${output.tests.tmp}">
         <classpath>
            <path refid="basic.third_party.classpath"/>
            <path refid="tests.version.classpath"/>
         </classpath>
         <jvmarg value="-Dclient.path=${client.classpath}"/>
         <jvmarg value="-Dserver.path=${server.classpath}"/>
         <jvmarg value="-Dclient.version=${client.version}"/>
         <jvmarg value="-Dserver.version=${server.version}"/>
         <jvmarg value="-Dclient.pre_2_0_compatible=${client.pre_2_0_compatible}"/>
         <jvmarg value="-Dserver.pre_2_0_compatible=${server.pre_2_0_compatible}"/>
         <jvmarg value="-Dcheck_content_type=${check_content_type}"/>
         <sysproperty key="jboss-junit-configuration" value="${jboss-junit-configuration}"/>
         <!--sysproperty key="${java.security.manager.key}" value="${java.security.manager}"/>
         <sysproperty key="java.security.policy" value="${java.security.policy}"/>
         <sysproperty key="java.security.debug" value="${java.security.debug}"/>
         <sysproperty key="build.home" value="${basedir}"/>
         <sysproperty key="remoting.jar.dir" value="${basedir}/output/lib"/>
         <sysproperty key="log4j.jar.dir" value="${basedir}/lib/apache-log4j/lib"/>
         <sysproperty key="log4j.config.dir" value="${basedir}/src/etc"/-->
         <sysproperty key="jrunit.logdir" value="${output.tests}"/>
         <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                    extension="-${jboss-junit-configuration}.xml"/>
         <batchtest fork="yes" todir="${output.tests.results}"
                    haltonfailure="no">
            <fileset dir="${tests.compile.dir}">
               <include name="**/remoting/versioning/transport/**/*TestCase.class"/>
               <exclude name="**/bisocket/**"/>
               <exclude name="**/socket/**"/>
               <exclude name="**/VersionRMISerializableMarshallerTestCase.class"/>
               <exclude name="**/multiplex/**"/>
            </fileset>
         </batchtest>
      </junit>
   </target>
   
   <target name="tests.versioning.socket"
           description="Runs remoting fuctional tests with different remoting versions for client and server.">
      
      <antcall target="tests.versioning.socket.1.4.0" inheritrefs="true"/>
            
      <antcall target="tests.versioning.socket.sub" inheritrefs="true">
         <param name="jboss-junit-configuration" value="${version}-client_nocheck"/>
         <param name="client.classpath" value="${etc.dir}/lib/${version}/jboss-remoting.jar${old.extended.classpath}"/>
         <param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
         <param name="client.pre_2_0_compatible" value=""/>
         <param name="server.pre_2_0_compatible" value="true"/>
         <param name="client.version" value=""/>
         <param name="server.version" value=""/>
         <param name="client.check_connection" value="false"/>
         <param name="server.check_connection" value="false"/>
      </antcall>
      
      <antcall target="tests.versioning.socket.sub" inheritrefs="true">
         <param name="jboss-junit-configuration" value="${version}-server_nocheck"/>
         <param name="server.classpath" value="${etc.dir}/lib/${version}/jboss-remoting.jar${old.extended.classpath}"/>
         <param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
         <param name="client.pre_2_0_compatible" value="true"/>
         <param name="server.pre_2_0_compatible" value=""/>
         <param name="client.version" value=""/>
         <param name="server.version" value=""/>
         <param name="client.check_connection" value="false"/>
         <param name="server.check_connection" value="false"/>
      </antcall>
   </target>
   
   <target name="tests.versioning.socket.1.4.0"
           description="Runs remoting fuctional tests with different remoting versions for client and server.">
      <antcall target="tests.versioning.socket.sub" inheritrefs="true">
         <param name="jboss-junit-configuration" value="${version}-client_check"/>
         <param name="client.classpath" value="${etc.dir}/lib/${version}/jboss-remoting.jar${old.extended.classpath}"/>
         <param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
         <param name="client.pre_2_0_compatible" value=""/>
         <param name="server.pre_2_0_compatible" value="true"/>
         <param name="client.version" value=""/>
         <param name="server.version" value=""/>
         <param name="client.check_connection" value="true"/>
         <param name="server.check_connection" value="true"/>
      </antcall>
      
      <antcall target="tests.versioning.socket.sub" inheritrefs="true">
         <param name="jboss-junit-configuration" value="${version}-client_default"/>
         <param name="client.classpath" value="${etc.dir}/lib/${version}/jboss-remoting.jar${old.extended.classpath}"/>
         <param name="server.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
         <param name="client.pre_2_0_compatible" value=""/>
         <param name="server.pre_2_0_compatible" value="true"/>
         <param name="client.version" value=""/>
         <param name="server.version" value=""/>
         <param name="client.check_connection" value=""/>
         <param name="server.check_connection" value=""/>
      </antcall>

      <antcall target="tests.versioning.socket.sub" inheritrefs="true">
         <param name="jboss-junit-configuration" value="${version}-server_check"/>
         <param name="server.classpath" value="${etc.dir}/lib/${version}/jboss-remoting.jar${old.extended.classpath}"/>
         <param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
         <param name="client.pre_2_0_compatible" value="true"/>
         <param name="server.pre_2_0_compatible" value=""/>
         <param name="client.version" value=""/>
         <param name="server.version" value=""/>
         <param name="client.check_connection" value="true"/>
         <param name="server.check_connection" value="true"/>
      </antcall>
      
      <antcall target="tests.versioning.socket.sub" inheritrefs="true">
         <param name="jboss-junit-configuration" value="${version}-server_default"/>
         <param name="server.classpath" value="${etc.dir}/lib/${version}/jboss-remoting.jar${old.extended.classpath}"/>
         <param name="client.classpath" value="${output.lib.dir}/jboss-remoting.jar${extended.classpath}"/>
         <param name="client.pre_2_0_compatible" value="true"/>
         <param name="server.pre_2_0_compatible" value=""/>
         <param name="client.version" value=""/>
         <param name="server.version" value=""/>
         <param name="client.check_connection" value=""/>
         <param name="server.check_connection" value=""/>
      </antcall>
   </target>
   
   <target name="tests.versioning.socket.sub"
           description="Runs remoting fuctional tests with different remoting versions for client and server.">
      <mkdir dir="${output.tests.results}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <echo>Running: ${jboss-junit-configuration}</echo>
      <junit printsummary="true" fork="yes" includeantruntime="true" tempdir="${output.tests.tmp}">
         <classpath>
            <path refid="basic.third_party.classpath"/>
            <path refid="tests.version.classpath"/>
         </classpath>
         <jvmarg value="-Dclient.path=${client.classpath}"/>
         <jvmarg value="-Dserver.path=${server.classpath}"/>
         <jvmarg value="-Dclient.version=${client.version}"/>
         <jvmarg value="-Dserver.version=${server.version}"/>
         <jvmarg value="-Dclient.pre_2_0_compatible=${client.pre_2_0_compatible}"/>
         <jvmarg value="-Dserver.pre_2_0_compatible=${server.pre_2_0_compatible}"/>
         <jvmarg value="-Dclient.check_connection=${client.check_connection}"/>
         <jvmarg value="-Dserver.check_connection=${server.check_connection}"/>
         <!--sysproperty key="${java.security.manager.key}" value="${java.security.manager}"/>
         <sysproperty key="java.security.policy" value="${java.security.policy}"/>
         <sysproperty key="java.security.debug" value="${java.security.debug}"/>
         <sysproperty key="build.home" value="${basedir}"/>
         <sysproperty key="remoting.jar.dir" value="${basedir}/output/lib"/>
         <sysproperty key="log4j.jar.dir" value="${basedir}/lib/apache-log4j/lib"/>
         <sysproperty key="log4j.config.dir" value="${basedir}/src/etc"/-->
         <sysproperty key="jboss-junit-configuration" value="${jboss-junit-configuration}"/>
         <sysproperty key="jrunit.logdir" value="${output.tests}"/>
         <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                    extension="-${jboss-junit-configuration}.xml"/>
         <batchtest fork="yes" todir="${output.tests.results}"
                    haltonfailure="no">
            <fileset dir="${tests.compile.dir}">
               <include name="**/remoting/versioning/transport/**/socket/**/*TestCase.class"/>
            </fileset>
         </batchtest>
      </junit>
   </target>

   <target name="tests.versioning.no_multiplex"
           description="Runs remoting fuctional tests with different remoting versions for client and server.">
      <mkdir dir="${output.tests.results}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <junit printsummary="true" fork="yes" includeantruntime="true" tempdir="${output.tests.tmp}">
         <classpath>
            <path refid="third_party.classpath"/>
            <path refid="tests.version.classpath"/>
         </classpath>
         <jvmarg value="-Dclient.path=${client.classpath}"/>
         <jvmarg value="-Dserver.path=${server.classpath}"/>
         <jvmarg value="-Djboss.remoting.pre_2_0_compatible=${jboss.remoting.pre_2_0_compatible}"/>
         <sysproperty key="${java.security.manager.key}" value="${java.security.manager}"/>
         <sysproperty key="java.security.policy" value="${java.security.policy}"/>
         <sysproperty key="java.security.debug" value="${java.security.debug}"/>
         <sysproperty key="build.home" value="${basedir}"/>
         <sysproperty key="remoting.jar.dir" value="${basedir}/output/lib"/>
         <sysproperty key="log4j.jar.dir" value="${basedir}/lib/apache-log4j/lib"/>
         <sysproperty key="log4j.config.dir" value="${basedir}/src/etc"/>
         <sysproperty key="jboss-junit-configuration" value="${jboss-junit-configuration}"/>
         <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                    extension="-${jboss-junit-configuration}.xml"/>
         <batchtest fork="yes" todir="${output.tests.results}"
                    haltonfailure="no">
            <fileset dir="${tests.compile.dir}">
               <include name="**/remoting/versioning/transport/**/*TestCase.class"/>
               <exclude name="**/remoting/versioning/transport/multiplex/**"/>
            </fileset>
         </batchtest>
      </junit>
   </target>


   <target name="tests.versioning.core"
           description="Runs remoting fuctional tests with different remoting versions for client and server."
           depends="jars, tests.jars">
      <mkdir dir="${output.tests.results}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <junit printsummary="true" fork="yes" includeantruntime="true" tempdir="${output.tests.tmp}">
         <classpath>
            <path refid="third_party.classpath"/>
            <path refid="tests.version.classpath"/>
         </classpath>
         <jvmarg value="-Dclient.path=${client.classpath}"/>
         <jvmarg value="-Dserver.path=${server.classpath}"/>
         <jvmarg value="-Djboss.remoting.pre_2_0_compatible=${jboss.remoting.pre_2_0_compatible}"/>
         <sysproperty key="${java.security.manager.key}" value="${java.security.manager}"/>
         <sysproperty key="java.security.policy" value="${java.security.policy}"/>
         <sysproperty key="java.security.debug" value="${java.security.debug}"/>
         <sysproperty key="build.home" value="${basedir}"/>
         <sysproperty key="remoting.jar.dir" value="${basedir}/output/lib"/>
         <sysproperty key="log4j.jar.dir" value="${basedir}/lib/apache-log4j/lib"/>
         <sysproperty key="log4j.config.dir" value="${basedir}/src/etc"/>
         <sysproperty key="jboss-junit-configuration" value="${jboss-junit-configuration}"/>
         <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                    extension="-${jboss-junit-configuration}.xml"/>
         <batchtest fork="yes" todir="${output.tests.results}"
                    haltonfailure="no">
            <fileset dir="${tests.compile.dir}">
               <include name="**/remoting/versioning/transport/**/*TestCase.class"/>
               <!--<exclude name="**/remoting/versioning/transport/multiplex/**"/>-->
               <!--<exclude name="**/remoting/versioning/transport/rmi/**"/>-->
               <!--<exclude name="**/remoting/versioning/transport/socket/**"/>-->
            </fileset>
         </batchtest>
      </junit>
   </target>


   <!-- Tests only the multiplex transport -->
   <target name="tests.multiplex" depends="tests.jars">
      <mkdir dir="${output.tests.results}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <junit printsummary="true" fork="yes" includeantruntime="true" tempdir="${output.tests.tmp}">
         <jvmarg value="-Djvm.mx=256"/>
         <classpath>
            <path refid="tests.classpath"/>
            <pathelement location="${output.lib.dir}/jboss-remoting-tests.jar"/>
         </classpath>
         <!-- this is needed for the remoting.marshall.dynamic.remote.MarshallerLoadingServer -->
         <jvmarg value="-Dloader.path=${output.lib.dir}/jboss-remoting-loading-tests.jar"/>
         <formatter type="xml"/>
         <batchtest fork="yes" todir="${output.tests.results}"
                    haltonfailure="no">
            <formatter type="xml"/>
            <fileset dir="${tests.compile.dir}">
               <include name="**/remoting/transport/multiplex/**/*TestCase.class"/>
               <!-- having to remove peformance tests as running out of memory failures -->
               <exclude name="**/remoting/transport/multiplex/**/**Performance*TestCase.class"/>
               <exclude name="**/remoting/**/performance/**"/>
            </fileset>
         </batchtest>
      </junit>
   </target>

   <!-- ****************************************** -->
   <!-- ***  Start of performance test targets *** -->
   <!-- ****************************************** -->
   <target name="tests.performance" depends="configure">
      <mkdir dir="${output.tests.performance}"/>

      <echo message="${output.lib.dir}"/>
      <taskdef name="receiver" classname="org.jboss.jrunit.controller.ant.AntBenchmarkReceiver"
               classpathref="tests.classpath"/>
      <taskdef name="quit" classname="org.jboss.jrunit.controller.ant.AntQuitBenchmark" classpathref="tests.classpath"/>
      <receiver>
         <databasereceiver jdbcClass="${jdbc-driver-class}" jdbcURL="${jdbc-driver-url}"
                           jdbcUserName="${jdbc-driver-user}" jdbcPassword="${jdbc-driver-password}"
                           onlyIf="jdbc-driver-class"/>
         <filereceiver directory="${output.tests.performance}"/>
         <customreport parameter="${output.tests.performance}"
                       className="org.jboss.jrunit.controller.reporters.XrefReporter"/>
      </receiver>

      <!-- only used by multiplex transport -->
      <property name="remoting.metadata.callback" value=""/>

      <antcall target="tests.performance.serialization.java" inheritrefs="true">
         <param name="remoting.host" value="localhost"/>
      </antcall>
      <antcall target="tests.performance.serialization.jboss" inheritrefs="true">
         <param name="remoting.host" value="localhost"/>
      </antcall>

      <quit/>

   </target>

   <target name="tests.performance.serialization.java" depends="configure">

      <antcall target="tests.performance.rmi" inheritrefs="true">
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=java"/>
         <param name="serialization" value="java"/>
      </antcall>
      <antcall target="tests.performance.socket" inheritrefs="true">
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=java"/>
         <param name="serialization" value="java"/>
      </antcall>
      <antcall target="tests.performance.http" inheritrefs="true">
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=java"/>
         <param name="serialization" value="java"/>
      </antcall>
      <antcall target="tests.performance.bisocket" inheritrefs="true">
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=java"/>
         <param name="serialization" value="java"/>
      </antcall>

      <antcall target="tests.performance.raw.rmi" inheritrefs="true">
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=java"/>
         <param name="serialization" value="java"/>
      </antcall>

      <antcall target="tests.performance.raw.socket" inheritrefs="true">
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=java"/>
         <param name="serialization" value="java"/>
      </antcall>

      <antcall target="tests.performance.spring.rmi" inheritrefs="true">
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=java"/>
         <param name="serialization" value="java"/>
      </antcall>


   </target>

   <target name="tests.performance.serialization.jboss" depends="configure" unless="isJDK4">

      <antcall target="tests.performance.rmi" inheritrefs="true">
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=jboss"/>
         <param name="serialization" value="jboss"/>
      </antcall>
      <antcall target="tests.performance.socket" inheritrefs="true">
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=jboss"/>
         <param name="serialization" value="jboss"/>
      </antcall>
      <antcall target="tests.performance.http" inheritrefs="true">
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=jboss"/>
         <param name="serialization" value="jboss"/>
      </antcall>
      <antcall target="tests.performance.bisocket" inheritrefs="true">
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=jboss"/>
         <param name="serialization" value="jboss"/>
      </antcall>

   </target>

   <target name="tests.performance.sequence" depends="configure">

      <mkdir dir="${output.tests.performance}"/>
      <echo message="${output.lib.dir}"/>
      <taskdef name="receiver" classname="org.jboss.jrunit.controller.ant.AntBenchmarkReceiver"
               classpathref="tests.classpath"/>
      <taskdef name="quit" classname="org.jboss.jrunit.controller.ant.AntQuitBenchmark" classpathref="tests.classpath"/>
      <receiver>
         <databasereceiver jdbcClass="${jdbc-driver-class}" jdbcURL="${jdbc-driver-url}"
                           jdbcUserName="${jdbc-driver-user}" jdbcPassword="${jdbc-driver-password}"
                           onlyIf="jdbc-driver-class"/>
         <filereceiver directory="${output.tests.performance}"/>
         <customreport parameter="${output.tests.performance}"
                       className="org.jboss.jrunit.controller.reporters.XrefReporter"/>
      </receiver>

      <antcall target="tests.performance.sequence.http" inheritrefs="true"/>
      <antcall target="tests.performance.sequence.multiplex" inheritrefs="true"/>
      <antcall target="tests.performance.sequence.rmi" inheritrefs="true"/>
      <antcall target="tests.performance.sequence.socket" inheritrefs="true"/>
      <antcall target="tests.performance.sequence.raw_rmi" inheritrefs="true"/>
      <antcall target="tests.performance.sequence.raw_socket" inheritrefs="true"/>
      <antcall target="tests.performance.sequence.spring_rmi" inheritrefs="true"/>
   </target>

   <target name="tests.performance.sequence.http" depends="configure">
      <antcall target="tests.performance.seq.run" inheritrefs="true">
         <param name="target" value="tests.performance.seq.run.single"/>
         <param name="transport" value="http"/>
         <param name="remoting.metadata.callback" value=""/>
      </antcall>
   </target>

   <target name="tests.performance.sequence.multiplex" depends="configure">
      <antcall target="tests.performance.seq.run" inheritrefs="true">
         <param name="target" value="tests.performance.seq.run.single"/>
         <param name="transport" value="multiplex"/>
         <param name="remoting.metadata.callback" value="&amp;connectHost=localhost&amp;connectPort=9090"/>
      </antcall>
   </target>

   <target name="tests.performance.sequence.rmi" depends="configure">
      <antcall target="tests.performance.seq.run" inheritrefs="true">
         <param name="target" value="tests.performance.seq.run.single"/>
         <param name="transport" value="rmi"/>
         <param name="remoting.metadata.callback" value=""/>
      </antcall>
   </target>

   <target name="tests.performance.sequence.socket" depends="configure">
      <antcall target="tests.performance.seq.run" inheritrefs="true">
         <param name="target" value="tests.performance.seq.run.single"/>
         <param name="transport" value="socket"/>
         <param name="remoting.metadata.callback" value=""/>
      </antcall>
   </target>

   <target name="tests.performance.sequence.raw_rmi" depends="configure,tests.performance.check.serialization">
      <antcall target="tests.performance.seq.run.one.java" inheritrefs="true">
         <param name="target" value="tests.performance.raw.rmi.run.single"/>
         <param name="transport" value="raw_rmi"/>
         <param name="remoting.metadata.callback" value=""/>
      </antcall>
   </target>

   <target name="tests.performance.sequence.raw_socket" depends="configure,tests.performance.check.serialization">
      <antcall target="tests.performance.seq.run.one.java" inheritrefs="true">
         <param name="target" value="tests.performance.raw.socket.run.single"/>
         <param name="transport" value="raw_socket"/>
         <param name="remoting.metadata.callback" value=""/>
      </antcall>
   </target>

   <target name="tests.performance.sequence.spring_rmi" depends="configure">
      <antcall target="tests.performance.spring.rmi.run.single" inheritrefs="true">
         <param name="remoting.host" value="localhost"/>
         <param name="transport" value="spring_rmi"/>
         <param name="numofcalls" value="${perf.seq.numofcalls}"/>
         <param name="numofclients" value="${perf.seq.numofclients}"/>
         <param name="payloadsize" value="${perf.seq.payloadsize}"/>
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value=""/>
         <param name="jboss-junit-configuration" value="spring_rmi_${perf.seq.numofcalls}_${perf.seq.numofclients}_${perf.seq.payloadsize}"/>
      </antcall>
   </target>

   <target name="tests.performance.sequence.spring_http" depends="configure">
      <antcall target="tests.performance.spring.http.run.single" inheritrefs="true">
         <param name="remoting.host" value="localhost"/>
         <param name="transport" value="spring_http"/>
         <param name="numofcalls" value="${perf.seq.numofcalls}"/>
         <param name="numofclients" value="${perf.seq.numofclients}"/>
         <param name="payloadsize" value="${perf.seq.payloadsize}"/>
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value=""/>
         <param name="jboss-junit-configuration" value="spring_http_${perf.seq.numofcalls}_${perf.seq.numofclients}_${perf.seq.payloadsize}"/>
      </antcall>
   </target>

   <target name="tests.performance.check.serialization">
      <condition property="dojava">
         <equals arg1="yes" arg2="${perf.seq.dojava}"/>
      </condition>
      <condition property="dojboss">
         <equals arg1="yes" arg2="${perf.seq.dojboss}"/>
      </condition>
   </target>

   <target name="tests.performance.seq.run" depends="tests.performance.check.serialization">
      <antcall target="tests.performance.seq.run.one.java" inheritrefs="true"/>
      <antcall target="tests.performance.seq.run.one.jboss" inheritrefs="true"/>
   </target>

   <target name="tests.performance.seq.run.one.java" if="dojava">
      <antcall target="${target}" inheritrefs="true">
         <param name="remoting.host" value="localhost"/>
         <param name="transport" value="${transport}"/>
         <param name="numofcalls" value="${perf.seq.numofcalls}"/>
         <param name="numofclients" value="${perf.seq.numofclients}"/>
         <param name="payloadsize" value="${perf.seq.payloadsize}"/>
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=java"/>
         <param name="serialization" value="java"/>
         <param name="jboss-junit-configuration" value="${transport}_${perf.seq.numofcalls}_${perf.seq.numofclients}_${perf.seq.payloadsize}_java"/>
      </antcall>
   </target>

     <target name="tests.performance.seq.run.one.jboss" if="dojboss">
        <antcall target="${target}" inheritrefs="true">
           <param name="remoting.host" value="localhost"/>
           <param name="transport" value="${transport}"/>
           <param name="numofcalls" value="${perf.seq.numofcalls}"/>
           <param name="numofclients" value="${perf.seq.numofclients}"/>
           <param name="payloadsize" value="${perf.seq.payloadsize}"/>
           <param name="remoting.metadata.key" value="remoting.metadata"/>
           <param name="metadata" value="serializationtype=jboss"/>
           <param name="serialization" value="jboss"/>
           <param name="jboss-junit-configuration" value="${transport}_${perf.seq.numofcalls}_${perf.seq.numofclients}_${perf.seq.payloadsize}_jboss"/>
        </antcall>
     </target>

   <target name="tests.performance.socket.only" depends="configure">
      <mkdir dir="${output.tests.performance}"/>

      <taskdef name="receiver" classname="org.jboss.jrunit.controller.ant.AntBenchmarkReceiver"
               classpathref="tests.classpath"/>
      <taskdef name="quit" classname="org.jboss.jrunit.controller.ant.AntQuitBenchmark" classpathref="tests.classpath"/>
      <receiver>
         <databasereceiver jdbcClass="${jdbc-driver-class}" jdbcURL="${jdbc-driver-url}"
                           jdbcUserName="${jdbc-driver-user}" jdbcPassword="${jdbc-driver-password}"
                           onlyIf="jdbc-driver-class"/>
         <filereceiver directory="${output.tests.performance}"/>
         <customreport parameter="${output.tests.performance}"
                       className="org.jboss.jrunit.controller.reporters.XrefReporter"/>
      </receiver>

      <echo message="${output.lib.dir}"/>
      <antcall target="tests.performance.socket" inheritrefs="true"/>

      <quit/>

   </target>

   <target name="tests.performance.http.only" depends="configure">
      <mkdir dir="${output.tests.performance}"/>

      <taskdef name="receiver" classname="org.jboss.jrunit.controller.ant.AntBenchmarkReceiver"
               classpathref="tests.classpath"/>
      <taskdef name="quit" classname="org.jboss.jrunit.controller.ant.AntQuitBenchmark" classpathref="tests.classpath"/>
      <receiver>
         <databasereceiver jdbcClass="${jdbc-driver-class}" jdbcURL="${jdbc-driver-url}"
                           jdbcUserName="${jdbc-driver-user}" jdbcPassword="${jdbc-driver-password}"
                           onlyIf="jdbc-driver-class"/>
         <filereceiver directory="${output.tests.performance}"/>
         <customreport parameter="${output.tests.performance}"
                       className="org.jboss.jrunit.controller.reporters.XrefReporter"/>
      </receiver>

      <echo message="${output.lib.dir}"/>
      <antcall target="tests.performance.http" inheritrefs="true"/>

      <quit/>

   </target>

   <target name="tests.performance.one" depends="tests.jars">
      <!--      <mkdir dir="${output.tests.performance}/${transport}/${numofclients}/${numofcalls}/${payloadsize}"/>-->
      <mkdir dir="${output.tests.performance}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <echo>jboss-junit-configuration = ${jboss-junit-configuration}</echo>
      <junit printsummary="true" fork="yes" includeantruntime="true" tempdir="${output.tests.tmp}">
         <jvmarg value="-Dremoting.transport=socket"/>
         <jvmarg value="-Dremoting.number_of_clients=1"/>
         <jvmarg value="-Dremoting.number_of_calls=5000"/>
         <jvmarg value="-Dremoting.payload.size=1024"/>
         <classpath>
            <path refid="tests.classpath"/>
            <pathelement location="${output.lib.dir}/jboss-remoting-tests.jar"/>
         </classpath>
         <sysproperty key="jboss-junit-configuration" value="${jboss-junit-configuration}"/>
         <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                    extension="-${jboss-junit-configuration}.xml"/>
         <!--         <batchtest fork="yes" todir="${output.tests.performance}/${transport}/${numofclients}/${numofcalls}/${payloadsize}"-->
         <batchtest fork="yes" todir="${output.tests.performance}"
                    haltonfailure="no">
            <fileset dir="${tests.compile.dir}">
               <!--               <include name="**/remoting/performance/**/*TestCase.class"/> -->
               <include name="**/remoting/performance/synchronous/PerformanceTestCase.class"/>
            </fileset>
         </batchtest>
      </junit>
   </target>

   <target name="tests.stress.one" depends="tests.jars">
      <!--      <mkdir dir="${output.tests.performance}/${transport}/${numofclients}/${numofcalls}/${payloadsize}"/>-->
      <mkdir dir="${output.tests.performance}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <echo>jboss-junit-configuration = ${jboss-junit-configuration}</echo>
      <junit printsummary="true" fork="yes" includeantruntime="true" tempdir="${output.tests.tmp}">
         <jvmarg value="-Dremoting.transport=socket"/>
         <jvmarg value="-Dremoting.number_of_clients=5"/>
         <jvmarg value="-Dremoting.number_of_calls=50000"/>
         <jvmarg value="-Dremoting.payload.size=512"/>
         <jvmarg value="-Djvm.mx=256"/>
         <!--<jvmarg value="-Djrunit.result_timeout=300000"/>-->
         <!--<jvmarg value="-Djrunit.tear_down_timeout=300000"/>-->
         <!--<jvmarg value="-Djrunit.run_test_timeout=300000"/>-->
         <classpath>
            <path refid="tests.classpath"/>
            <pathelement location="${output.lib.dir}/jboss-remoting-tests.jar"/>
         </classpath>
         <sysproperty key="jboss-junit-configuration" value="${jboss-junit-configuration}"/>
         <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                    extension="-${jboss-junit-configuration}.xml"/>
         <!--         <batchtest fork="yes" todir="${output.tests.performance}/${transport}/${numofclients}/${numofcalls}/${payloadsize}"-->
         <batchtest fork="yes" todir="${output.tests.performance}"
                    haltonfailure="no">
            <fileset dir="${tests.compile.dir}">
               <!--               <include name="**/remoting/performance/**/*TestCase.class"/> -->
               <include name="**/remoting/performance/synchronous/PerformanceTestCase.class"/>
            </fileset>
         </batchtest>
      </junit>
   </target>

   <target name="tests.performance.rmi">
      <antcall target="tests.performance.run" inheritrefs="true">
         <param name="transport" value="rmi"/>
         <param name="numofcalls" value="100000"/>
         <param name="numofclients" value="1"/>
         <param name="payloadsize" value="1024"/>
         <param name="jboss-junit-configuration" value="rmi_100000_1_1024_${serialization}"/>
      </antcall>
      <antcall target="tests.performance.run" inheritrefs="true">
         <param name="transport" value="rmi"/>
         <param name="numofcalls" value="100000"/>
         <param name="numofclients" value="3"/>
         <param name="payloadsize" value="2048"/>
         <param name="jboss-junit-configuration" value="rmi_100000_3_2048_${serialization}"/>
      </antcall>
   </target>

   <target name="tests.performance.socket">
      <antcall target="tests.performance.run" inheritrefs="true">
         <param name="transport" value="socket"/>
         <param name="numofcalls" value="100000"/>
         <param name="numofclients" value="1"/>
         <param name="payloadsize" value="1024"/>
         <param name="jboss-junit-configuration" value="socket_100000_1_1024_${serialization}"/>
      </antcall>
      <antcall target="tests.performance.run" inheritrefs="true">
         <param name="transport" value="socket"/>
         <param name="numofcalls" value="100000"/>
         <param name="numofclients" value="3"/>
         <param name="payloadsize" value="2048"/>
         <param name="jboss-junit-configuration" value="socket_100000_3_2048_${serialization}"/>
      </antcall>
   </target>
   
   <target name="tests.performance.bisocket">
      <antcall target="tests.performance.run" inheritrefs="true">
         <param name="transport" value="bisocket"/>
         <param name="numofcalls" value="100000"/>
         <param name="numofclients" value="1"/>
         <param name="payloadsize" value="1024"/>
         <param name="jboss-junit-configuration" value="bisocket_100000_1_1024_${serialization}"/>
      </antcall>
      <antcall target="tests.performance.run" inheritrefs="true">
         <param name="transport" value="bisocket"/>
         <param name="numofcalls" value="100000"/>
         <param name="numofclients" value="3"/>
         <param name="payloadsize" value="2048"/>
         <param name="jboss-junit-configuration" value="bisocket_100000_3_2048_${serialization}"/>
      </antcall>
   </target>

   <target name="tests.performance.http">
      <antcall target="tests.performance.run" inheritrefs="true">
         <param name="transport" value="http"/>
         <param name="numofcalls" value="100000"/>
         <param name="numofclients" value="1"/>
         <param name="payloadsize" value="1024"/>
         <param name="jboss-junit-configuration" value="http_100000_1_1024_${serialization}"/>
      </antcall>
      <antcall target="tests.performance.run" inheritrefs="true">
         <param name="transport" value="http"/>
         <param name="numofcalls" value="100000"/>
         <param name="numofclients" value="3"/>
         <param name="payloadsize" value="2048"/>
         <param name="jboss-junit-configuration" value="http_100000_3_2048_${serialization}"/>
      </antcall>
   </target>

   <target name="tests.performance.multiplex">
      <antcall target="tests.performance.run" inheritrefs="true">
         <param name="transport" value="multiplex"/>
         <param name="numofcalls" value="100000"/>
         <param name="numofclients" value="1"/>
         <param name="payloadsize" value="1024"/>
         <param name="remoting.metadata.key" value="remoting.metadata.callback"/>
         <param name="metadata" value="${metadata}&amp;connectHost=${remoting.host}&amp;connectPort=9090"/>
         <param name="jboss-junit-configuration" value="multiplex_100000_1_1024_${serialization}"/>
      </antcall>
      <antcall target="tests.performance.run" inheritrefs="true">
         <param name="transport" value="multiplex"/>
         <param name="numofcalls" value="100000"/>
         <param name="numofclients" value="3"/>
         <param name="payloadsize" value="2048"/>
         <param name="remoting.metadata.key" value="remoting.metadata.callback"/>
         <param name="metadata" value="${metadata}&amp;connectHost=${remoting.host}&amp;connectPort=9090"/>
         <param name="jboss-junit-configuration" value="multiplex_100000_3_2048_${serialization}"/>
      </antcall>
   </target>

   <target name="tests.performance.raw.rmi">
      <antcall target="tests.performance.raw.rmi.run" inheritrefs="true">
         <param name="transport" value="raw_rmi"/>
         <param name="numofcalls" value="100000"/>
         <param name="numofclients" value="1"/>
         <param name="payloadsize" value="1024"/>
         <param name="jboss-junit-configuration" value="raw_rmi_100000_1_1024_${serialization}"/>
      </antcall>
      <antcall target="tests.performance.raw.rmi.run" inheritrefs="true">
         <param name="transport" value="raw_rmi"/>
         <param name="numofcalls" value="100000"/>
         <param name="numofclients" value="3"/>
         <param name="payloadsize" value="2048"/>
         <param name="jboss-junit-configuration" value="raw_rmi_100000_3_2048_${serialization}"/>
      </antcall>
   </target>

   <target name="tests.performance.raw.socket">
      <antcall target="tests.performance.raw.socket.run" inheritrefs="true">
         <param name="transport" value="raw_socket"/>
         <param name="numofcalls" value="100000"/>
         <param name="numofclients" value="1"/>
         <param name="payloadsize" value="1024"/>
         <param name="jboss-junit-configuration" value="raw_socket_100000_1_1024_${serialization}"/>
      </antcall>
      <antcall target="tests.performance.raw.socket.run" inheritrefs="true">
         <param name="transport" value="raw_socket"/>
         <param name="numofcalls" value="100000"/>
         <param name="numofclients" value="3"/>
         <param name="payloadsize" value="2048"/>
         <param name="jboss-junit-configuration" value="raw_socket_100000_3_2048_${serialization}"/>
      </antcall>
   </target>

   <target name="tests.performance.spring.rmi">
      <antcall target="tests.performance.spring.rmi.run" inheritrefs="true">
         <param name="transport" value="spring_rmi"/>
         <param name="numofcalls" value="100000"/>
         <param name="numofclients" value="1"/>
         <param name="payloadsize" value="1024"/>
         <param name="jboss-junit-configuration" value="spring_rmi_100000_1_1024_${serialization}"/>
      </antcall>
      <antcall target="tests.performance.spring.rmi.run" inheritrefs="true">
         <param name="transport" value="spring_rmi"/>
         <param name="numofcalls" value="100000"/>
         <param name="numofclients" value="3"/>
         <param name="payloadsize" value="2048"/>
         <param name="jboss-junit-configuration" value="spring_rmi_100000_3_2048_${serialization}"/>
      </antcall>
   </target>



   <target name="tests.performance.raw.socket.one">
      <antcall target="tests.performance.raw.socket.run" inheritrefs="true">
         <param name="transport" value="raw_socket"/>
         <param name="numofcalls" value="1000"/>
         <param name="numofclients" value="3"/>
         <param name="payloadsize" value="1024"/>
         <param name="jboss-junit-configuration" value="raw_socket_1000_3_1024_${serialization}"/>
      </antcall>
   </target>

   <target name="tests.performance.socket.one">
      <antcall target="tests.performance.run" inheritrefs="true">
         <param name="remoting.host" value="localhost"/>
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=jboss&amp;maxPoolSize=500&amp;clientMaxPoolSize=500"/>
         <param name="serialization" value="jboss"/>
         <param name="transport" value="socket"/>
         <param name="numofcalls" value="100000"/>
         <param name="numofclients" value="1"/>
         <param name="payloadsize" value="1024"/>
         <param name="jboss-junit-configuration" value="socket_100000_1_1024_jboss"/>
      </antcall>
   </target>



   <target name="tests.performance.run" depends="tests.jars">

      <!--<taskdef name="receiver" classname="org.jboss.jrunit.controller.ant.AntBenchmarkReceiver" classpathref="tests.classpath"/>-->
      <!--<taskdef name="quit" classname="org.jboss.jrunit.controller.ant.AntQuitBenchmark" classpathref="tests.classpath"/>-->
      <!--<receiver>-->
      <!--<databasereceiver jdbcClass="${jdbc-driver-class}" jdbcURL="${jdbc-driver-url}"  jdbcUserName="${jdbc-driver-user}" jdbcPassword="${jdbc-driver-password}" onlyIf="jdbc-driver-class"/>-->
      <!--<filereceiver directory="${output.tests.performance}" />-->
      <!--<customreport parameter="${output.tests.performance}" className="org.jboss.jrunit.controller.reporters.XrefReporter"/>-->
      <!--</receiver>-->


      <echo>Running performance tests for protocol: ${transport}, number of clients: ${numofclients}, payload size:
         ${payloadsize}, number of calls: ${numofcalls}</echo>
      <!--      <mkdir dir="${output.tests.performance}/${transport}/${numofclients}/${numofcalls}/${payloadsize}"/>-->
      <mkdir dir="${output.tests.performance}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <echo>jboss-junit-configuration = ${jboss-junit-configuration}</echo>
      <junit printsummary="true" fork="yes" includeantruntime="true" tempdir="${output.tests.tmp}">
         <jvmarg value="-Dremoting.transport=${transport}"/>
         <jvmarg value="-Dremoting.number_of_clients=${numofclients}"/>
         <jvmarg value="-Dremoting.number_of_calls=${numofcalls}"/>
         <jvmarg value="-Dremoting.payload.size=${payloadsize}"/>
         <jvmarg value="-Dremoting.serialization=${serialization}"/>
         <jvmarg value="-Dremoting.host=${remoting.host}"/>
         <!-- Following needed for multiplex -->
         <!--<jvmarg value="-Djvm.mx=512"/>-->
         <!--<jvmarg value="-Djrunit.result_timeout=900000"/>-->
         <!--<jvmarg value="-Djrunit.tear_down_timeout=900000"/>-->
         <!--<jvmarg value="-Djrunit.run_test_timeout=900000"/>-->
         <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
         <jvmarg value="-Dremoting.metadata.callback=${remoting.metadata.callback}"/>
         <classpath>
            <path refid="tests.classpath"/>
            <pathelement location="${output.lib.dir}/jboss-remoting-tests.jar"/>
         </classpath>
         <sysproperty key="jrunit.bind_addr"  value="${bind.address}"/>
         <sysproperty key="jrunit.mcast_addr" value="${multicast.address}"/>
         <sysproperty key="jrunit.mcast_port" value="${multicast.port}"/>
         <sysproperty key="jrunit.receive_on_all_interfaces" value="${receiveOnAllInterfaces}"/>
         <sysproperty key="jrunit.send_on_all_interfaces" value="${sendOnAllInterfaces}"/>
         <sysproperty key="jrunit.send_interfaces" value="${sendInterfaces}"/>
         <sysproperty key="jboss-junit-configuration" value="${jboss-junit-configuration}"/>
         <sysproperty key="${java.security.manager.key}" value="${java.security.manager}"/>
         <sysproperty key="java.security.policy" value="${java.security.policy}"/>
         <sysproperty key="java.security.debug" value="${java.security.debug}"/>
         <sysproperty key="build.home" value="${basedir}"/>
         <sysproperty key="remoting.jar.dir" value="${basedir}/output/lib"/>
         <sysproperty key="log4j.jar.dir" value="${basedir}/lib/apache-log4j/lib"/>
         <sysproperty key="log4j.config.dir" value="${basedir}/src/etc"/>
         <sysproperty key="ant.library.dir" value="${ant.library.dir}"/>
         <sysproperty key="jrunit.logdir" value="${output.tests.performance}"/>

         <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                    extension="-${jboss-junit-configuration}.xml"/>
         <!--         <batchtest fork="yes" todir="${output.tests.performance}/${transport}/${numofclients}/${numofcalls}/${payloadsize}"-->
         <batchtest fork="yes" todir="${output.tests.performance}"
                    haltonfailure="no">
            <fileset dir="${tests.compile.dir}">
               <!--               <include name="**/remoting/performance/**/*TestCase.class"/> -->
               <include name="**/remoting/performance/*synchronous/*TestCase.class"/>
            </fileset>
         </batchtest>
      </junit>

      <!--<quit/>-->

   </target>

   <target name="tests.performance.seq.run.single" depends="tests.jars">

      <!--<taskdef name="receiver" classname="org.jboss.jrunit.controller.ant.AntBenchmarkReceiver" classpathref="tests.classpath"/>-->
      <!--<taskdef name="quit" classname="org.jboss.jrunit.controller.ant.AntQuitBenchmark" classpathref="tests.classpath"/>-->
      <!--<receiver>-->
      <!--<databasereceiver jdbcClass="${jdbc-driver-class}" jdbcURL="${jdbc-driver-url}"  jdbcUserName="${jdbc-driver-user}" jdbcPassword="${jdbc-driver-password}" onlyIf="jdbc-driver-class"/>-->
      <!--<filereceiver directory="${output.tests.performance}" />-->
      <!--<customreport parameter="${output.tests.performance}" className="org.jboss.jrunit.controller.reporters.XrefReporter"/>-->
      <!--</receiver>-->


      <echo>Running performance tests for protocol: ${transport}, number of clients: ${numofclients}, payload size:
         ${payloadsize}, number of calls: ${numofcalls}</echo>
      <!--      <mkdir dir="${output.tests.performance}/${transport}/${numofclients}/${numofcalls}/${payloadsize}"/>-->
      <mkdir dir="${output.tests.performance}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <echo>jboss-junit-configuration = ${jboss-junit-configuration}</echo>
      <junit printsummary="true" fork="yes" includeantruntime="true" tempdir="${output.tests.tmp}">
         <jvmarg value="-Dremoting.transport=${transport}"/>
         <jvmarg value="-Dremoting.number_of_clients=${numofclients}"/>
         <jvmarg value="-Dremoting.number_of_calls=${numofcalls}"/>
         <jvmarg value="-Dremoting.payload.size=${payloadsize}"/>
         <jvmarg value="-Dremoting.serialization=${serialization}"/>
         <jvmarg value="-Dremoting.host=${remoting.host}"/>
         <!-- Following needed for multiplex -->
         <!--<jvmarg value="-Djvm.mx=512"/>-->
         <!--<jvmarg value="-Djrunit.result_timeout=900000"/>-->
         <!--<jvmarg value="-Djrunit.tear_down_timeout=900000"/>-->
         <!--<jvmarg value="-Djrunit.run_test_timeout=900000"/>-->
         <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
         <jvmarg value="-Dremoting.metadata.callback=${remoting.metadata.callback}"/>
         <classpath>
            <path refid="tests.classpath"/>
            <pathelement location="${output.lib.dir}/jboss-remoting-tests.jar"/>
         </classpath>
         <sysproperty key="jboss-junit-configuration" value="${jboss-junit-configuration}"/>
         <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                    extension="-${jboss-junit-configuration}.xml"/>
         <!--         <batchtest fork="yes" todir="${output.tests.performance}/${transport}/${numofclients}/${numofcalls}/${payloadsize}"-->
         <batchtest fork="yes" todir="${output.tests.performance}"
                    haltonfailure="no">
            <fileset dir="${tests.compile.dir}">
               <include name="**/remoting/performance/*synchronous/PerformanceTestCase.class"/>
            </fileset>
         </batchtest>
      </junit>

      <!--<quit/>-->

   </target>

   <target name="tests.performance.raw.rmi.run" depends="tests.jars">
      <echo>Running performance tests for protocol: ${transport}, number of clients: ${numofclients}, payload size:
         ${payloadsize}, number of calls: ${numofcalls}</echo>
      <mkdir dir="${output.tests.performance}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <echo>jboss-junit-configuration = ${jboss-junit-configuration}</echo>
      <junit printsummary="true" fork="yes" includeantruntime="true" tempdir="${output.tests.tmp}">
         <jvmarg value="-Dremoting.transport=${transport}"/>
         <jvmarg value="-Dremoting.number_of_clients=${numofclients}"/>
         <jvmarg value="-Dremoting.number_of_calls=${numofcalls}"/>
         <jvmarg value="-Dremoting.payload.size=${payloadsize}"/>
         <jvmarg value="-Dremoting.serialization=${serialization}"/>
         <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
         <jvmarg value="-Dremoting.host=${remoting.host}"/>
         <classpath>
            <path refid="tests.classpath"/>
            <pathelement location="${output.lib.dir}/jboss-remoting-tests.jar"/>
         </classpath>
         <sysproperty key="jboss-junit-configuration" value="${jboss-junit-configuration}"/>
         <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                    extension="-${jboss-junit-configuration}.xml"/>
         <batchtest fork="yes" todir="${output.tests.performance}"
                    haltonfailure="no">
            <fileset dir="${tests.compile.dir}">
               <include name="**/remoting/performance/raw/**/rmi/**/*TestCase.class"/>
            </fileset>
         </batchtest>
      </junit>

   </target>

   <target name="tests.performance.raw.socket.run" depends="tests.jars">
      <echo>Running performance tests for protocol: ${transport}, number of clients: ${numofclients}, payload size:
         ${payloadsize}, number of calls: ${numofcalls}</echo>
      <mkdir dir="${output.tests.performance}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <echo>jboss-junit-configuration = ${jboss-junit-configuration}</echo>
      <junit printsummary="true" fork="yes" includeantruntime="true" tempdir="${output.tests.tmp}">
         <jvmarg value="-Dremoting.transport=${transport}"/>
         <jvmarg value="-Dremoting.number_of_clients=${numofclients}"/>
         <jvmarg value="-Dremoting.number_of_calls=${numofcalls}"/>
         <jvmarg value="-Dremoting.payload.size=${payloadsize}"/>
         <jvmarg value="-Dremoting.serialization=${serialization}"/>
         <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
         <jvmarg value="-Dremoting.host=${remoting.host}"/>
         <classpath>
            <path refid="tests.classpath"/>
            <pathelement location="${output.lib.dir}/jboss-remoting-tests.jar"/>
         </classpath>
         <sysproperty key="jboss-junit-configuration" value="${jboss-junit-configuration}"/>
         <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                    extension="-${jboss-junit-configuration}.xml"/>
         <batchtest fork="yes" todir="${output.tests.performance}"
                    haltonfailure="no">
            <fileset dir="${tests.compile.dir}">
               <!--               <include name="**/remoting/performance/**/*TestCase.class"/> -->
               <include name="**/remoting/performance/raw/**/socket/**/*TestCase.class"/>
            </fileset>
         </batchtest>
      </junit>
   </target>

   <target name="tests.performance.spring.rmi.run" depends="tests.jars">
      <echo>Running performance tests for protocol: ${transport}, number of clients: ${numofclients}, payload size:
         ${payloadsize}, number of calls: ${numofcalls}</echo>
      <mkdir dir="${output.tests.performance}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <echo>jboss-junit-configuration = ${jboss-junit-configuration}</echo>
      <junit printsummary="true" fork="yes" includeantruntime="true" tempdir="${output.tests.tmp}">
         <jvmarg value="-Dremoting.transport=${transport}"/>
         <jvmarg value="-Dremoting.number_of_clients=${numofclients}"/>
         <jvmarg value="-Dremoting.number_of_calls=${numofcalls}"/>
         <jvmarg value="-Dremoting.payload.size=${payloadsize}"/>
         <jvmarg value="-Dremoting.serialization=${serialization}"/>
         <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
         <jvmarg value="-Dremoting.host=${remoting.host}"/>
         <classpath>
            <path refid="tests.classpath"/>
            <pathelement location="${output.lib.dir}/jboss-remoting-tests.jar"/>
         </classpath>
         <sysproperty key="jboss-junit-configuration" value="${jboss-junit-configuration}"/>
         <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                    extension="-${jboss-junit-configuration}.xml"/>
         <batchtest fork="yes" todir="${output.tests.performance}"
                    haltonfailure="no">
            <fileset dir="${tests.compile.dir}">
               <include name="**/remoting/performance/spring/**/rmi/**/*TestCase.class"/>
            </fileset>
         </batchtest>
      </junit>

   </target>

    <target name="tests.performance.raw.rmi.run.single" depends="tests.jars">
        <echo>Running performance tests for protocol: ${transport}, number of clients: ${numofclients}, payload size:
           ${payloadsize}, number of calls: ${numofcalls}</echo>
        <mkdir dir="${output.tests.performance}"/>
        <mkdir dir="${output.tests.tmp}"/>
        <echo>jboss-junit-configuration = ${jboss-junit-configuration}</echo>
        <junit printsummary="true" fork="yes" includeantruntime="true" tempdir="${output.tests.tmp}">
           <jvmarg value="-Dremoting.transport=${transport}"/>
           <jvmarg value="-Dremoting.number_of_clients=${numofclients}"/>
           <jvmarg value="-Dremoting.number_of_calls=${numofcalls}"/>
           <jvmarg value="-Dremoting.payload.size=${payloadsize}"/>
           <jvmarg value="-Dremoting.serialization=${serialization}"/>
           <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
           <jvmarg value="-Dremoting.host=${remoting.host}"/>
           <classpath>
              <path refid="tests.classpath"/>
              <pathelement location="${output.lib.dir}/jboss-remoting-tests.jar"/>
           </classpath>
           <sysproperty key="jboss-junit-configuration" value="${jboss-junit-configuration}"/>
           <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                      extension="-${jboss-junit-configuration}.xml"/>
           <batchtest fork="yes" todir="${output.tests.performance}"
                      haltonfailure="no">
              <fileset dir="${tests.compile.dir}">
                 <include name="**/remoting/performance/raw/**/rmi/**/RMIPerformanceTestCase.class"/>
              </fileset>
           </batchtest>
        </junit>

     </target>

   <target name="tests.performance.raw.socket.run.single" depends="tests.jars">
      <echo>Running performance tests for protocol: ${transport}, number of clients: ${numofclients}, payload size:
         ${payloadsize}, number of calls: ${numofcalls}</echo>
      <mkdir dir="${output.tests.performance}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <echo>jboss-junit-configuration = ${jboss-junit-configuration}</echo>
      <junit printsummary="true" fork="yes" includeantruntime="true" tempdir="${output.tests.tmp}">
         <jvmarg value="-Dremoting.transport=${transport}"/>
         <jvmarg value="-Dremoting.number_of_clients=${numofclients}"/>
         <jvmarg value="-Dremoting.number_of_calls=${numofcalls}"/>
         <jvmarg value="-Dremoting.payload.size=${payloadsize}"/>
         <jvmarg value="-Dremoting.serialization=${serialization}"/>
         <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
         <jvmarg value="-Dremoting.host=${remoting.host}"/>
         <classpath>
            <path refid="tests.classpath"/>
            <pathelement location="${output.lib.dir}/jboss-remoting-tests.jar"/>
         </classpath>
         <sysproperty key="jboss-junit-configuration" value="${jboss-junit-configuration}"/>
         <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                    extension="-${jboss-junit-configuration}.xml"/>
         <batchtest fork="yes" todir="${output.tests.performance}"
                    haltonfailure="no">
            <fileset dir="${tests.compile.dir}">
               <!--               <include name="**/remoting/performance/**/*TestCase.class"/> -->
               <include name="**/remoting/performance/raw/**/socket/**/SocketPerformanceTestCase.class"/>
            </fileset>
         </batchtest>
      </junit>
   </target>

   <target name="tests.performance.spring.rmi.run.single" depends="tests.jars">
      <echo>Running performance tests for protocol: ${transport}, number of clients: ${numofclients}, payload size:
         ${payloadsize}, number of calls: ${numofcalls}</echo>
      <mkdir dir="${output.tests.performance}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <echo>jboss-junit-configuration = ${jboss-junit-configuration}</echo>
      <junit printsummary="true" fork="yes" includeantruntime="true" tempdir="${output.tests.tmp}">
         <jvmarg value="-Dremoting.transport=${transport}"/>
         <jvmarg value="-Dremoting.number_of_clients=${numofclients}"/>
         <jvmarg value="-Dremoting.number_of_calls=${numofcalls}"/>
         <jvmarg value="-Dremoting.payload.size=${payloadsize}"/>
         <jvmarg value="-Dremoting.serialization=${serialization}"/>
         <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
         <jvmarg value="-Dremoting.host=${remoting.host}"/>
         <classpath>
            <path refid="tests.classpath"/>
            <pathelement location="${output.lib.dir}/jboss-remoting-tests.jar"/>
         </classpath>
         <sysproperty key="jboss-junit-configuration" value="${jboss-junit-configuration}"/>
         <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                    extension="-${jboss-junit-configuration}.xml"/>
         <batchtest fork="yes" todir="${output.tests.performance}"
                    haltonfailure="no">
            <fileset dir="${tests.compile.dir}">
               <include name="**/remoting/performance/spring/rmi/SpringRMIPerformanceTestCase.class"/>
            </fileset>
         </batchtest>
      </junit>

   </target>


   <target name="tests.performance.spring.http.run.single" depends="tests.jars">
      <echo>Running performance tests for protocol: ${transport}
            number of clients: ${numofclients}, payload size: ${payloadsize}, number of calls: ${numofcalls}</echo>
      <mkdir dir="${output.tests.performance}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <echo>jboss-junit-configuration = ${jboss-junit-configuration}</echo>
      <junit printsummary="true" fork="yes" includeantruntime="true" tempdir="${output.tests.tmp}">
         <jvmarg value="-Dremoting.transport=${transport}"/>
         <jvmarg value="-Dremoting.number_of_clients=${numofclients}"/>
         <jvmarg value="-Dremoting.number_of_calls=${numofcalls}"/>
         <jvmarg value="-Dremoting.payload.size=${payloadsize}"/>
         <jvmarg value="-Dremoting.serialization=${serialization}"/>
         <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
         <jvmarg value="-Dremoting.host=${remoting.host}"/>
         <classpath>
            <path refid="tests.classpath"/>
            <pathelement location="${output.lib.dir}/jboss-remoting-tests.jar"/>
         </classpath>
         <sysproperty key="jboss-junit-configuration" value="${jboss-junit-configuration}"/>
         <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                    extension="-${jboss-junit-configuration}.xml"/>
         <batchtest fork="yes" todir="${output.tests.performance}"
                    haltonfailure="no">
            <fileset dir="${tests.compile.dir}">
               <include name="**/remoting/performance/spring/http/client/SpringHttpPerformanceTestCase.class"/>
            </fileset>
         </batchtest>
      </junit>

   </target>

   <!-- ****************************************** -->
   <!-- ***  Start of stress test targets      *** -->
   <!-- ****************************************** -->

   <!-- runs stress test for only jboss transports -->
   <target name="tests.stress" depends="configure">
      <mkdir dir="${output.tests.performance}"/>

      <echo message="${output.lib.dir}"/>
      <taskdef name="receiver" classname="org.jboss.jrunit.controller.ant.AntBenchmarkReceiver"
               classpathref="tests.classpath"/>
      <taskdef name="quit" classname="org.jboss.jrunit.controller.ant.AntQuitBenchmark" classpathref="tests.classpath"/>
      <receiver>
         <databasereceiver jdbcClass="${jdbc-driver-class}" jdbcURL="${jdbc-driver-url}"
                           jdbcUserName="${jdbc-driver-user}" jdbcPassword="${jdbc-driver-password}"
                           onlyIf="jdbc-driver-class"/>
         <filereceiver directory="${output.tests.performance}"/>
         <customreport parameter="${output.tests.performance}"
                       className="org.jboss.jrunit.controller.reporters.XrefReporter"/>
      </receiver>

      <antcall target="tests.stress.serialization.java" inheritrefs="true">
         <param name="numofcalls" value="100000"/>
         <param name="numofclients" value="3"/>
         <param name="payloadsize" value="512"/>
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=java"/>
         <param name="serialization" value="java"/>
      </antcall>
      <antcall target="tests.stress.serialization.jboss" inheritrefs="true">
         <param name="numofcalls" value="100000"/>
         <param name="numofclients" value="3"/>
         <param name="payloadsize" value="512"/>
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=jboss"/>
         <param name="serialization" value="jboss"/>
      </antcall>

      <quit/>

   </target>

   <!-- run stress test for all transports (jboss and raw) -->
   <target name="tests.stress.all" depends="configure">
      <mkdir dir="${output.tests.performance}"/>

      <echo message="${output.lib.dir}"/>
      <taskdef name="receiver" classname="org.jboss.jrunit.controller.ant.AntBenchmarkReceiver"
               classpathref="tests.classpath"/>
      <taskdef name="quit" classname="org.jboss.jrunit.controller.ant.AntQuitBenchmark" classpathref="tests.classpath"/>
      <receiver>
         <databasereceiver jdbcClass="${jdbc-driver-class}" jdbcURL="${jdbc-driver-url}"
                           jdbcUserName="${jdbc-driver-user}" jdbcPassword="${jdbc-driver-password}"
                           onlyIf="jdbc-driver-class"/>
         <filereceiver directory="${output.tests.performance}"/>
         <customreport parameter="${output.tests.performance}"
                       className="org.jboss.jrunit.controller.reporters.XrefReporter"/>
      </receiver>

      <antcall target="tests.stress.serialization.java.all" inheritrefs="true">
         <param name="numofcalls" value="100000"/>
         <param name="numofclients" value="3"/>
         <param name="payloadsize" value="512"/>
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=java"/>
         <param name="serialization" value="java"/>
      </antcall>
      <antcall target="tests.stress.serialization.jboss" inheritrefs="true">
         <param name="numofcalls" value="100000"/>
         <param name="numofclients" value="3"/>
         <param name="payloadsize" value="512"/>
         <param name="remoting.metadata.key" value="remoting.metadata"/>
         <param name="metadata" value="serializationtype=jboss"/>
         <param name="serialization" value="jboss"/>
      </antcall>

      <quit/>

   </target>

   <target name="tests.stress.serialization.java.all" depends="configure">
      <antcall target="tests.stress.run" inheritrefs="true">
         <param name="transport" value="rmi"/>
      </antcall>
      <antcall target="tests.stress.run" inheritrefs="true">
         <param name="transport" value="socket"/>
      </antcall>
      <antcall target="tests.stress.run" inheritrefs="true">
         <param name="transport" value="http"/>
      </antcall>
      <antcall target="tests.stress.run" inheritrefs="true">
         <param name="transport" value="multiplex"/>
      </antcall>
      <antcall target="tests.stress.raw.rmi.run" inheritrefs="true">
         <param name="transport" value="raw_rmi"/>
      </antcall>
      <antcall target="tests.stress.raw.socket.run" inheritrefs="true">
         <param name="transport" value="raw_socket"/>
      </antcall>
   </target>

   <target name="tests.stress.serialization.java" depends="configure">
      <antcall target="tests.stress.run" inheritrefs="true">
         <param name="transport" value="rmi"/>
      </antcall>
      <antcall target="tests.stress.run" inheritrefs="true">
         <param name="transport" value="socket"/>
      </antcall>
      <antcall target="tests.stress.run" inheritrefs="true">
         <param name="transport" value="http"/>
      </antcall>
      <antcall target="tests.stress.run" inheritrefs="true">
         <param name="transport" value="multiplex"/>
      </antcall>
   </target>

   <target name="tests.stress.serialization.jboss" depends="configure" unless="isJDK4">
      <antcall target="tests.stress.run" inheritrefs="true">
         <param name="transport" value="rmi"/>
      </antcall>
      <antcall target="tests.stress.run" inheritrefs="true">
         <param name="transport" value="socket"/>
      </antcall>
      <antcall target="tests.stress.run" inheritrefs="true">
         <param name="transport" value="http"/>
      </antcall>
      <antcall target="tests.stress.run" inheritrefs="true">
         <param name="transport" value="bisocket"/>
      </antcall>
   </target>

   <target name="tests.stress.run" depends="tests.jars">

      <!--<taskdef name="receiver" classname="org.jboss.jrunit.controller.ant.AntBenchmarkReceiver" classpathref="tests.classpath"/>-->
      <!--<taskdef name="quit" classname="org.jboss.jrunit.controller.ant.AntQuitBenchmark" classpathref="tests.classpath"/>-->
      <!--<receiver>-->
      <!--<databasereceiver jdbcClass="${jdbc-driver-class}" jdbcURL="${jdbc-driver-url}"  jdbcUserName="${jdbc-driver-user}" jdbcPassword="${jdbc-driver-password}" onlyIf="jdbc-driver-class"/>-->
      <!--<filereceiver directory="${output.tests.performance}" />-->
      <!--<customreport parameter="${output.tests.performance}" className="org.jboss.jrunit.controller.reporters.XrefReporter"/>-->
      <!--</receiver>-->

      <property name="jboss-junit-configuration"
                value="${transport}_${numofcalls}_${numofclients}_${payloadsize}_${serialization}"/>

      <echo>Running stress tests for protocol: ${transport}, number of clients: ${numofclients}, payload size:
         ${payloadsize}, number of calls: ${numofcalls}</echo>
      <!--      <mkdir dir="${output.tests.performance}/${transport}/${numofclients}/${numofcalls}/${payloadsize}"/>-->
      <mkdir dir="${output.tests.stress}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <echo>jboss-junit-configuration = ${jboss-junit-configuration}</echo>
      <junit printsummary="true" fork="yes" includeantruntime="true" tempdir="${output.tests.tmp}">
         <jvmarg value="-Dremoting.transport=${transport}"/>
         <jvmarg value="-Dremoting.number_of_clients=${numofclients}"/>
         <jvmarg value="-Dremoting.number_of_calls=${numofcalls}"/>
         <jvmarg value="-Dremoting.payload.size=${payloadsize}"/>
         <jvmarg value="-Dremoting.serialization=${serialization}"/>
         <!--<jvmarg value="-Djvm.mx=512"/>-->
         <jvmarg value="-Djrunit.result_timeout=1200000"/>
         <jvmarg value="-Djrunit.tear_down_timeout=1200000"/>
         <jvmarg value="-Djrunit.run_test_timeout=1200000"/>
         <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
         <sysproperty key="jrunit.bind_addr"  value="${bind.address}"/>
         <sysproperty key="jrunit.mcast_addr" value="${multicast.address}"/>
         <sysproperty key="jrunit.mcast_port" value="${multicast.port}"/>
         <sysproperty key="jrunit.receive_on_all_interfaces" value="${receiveOnAllInterfaces}"/>
         <sysproperty key="jrunit.send_on_all_interfaces" value="${sendOnAllInterfaces}"/>
         <sysproperty key="jrunit.send_interfaces" value="${sendInterfaces}"/>
         <sysproperty key="jrunit.logdir" value="${output.tests.stress}"/>

         <classpath>
            <path refid="tests.classpath"/>
            <pathelement location="${output.lib.dir}/jboss-remoting-tests.jar"/>
         </classpath>
         <sysproperty key="jboss-junit-configuration" value="${jboss-junit-configuration}"/>
         <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                    extension="-${jboss-junit-configuration}.xml"/>
         <!--         <batchtest fork="yes" todir="${output.tests.performance}/${transport}/${numofclients}/${numofcalls}/${payloadsize}"-->
         <batchtest fork="yes" todir="${output.tests.performance}"
                    haltonfailure="no">
            <fileset dir="${tests.compile.dir}">
               <!--               <include name="**/remoting/performance/**/*TestCase.class"/> -->
               <include name="**/remoting/performance/*synchronous/*TestCase.class"/>
            </fileset>
         </batchtest>
      </junit>

      <!--<quit/>-->

   </target>

   <target name="tests.stress.raw.rmi.run" depends="tests.jars">
      <property name="jboss-junit-configuration"
                value="${transport}_${numofcalls}_${numofclients}_${payloadsize}_${serialization}"/>
      <echo>Running performance tests for protocol: ${transport}, number of clients: ${numofclients}, payload size:
         ${payloadsize}, number of calls: ${numofcalls}</echo>
      <mkdir dir="${output.tests.performance}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <echo>jboss-junit-configuration = ${jboss-junit-configuration}</echo>
      <junit printsummary="true" fork="yes" includeantruntime="true" tempdir="${output.tests.tmp}">
         <jvmarg value="-Dremoting.transport=${transport}"/>
         <jvmarg value="-Dremoting.number_of_clients=${numofclients}"/>
         <jvmarg value="-Dremoting.number_of_calls=${numofcalls}"/>
         <jvmarg value="-Dremoting.payload.size=${payloadsize}"/>
         <jvmarg value="-Dremoting.serialization=${serialization}"/>
         <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
         <classpath>
            <path refid="tests.classpath"/>
            <pathelement location="${output.lib.dir}/jboss-remoting-tests.jar"/>
         </classpath>
         <sysproperty key="jboss-junit-configuration" value="${jboss-junit-configuration}"/>
         <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                    extension="-${jboss-junit-configuration}.xml"/>
         <batchtest fork="yes" todir="${output.tests.performance}"
                    haltonfailure="no">
            <fileset dir="${tests.compile.dir}">
               <include name="**/remoting/performance/raw/**/rmi/**/*TestCase.class"/>
            </fileset>
         </batchtest>
      </junit>

   </target>

   <target name="tests.stress.raw.socket.run" depends="tests.jars">
      <property name="jboss-junit-configuration"
                value="${transport}_${numofcalls}_${numofclients}_${payloadsize}_${serialization}"/>
      <echo>Running performance tests for protocol: ${transport}, number of clients: ${numofclients}, payload size:
         ${payloadsize}, number of calls: ${numofcalls}</echo>
      <mkdir dir="${output.tests.performance}"/>
      <mkdir dir="${output.tests.tmp}"/>
      <echo>jboss-junit-configuration = ${jboss-junit-configuration}</echo>
      <junit printsummary="true" fork="yes" includeantruntime="true" tempdir="${output.tests.tmp}">
         <jvmarg value="-Dremoting.transport=${transport}"/>
         <jvmarg value="-Dremoting.number_of_clients=${numofclients}"/>
         <jvmarg value="-Dremoting.number_of_calls=${numofcalls}"/>
         <jvmarg value="-Dremoting.payload.size=${payloadsize}"/>
         <jvmarg value="-Dremoting.serialization=${serialization}"/>
         <jvmarg value="-D${remoting.metadata.key}=${metadata}"/>
         <classpath>
            <path refid="tests.classpath"/>
            <pathelement location="${output.lib.dir}/jboss-remoting-tests.jar"/>
         </classpath>
         <sysproperty key="jboss-junit-configuration" value="${jboss-junit-configuration}"/>
         <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
                    extension="-${jboss-junit-configuration}.xml"/>
         <batchtest fork="yes" todir="${output.tests.performance}"
                    haltonfailure="no">
            <fileset dir="${tests.compile.dir}">
               <!--               <include name="**/remoting/performance/**/*TestCase.class"/> -->
               <include name="**/remoting/performance/raw/**/socket/**/*TestCase.class"/>
            </fileset>
         </batchtest>
      </junit>
   </target>


   <!-- Test Reporting -->
   <target name="tests.report" depends="configure" unless="no.report">
      <mkdir dir="${output.tests.results}"/>
      <mkdir dir="${output.tests.performance}"/>
      <junitreport todir="${output.tests.results}">
         <fileset dir="${output.tests.results}">
            <include name="TEST-*.xml"/>
         </fileset>
         <fileset dir="${output.tests.performance}">
            <include name="**/TEST-*.xml"/>
         </fileset>
         <report format="frames" todir="${output.tests.results}/html"/>
      </junitreport>
   </target>

   <target name="tests.report.performance" depends="configure">
      <mkdir dir="${output.tests.results}"/>
      <junitreport todir="${output.tests.performance}">
         <fileset dir="${output.tests.performance}">
            <include name="**/TEST-*.xml"/>
         </fileset>
         <report format="frames" todir="${output.tests.results}/html"/>
      </junitreport>
   </target>


   <!-- ================================================================== -->
   <!--  General                                                           -->
   <!-- ================================================================== -->

   <target name="clean" depends="configure">
      <delete dir="${output.dir}" quiet="true"/>
      <delete dir="test_logs"/>
      <delete dir="src${file.separator}etc${file.separator}lib"/>
   </target>

   <target name="most" depends="clean,jars"/>

   <target name="javadoc" description="Generate javadoc" depends="configure">
      <javadoc packagenames="${javadoc.packages}"
               sourcepath="${src.dir}"
               destdir="${output.api.dir}"
               classpathref="library.classpath"
               author="true"
               version="true"
               use="true"
               bottom="Copyright &#169; 1998-2005 JBoss Inc . All Rights Reserved."
               useexternalfile="yes"/>
   </target>

   <target name="docs.generate">
      <!-- calls the ant build for the guide doc -->
      <ant dir="docs/guide"/>

      <move todir="docs">
         <fileset dir="docs/guide/build/en/pdf">
            <include name="*.pdf"/>
         </fileset>
      </move>

   </target>

   <!-- ================================================================== -->
   <!--  Distribution build                                                -->
   <!-- ================================================================== -->

   <!-- Distribution Targets -->
   <target name="dist" depends="clean,most,tests,javadoc,docs.generate,dist.only"/>

   <target name="dist.quick" depends="clean,most,dist.jars,javadoc,docs.generate,dist.only"/>

   <target name="dist.only" depends="configure">
      <delete dir="${dist.dir}"/>
      <mkdir dir="${dist.dir}"/>
      <mkdir dir="${dist.dir}/lib"/>
      <mkdir dir="${dist.dir}/docs"/>
      <mkdir dir="${dist.dir}/docs/guide"/>
      <mkdir dir="${dist.dir}/docs/guide/html"/>
      <mkdir dir="${dist.dir}/docs/guide/html_single"/>
      <mkdir dir="${dist.dir}/examples"/>
      <mkdir dir="${dist.dir}/tests"/>
      <mkdir dir="${dist.dir}/etc"/>
      <mkdir dir="${dist.dir}/src"/>
      <mkdir dir="${dist.dir}/docs/api"/>

      <antcall target="docs.generate"/>
      <copy todir="${dist.dir}/docs" filtering="no">
         <fileset dir="${basedir}/docs">
            <include name="**/*.pdf"/>
         </fileset>
      </copy>
      
      <copy todir="${dist.dir}/docs/guide/html">
        <fileset dir="${basedir}/docs/guide/build/en/html">
          <include name="**"/>
        </fileset>
      </copy>
      <copy todir="${dist.dir}/docs/guide/html_single">
        <fileset dir="${basedir}/docs/guide/build/en/html_single">
          <include name="**"/>
        </fileset>
      </copy>
      
      <copy todir="${dist.dir}" filtering="no">
         <fileset dir="${basedir}/docs">
            <include name="README.txt"/>
         </fileset>
      </copy>

      <copy todir="${dist.dir}/examples" filtering="no">
         <fileset dir="${basedir}/src/main">
            <include name="org/jboss/remoting/samples/**"/>
            <exclude name="org/jboss/remoting/samples/chat/**"/>
         </fileset>
      </copy>

      <copy todir="${dist.dir}/tests" filtering="no">
         <fileset dir="${basedir}/src/tests">
            <include name="org/jboss/test/remoting/**"/>
         </fileset>
      </copy>

      <copy todir="${dist.dir}/etc" filtering="no">
         <fileset dir="${etc.dir}">
            <include name="**/*"/>
            <exclude name="org/**"/>
            <exclude name="lib/**"/>
            <exclude name="build.xml"/>
         </fileset>
      </copy>

      <copy todir="${dist.dir}/src" filtering="no">
         <fileset dir="${src.dir}">
            <include name="**/*"/>
            <exclude name="org/jboss/remoting/samples/**"/>
         </fileset>
      </copy>

      <!-- copy javadoc -->
      <copy todir="${dist.dir}/docs/api" filtering="no">
         <fileset dir="${output.api.dir}">
            <include name="**/*"/>
         </fileset>
      </copy>

      <!-- copy example build file -->
      <copy todir="${dist.dir}/examples">
         <fileset dir="${basedir}/src/etc">
            <include name="build.xml"/>
            <include name="log4j.properties"/>
         </fileset>
      </copy>

      <!-- copy jboss libs -->
      <copy todir="${dist.dir}/lib" filtering="no">
         <fileset dir="${output.lib.dir}">
            <exclude name="*tests*.jar"/>
         </fileset>
      </copy>

      <copy todir="${dist.dir}/lib/thirdparty" filtering="no">
         <fileset dir="${lib.dir}">
            <include name="**/*.*"/>
         </fileset>
      </copy>

      <!-- add EULA -->
      <copy todir="${dist.dir}" filtering="no">
         <fileset dir="${basedir}">
            <include name="*EULA.txt"/>
         </fileset>
      </copy>

      <delete file="${output.dir}/jboss-remoting-${module.version.extension}.zip"/>
      <zip zipfile="${output.dir}/jboss-remoting-${module.version.extension}.zip">
         <zipfileset dir="${dist.dir}">
            <include name="**"/>
         </zipfileset>
      </zip>
      
      <zip zipfile="${output.dir}/jboss-remoting-src.zip">
         <zipfileset dir="${dist.dir}/src">
            <include name="**"/>
         </zipfileset>
      </zip>

      <!--delete dir="${dist.dir}"/-->
   </target>

   <target name="findbugs" depends="jars">
      <taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask"/>
      <findbugs home="${findbugs.home}" output="html" outputFile="${output.dir}/findbugs.html" >
         <class location="${output.lib.dir}/jboss-remoting.jar" />
         <sourcePath path="${src.dir}" />
         <auxClasspath refid="third_party.classpath"/>
      </findbugs>
   </target>

</project>

