<project name="sample4" default="build">

  <!-- common properties -->
  <property file="../properties.txt" />

  <!-- properties specific to this service -->
  <property name="service" value="RouterService" />
  <property name="service_package" value="tutorial.sample23" />
  <property name="service_war" value="sample23" />

  <property name="server_classes" value="${output_dir}/WEB-INF/classes" />

  <path id="client.class.path">
    <pathelement path="${client_classes}" />
    <pathelement path="${java.class.path}" />
  </path>

  <target name="build" depends="clean,setup,compile.server,
                                deploy,compile.client" />

  <target name="clean" description="delete generated stuff" >
    <delete dir="${output_dir}" />
    <delete dir="${client_classes}" />
  </target>

  <target name="setup" description="create output directories" >
    <mkdir dir="${server_classes}" />
    <mkdir dir="${client_classes}" />
  </target>

  <target name="compile.server" 
    description="compile classes needed on the server side"  >

    <javac srcdir="." includes="*.java" excludes="client/*"
       destdir="${server_classes}" >
    </javac>
  </target>

  <target name="compile.client" 
      description="compile classes needed on the client side" >

    <clientgen wsdl="http://www.mssoapinterop.org/asmx/simple.asmx?WSDL"
      packageName="${service_package}.client"
      typePackageName="${service_package}.client"
      clientJar="${client_classes}"
      usePortNameAsMethodName="true"
      keepGenerated="true" />

    <javac srcdir="." includes="client/*.java" destdir="${client_classes}" >
      <classpath refid="client.class.path" />
    </javac>

  </target>

  <target name="deploy" description="deploy service by copying war to 
                                     application directory" >

    <copy file="web-services.xml" toDir="${output_dir}/WEB-INF" />
    <copy file="web.xml" toDir="${output_dir}/WEB-INF" />

    <jar jarFile="${application_dir}/${service_war}.war" 
       baseDir="${output_dir}" />
  </target>

  <target name="browse" description="browse test page for this service" >

    <exec executable="${browser}" >
      <arg line="${server_url}/${service_war}/${service}" />
    </exec>
  </target>

  <target name="run" description="run client" >

    <java classname="${service_package}.client.Main"  >
      <classpath refid="client.class.path" />
      <arg line="${server_url}/${service_war}/${service}" />
    </java>
  </target>

</project>

