<project name="Axis_OASIS_Interop" default="compile">
    <description>
        generate files from WSDL description, also target to deploy
        the service in a runing Axis (probably in Tomcat or alike)
    </description>

    <!-- The following setting assumes that all necessary libs (jars)
      are located in a lib directory directly under wss4j. First set
      a reference to the wss4j relative to this working directory -->
    <property name="dir.wss4j" value="${basedir}/.."/>
    <property name="dir.interop" value="${dir.wss4j}/interop"/>
    <property name="dir.work" value="${dir.wss4j}/build/work"/>
    <property name="dir.classes" value="${dir.wss4j}/build/classes"/>
    <property name="dir.libs" value="${dir.wss4j}/lib"/>

    <property name="server" value="org/apache/ws/axis/oasis/ping"/>
    <property name="client" value="org/apache/ws/axis/oasis"/>

    <path id="classpath.libraries" description=" 3rd party and Axis libs">
        <fileset dir="${dir.libs}">
            <include name="**/*.jar"/>
        </fileset>
    </path>

    <taskdef resource="axis-tasks.properties" classpathref="classpath.libraries"/>

    <target name="clientdeploy">
        <java classname="org.apache.axis.utils.Admin" fork="true">
            <classpath refid="classpath.libraries"/>
            <arg value="client"/>
            <arg file="${dir.work}/${client}/Client_deploy.wsdd"/>
        </java>
    </target>

    <target name="serverdeploy">
        <java classname="org.apache.axis.client.AdminClient" fork="true">
            <classpath refid="classpath.libraries"/>
            <arg file="${dir.work}/${server}/deploy.wsdd"/>
        </java>
    </target>

    <target name="serverundeploy">
        <java classname="org.apache.axis.client.AdminClient" fork="true">
            <classpath refid="classpath.libraries"/>
            <arg file="${dir.work}/${server}/undeploy.wsdd"/>
        </java>
    </target>

    <target name="chkWsdl">
      <uptodate property="wsdl.notRequired" 
        targetfile="${dir.work}/${server}/PingBindingImpl.java"
        srcfile="${dir.interop}/ping.wsdl"/>
    </target>

    <target name="wsdl" depends="chkWsdl" unless="wsdl.notRequired">
      <axis-wsdl2java
          output="${dir.work}"
          serverSide="yes"
          testcase="no"
          verbose="no"
          url="${dir.interop}/ping.wsdl">
          <mapping
              namespace="http://xmlsoap.org/Ping"
              package="org.apache.ws.axis.oasis.ping"/>
      </axis-wsdl2java>
    </target>

    <target name="init">
      <mkdir dir="${dir.work}"/>
    </target>

    <target name="compile" depends="init, wsdl">
        <copy todir="${dir.work}/${server}" overwrite="yes">
          <fileset dir="${dir.interop}/${server}">
            <include name="*.java"/>
            <include name="*.wsdd"/>
          </fileset>
        </copy>
        <copy todir="${dir.work}/${client}" overwrite="yes">
          <fileset dir="${dir.interop}/${client}">
            <include name="*.java"/>
            <include name="*.wsdd"/>
          </fileset>
        </copy>
        <javac srcdir="${dir.work}" 
                destdir="${dir.classes}"
                source="1.4"
               debug="true">
          <classpath refid="classpath.libraries" />
          <include name="${server}/*.java" />
          <include name="${client}/*.java" />
        </javac>
    </target>

    <target name="clean"
        description="clean up">
        <delete dir="${dir.work}/${server}"/>
        <delete dir="${dir.classes}/${server}"/>
        <delete dir="${dir.work}/${client}"/>
        <delete dir="${dir.classes}/${client}"/>
    </target>
</project>