<?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='13'/>
        <property name='product.version.qualifier' value='-SNAPSHOT'/>
        <property name='product.version' value='${product.version.major}.${product.version.minor}.${product.version.level}${product.version.qualifier}'/>
        <property name="year" value="2013"/>
        <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"/>


        <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="jdk16.present">
          <equals arg1="${ant.java.version}" arg2="1.6"/>
        </condition>

        <condition property="merlin.ok">
            <or>
                <equals arg1="${ant.java.version}" arg2="1.4"/>
                <equals arg1="${ant.java.version}" arg2="1.5"/>
                <equals arg1="${ant.java.version}" arg2="1.6"/>
            </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>
        </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"/>
        </patternset>

        <patternset id="srcFiles">
         <!-- for some strange reasons, I can't use ${src} but must use src -->
            <include name="src/**/*"/>
        </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}"/>
        <copy todir="${build.classes}">
            <fileset dir="${dir.src}">
                <include name="META-INF/*"/>
            </fileset>
        </copy>
    </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" includeAntRuntime="false">
            <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" includeAntRuntime="false">
            <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" includeAntRuntime="false">
            <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" includeAntRuntime="false">
            <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" depends="init" 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" depends="init" 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="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" depends="init">
      <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"
            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/**, META-INF/**"  />
     <zip destfile=
        "${dir.dist}/${product.shortname}-bin-${product.version}.zip">
        <zipfileset prefix="wss4j" dir="."
            includes="keys/**, interop/**, interop2/**, test/**, samples/**,
                ChangeLog.txt, LICENSE.txt, README.txt, NOTICE, 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, LICENSE.txt, README.txt, NOTICE, legal/**"/>
         </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/** keys/** interop/** test/** samples/** webapps/** legal/** lib/** endorsed/** ChangeLog.txt LICENSE.txt README.txt NOTICE build.xml pom.xml ChangeLog.txt"/>
        </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>
