<?xml version="1.0"?>
<!DOCTYPE project [
        <!ENTITY properties SYSTEM "xmls/properties.xml">
        <!ENTITY paths  SYSTEM "xmls/path_refs.xml">
        <!ENTITY taskdefs SYSTEM "xmls/taskdefs.xml">
        <!ENTITY targets SYSTEM "xmls/targets.xml">
]>

<project name="axis" default="compile" basedir=".">
<!-- =================================================================== -->
<description>
   Build file for Axis

Notes:
   This is a build file for use with the Jakarta Ant build tool.
   For more information on using the build refer to building-axis.html under docs
   

Prerequisites:
   jakarta-ant        from http://jakarta.apache.org/ant/
   wsdl4j             from http://www-124.ibm.com/developerworks/projects/wsdl4j/
   commons-logging    from http://jakarta.apache.org/commons/logging.html
   commons-discovery  from http://jakarta.apache.org/commons/discovery.html
   log4j              from http://jakarta.apache.org/log4j
   activation         from http://java.sun.com/products/javabeans/glasgow/jaf.html
   mailapi            from http://java.sun.com/products/javamail/


Optional components:
   servlet            from http://jakarta.apache.org/tomcat/
   regexp             from http://jakarta.apache.org/regexp/
   junit              from http://www.junit.org/
   jimi               from http://java.sun.com/products/jimi/
   xml-security       from http://xml.apache.org/security/
   jsse               from http://java.sun.com/products/jsse/
   commons-httpclient from http://jakarta.apache.org/commons/httpclient/
   httpunit           from http://sourceforge.net/projects/httpunit/
   jms                from http://java.sun.com/products/jms/
   castor             from http://castor.exolab.org/
   xmlbeans           from http://xmlbeans.apache.org/
   
j2ee.jar contains the mailapi, activation and servlet libraries   

Build Instructions:
   To build, run

     ant "target"

   on the directory where this file is located with the target you want.

Most useful targets:

 - compile  : creates the "axis.jar" package in "./build/lib"
 - javadocs : creates the javadocs in "./build/javadocs"
 - dist     : creates the complete binary distribution
 - srcdist  : creates the complete src distribution
 - functional-tests : attempts to build Ant task and then run
              client-server functional test
 - war      : create the web application as a WAR file
 - clean    : clean up files and directories


Custom post-compilation work:

   If you desire to do some extra work as a part of the build after the
   axis.jar is assembled, simply create an ant buildfile called
   "post-compile.xml" in this directory.  The build will automatically
   notice this and run it at the appropriate time.  This is handy for
   updating the jar file in a running server, for instance.

Authors:
  Sam Ruby  rubys@us.ibm.com
  Matthew J. Duftler duftler@us.ibm.com
  Glen Daniels gdaniels@macromedia.com

Copyright:
  Copyright (c) 2001-2002 Apache Software Foundation.
</description>
<!-- ==================================================================== -->

