<project name="Axis_SecDoAll" default="wsdl2java" basedir=".">
    <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="../../../../../../../.." />
  <property name="dir.libs"  value="${dir.wss4j}/lib" />

  <!-- Base directory where to put generated java files -->
  <property name="WSDLGenFiles" location="${dir.wss4j}/samples" />
  <!-- where to find the SwA WSDL files -->
  <property name="WSDLDir" location="${basedir}" />

  <!--
   Directory of the generated Java files
  -->
  <property name="sec" value="org/apache/ws/axis/samples/wssec/doall/axisSec" />

    <path id="classpath.libraries" description=" 3rd party and Axis libs">
      <fileset dir="${dir.libs}">
        <include name="**/*.jar"/>
	<!-- <pathelement path="${java.class.path}"/> -->
      </fileset>
    </path>
  
  <target name="clientdeploy">
    <java classname="org.apache.axis.utils.Admin" fork="true">
      <classpath refid="classpath.libraries" />
      <arg value="client"/>
      <arg file="${WSDLDir}/client_deploy.wsdd" />
    </java>
  </target>

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

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

  <target name="wsdl2java">
    <java classname="org.apache.axis.wsdl.WSDL2Java" fork="true">
      <classpath refid="classpath.libraries" />
      <arg value="-f" /> 
      <arg file="${WSDLDir}/NStoPkg.properties" /> 
      <arg value="-S true" />
      <arg value="-o" />
      <arg file="${WSDLGenFiles}" />
      <arg file="${WSDLDir}/sec.wsdl" />
    </java>
  </target>

  <target name="clean"
        description="clean up" >
    <delete dir="${WSDLGenFiles}/${sec}"/>
  </target>
</project>