## Licensed to the Apache Software Foundation (ASF) under one
## or more contributor license agreements. See the NOTICE file
## distributed with this work for additional information
## regarding copyright ownership. The ASF licenses this file
## to you under the Apache License, Version 2.0 (the
## "License"); you may not use this file except in compliance
## with the License. You may obtain a copy of the License at
##
## http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing,
## software distributed under the License is distributed on an
## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
## KIND, either express or implied. See the License for the
## specific language governing permissions and limitations
## under the License.
<?xml version="1.0"?>
<!--
     Generated by WSDLToJava Compiler.
     /**
     * This class was generated by $fullversion
     * $currentdate
     * Generated source version: $version
     *
     */
-->

<project name="cxf wsdltojava" default="build" basedir=".">

    <property environment="env"/>
    <property name="build.dir" location ="${basedir}/build"/>
    <property name="build.classes.dir" location ="${build.dir}/classes"/>
    <property name="build.src.dir" location ="${basedir}"/>

    <!-- find the tools jar -->
    <available property="tools.jar" value="$${env.JAVA_HOME}/lib/tools.jar"
               file="${env.JAVA_HOME}/lib/tools.jar"/>
    <path id="jdk.tools.classpath">
        <pathelement location="${tools.jar}"/>
    </path>

    <condition property="is.java.version.15">
        <equals arg1="${ant.java.version}" arg2="1.5"/>
    </condition>

    <fail message="cxf requires Java version 1.5. You are currently using Java version ${ant.java.version}."
          unless="is.java.version.15"/>

    <!-- Determine cxf.home, either from the environment variable CXF_HOME
         - or using ../..
    -->
    <condition property="cxf.home" value="${env.CXF_HOME}">
        <isset property="env.CXF_HOME"/>
    </condition>

    <fail message="Please set CXF_HOME environment variable." unless="cxf.home"/>

    <!-- Determine cxf.jar.file, either ${cxf.home}/build/lib/cxf.jar
         - in a source distribution, or ${cxf.home}/lib/cxf-manifest.jar in a binary
         - distribution.
    -->
    <condition property="cxf-manifest.jar.file" value="${cxf.home}/build/lib/cxf-manifest.jar">
        <available file="cxf-manifest.jar" type="file" filepath="${cxf.home}/build/lib"/>
    </condition>
    <property name="cxf-manifest.jar.file" value="${cxf.home}/lib/cxf-manifest.jar"/>

    <fail message="The location ${cxf.home} does not seem to contain a cxf installation; if you are importing this common build file from a location other than the cxf samples directory then you need to set the cxf_HOME environment variable.">
        <condition>
            <not>
                <isset property="cxf-manifest.jar.file" />
            </not>
        </condition>
    </fail>

    <!-- Determine the tools directory, either ${cxf.home}/tools
         - in a source distribution, or ${cxf.home}/lib in a binary
         - distribution.
    -->
    <condition property="thirdparty.tools.dir" value="${cxf.home}/tools">
        <available file="tools" type="dir" filepath="${cxf.home}"/>
    </condition>

    <condition property="thirdparty.tools.dir" value="${cxf.home}/lib">
        <available file="lib" type="dir" filepath="${cxf.home}"/>
    </condition>

    <property name="cxf.etc.dir" location="${cxf.home}/etc"/>

    <path id="cxf.classpath">
        <pathelement location="${build.classes.dir}"/>
        <pathelement location="${cxf-manifest.jar.file}"/>
    </path>

#foreach ($targetName in $clientClassNamesMap.keySet())
    <target name="$targetName" description="Run $clientClassNamesMap.get($targetName)" depends="compile">
        <property name="param" value=""/>
        <cxfrun classname="$clientClassNamesMap.get($targetName)"
                   param1="$wsdlLocation"
                   param2="${op}"
                   param3="${param}"/>
    </target>
#end

#foreach ($target in $serverClassNamesMap.keySet())
    <target name="${target}" description="Run $serverClassNamesMap.get($target)" depends="compile">
        <cxfrun classname="$serverClassNamesMap.get($target)"
                   param1="$wsdlLocation"/>
    </target>
#end



    <target name="compile">
        <mkdir dir="${build.classes.dir}"/>
        <javac srcdir="${build.src.dir}" destdir="${build.classes.dir}" debug="true">
            <classpath refid="cxf.classpath" />
        </javac>
    </target>

    <target name="checkstyle">
        <checkstyle config="${checkstyle.config.file}">
            <fileset dir="${basedir}/src" includes="**/*.java"/>
            <classpath>
                <path refid="cxf.classpath"/>
            </classpath>
        </checkstyle>
    </target>

    <target name="clean">
        <delete dir="${build.classes.dir}"/>
        <delete file="${java.timestamp.file}"/>
        <delete file="demo.log"/>
    </target>

    <target name="build"  depends="compile" description="build demo client and server"/>

    <macrodef name="cxfrun">
        <attribute name="classname"/>
        <attribute name="param1" default=""/>
        <attribute name="param2" default=""/>
        <attribute name="param3" default=""/>
        <attribute name="param4" default=""/>
        <attribute name="param5" default=""/>
        <attribute name="jvmarg1" default="-D"/>
        <attribute name="jvmarg2" default="-D"/>
        <attribute name="jvmarg3" default="-D"/>
        <attribute name="jvmarg4" default="-D"/>
        <attribute name="jvmarg5" default="-D"/>
        <sequential>
            <java classname="@{classname}" fork="yes">
                <classpath>
                    <path refid="cxf.classpath"/>
                </classpath>
                <arg value="@{param1}"/>
                <arg value="@{param2}"/>
                <arg value="@{param3}"/>
                <arg value="@{param4}"/>
                <arg value="@{param5}"/>
                <jvmarg value="@{jvmarg1}"/>
                <jvmarg value="@{jvmarg2}"/>
                <jvmarg value="@{jvmarg3}"/>
                <jvmarg value="@{jvmarg4}"/>
                <jvmarg value="@{jvmarg5}"/>
                <assertions>
                    <enable package="org.apache.cxf"/>
                </assertions>
                <sysproperty key="java.util.logging.config.file" value="${cxf.etc.dir}/logging.properties"/>
                <sysproperty key="log4j.configuration" value="file:///${cxf.etc.dir}/log4j.properties"/>
            </java>
        </sequential>
    </macrodef>
</project>
