<?xml version="1.0"?>

<project name="Web Services Security (WSS4J)" default="usage" basedir=".">
    <!-- ================================================================== -->
    <description>
   Build file for WSS4J

   This file is intended for ANT, a Java based build tool.
   ANT is available from http://jakarta.apache.org/ant/index.html

Prerequisites:
    See the README file

Build Instructions:
   To build, run

     ant "target"

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

    </description>

    <target name="init">
        <property name='product.Name' value='Apache-WS-Security-J'/>
        <property name='product.name' value='wss4j'/>
        <property name='product.shortname' value='wss4j'/>

        <property name='product.version.major' value='1'/>
        <property name='product.version.minor' value='5'/>
        <property name='product.version.level' value='4'/>
        <property name='product.version' value='${product.version.major}.${product.version.minor}.${product.version.level}'/>
        <property name="year" value="2008"/>
        <property name="copyright" value="Copyright &#169; ${year} Apache WSS4J Project. All Rights Reserved."/>

        <!-- Give user a chance to override without editing this file
             (and without typing -D each time it compiles it) -->
        <property file="./build.properties"/>
        <property file="${user.home}/build.properties"/>

        <!-- Place Holder for proxy settings -->
        <property name="http.proxyHost" value=""/>
        <property name="http.proxyPort" value=""/>
        <property name="http.nonProxyHosts" value="localhost"/>
        <property name="http.proxyUser" value=""/>
        <property name="http.proxyPassword" value=""/>

        <property name="dir.doc" value="./doc"/>
        <property name="dir.dist" value="./dist"/>
        <property name="dir.libs" value="./lib"/>
        <property name="dir.endorsed.libs" value="./endorsed"/>
        <property name="dir.src" value="./src"/>
        <property name="dir.samples" value="./samples"/>
        <property name="dir.test" value="./test"/>
        <property name="dir.keys" value="./keys"/>
        <property name="dir.specs" value="./specs"/>
        <property name="dir.interop" value="./interop"/>
        <property name="dir.webapp" location="./webapps/axis" />

        <property name="build.dir" value="./build"/>
        <property name="build.classes" value="${build.dir}/classes"/>
        <property name="build.work" value="${build.dir}/work"/>
        <property name="build.webapp" location="${build.dir}/webapps/axis"/>

        <property name="jar.library" value="${product.shortname}-${product.version}.jar"/>

        <property name="build.doc" value="${build.dir}/doc"/>
        <property name="build.doc.xml" value="${build.doc}/xml"/>
        <property name="build.doc.html" value="${build.doc}/html"/>
        <property name="build.javadoc" value="${build.doc.html}/api"/>
        <property name="build.junit.xml" value="${build.doc.xml}/junit"/>
        <property name="build.junit.html" value="${build.doc.html}/junit"/>
        
        <property name="bc.provider.version" value="132"/>
        <property name="bc.provider.path" value="${dir.libs}"/>

        <condition property="jdk13.present">
          <equals arg1="${ant.java.version}" arg2="1.3"/>
        </condition>

        <condition property="jdk14.present">
          <equals arg1="${ant.java.version}" arg2="1.4"/>
        </condition>

        <condition property="jdk15.present">
          <equals arg1="${ant.java.version}" arg2="1.5"/>
        </condition>

        <condition property="merlin.ok">
            <or>
                <equals arg1="${ant.java.version}" arg2="1.4"/>
                <equals arg1="${ant.java.version}" arg2="1.5"/>
            </or>
        </condition>

        <!-- 

         for the time being following path id uses the libs in the wss4j
         lib directory only This is done to test if we really don't need
         any axis libs. After this is done we can include the
         java.class.path and leave the wss4j/lib empty. This requires that
         the CLASSPATH includes all required packages (see above

         -->
        
        
        <path id="classpath.libraries" description="3rd party libs">
            <fileset dir="${dir.libs}">
                <include name="**/*.jar"/>
                 <exclude name="**/bcprov-jdk15-*.jar" unless="jdk15.present"/>
                 <exclude name="**/bcprov-jdk13-*.jar" if="jdk15.present" />
                 <!-- <pathelement path="${java.class.path}"/> -->
            </fileset>
            <fileset dir="${dir.endorsed.libs}">
                <include name="**/*.jar"/>
                <!-- <pathelement path="${java.class.path}"/> -->
            </fileset>
            <fileset dir="${bc.provider.path}">
                <include name="bcprov-jdk15-${bc.provider.version}.jar" if="jdk15.present"/>
                <include name="bcprov-jdk13-${bc.provider.version}.jar" unless="jdk15.present" />
                <!-- <pathelement path="${java.class.path}"/> -->
            </fileset>
        </path>

        <path id="classpath.wss4j" description="wss4j classes; first try pure class files, then jars">
            <pathelement path="${build.classes}"/>
            <pathelement path="${build.dir}/${jar.library}"/>
        </path>

        <path id="classpath.library">
            <path refid="classpath.wss4j"/>
            <path refid="classpath.libraries"/>
        </path>

        <taskdef resource="axis-tasks.properties" classpathref=
              "classpath.library"/>
        <taskdef name="runaxisfunctionaltests" classname=
              "org.apache.axis.tools.ant.axis.RunAxisFunctionalTestsTask"
            loaderref="axis">
            <classpath refid="classpath.library"/>
        </taskdef>
      
        <!-- this shall include Axis jars because the tests use the
         Axis implementation of javax.xml.soap, etc. Therefore the
         CLASSPATH is included.
         -->
        <path id="classpath.test">
            <!-- classpath for test is librarypath plus junit -->
            <path refid="classpath.library"/>
<!--            <pathelement path="${java.class.path}"/> -->
        </path>

        <path id="classpath.test.jar">
            <!-- classpath for test is librarypath plus junit -->
            <path refid="classpath.library"/>
            <pathelement path="${build.dir}/${jar.library}"/>
            <pathelement path="${build.dir}/${jar.tests}"/>
        </path>

        <patternset id="distFiles">
            <include name="build.xml"/>
            <include name="LICENSE.txt"/>
            <include name="NOTICE"/>
        </patternset>

        <patternset id="srcFiles">
         <!-- for some strange reasons, I can't use ${src} but must use src -->
            <include name="src/**/*"/>
            <include name="LICENSE.txt"/>
            <include name="NOTICE"/>
        </patternset>

        <patternset id="srcSamplesFiles">
            <include name="samples/**/*"/>
        </patternset>

        <patternset id="srcUnitTestsFiles">
            <include name="test/**/*"/>
        </patternset>

        <patternset id="srcInteropFiles">
            <include name="interop/**/*"/>
        </patternset>

        <property name="javadoc.packages"
            value="
org.apache.ws.security,
org.apache.ws.security.components,
org.apache.ws.security.components.crypto,
org.apache.ws.security.message,
org.apache.ws.security.message.token,
org.apache.ws.security.util,
org.apache.ws.axis,
org.apache.ws.axis.security,
org.apache.ws.axis.security.util
"/>

      <echo level="debug">
        -------------------------------------------------------------------
        ${product.Name} v${product.version} [${year}] 
        -------------------------------------------------------------------
        Building with ${ant.version}
        using build file ${ant.file}
        Java ${java.version} located at ${java.home} 
        -------------------------------------------------------------------
        --- Property values ---
        sun.boot.class.path=${sun.boot.class.path}
      </echo>
      <pathconvert targetos="windows" property="classpath.test.as.string" 
          refid="classpath.test"/>
      <echo level="debug">
        classpath.test: ${classpath.test.as.string}
      </echo>
    </target>

    <target name="usage" depends="init">
      <echo>
         Build instructions                                                
        -------------------------------------------------------------------
                                                                           
         available targets are:                                            
                                                                           
           compile         --> compiles everything                         
           compile.library --> compiles the source code                    
           compile.samples --> compiles the samples source code            
           compile.tests   --> compiles the tests source code              
           compile.interops--> compiles the interop source code            
                                                                           
           javadoc         --> generates the API documentation             
                               (needs Java > 1.2)                          
                                                                           
           test            --> runs the defined JUnit tests                
           report          --> generates html report of test results       
                                                                           
           clean           --> cleans up all generated files and           
                               directories                                 
           jar             --> creates the JAR file                        
           gump            --> includes javadoc, compile jar and test      
                                                                           
           usage           --> provides help on using the build tool       
                               (default)                                   
                                                                           
           changelog       --> generates changelog.html                    
                                                                           
         See comments inside the build.xml file for more details.          
        -------------------------------------------------------------------
      </echo>
    </target>

    <target name="clean" depends="init"
        description="Clean up all temporary build files">
        <delete dir="${build.dir}"/>
        <delete>
            <fileset dir="." includes="before*.xml"/>
            <fileset dir="." includes="after*.xml"/>
            <fileset dir="." includes="signed*.xml"/>
            <fileset dir="." includes="server*.wsdd"/>
            <fileset dir="." includes="client*.wsdd"/>
        </delete>
        <delete dir="${dir.dist}"/>
    </target>

    <target name="prepare" depends="init"
        description="This target generates a first build directory and checks for some libraries">
        <tstamp/>
        <mkdir dir="${build.dir}"/>
        <!--<delete dir="${build.dir}/test-reports"/> -->
        <mkdir dir="${build.dir}/test-reports"/>

        <available property="junit.present" 
                classname="junit.framework.TestCase">
            <!-- check whether JUnit is available -->
            <classpath refid="classpath.test"/>
        </available>

        <available property="bc.present" classname="org.bouncycastle.jce.provider.BouncyCastleProvider">
            <!-- check whether BouncyCastle is available -->
            <classpath refid="classpath.test"/>
        </available>

        <echo level="debug">
        --- Flags (Note: If the {property name} is displayed,
                   then the component is not present)
        jdk13.present=${jdk13.present}
        jdk14.present=${jdk14.present}
        jdk15.present=${jdk15.present}
        bc.present=${bc.present}
        </echo>

    </target>

    <!-- ################################################################## -->
    <!-- ################################################################## -->
    <!-- ################################################################## -->
    <!-- ################################################################## -->
    <!-- ################################################################## -->

    <target name="prepare-src" depends="prepare" 
        description="This target copies the Java sources and brands the version information">
        <!-- create directories -->
        <mkdir dir="${build.classes}"/>
    </target>

    <target name="javadoc"
        depends="prepare-src"
        description="Generates javadoc from all .java files; this is done on the 'branded' files">
        <mkdir dir="${build.doc}"/>
        <mkdir dir="${build.doc.html}"/>
        <mkdir dir="${build.javadoc}"/>

        <javadoc destdir="${build.javadoc}"
            packagenames="${javadoc.packages}"
            classpathref="classpath.test">
            <!-- additionalparam="-breakiterator"-->
            <sourcepath>
                <pathelement location="${dir.src}"/>
                <pathelement location="${dir.test}"/>
                <pathelement location="${dir.samples}"/>
                <pathelement location="${dir.interop}"/>
            </sourcepath>
        </javadoc>
    </target>

    <!-- ################################################################## -->

    <!-- Aliases -->
    <target name="javadocs" depends="javadoc"/>
    <target name="jars" depends="jar"/>

    <!-- Collections -->
    <target name="gump" 
            depends="clean,javadoc,compile,test" 
            description="Target for the gump run"/>

    <target name="compile" 
       depends="compile.library,compile.samples, compile.tests, 
                compile.interops, fix.properties"
            description="compile everything"/>

    <target name="test"
            depends="unitTests, systemTests"
            description="tests everything"/>        

    <!-- ################################################################## -->

    <target name="fix.properties" if="jdk13.present">
        <replace dir="${build.dir}" value="org.apache.ws.security.components.crypto.BouncyCastle">
            <include name="**/*.properties"/>
            <replacetoken>org.apache.ws.security.components.crypto.Merlin</replacetoken>
        </replace>
    </target>

    <target name="compile.library" depends="prepare-src">
        <!-- Compile the java code from ${dir.src} into ${build.classes} -->
        <javac srcdir="${dir.src}" destdir="${build.classes}" debug="on" source="1.3" target="1.3">
            <classpath refid="classpath.library"/>
            <exclude name="**/Merlin.java" unless="merlin.ok"/>
            <exclude name="**/sandbox/**/*.java" if="jdk13.present" />
        </javac>
        <!-- Copy Property files -->
        <copy todir="${build.classes}">
            <fileset dir="${dir.src}">
                <include name="**/*.properties"/>
                <exclude name="**/axis/**/*.properties"/>
            </fileset>
        </copy>
    </target>

    <target name="compile.tests"
        depends="compile.interops"
        if="junit.present">

        <javac srcdir="${dir.test}" destdir="${build.classes}" debug="on" source="1.3" target="1.3">
            <classpath refid="classpath.test"/>
<!--            <exclude name="**/secconv/**/*.java"/> -->
        </javac>

        <mkdir dir="${build.work}"/>

        <javac srcdir="${build.work}" destdir="${build.classes}" debug="on" source="1.3" target="1.3">
            <classpath refid="classpath.test"/>
        </javac>

        <!-- Copy Property files -->
        <copy todir="${build.classes}">
            <fileset dir="${dir.test}" includes="**/*.properties"/>
            <fileset dir="${dir.interop}">
                <include name="**/*.properties"/>
            </fileset>
        </copy>
    </target>

    <target name="compile.samples"
        depends="compile.library">
        <!-- Compile the java code from ${dir.src} into ${build.classes} -->
        <javac srcdir="${dir.samples}"
            debug="on"
            source="1.4"
            destdir="${build.classes}" target="1.4">
            <classpath refid="classpath.library"/>
        </javac>
        <copy todir="${build.classes}">
            <fileset dir="${dir.src}" includes="**/axis/**/*.properties"/>
        </copy>
    </target>

    <target name="compile.interops"
        depends="compile.library">
        <ant dir="${dir.interop}"
            antfile="build.xml"
            target="compile"
            inheritAll="false">
        </ant>
    </target>

    <target name="systemTests" unless="skip.tests" depends="compile"
        if="junit.present"
        description="Runs all JUnit tests">
        <runaxisfunctionaltests
            url="http://localhost:8088"
            httpServerTarget="start-functional-test-http-server"
            testTarget="allTests"
            httpStopTarget="stop-functional-test-http-server"/>
    </target>

    <target name="start-functional-test-http-server" if="junit.present">
        <echo message="Starting http server."/>
        <java classname="org.apache.axis.transport.http.SimpleAxisServer" 
          fork="yes" dir="${build.dir}">
            <jvmarg value="-Djava.endorsed.dirs=${basedir}/endorsed"/>
            <classpath refid="classpath.library"/>
        </java>
    </target>

    <target name="stop-functional-test-http-server" if="junit.present">
        <echo message="Stopping http server."/>
        <java classname="org.apache.axis.client.AdminClient" fork="yes">
            <classpath refid="classpath.library"/>
            <arg line="quit"/>
        </java>
    </target>

    <target name="allTests" depends="sandboxTests, interopTests">
    </target>

    <target name="interopTests" depends="init">
        <echo message="Running system tests - BEGIN..."/>

        <path id="undeploy_xml_files">
            <fileset dir="${build.work}">
                <include name="**/undeploy.wsdd"/>
            </fileset>
        </path>
        <property name="undeploy_xml_property" refid="undeploy_xml_files"/>

        <antcall target="deployWSDD" />
        <junit printsummary="yes"
            haltonfailure="yes"
            fork="yes"
            dir="${basedir}">
            <jvmarg value="-Djava.endorsed.dirs=${basedir}/endorsed"/>
            <jvmarg value="-Dhttp.proxyHost=${http.proxyHost}"/>
            <jvmarg value="-Dhttp.proxyPort=${http.proxyPort}"/>
            <jvmarg value="-Dhttp.nonProxyHosts=${http.nonProxyHosts}"/>
            <jvmarg value="-Dhttp.proxyUser=${http.proxyUser}"/>
            <jvmarg value="-Dhttp.proxyPassword=${http.proxyPassword}"/>
            <classpath refid="classpath.test"/>
            <formatter type="xml"/>
            <batchtest todir="${build.dir}/test-reports">
                <fileset dir="${build.classes}">
                    <include name="**/interop/PackageTests.class"/>
                </fileset>
            </batchtest>
        </junit>

        <java classname="org.apache.axis.utils.Admin" fork="true">
            <classpath refid="classpath.library"/>
            <arg value="client"/>
            <arg file=
               "${build.work}/org/apache/ws/axis/oasis/ping/undeploy.wsdd"/>
        </java>

        <junit printsummary="yes"
            haltonfailure="yes"
            fork="yes"
            dir="${basedir}">
            <jvmarg value="-Djava.endorsed.dirs=${basedir}/endorsed"/>
            <jvmarg value="-Dhttp.proxyHost=${http.proxyHost}"/>
            <jvmarg value="-Dhttp.proxyPort=${http.proxyPort}"/>
            <jvmarg value="-Dhttp.nonProxyHosts=${http.nonProxyHosts}"/>
            <jvmarg value="-Dhttp.proxyUser=${http.proxyUser}"/>
            <jvmarg value="-Dhttp.proxyPassword=${http.proxyPassword}"/>
            <classpath refid="classpath.test"/>
            <formatter type="xml"/>
            <batchtest todir="${build.dir}/test-reports">
                <fileset dir="${build.classes}">
                    <include name="**/interop/TestJAXRPCHandler.class"/>
                </fileset>
            </batchtest>
        </junit>

        <java classname="org.apache.axis.client.AdminClient" fork="yes">
            <classpath refid="classpath.library"/>
            <arg line="${undeploy_xml_property}"/>
        </java>
        
        <echo message="Running system tests - END..."/>
    </target>

    <target name="unitTests" unless="skip.tests" depends="compile">
        <junit printsummary="yes"
            haltonfailure="yes"
            fork="yes"
            dir="${basedir}">
            <!-- See if this helps with Gump test failures -->
            <sysproperty key="build.clonevm" value="true"/>

            <jvmarg value="-Djava.endorsed.dirs=${basedir}/endorsed"/>
            <jvmarg value="-Dhttp.proxyHost=${http.proxyHost}"/>
            <jvmarg value="-Dhttp.proxyPort=${http.proxyPort}"/>
            <jvmarg value="-Dhttp.nonProxyHosts=${http.nonProxyHosts}"/>
            <jvmarg value="-Dhttp.proxyUser=${http.proxyUser}"/>
            <jvmarg value="-Dhttp.proxyPassword=${http.proxyPassword}"/>
            <classpath refid="classpath.test"/>
            <formatter type="xml"/>
            <batchtest todir="${build.dir}/test-reports">
                <fileset dir="${build.classes}">
                    <include name="**/wssec/PackageTests.class"/>
                    <include name="**/components/PackageTests.class"/>
             <!--<include name="**/secconv/components/PackageTests.class"/> -->
                </fileset>
            </batchtest>
        </junit>
    </target>

    <target name="sandboxTests" depends="compile">
        <java classname="org.apache.axis.client.AdminClient" fork="yes">
            <classpath refid="classpath.library"/>
            <arg line="${dir.samples}/org/apache/ws/sandbox/security/trust2/samples/deploy.wsdd"/>
        </java>

        <junit printsummary="yes"
            haltonfailure="yes"
            fork="yes"
            dir="${basedir}">
            <!-- See if this helps with Gump test failures -->
            <sysproperty key="build.clonevm" value="true"/>

            <jvmarg value="-Djava.endorsed.dirs=${basedir}/endorsed"/>
            <jvmarg value="-Dhttp.proxyHost=${http.proxyHost}"/>
            <jvmarg value="-Dhttp.proxyPort=${http.proxyPort}"/>
            <jvmarg value="-Dhttp.nonProxyHosts=${http.nonProxyHosts}"/>
            <jvmarg value="-Dhttp.proxyUser=${http.proxyUser}"/>
            <jvmarg value="-Dhttp.proxyPassword=${http.proxyPassword}"/>
            <classpath refid="classpath.test"/>
            <formatter type="xml"/>
            <batchtest todir="${build.dir}/test-reports">
                <fileset dir="${build.classes}">
                    <include name="**/sandbox/PackageTests.class"/>
                </fileset>
            </batchtest>
        </junit>

        <java classname="org.apache.axis.client.AdminClient" fork="yes">
            <classpath refid="classpath.library"/>
            <arg line="${dir.samples}/org/apache/ws/sandbox/security/trust2/samples/undeploy.wsdd"/>
        </java>
    </target>
    
    <target name="tcpmon" depends="init" description=
                "Start standalone tcp monitor application (provided by axis)">
        <java dir="${basedir}" fork="yes" failOnError="true" 
                 className="org.apache.axis.utils.tcpmon">
            <classpath refid="classpath.library" />
             <arg value="9080" />
             <arg value="localhost" />
             <arg value="8080" />
         </java>
    </target>

    <!--
    This runs the selected scenario with SimpleAxisServer locally.
    Before you start this target be sure you have started tcpmon too 
        in a separate
    "ant tcpmon" call.
    To run different scenarios use: "ant -DNumber=x scenarioTest" 
        to run scenario x
    -->
    <target name="scenarioTest" depends="compile"
        if="junit.present"
        description="Runs all JUnit tests">
        <runaxisfunctionaltests
            url="http://localhost:8088"
            httpServerTarget="start-functional-test-http-server"
            testTarget="scenario"
            httpStopTarget="stop-functional-test-http-server"/>
    </target>

    <target name="scenario" if="junit.present">
        <echo message=
          "Running interop test scenario ${Number} on SimpleAxisServer"/>

        <antcall target="deployWSDD" />
        
        <java classname="interop.TestScenario${Number}" fork="yes" 
                 dir="${basedir}">
            <jvmarg value="-Djava.endorsed.dirs=${basedir}/endorsed"/>
            <classpath refid="classpath.library"/>
        </java>

        <antcall target="undeployWSDD" />

    </target>
    
    <!--
    This runs the selected scenario with SimpleAxisServer locally 
        with perfomance
    timing switched on.
    You may also emable the **.TIME entry in log4j.properties to get 
        the internal
    timing.
    To run different scenarios use: "ant -DNumber=x scenarioTest" 
        to run scenario x
    -->
    <target name="performanceTest" depends="compile"
        if="junit.present"
        description="Runs all JUnit tests">
        <runaxisfunctionaltests
            url="http://localhost:8088"
            httpServerTarget="start-functional-test-http-server"
            testTarget="performance"
            httpStopTarget="stop-functional-test-http-server"/>
    </target>

    <target name="performance" if="junit.present">
        <echo message=
           "Running performance test scenario ${Number} on SimpleAxisServer"/>

        <antcall target="deployWSDD" />
        <java classname="interop.TestScenario${Number}" fork="yes" 
            dir="${basedir}">
            <jvmarg value="-Djava.endorsed.dirs=${basedir}/endorsed"/>
       <arg value="-lhttp://localhost:8080/axis/services/Ping${Number}" />
            <arg value="-t" />
            <classpath refid="classpath.library"/>
        </java>
        <antcall target="undeployWSDD" />
    </target>
    
    <target name="deployWSDD">
      <path id="deploy_xml_files">
      <fileset dir="${build.work}">
        <include name="**/deploy.wsdd"/>
      </fileset>
      </path>

      <copy todir="${build.dir}/keys">
        <fileset dir="${dir.keys}" includes="**"/>
      </copy>
      <copy todir="${build.dir}/interop">
        <fileset dir="${dir.interop}" includes="*.jks"/>
      </copy>

      <property name="deploy_xml_property" refid="deploy_xml_files"/>
 
      <java classname="org.apache.axis.utils.Admin" fork="true">
        <classpath refid="classpath.library"/>
        <arg value="client"/>
        <arg file="${build.work}/org/apache/ws/axis/oasis/Client_deploy.wsdd"/>
      </java>
        
      <java classname="org.apache.axis.client.AdminClient" fork="yes">
        <classpath refid="classpath.library"/>
        <arg line="${deploy_xml_property}"/>
      </java>
    </target>
    
    <target name="undeployWSDD">
      <path id="undeploy_xml_files">
        <fileset dir="${build.work}">
          <include name="**/undeploy.wsdd"/>
        </fileset>
      </path>

      <property name="undeploy_xml_property" refid="undeploy_xml_files"/>

      <java classname="org.apache.axis.utils.Admin" fork="true">
            <classpath refid="classpath.library"/>
            <arg value="client"/>
            <arg file=
                 "${build.work}/org/apache/ws/axis/oasis/ping/undeploy.wsdd"/>
      </java>

      <java classname="org.apache.axis.client.AdminClient" fork="yes">
        <classpath refid="classpath.library"/>
        <arg line="${undeploy_xml_property}"/>
      </java>
    </target>
        
    <!-- generate a report from all the tests. 
           requires Xalan or other XSLT engine in ant\lib-->

   <target name="report" depends="init">
        <junitreport todir="${build.dir}/test-reports">
            <fileset dir="${build.dir}/test-reports">
                <include name="TEST-*.xml"/>
            </fileset>
            <report format="frames" todir="${build.dir}/test-reports/html"/>
        </junitreport>
        <echo message=
            "point your browser to ${build.dir}/test-reports/html/index.html"/>
    </target>

    <target name="jar"
        depends="compile, test"
        description="Creates the ${jar.library}">

        <jar jarfile="${build.dir}/${jar.library}"
            basedir="${build.classes}"
            includes="**/*, *.txt, NOTICE"
            excludes="components/**, *.properties, **/sandbox/**, wssec/**, **/interop/**, **/oasis/**, **/samples/**" 
            />
    </target>

    <target name="dist" depends="bindist, otherdist, srcdist"/>

   <target name="bindist" depends="gump" 
      description="Build zip file for distro">
     <delete dir="${dir.dist}"/>
     <mkdir dir="${dir.dist}"/>
     <jar jarfile="${dir.dist}/${jar.library}"
       basedir="${build.classes}"
       includes="**/apache/**/security/**"  />
     <zip destfile=
        "${dir.dist}/${product.shortname}-bin-${product.version}.zip">
        <zipfileset prefix="wss4j" dir="."
          includes="keys/**, interop/**, interop2/**, test/**, samples/**,
          LICENSE.txt, README.txt, NOTICE, legal/**, webapps/**"/>
        <zipfileset prefix="wss4j/classes" dir="${build.classes}"
          includes=
     "*.properties, interop/**, wssec/**, org/**/oasis/**, org/**/samples/**"/>
        <zipfileset prefix="wss4j/doc/api" dir="${build.javadoc}"/>
        <zipfileset fullpath="wss4j/${jar.library}" dir="${dir.dist}" 
          includes="${jar.library}"/>
      </zip>
    </target>

    <target name="otherdist" depends="init" 
             description="Build zip for required jars">
         <mkdir dir="${dir.dist}"/>
         <zip destfile=
           "${dir.dist}/${product.shortname}-otherjars-${product.version}.zip">
             <zipfileset prefix="wss4j" dir="."
                 includes="lib/*.jar, endorsed/*.jar"/>
         </zip>
     </target>  
    
    <target name="srcdist" depends="init" description=
               "Build source zip file for distro">
        <mkdir dir="${dir.dist}"/>
        <zip destfile=
                 "${dir.dist}/${product.shortname}-src-${product.version}.zip">
            <zipfileset prefix="wss4j" dir="."
                includes="src/** LICENSE.txt README.txt NOTICE legal/** build.xml "/>
        </zip>
    </target>

    <target name="fixcrlf"
        description="Fixes CRLF">
        <fixcrlf srcdir="."
            eol="crlf"
            includes="**/*.java"
            />
        <fixcrlf srcdir="."
            eol="crlf"
            includes="**/*.properties"
            />
    </target>

    <target name="changelog"
        depends="prepare"
        description="Generate the changelog for WSS4J project">
        <cvschangelog dir="."
            destfile="${build.dir}/changelog.xml"
            />
        <style in="${build.dir}/changelog.xml"
            out="${build.dir}/changelog.html"
            style="./tools/changelog.xsl">
            <param name="title" expression="WSS4J ChangeLog"/>
            <param name="module" expression="ws-wss4j"/>
            <param name="cvsweb" expression="http://cvs.apache.org/viewcvs/"/>
        </style>
    </target>

  <!-- =================================================================== -->
  <!-- Creates a war file for interop testing                              -->
  <!-- =================================================================== -->
  <target name="interop-war" depends="test"
      description="Create the web application" >
    <mkdir dir="${build.webapp}"/>
    <copy todir="${build.webapp}">
      <fileset dir="${dir.webapp}"/>
    </copy>
    <copy todir="${build.webapp}/WEB-INF/lib">
      <fileset dir="${dir.libs}">
        <include name="*.jar"/>
      </fileset>
      <fileset dir="${basedir}/endorsed">
        <include name="*.jar"/>
      </fileset>
    </copy>
    <copy todir="${build.webapp}/WEB-INF">
      <fileset dir="${build.dir}">
        <include name="*.wsdd"/>
      </fileset>
    </copy>
    <copy todir="${build.webapp}/WEB-INF/classes/">
      <fileset dir="${build.classes}"/>
    </copy>
    <copy todir="${build.webapp}/WEB-INF/classes/">
      <fileset dir=".">
          <include name="client-config.wsdd"/>
      </fileset>
    </copy>
    <copy todir="${build.webapp}/WEB-INF/classes/interop">
        <fileset dir="${dir.interop}">
            <include name="**/interop2.jks"/>
        </fileset>
    </copy>

    <delete>
      <fileset dir="${build.webapp}" includes="**/CVS"/>
    </delete>
    <path id="deploy_xml_files">
        <fileset dir="${build.work}">
            <include name="**/deploy.wsdd"/>
        </fileset>
    </path>
    <property name="deploy_xml_property" refid="deploy_xml_files"/>
    <java classname="org.apache.axis.utils.Admin" fork="true"
        dir="${build.webapp}/WEB-INF/classes">
      <classpath refid="classpath.library"/>
      <arg value="client"/>
      <arg file="${build.work}/org/apache/ws/axis/oasis/Client_deploy.wsdd"/>
    </java>
    <java classname="org.apache.axis.utils.Admin" fork="yes" 
        dir="${build.webapp}/WEB-INF">
        <classpath refid="classpath.library"/>
        <arg line="server"/>
        <arg line="${deploy_xml_property}"/>
    </java>

    <jar jarfile="${build.dir}/wss4j.war" basedir="${build.webapp}"/>
  </target>

</project>
