<?xml version="1.0" encoding="UTF-8"?>
<project name="org.eclipse.wst.ws.explorer" default="build.wars" basedir=".">

	<!--
	This script builds wsexplorer.war within the PDE.
	Instructions for use:
	1. If you have a prior build of wsexplorer.war in your workspace,
	   you should first:
	   a. Replace wsexplorer/WEB-INF/web.xml from HEAD
	   b. Delete wsexplorer/WEB-INF/lib/wsexplorer.jar
	   c. Delete wsexplorer.war
       d. Delete wsexplorer/**/*.java
	   e. Delete wsexplorer/**/*.class
	   f. Refresh the project.
	   TODO: Update this script's "clean" rules to do this stuff automagically.
	2. Generate and run build.xml to create
	   wsexplorer/WEB-INF/lib/wsexplorer.jar:
	   a. plugin.xml -> PDE Tools -> Create Ant Build File
	   b. build.xml -> Run As -> Ant Build
	   c. Refresh the project.
	3. Run build-war-pde.xml to create the WAR:
	   a. build-war-pde.xml -> Run As -> Ant Build...
	      to open the "Modify attributes and launch" dialog.
	   b. Click on the "Properties" tab.
	   c. Deselect "Use global properties...".
	   d. Add the following two properties:
	      baseLocation = the absolute path to your target platform's "eclipse" directory.
	      buildDirectory = the absolute path to your workspace directory.
	   e. Click on "Run" to run the script.
	   f. Refresh the project when the build is done.
	-->
	
	<property name="wsexplorerDir" value="${buildDirectory}/org.eclipse.wst.ws.explorer/wsexplorer"/>

	<target name="jspcompile" unless="wsexplorer.war" description="Pre-compile the JSPs in the org.eclipse.wst.ws.explorer plugin">
		<java classname="org.apache.jasper.JspC" fork="true">
			<arg line="-webxml ${wsexplorerDir}/WEB-INF/web.xml -d ${wsexplorerDir} -webapp ${wsexplorerDir}"/>
			<classpath>
				<fileset dir="${baseLocation}/plugins">
					<include name="org.eclipse.tomcat*/*.jar" />
				</fileset>
				<fileset dir="${baseLocation}/plugins">
					<include name="org.apache.ant*/lib/*.jar" />
				</fileset>
			</classpath>
		</java>
		<javac destdir="${wsexplorerDir}/WEB-INF/classes" includeAntRuntime="false">
			<src path="${wsexplorerDir}"/>
			<classpath>
				<fileset dir="${buildDirectory}">
					<include name="**/*.jar" /> 
				</fileset>
				<fileset dir="${baseLocation}/plugins">
					<include name="**/*.jar" /> 
				</fileset>
			</classpath>
		</javac>
	</target>

	<target name="wsexplorer.war" unless="wsexplorer.war" description="Create war: wsexplorer.war.">
		<zip
			basedir="${wsexplorerDir}"
			destfile="${wsexplorerDir}/../wsexplorer.war"
			whenempty="skip" update="false"
			excludes="**/*.java **/*.jsp **/*.inc"
		/>
	</target>	
	
	<target name="build.wars" description="Build all the wars for the plug-in: org.eclipse.wst.ws.explorer.">
		<available property="wsexplorer.war" file="${wsexplorerDir}/../wsexplorer.war"/>
		<antcall target="jspcompile"/>
		<antcall target="wsexplorer.war"/>
	</target>

	<target name="clean.wars" description="Clean all the wars for the plug-in: org.eclipse.wst.ws.explorer.">
		<delete file="wsexplorer.war"/>
	</target>
</project>
