<project name="XFireNamespaceProblem" default="all">
	<target name="all" depends="init,cleanAll,compileWsdl,compile,jar,package,war" />

	<target name="init">
		<property name="src" value="src" />
		<property name="build" value="build" />
		<property name="dist" value="dist" />
		<property name="etc" value="etc" />
		<property name="lib" value="lib" />
		<property name="generated" value="generated" />
		<property name="jboss.home" value="C:\\jboss-4.0.3SP1" />

		<path id="xfire.classpath">
			<fileset dir="${lib}/xfire">
				<include name="**/*.jar" />
			</fileset>
		</path>

		<taskdef name="wsgen" classname="org.codehaus.xfire.gen.WsGenTask" 
		     classpathref="xfire.classpath"/>

		<dirname property="pwd" file="${ant.file}"/>
		<property name="coverage.file" value="${pwd}/${build}/coverage/cobertura.ser"/>

		<path id="project.classpath">
			<fileset dir="${lib}">
				<include name="*.jar" />
			</fileset>
			<path refid="xfire.classpath" />
		</path>
	</target>

	<target name="clean" depends="init">
		<delete dir="${build}" />
		<delete dir="${generated}" />
	</target>

	<target name="cleanAll" depends="clean">
		<delete dir="${dist}" />
	</target>

	<target name="compileWsdl" depends="init">
		<mkdir dir="${generated}/src" />
		<wsgen outputDirectory="${basedir}/${generated}/src" 
			package="com.bt.test._2006._08.service" 
			wsdl="${basedir}/${etc}/XFireNamespaceProblem.wsdl" overwrite="true" />
		<!-- delete the generated implementations -->
		<delete dir="${generated}/src">
			<include name="**/*Impl.java"/>
		</delete>
	</target>

	<target name="compile" depends="compileWsdl">
		<mkdir dir="${build}" />
		<javac includes="**/*.java" debug="${build.debug}" destdir="${build}">
			<src path="${src}" />
			<src path="${generated}/src" />
			<classpath refid="project.classpath" />
		</javac>
	</target>

	<target name="jar" depends="compile">
		<jar destfile="${build}/${ant.project.name}.jar" basedir="${build}" includes="com/**, org/**" excludes="**/tests/*.class" />
	</target>

	<target name="package" depends="jar">
		<mkdir dir="${build}/war/WEB-INF/lib" />
		<mkdir dir="${build}/war/WEB-INF/classes" />
		<copy todir="${build}/war/WEB-INF/lib">
			<fileset dir="${lib}/xfire">
				<exclude name="servlet-api-2.3.jar"/>
				<exclude name="log4j*.jar"/>
			</fileset>
		</copy>
		<copy todir="${build}/war/WEB-INF/lib" file="${build}/${ant.project.name}.jar" />
		<copy todir="${build}/war/WEB-INF" file="${etc}/web.xml" />
		<mkdir dir="${build}/war/META-INF/xfire" />
		<copy todir="${build}/war/META-INF/xfire" file="${etc}/services.xml" />
	</target>

	<target name="war" depends="package">
		<mkdir dir="${dist}" />
		<jar basedir="${build}/war" includes="**" destfile="${dist}/${ant.project.name}.war" />
	</target>

	<target name="deploy" depends="war">
		<copy file="${dist}/${ant.project.name}.war" todir="${jboss.home}/server/default/deploy" overwrite="true"/>
	</target>
	
	<target name="dotnet">
		<echo message="Generating..."/>
		<exec executable="C:\Program Files\Microsoft.NET\SDK\v2.0\Bin\wsdl" dir="${basedir}/dotnet">
		    <arg value="..\etc\XFireNamespaceProblem.wsdl"/>
		</exec>

		<echo message="Compiling..."/>
		<exec executable="C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc" dir="${basedir}/dotnet">
			<arg value="/out:Client.exe"/>
			<arg value="Client.cs"/>
			<arg value="XFireNamespaceProblemService.cs"/>
		</exec>

		<echo message="Running client..."/>
		<exec executable="${basedir}/dotnet/Client.exe" dir="${basedir}/dotnet"/>
	</target>

</project>

