<?xml version="1.0" encoding="UTF-8"?>

<!--
  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.
-->

<project name="camel-example-reportincident" default="run" basedir=".">

	<import file="../common_build.xml"/>

	<fail unless="env.CXF_HOME" message="You must download CXF and set your CXF_HOME to run this demo."/>
	<fail unless="env.SPRING_HOME" message="You must download Spring2.5 and set your CXF_HOME to run this demo."/>
	<fail unless="env.JETTY_HOME" message="You must download Jetty6 and set your JETTY_HOME to run this demo."/>

	<property name="project.name" value="camel-example-reportincident"/>

	<property name="jetty.home" value="${env.JETTY_HOME}"/>
	<path id="jetty.classpath">
	    <fileset dir="${jetty.home}/lib">
	      <include name="jetty*.jar"/>
	      <include name="**/jetty-client-*.jar"/>
	    </fileset>
	 </path>


	<path id="sample.build.classpath">
		<fileset dir="${camel.lib}">
			<include name="**/camel-cxf-*.jar"/>
			<include name="**/camel-http-*.jar"/>
			<include name="**/camel-jetty-*.jar"/>
			<exclude name="**/*-tests.jar"/>
		</fileset>
		<path refid="camel.spring.classpath"/>
		<path refid="spring.classpath"/>
		<path refid="jetty.classpath"/>
		<path refid="camel.core.classpath"/>
		<path refid="cxf.classpath"/>
	</path>

	<property name="cxf.home" value="${env.CXF_HOME}"/>
	<path id="cxf.classpath">
		<fileset dir="${cxf.home}">
			<include name="**/cxf-*.jar"/>
		</fileset>
	</path>

	<target name="generate.code">
		<echo level="info" message="Generating code using wsdl2java..."/>
		<wsdl2java file="src/main/resources/report_incident.wsdl"/>
	</target>

	<target name="run" depends="generate.code,build"
		description="Compile and run the sample of reportincident component">
		<camelrun mainClass="org.apache.camel.example.reportincident.ReportIncidentRoutes" />
	</target>

	<available property="wsdl.dir" value="${build.resources.dir}" file="${build.resources.dir}/report_incident.wsdl" />
	<property name="wsdl.dir" location="."/>

	<macrodef name="wsdl2java">
		<attribute name="srcdestdir" default="${build.dir}/generated/src/main/java"/>
		<attribute name="destdir" default="${build.classes.dir}"/>
		<attribute name="file"/>
		<attribute name="dir" default="${wsdl.dir}"/>
		<sequential>
			<mkdir dir="@{destdir}"/>
			<mkdir dir="@{srcdestdir}"/>
			<java failonerror="true" classname="org.apache.cxf.tools.wsdlto.WSDLToJava" fork="yes">
				<classpath>
					<path refid="cxf.classpath" />
				</classpath>
				<sysproperty key="exitOnFinish" value="true"/>
				<arg value="-verbose"/>
				<arg value="-d"/>
				<arg value="@{srcdestdir}"/>
				<arg value="@{dir}/@{file}"/>
			</java>
		</sequential>
	</macrodef>

</project>