<!-- Include the Generic XML files -->
  &properties;
  &paths;
  &taskdefs;
  &targets;

  <!-- =================================================================== -->
  <!-- Compiles the source directory                                       -->
  <!-- =================================================================== -->
  <target name="compile" depends="printEnv" unless="compile.built"
    description="compile the source and create the jar files">
    <depend srcdir="${src.dir}" destdir="${build.dest}"
            cache="${build.dir}/dependencycache" closure="no">
    </depend>  
    <javac srcdir="${src.dir}" destdir="${build.dest}"  nowarn="${nowarn}" debug="${debug}"
      deprecation="${deprecation}" 
      source="${source}"
      target="${target}"
      classpathref="classpath">
      <exclude name="**/old/**/*" />
      <exclude name="**/bak/**"/>
      <exclude name="**/org/apache/axis/components/net/JDK14*.java" unless="jdk14.jsse.present"/>
      <exclude name="**/org/apache/axis/components/net/Sun*.java" unless="sun.jsse.present"/>
      <exclude name="**/org/apache/axis/components/net/IBM*.java" unless="ibm.jsse.present"/>
      <exclude name="**/org/apache/axis/components/net/JSSE*.java" unless="jsse.present"/>

      <exclude name="**/org/apache/axis/components/image/JDK13IO.java" unless="sun.codec.present"/>
      <exclude name="**/org/apache/axis/components/image/JimiIO.java" unless="jimi.present"/>
      <exclude name="**/org/apache/axis/components/image/MerlinIO.java" unless="merlinio.present"/>
      <exclude name="**/org/apache/axis/attachments/AttachmentsImpl.java" unless="attachments.present"/>
      <exclude name="**/org/apache/axis/attachments/AttachmentPart.java" unless="attachments.present"/>
      <exclude name="**/org/apache/axis/attachments/AttachmentUtils.java" unless="attachments.present"/>
      <exclude name="**/org/apache/axis/attachments/MimeUtils.java" unless="attachments.present"/>
      <exclude name="**/org/apache/axis/attachments/ManagedMemoryDataSource.java" unless="attachments.present"/>
      <exclude name="**/org/apache/axis/attachments/MultiPartRelatedInputStream.java" unless="attachments.present"/>
      <exclude name="**/org/apache/axis/attachments/BoundaryDelimitedStream.java" unless="attachments.present"/>
      <exclude name="**/org/apache/axis/attachments/ImageDataSource.java" unless="jimiAndAttachments.present"/>
      <exclude name="**/org/apache/axis/attachments/MimeMultipartDataSource.java" unless="attachments.present"/>
      <exclude name="**/org/apache/axis/attachments/PlainTextDataSource.java" unless="attachments.present"/>
      <exclude name="**/org/apache/axis/configuration/EngineConfigurationFactoryServlet.java" unless="servlet.present"/>
      <exclude name="**/org/apache/axis/configuration/ServletEngineConfigurationFactory.java" unless="servlet.present"/>
      <exclude name="**/org/apache/axis/encoding/ser/JAFDataHandlerSerializer.java" unless="attachments.present"/>
      <exclude name="**/org/apache/axis/encoding/ser/JAFDataHandlerDeserializerFactory.java" unless="attachments.present"/>
      <exclude name="**/org/apache/axis/encoding/ser/JAFDataHandlerSerializerFactory.java" unless="attachments.present"/>
      <exclude name="**/org/apache/axis/encoding/ser/JAFDataHandlerDeserializer.java" unless="attachments.present"/>
      <exclude name="**/org/apache/axis/handlers/MD5AttachHandler.java" unless="attachments.present"/>
      <exclude name="**/org/apache/axis/handlers/SOAPMonitorHandler.java" unless="servlet.present"/>
      <exclude name="**/org/apache/axis/monitor/SOAPMonitorService.java" unless="servlet.present"/>
      <exclude name="**/org/apache/axis/providers/ComProvider.java" unless="combridge.present"/>
      <exclude name="**/org/apache/axis/transport/http/AbstractQueryStringHandler.java" unless="servlet.present"/>
      <exclude name="**/org/apache/axis/transport/http/AdminServlet.java" unless="servlet.present"/>
      <exclude name="**/org/apache/axis/transport/http/AutoRegisterServlet.java" unless="servlet.present"/>
      <exclude name="**/org/apache/axis/transport/http/AxisHttpSession.java" unless="servlet.present"/>
      <exclude name="**/org/apache/axis/transport/http/AxisServlet.java" unless="servlet.present"/>
      <exclude name="**/org/apache/axis/transport/http/AxisServletBase.java" unless="servlet.present"/>
      <exclude name="**/org/apache/axis/transport/http/AxisHTTPSessionListener.java" unless="servlet.present"/>
      <exclude name="**/org/apache/axis/transport/http/JettyAxisServer.java" unless="jetty.present"/>
      <exclude name="**/org/apache/axis/transport/http/FilterPrintWriter.java" unless="servlet.present"/>
      <exclude name="**/org/apache/axis/transport/http/ServletEndpointContextImpl.java" unless="servlet.present"/>
      <exclude name="**/org/apache/axis/transport/http/QSWSDLHandler.java" unless="servlet.present"/>
      <exclude name="**/org/apache/axis/transport/http/QSMethodHandler.java" unless="servlet.present"/>
      <exclude name="**/org/apache/axis/transport/http/QSListHandler.java" unless="servlet.present"/>
      <exclude name="**/org/apache/axis/transport/configuration/EngineConfigurationFactoryServlet.java" unless="servlet.present"/>
      <exclude name="**/org/apache/axis/transport/http/CommonsHTTPSender.java" unless="commons-httpclient.present"/>
      <exclude name="**/org/apache/axis/components/net/CommonsHTTPClientProperties.java" unless="commons-httpclient.present"/>
      <exclude name="**/org/apache/axis/components/net/CommonsHTTPClientPropertiesFactory.java" unless="commons-httpclient.present"/>
      <exclude name="**/org/apache/axis/components/net/DefaultCommonsHTTPClientProperties.java" unless="commons-httpclient.present"/>
      <exclude name="**/org/apache/axis/transport/mail/*.java" unless="commons-httpclient.present"/>
      <exclude name="**/org/apache/axis/transport/jms/*" unless="jms.present"/>
      <exclude name="**/org/apache/axis/components/jms/BeanVendorAdapter.java" unless="jms.present"/>
      <exclude name="**/org/apache/axis/components/jms/JMSVendorAdapter.java" unless="jms.present"/>
      <exclude name="**/org/apache/axis/components/jms/JMSVendorAdapterFactory.java" unless="jms.present"/>
      <exclude name="**/org/apache/axis/components/jms/JNDIVendorAdapter.java" unless="jms.present"/>
      <exclude name="**/org/apache/axis/components/jms/SonicMQVendorAdapter.java" unless="jmsAndSonicMQ.present"/>
      <exclude name="**/org/apache/axis/components/script/BSF.java" unless="bsf.present"/>
      <exclude name="**/org/apache/axis/server/JNDIAxisServerFactory.java" unless="servlet.present"/>
      <exclude name="**/org/apache/axis/security/servlet/*" unless="servlet.present"/>
      <exclude name="**/javax/xml/soap/*.java" unless="attachments.present"/>
      <exclude name="**/javax/xml/rpc/handler/soap/*.java" unless="attachments.present"/>
      <exclude name="**/javax/xml/rpc/server/Servlet*.java" unless="servlet.present"/>
      <exclude name="**/*TestSuite.java" unless="junit.present"/>
      <exclude name="**/org/apache/axis/encoding/ser/castor/*.java" unless="castor.present"/>
      <exclude name="**/org/apache/axis/encoding/ser/xbeans/*.java" unless="xmlbeans.present"/>
      <exclude name="**/org/apache/axis/test/AxisTestBase.java" unless="junit.present"/>
      <exclude name="**/org/apache/axis/transport/mail/*.java" unless="commons-net.present"/>
      <bootclasspath refid="boot.classpath"/>
    </javac>
    <copy file="${src.dir}/org/apache/axis/server/server-config.wsdd"
          toDir="${build.dest}/org/apache/axis/server"/>
    <copy file="${src.dir}/org/apache/axis/client/client-config.wsdd"
          toDir="${build.dest}/org/apache/axis/client"/>
    <copy file="${src.dir}/log4j.properties"
          toDir="${build.dest}"/>
    <copy file="${src.dir}/simplelog.properties"
          toDir="${build.dest}"/>
    <copy toDir="${build.dest}/org/apache/axis/i18n">
        <fileset dir="${src.dir}/org/apache/axis/i18n" includes="resource*.properties"/>
    </copy>
    <copy toDir="${build.dest}/org/apache/axis/utils">
        <fileset dir="${src.dir}/org/apache/axis/utils" includes="tcpmon*.properties"/>
    </copy>

    <tstamp>
      <format property="build.time" pattern="MMM dd, yyyy (hh:mm:ss z)" locale="en"/>
    </tstamp>
    <replace dir="${build.dest}/org/apache/axis/i18n">
      <include name="resource*.properties"/>
      <replacefilter token="#today#" value="${build.time}"/>
      <replacefilter token="#axisVersion#" value="${axis.version}"/>
    </replace> 

    <tstamp/>
    <jar jarfile="${build.lib}/${name}.jar" basedir="${build.dest}" >
      <include name="org/**" />
      <include name="log4j.properties" unless="exclude.log4j.configuration"/>
      <include name="simplelog.properties"/>
      <manifest>
        <section name="org/apache/axis">
          <attribute name="Implementation-Title" value="Apache Axis"/>
          <attribute name="Implementation-Version" value="${axis.version} ${TSTAMP} ${TODAY}"/> 
          <attribute name="Implementation-Vendor" value="Apache Web Services"/>
        </section>
      </manifest>
    </jar>
    <jar jarfile="${build.lib}/${jaxrpc}.jar" basedir="${build.dest}" >
      <include name="javax/**"/>
      <exclude name="javax/xml/soap/**"/>
      <manifest>
        <section name="javax/xml/rpc">
          <attribute name="Specification-Title" value="JAX-RPC"/>
          <attribute name="Specification-Version" value="1.1"/>
          <attribute name="Specification-Vendor" value="JCP"/>
        </section>
      </manifest>
    </jar>
    <jar jarfile="${build.lib}/${saaj}.jar" basedir="${build.dest}" >
      <include name="javax/xml/soap/**"/>
      <manifest>
        <section name="javax/xml/soap">
          <attribute name="Specification-Title" value="SAAJ"/>
          <attribute name="Specification-Version" value="1.2"/>
          <attribute name="Specification-Vendor" value="JCP"/>
        </section>
      </manifest>
    </jar>
    <copy file="${wsdl4j.jar}" toDir="${build.lib}"/>
    <copy file="${commons-logging.jar}" toDir="${build.lib}"/>
    <copy file="${commons-discovery.jar}" toDir="${build.lib}"/>
    <copy file="${log4j-core.jar}" toDir="${build.lib}"/>
    <copy file="${src.dir}/log4j.properties"
          toDir="${build.lib}"/>

     <!--  Build the new org.apache.axis.tools.ant stuff -->
     <mkdir dir="${axis.home}/tools/lib" />
     <ant inheritAll="${ant.inheritAll}" inheritRefs="${ant.inheritRefs}" dir="${axis.home}/tools" antfile="build.xml" />
     <ant inheritAll="${ant.inheritAll}" inheritRefs="${ant.inheritRefs}" dir="${axis.home}/tools" antfile="build.xml" target="test"/>

     <!-- Now call any custom post-compilation people want to do -->
     <antcall target="post-compile"/>

     <property name="compile.built" value="yes"/>
     <echo message="Compile property set ${compile.built}"/>
  </target>

  <!-- =================================================================== -->
  <!-- Custom post-compilation step                                        -->
  <!-- =================================================================== -->
  <target name="post-compile" if="post-compile.present">
   <ant dir="${axis.home}" antfile="post-compile.xml"/>
  </target>

  <!-- =================================================================== -->
  <!-- Compiles the samples                                                -->
  <!-- =================================================================== -->
  <target name="samples" depends="compile" unless="samples.built"
    description="build the samples">
    <!--
      <ant inheritAll="${ant.inheritAll}" inheritRefs="${ant.inheritRefs}" dir="${axis.home}" antfile="buildSamples.xml" target="compile"/>
    -->
     <antcall target="my-forking-ant">
       <param name="dir" value="${axis.home}"/>
       <param name="file" value="buildSamples.xml"/>
       <param name="target" value="compile"/>
     </antcall>
      <property name="samples.built" value="yes"/>
      <echo message="Samples property set ${samples.built}"/>
  </target>

  <!-- =================================================================== -->
  <!-- Compiles the JUnit testcases -->
  <!-- =================================================================== -->

  <path id="test-classpath">
    <pathelement location="${build.dest}" />
    <path refid="classpath"/>
  </path>

  <target name="buildTest" depends="compile" if="junit.present" unless="tests.built">
    <echo message="junit package found ..."/>
     <antcall target="buildJunit"/>
     <antcall target="buildFunctional"/>
    <property name="tests.built" value="yes"/>
    <echo message="Tests property set ${tests.built}"/>
  </target>

  <target name="buildJunit" depends="compile" if="junit.present">
    <echo message="junit package found ..."/>
     <antcall target="my-forking-ant">
       <param name="dir" value="${axis.home}"/>
       <param name="file" value="buildTest.xml"/>
       <param name="target" value="compileJunit"/>
     </antcall>
  </target>
  <target name="buildFunctional" depends="compile" if="junit.present">
    <echo message="junit package found ..."/>
     <antcall target="my-forking-ant">
       <param name="dir" value="${axis.home}"/>
       <param name="file" value="buildTest.xml"/>
       <param name="target" value="compileFunctional"/>
     </antcall>
  </target>

  <!-- =================================================================== -->
  <!-- Compiles applets                                                    -->
  <!-- =================================================================== -->

  <target name="applets" depends="compile">
    <mkdir dir="${build.webapp}/WEB-INF/classes/"/>
    <javac srcdir="${axis.home}/webapps/axis"
      destdir="${build.webapp}/WEB-INF/classes/"
      nowarn="${nowarn}"
      debug="${debug}"
      source="${source}"
      deprecation="${deprecation}"
      classpathref="classpath">
      <include name="*.java"/>
    </javac>
  </target>

  <!-- =================================================================== -->
  <!-- Runs the JUnit package testcases -->
  <!-- =================================================================== -->
  <target name="junit" depends="buildJunit" if="junit.present"
      description="run the junit tests">
    <mkdir dir="${test.functional.reportdir}" />
    <ant inheritAll="${ant.inheritAll}" inheritRefs="${ant.inheritRefs}" dir="${axis.home}" antfile="buildTest.xml" target="junit">
      <property name="junit.present" value="${junit.present}"/>
    </ant>
  </target>

  <target name="runComponentTests" depends="compile, buildTest">
     <ant inheritAll="${ant.inheritAll}" inheritRefs="${ant.inheritRefs}" dir="${axis.home}" antfile="buildTest.xml" target="componentTest"/>
  </target>

  <!-- =================================================================== -->
  <!-- Functional tests, with server                                       -->
  <!-- =================================================================== -->
  <target name="functional-tests" depends="buildFunctional" description="functional tests">
    <ant inheritAll="${ant.inheritAll}" inheritRefs="${ant.inheritRefs}" dir="${axis.home}" antfile="buildTest.xml" target="functional-tests"/>
  </target>

  <target name="functional-tests-secure" depends="buildFunctional" description="secure functional tests">
    <ant inheritAll="${ant.inheritAll}" inheritRefs="${ant.inheritRefs}" dir="${axis.home}" antfile="buildTest.xml" target="functional-tests-secure">
      <property name="junit.present" value="${junit.present}"/>
    </ant>
  </target>

  <!-- All tests -->
  <target name="all-tests" depends="junit, functional-tests">
    <tstamp>
        <format property="tests-end-time" pattern="HH:mm:ss 'on' yyyy-MM-dd" locale="en"/>
    </tstamp>
    <echo>target all-tests of ${ant.project.name} finished at ${tests-end-time}</echo>
  </target>

  <!-- =================================================================== -->
  <!-- Creates the API documentation                                       -->
  <!-- =================================================================== -->
  <target name="javadocs" depends="printEnv" unless="javadoc.notrequired"
      description="create javadocs">

    <mkdir dir="${build.javadocs}"/>
    <javadoc packagenames="${packages}"
             sourcepath="${src.dir}"
             classpathref="classpath"
             destdir="${build.javadocs}"
             author="true"
             version="true"
             use="true"
             windowtitle="${Name} API"
             doctitle="${Name}"
             bottom="Copyright &#169; ${year} Apache Web Services Project. All Rights Reserved."
    />
  </target>

  <!-- =================================================================== -->
  <!-- Jars up the the API documentation                                   -->
  <!-- =================================================================== -->
  <target name="api-jar" depends="javadocs"
          description="create API docs jar">

    <jar jarfile="${build.lib}/${name}-api.jar" basedir="${build.javadocs}" />
    
  </target>

  <!-- =================================================================== -->
  <!-- Jars up the the source code                                         -->
  <!-- =================================================================== -->
  <target name="src-jar"
          description="create source code jar">

    <jar jarfile="${build.lib}/${name}-src.jar" basedir="${src.dir}" />
    
  </target>

  <!-- =================================================================== -->
  <!-- Build/Test EVERYTHING from scratch!                                 -->
  <!-- =================================================================== -->
  <target name="all" depends="junit, functional-tests, dist"
      description="do everything: distribution build and functional tests"
    />

  <!-- =================================================================== -->
  <!-- Creates a war file for testing                                      -->
  <!-- =================================================================== -->
  <target name="war" depends="compile, samples, applets"
      description="Create the web application" >
    <mkdir dir="${build.webapp}"/>
    <copy todir="${build.webapp}">
      <fileset dir="${webapp}"/>
    </copy>
    <copy todir="${build.webapp}/WEB-INF/lib">
      <fileset dir="${lib.dir}">
        <include name="*.jar"/>
        <exclude name="*servlet*.jar"/>
      </fileset>
      <fileset dir="${build.lib}">
        <include name="*.jar"/>
      </fileset>
    </copy>
    <copy todir="${build.webapp}/samples">
      <fileset dir="./samples"/>
    </copy>
    <copy todir="${build.webapp}/WEB-INF/classes/samples">
      <fileset dir="${build.samples}"/>
    </copy>
    <copy todir="${build.webapp}/WEB-INF">
      <fileset dir="${samples.dir}/stock">
        <include name="*.lst"/>
      </fileset>
    </copy>
    <delete>
      <fileset dir="${build.webapp}" includes="**/.svn"/>
    </delete>
    <jar jarfile="${build.dir}/${name}.war" basedir="${build.webapp}"/>
  </target>

  <!-- =================================================================== -->
  <!-- Creates the binary distribution                                     -->
  <!-- =================================================================== -->
  <target name="javadocsdist" depends="check-javadoc-needed, javadocs" unless="javadoc.notrequired">
    <mkdir dir="${dist.dir}/docs/apiDocs"/>
    <copy todir="${dist.dir}/docs/apiDocs">
      <fileset dir="${build.javadocs}"/>
    </copy>
  </target>

  <target name="dist" depends="compile, samples, applets, javadocsdist"
    description="create the full binary distribution">
    <mkdir dir="${dist.dir}"/>
    <mkdir dir="${dist.dir}/lib"/>
    <mkdir dir="${dist.dir}/samples"/>
    <mkdir dir="${dist.dir}/webapps/axis"/>
    <mkdir dir="${dist.dir}/xmls"/>
    <mkdir dir="${dist.dir}/docs"/>

    <copy todir="${dist.dir}/lib">
      <fileset dir="${build.lib}"/>
    </copy>
    <copy todir="${dist.dir}/samples">
      <fileset dir="${build.samples}"/>
      <fileset dir="./samples"/>
    </copy>
    <copy todir="${dist.dir}/docs">
      <fileset dir="${docs.dir}"/>
    </copy>
    <copy todir="${dist.dir}/webapps/axis">
      <fileset dir="${webapp}"/>
    </copy>
    <copy todir="${dist.dir}/webapps/axis/WEB-INF">
      <fileset dir="${samples.dir}/stock">
        <include name="*.lst"/>
      </fileset>
    </copy>
    <copy todir="${dist.dir}/webapps/axis/WEB-INF/lib">
      <fileset dir="${build.lib}">
        <include name="*.jar"/>
      </fileset>
    </copy>
    <copy todir="${dist.dir}/webapps/axis/WEB-INF/classes/samples">
      <fileset dir="${build.samples}"/>
    </copy>
    <copy todir="${dist.dir}/webapps/axis/">
      <fileset dir="${build.webapp}"/>
    </copy>
    <copy file="LICENSE" tofile="${dist.dir}/LICENSE"/>
    <copy file="README" tofile="${dist.dir}/README"/>
    <copy file="NOTICE" tofile="${dist.dir}/NOTICE"/>
    <copy file="release-notes.html" tofile="${dist.dir}/release-notes.html"/>
    <copy todir="${dist.dir}/xmls">
      <fileset dir="xmls"/>
    </copy>
    <zip destfile="${build.dir}/${name}-bin-${axis.dirname}.zip">
      <zipfileset prefix="${name}-${axis.dirname}" dir="${dist.dir}"/>
    </zip>
    <tar destfile="${build.dir}/${name}-bin-${axis.dirname}.tar.gz"
         longfile="gnu" compression="gzip">
      <tarfileset prefix="${name}-${axis.dirname}" dir="${dist.dir}"/>
    </tar>
  </target>

  <!-- =================================================================== -->
  <!-- Creates the source distribution                                     -->
  <!-- =================================================================== -->
  <target name="srcdist" depends="javadocsdist"
      description="Create the source distribution">
    <copy todir="${dist.dir}">
      <fileset dir=".">
        <include name="*.xml"/>
        <include name="*.html"/>
        <include name="LICENSE"/>
        <include name="README"/>
        <include name="NOTICE"/>
        <include name="docs/**"/>
        <include name="lib/**"/>
        <include name="samples/**"/>
        <include name="src/**"/>
        <include name="test/**"/>
        <include name="tools/**"/>
        <include name="webapps/**"/>
        <include name="xmls/**"/>

        <exclude name="**/.svn/**"/>
      </fileset>
    </copy>
    <copy file="LICENSE" tofile="${dist.dir}/LICENSE"/>
    <zip destfile="${build.dir}/${name}-src-${axis.dirname}.zip">
        <zipfileset prefix="${name}-${axis.dirname}" dir="${dist.dir}"/>
    </zip>
    <tar destfile="${build.dir}/${name}-src-${axis.dirname}.tar.gz"
         longfile="gnu" compression="gzip">
        <tarfileset prefix="${name}-${axis.dirname}" dir="${dist.dir}"/>
    </tar>
  </target>

  <!-- =================================================================== -->
  <!-- Interop 3                                                           -->
  <!-- =================================================================== -->
  <target name="interop3" depends=""
      description="compile the round3 interop tests">
    <ant dir="test/wsdl/interop3/emptysa"/>
    <ant dir="test/wsdl/interop3/import1"/>
    <ant dir="test/wsdl/interop3/import2"/>
    <ant dir="test/wsdl/interop3/import3"/>
    <ant dir="test/wsdl/interop3/compound1"/>
    <ant dir="test/wsdl/interop3/compound2"/>
    <ant dir="test/wsdl/interop3/docLit"/>
    <ant dir="test/wsdl/interop3/docLitParam"/>
    <ant dir="test/wsdl/interop3/rpcEnc"/>
  </target>

  <!-- =================================================================== -->
  <!-- Cleans everything                                                   -->
  <!-- =================================================================== -->
  <target name="clean"
      description="clean up, build, dist and much of the axis servlet">
    <delete dir="${build.dir}"/>
    <delete dir="${dist.dir}"/>
    <delete dir="${axis.home}/tools/lib"/>
    <delete file="client-config.wsdd"/>
    <delete file="server-config.wsdd"/>
    <delete file="webapps/axis/WEB-INF/server-config.wsdd"/>
    <delete>
      <fileset dir="webapps/axis" includes="**/*.class" />
    </delete>
    <delete dir="test-reports"/>
    <delete file="TEST-test.functional.FunctionalTests.txt"/>
    <delete file="GetQuote.wsdl"/>
    <property name="axis-ant.present" value="false"/>
  </target>
  
  <!-- =================================================================== -->
  <!-- Check the style of the Axis source                                 -->
  <!-- =================================================================== -->
  <target name="checkstyle" 
    description="Check the style of the Axis source" >
    <ant inheritAll="${ant.inheritAll}" inheritRefs="${ant.inheritRefs}" dir="${axis.home}" target="checkstyle"
      antfile="xmls/checkstyle.xml"
      >
      <property name="checkstyle.project"
        value="axis" />
      <property name="checkstyle.src.dir"
        location="${axis.home}/src" />
    </ant>
    </target>

  <target name="happyclient" depends="compile">
      <java classname="org.apache.axis.client.HappyClient"
          fork="true"
          failonerror="true">
          <classpath>
            <fileset dir="${build.lib}">
               <include name="*.jar"/>
            </fileset>
          </classpath>
      </java>
  </target>

  <target name="report">
     <antcall target="my-forking-ant">
       <param name="dir" value="${axis.home}"/>
       <param name="file" value="buildTest.xml"/>
       <param name="target" value="create-test-report"/>
     </antcall>
  </target>
</project>
