
<!-- ===================================================================== -->
<!-- Ant build script for JSPs                                             -->
<!-- ===================================================================== -->
<project name="JSP Build">

	<!-- ===================================================================== -->
	<!-- Workspace (dev) build; called as an Ant builder                       -->
	<!-- ===================================================================== -->
	<target name="build">

		<!-- Construct the full classpath -->
		<path id="explorer.jar.classpath" >
			<pathelement path="${target.folder}"/>
			<dirset dir="${workspace_loc}">
				<patternset>
					<include name="org.eclipse.wst.ws.explorer/bin"/>
					
				</patternset>
			</dirset>
			<fileset dir="${target_home}/plugins">
				<patternset>
					<include name="javax.servlet*.jar"/>
					<include name="javax.servlet.jsp*.jar"/>
					<include name="org.apache.ant*/lib/ant.jar"/>
					<include name="org.apache.commons.el*.jar"/>
					<include name="org.apache.commons.logging*.jar"/>
					<include name="org.apache.jasper*.jar"/>
					
				</patternset>
			</fileset>
		</path>

		<!-- Compile the JSPs -->
		<antcall target="compile">
			<reference refid="explorer.jar.classpath"/>
		</antcall>
		
	</target>

	<property name="wsexplorerDir" value="${basedir}/wsexplorer"/>
	
	<!-- ===================================================================== -->
	<!-- Compile the JSPs                                                      -->
	<!-- ===================================================================== -->
	<target name="compile">
		
		<!-- Invoke Jasper compiler -->
		<java
			classname="org.apache.jasper.JspC"
			classpathref="explorer.jar.classpath"
			fork="true"
			failonerror="true">
			<arg value="-compile"/>
			<arg value="-d"/>
			<arg value="${wsexplorerDir}" />
			<arg value="-p"/>
			<arg value="org.eclipse.wst.ws.explorer.jsp"/>
			<arg value="-webapp"/>
			<arg value="${wsexplorerDir}"/>
			<arg value="-die"/>
			<classpath>
				<pathelement path="${target.folder}"/>
				<dirset dir="${basedir}">
						<include name="*/@dot" />
				</dirset>
				<fileset dir="${basedir}">
						<include name="**/*.jar" /> 
				</fileset>
			</classpath>
		</java>
		
	</target>
	
	<!-- ===================================================================== -->
	<!-- Steps to do before the target build.jars                              -->
	<!-- Available parameters :                                                -->
	<!--   build.result.folder - folder to contain the build results           -->
	<!-- ===================================================================== -->
	<target name="pre.build.jars">
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do after the target build.jars                               -->
	<!-- Available parameters :                                                -->
	<!--   build.result.folder - folder to contain the build results           -->
	<!-- ===================================================================== -->
	<target name="post.build.jars">
	</target>
	
	<!-- ===================================================================== -->
	<!-- Steps to do before the target build.sources                           -->
	<!-- Available parameters :                                                -->
	<!--   build.result.folder - folder to contain the build results           -->
	<!-- ===================================================================== -->
	<target name="pre.build.sources">
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do after the target build.sources                            -->
	<!-- Available parameters :                                                -->
	<!--   build.result.folder - folder to contain the build results           -->
	<!-- ===================================================================== -->
	<target name="post.build.sources">
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do before the compilation target <name>                      -->
	<!-- Substitute "name" with the name of the compilation target, eg @dot    -->
	<!-- Available parameters :                                                -->
	<!--   source.foldern : n = 1 ... N, the source folders                    -->
	<!--   target.folder  : where the results of the compilation go            -->
	<!--   <name>.classpath : name = name of the compilation target. A         -->
	<!--                      reference to the classpath structure.            -->
	<!-- ===================================================================== -->
	<target name="pre.explorer.jar">
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do during the compilation target <name>, after the compile   -->
	<!-- but before jaring.  Substitute "name" with the name of the compilation-->
	<!-- target, eg @dot                                                       -->
	<!-- Available parameters :                                                -->
	<!--   source.foldern : n = 1 ... N, the source folders                    -->
	<!--   target.folder  : where the results of the compilation go            -->
	<!--   <name>.classpath : name = name of the compilation target. A         -->
	<!--                      reference to the classpath structure.            -->
	<!-- ===================================================================== -->
	<target name="post.compile.explorer.jar">
		
		<!-- Compile the JSPs -->
		<antcall target="compile">
			<reference refid="explorer.jar.classpath"/>
		</antcall>
		
		<!-- JspC always generates .java files; delete them -->
		<delete>
			<fileset dir="${target.folder}" includes="**/*.java"/>
		</delete>

	</target>
	
	<!-- ===================================================================== -->
	<!-- Steps to do after the compilation target <name>                       -->
	<!-- Substitute "name" with the name of the compilation target, eg @dot    -->
	<!-- Available parameters :                                                -->
	<!--   jar.location - the location of the compilation results              -->
	<!--   <name>.classpath : name = name of the compilation target. A         -->
	<!--                      reference to the classpath structure.            -->
	<!-- ===================================================================== -->
	<target name="post.explorer.jar">
	</target>
	
	<!-- ===================================================================== -->
	<!-- Steps to do before the target gather.bin.parts                         -->
	<!-- Available parameters :                                                -->
	<!--   build.result.folder - folder containing the build results           -->
	<!--   target.folder - destination folder                                  -->
	<!-- ===================================================================== -->
	<target name="pre.gather.bin.parts">
	</target>
		
	<!-- ===================================================================== -->
	<!-- Steps to do after the target gather.bin.parts                         -->
	<!-- Available parameters :                                                -->
	<!--   build.result.folder - folder containing the build results           -->
	<!--   target.folder - destination folder                                  -->
	<!-- ===================================================================== -->
	<target name="post.gather.bin.parts">
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do before the target gather.sources                          -->
	<!-- Available parameters :                                                -->
	<!--   destination.temp.folder - destination folder                        -->
	<!-- ===================================================================== -->
	<target name="pre.gather.sources">
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do after the target gather.sources                           -->
	<!-- Available parameters :                                                -->
	<!--   destination.temp.folder - destination folder                        -->
	<!-- ===================================================================== -->
	<target name="post.gather.sources">
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do before the target gather.logs                             -->
	<!-- Available parameters :                                                -->
	<!--   destination.temp.folder - destination folder                        -->
	<!-- ===================================================================== -->
	<target name="pre.gather.logs">        
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do after the target gather.logs                              -->
	<!-- Available parameters :                                                -->
	<!--   destination.temp.folder - destination folder                        -->
	<!-- ===================================================================== -->
	<target name="post.gather.logs">       
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do before the target clean                                   -->
	<!-- Available parameters :                                                -->
	<!--   destination.temp.folder - destination folder                        -->
	<!-- ===================================================================== -->
	<target name="pre.clean">              
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do after the target clean                                    -->
	<!-- Available parameters :                                                -->
	<!--   plugin.destination - final destination of the build                 -->
	<!--   build.result.folder - results of the compilation                    -->
	<!--   temp.folder - temporary folder                                      -->
	<!-- ===================================================================== -->
	<target name="post.clean">             
	</target>

	<target name="pre.wsexplorer-properties.jar">              
		</target>
	<target name="post.wsexplorer-properties.jar">              
			</target>
	<target name="post.compile.wsexplorer-properties.jar">              
			</target>

</project>
