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

	<!--
	This script cleans and builds wsexplorer.war within the PDE.
	Use "build.xml" to build explorer.jar and wsexplorer.jar.

	Initial configuration:

	1. Choose build-war-pde.xml -> Run As -> Ant Build...
	   to open the "Modify attributes and launch" dialog.
	2. Click on the "Refresh" tab.
		a. Enable "Refresh resources upon completion".
		b. Select "The project containing the selected resource".
	3. Click on the "Properties" tab.
		a. Deselect "Use global properties...".
		b. Add the following two properties:
			baseLocation = the absolute path to your target platform's "eclipse" directory.
			buildDirectory = the absolute path to your workspace directory.
	4.	Click on "Apply".
	
	To clean a previous build of the WAR:

	1. Choose build-war-pde.xml -> Run As -> Ant Build...
	2. Select and run the "clean.wars" target.
	3. Optionally, replace wsexplorer/WEB-INF/web.xml from HEAD.

	To build the WAR:

	1. If necessary, generate and run build.xml
	   to create explorer.jar and wsexplorer.jar:
		a. Choose plugin.xml -> PDE Tools -> Create Ant Build File
		b. Choose build.xml -> Run As -> Ant Build
		c. Refresh the project.
	1. Choose build-war-pde.xml -> Run As -> Ant Build...
	2. Select and run the "build.wars" target.

	Short cut:

	1. Choose build-war-pde.xml -> Run As -> Ant Build...
	2. Click on the "Targets" tab.
	3. Enable the "clean.wars" and "build.wars" targets.
	4. Verify that the Target execution order reads
		"clean.wars, build.wars"
		If it doesn't, use the "Order..." button to change it.
	5. Click "Apply" or "Run".
	6. Henceforth you can choose
		build-war-pde.xml -> Run As -> Ant Build
		to skip the dialog and always clean and rebuild the WAR.
	-->
	
	<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 debug="true" destdir="${wsexplorerDir}/WEB-INF/classes" includeAntRuntime="false">
			<src path="${wsexplorerDir}"/>
			<classpath>
				<dirset dir="${buildDirectory}">
					<include name="*/@dot" />
				</dirset>
				<fileset dir="${buildDirectory}">
					<include name="**/*.jar" /> 
				</fileset>
				<fileset dir="${baseLocation}/plugins">
					<exclude name="org.apache.jasper*.jar" />
					<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"/>
		<delete>
			<fileset dir="wsexplorer" includes="**/*.java"/>
		</delete>
		<delete>
			<fileset dir="wsexplorer" includes="**/*.class"/>
		</delete>
	</target>

</project>
