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

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

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

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

  <!-- class path used on the client side -->
  <path id="client.class.path">
    <pathelement path="${client_classes}" />
    <pathelement path="${output_dir}/${service}-client.jar" />
    <pathelement path="${java.class.path}" />
  </path>

  <target name="build" depends="clean,setup,compile.server,webservice.build,
                                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="webservice.build"
    description="create web service descriptor, wsdl file, web service client" >

    <ant antfile="build-webss.xml" target="webss.build" >
      <property name="webss.service.name" value="${service}" />
      <property name="webss.service.package" value="${service_package}" />
      <property name="webss.service.url" value="/${service}" />
      <property name="webss.service.source" value="${service}.java" />
      <property name="webss.output.dir" value="${output_dir}" />
      <property name="webss.client.package" value="${service_package}.client" />
    </ant>
  </target>

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

    <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" >

    <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}?WSDL" />
    </java>
  </target>

</project>

