<?xml version="1.0" encoding="UTF-8"?>
<!--$Id: build.xml,v 1.6 2006/04/28 21:48:44 bob Exp $-->
<project name="pws-client-sdk" default="stubGenWSDL2Java" basedir=".">
    
    <property name="build.dir" location="./build"/>
	<property name="lib.dir" location="./lib"/>
    <property name="build.generate" location="${build.dir}/generate"/>
    <property name="build.classes" location="${build.dir}/classes"/>
    <property name="src-to-run" location="./src"/>
    
    <path id="classpath">
        <fileset dir="${basedir}/lib">
            <include name="**/*.jar"/>
        </fileset>
    </path>
    
    <taskdef name="wsdl2java"
        classname="org.apache.axis.tools.ant.wsdl.Wsdl2javaAntTask" loaderref="axis">
        <classpath refid="classpath"/>
    </taskdef>
    
    <!-- PWS packages -->
    <property name="client-package-name" value="gov.dc.octo.client"/>
    <property name="client-package-path" value="gov/dc/octo/client"/>
    <property name="pws-package-name" value="gov.dc.octo.psmpcore.v01"/>
    <property name="pws-package-path" value="gov/dc/octo/psmpcore/v01"/>
    
    <target name="stubGenWSDL2Java">
        <echo message="Running WSDL2Java..."/>
        <mkdir dir="${build.generate}/src"/>
        <delete quiet="true">
            <fileset dir="${build.generate}/src" includes="**/*.java"/>
        </delete>
    	<wsdl2java url="${basedir}/wsdl/pws-01.wsdl"
        	output="${build.generate}/src" serverSide="no" skeletonDeploy="no" verbose="true">
            
    		<!-- namespace - package mappings 	-->
            <mapping namespace="http://octo.dc.gov/psmpcore/v01" package="${pws-package-name}"/>
            <mapping namespace="http://octo.dc.gov/wsdl/pws01" package="${client-package-name}"/>
        </wsdl2java>
    </target>
    
    <target name="castorize-pws">
        <echo message="Running Castor class construction..."/>

    <java classname="org.exolab.castor.builder.SourceGenerator">
        <classpath refid="classpath"/>
        <arg value="-i"/>
        <arg value="./xsds/message/external/PWSMessagingAPI.xsd"/>
        <arg value="-package"/>
        <arg value="${pws-package-name}"/>
        <arg value="-nomarshall"/>
        <arg value="-dest"/>
        <arg value="${build.generate}/src"/>
        <arg value="-f"/>
        <arg value="-types"/>
        <arg value="j2"/>
        <arg value="-binding-file"/>
        <arg value="castor-custom.xml"/>
    	<arg value="generateImportedSchemas"/>
        <arg value="true"/>
    </java>
    	
        <echo message="after Castor source gen...organizing files for build..."/>
        
        <mkdir dir="${src-to-run}"/>
        
        <delete quiet="true">
            <fileset dir="${src-to-run}" includes="**/*.java"/>
        </delete>
        
        <!-- copying client related files to client src directory-->
        <copy todir="${src-to-run}/${pws-package-path}">
            <fileset dir="${build.generate}/src/${pws-package-path}" excludes="*.wsdd,*Skeleton.java,*Impl.java"/>
        </copy>
        <copy todir="${src-to-run}/${client-package-path}">
            <fileset dir="${build.generate}/src/${client-package-path}" excludes="*.wsdd,*Skeleton.java,*Impl.java"/>
        </copy>
        <echo message="Substituting Castor for default bean serialization..."/>
        <replace dir="${src-to-run}/${pws-package-path}" includes="*Stub.java">
            <replacefilter token=".BeanSerializerFactory." value=".castor.CastorSerializerFactory."/>
            <replacefilter token=".BeanDeserializerFactory." value=".castor.CastorDeserializerFactory."/>
        </replace>
        <replace dir="${src-to-run}/${client-package-path}" includes="*Stub.java">
            <replacefilter token=".BeanSerializerFactory." value=".castor.CastorSerializerFactory."/>
            <replacefilter token=".BeanDeserializerFactory." value=".castor.CastorDeserializerFactory."/>
        </replace>
        <!-- copy (static) main ClientTest.java class in src-to-run tree-->
        <copy file="${basedir}/ClientTest.java" todir="${src-to-run}/${client-package-path}"/>
    </target>
    
    <!-- Compile client code for execution -->
    <target name="compile-client">
        <mkdir dir="${build.classes}"/>
        <delete quiet="true">
            <fileset dir="${build.classes}" includes="**/*.class"/>
        </delete>
        <javac srcdir="${src-to-run}" destdir="${build.classes}"
            nowarn="${nowarn}" debug="true">
            <classpath refid="classpath"/>
        </javac>
    </target>
    
	<target name="buildPWSClientJAR" depends="compile-client">
		<jar destfile="${lib.dir}/pws-client-sdk-01.jar" basedir="${build.classes}"/>
	</target>
		
    <target name="runTestClient">
        <java classname="gov.dc.octo.client.ClientTest">
            <classpath refid="classpath"/>
            <classpath path="${build.classes}"/>
        	    <arg value="ssl"/> 
        		<arg value="0093    0830"/>
        </java>
    </target>

</project>