<?xml version="1.0" encoding="UTF-8"?>
<project basedir="." default="default" name="testbench">
	<!-- doc before compile -->
	<target name="default" depends="clean,  update-dependencies, compile, jar,   zip" />
	<target name="dependency" depends="default" />
	<property file="build.properties" />
	<property name="appname" value="${ant.project.name}" />
	<property name="org" value="IJ Solutions , Inc." />
	<property name="src" location="${basedir}/src" />
	<property name="resources" location="resources" />
	<property name="etc" location="etc" />
	<property name="testsrc" location="test" />

	<property name="webapp" value="${basedir}/webapp" />
	<property name="lib" location="${basedir}/lib" />
	<property name="bin" location="${basedir}/bin" />
	<property name="docsource" location="resources/doc/Manual/" />
	<property name="build" location="${basedir}/build" />
	<property name="wardir" location="${build}/wartmp" />
	<property name="webinf" value="${wardir}/WEB-INF" />
	<property environment="env" />
	<property name="majorversion" value="7" />

	<property name="branch" value="" />
	<property name="version" value="${majorversion}.${env.BUILD_NUMBER}" />
	<property name="remotehome" value="http://dev.entermediasoftware.com/jenkins/job/" />

	<!-- 
		========================================================================
		Anthill build server properties.  These properties will be passed in
		by anthill when this script is executed on the build server.
		
			- "version" is set by the version adapter
			- "deployDir" is set by anthill.publish.dir
		========================================================================
	-->
	<property name="version" value="dev" />
	<property name="deployDir" location="deploy" />

	<!-- A convenience variable for documentation output -->
	<property name="versionDir" location="${deployDir}/${version}" />
	<property name="versionedApp" value="${appname}-${version}" />

	<!-- Edit this project dependency list for your project
		========================================================================
		Anthill projects this project depends on.
		========================================================================
	-->
	<target name="update-dependencies" depends="clean">
		<mkdir dir="${wardir}/WEB-INF/" />
		<get dest="${wardir}/WEB-INF/install.xml" src="${remotehome}/${branch}entermedia-server/lastSuccessfulBuild/artifact/deploy/install.xml" />
		<ant antfile="${wardir}/WEB-INF/install.xml" inheritAll="false" dir="${wardir}/WEB-INF/" target="default">
			<property name="remotehome" value="${remotehome}" />
		</ant>







	</target>

	<target name="clean">
		<delete dir="${build}" />
		<delete dir="${wardir}" />
	</target>

	<target name="source" depends="clean">
		<mkdir dir="${deployDir}/builds/" />
		<zip destfile="${deployDir}/builds/${appname}-${version}-src.zip" basedir="." excludes="deploy/**, build/**" />
	</target>


	<target name="compile" depends="clean">
		<mkdir dir="${build}/src" />

		<javac debug="true" destdir="${build}/src" srcdir="${src}" source="1.8" target="1.8">
			<classpath>
				<fileset dir="${lib}">
					<include name="*.jar" />
					<include name="compile/*.jar" />
				</fileset>
				<fileset dir="${wardir}/WEB-INF/lib/">
					<include name="*.jar" />
				</fileset>
			</classpath>
			<include name="**" />
		</javac>

		<mkdir dir="${build}/src" />
		<copy todir="${build}/src">
			<fileset dir="${src}">
				<include name="*.xml" />
			</fileset>
		</copy>

	</target>

	<!-- 
		========================================================================
		Jar classes for the main app, excluding unit tests.
		========================================================================
	-->
	<target name="jar" depends="compile">
		<mkdir dir="${deployDir}/builds/" />

		<jar jarfile="${deployDir}/builds/testbench.jar" basedir="${build}/src">
			<manifest>
				<attribute name="Built-By" value="${user.name}" />
				<attribute name="Implementation-Title" value="${appname}" />
				<attribute name="Implementation-Version" value="${version}" />
				<attribute name="Implementation-Vendor" value="${org}" />
			</manifest>
		</jar>
	</target>

	<!-- 
		========================================================================
		Create WAR
		========================================================================
	-->

	<target name="junit">

		<javac debug="true" destdir="${build}/src" srcdir="${testsrc}" source="1.8" target="1.8">
			<classpath>
				<fileset dir="${lib}">
					<include name="*.jar" />
					<include name="compile/*.jar" />
				</fileset>
				<fileset dir="${wardir}/WEB-INF/lib/">
					<include name="*.jar" />
				</fileset>
			</classpath>
			<include name="**" />
		</javac>

		<property name="report" location="${deployDir}" />
		<mkdir dir="${report}" />
		<echo>JUnit report is located: ${report}/junit.xml</echo>

		<junit showoutput="true" printsummary="true" fork="true">
			<sysproperty key="oe.root.path" value="webapp" />
			<classpath>
				<fileset dir="${lib}">
					<include name="**/*.jar" />
				</fileset>
				<fileset dir="${wardir}/WEB-INF/lib/">
					<include name="*.jar" />
				</fileset>
				<pathelement location="${build}/src" />
			</classpath>
			<test haltonerror="true" haltonfailure="true" name="org.ijsolutions.testing.AllTests" outfile="./junit" todir="${report}">
				<formatter type="xml" />
			</test>
		</junit>
	</target>



	<target name="zip" depends="jar">
		<mkdir dir="${deployDir}/builds/" />
		<zip destfile="${deployDir}/builds/${appname}.zip">
			<zipfileset dir="${lib}" prefix="lib" excludes="compile/**" />

			<zipfileset dir="${deployDir}/builds/" includes="${appname}.jar" prefix="lib" />
			<zipfileset dir="${webapp}/WEB-INF/base/bootstrapfrontend" prefix="base/bootstrapfrontend" />
			<zipfileset dir="${webapp}/WEB-INF/base/oneliveweb" prefix="base/oneliveweb" />

			<zipfileset dir="${webapp}/festi" prefix="festi" excludes="classes/** courses/** orders/**" />
			<zipfileset dir="${webapp}/fireexam" prefix="fireexam" excludes="classes/** courses/**" />
			<zipfileset dir="${webapp}/vesseltraining" prefix="vesseltraining" excludes="classes/** courses/**" />

			<zipfileset dir="${webapp}/firewise" prefix="firewise" excludes="classes/** courses/**" />
			<zipfileset dir="${webapp}/netevolved" prefix="netevolved" excludes="classes/** courses/**" />
			<zipfileset dir="${webapp}/evolved" prefix="evolved" />
			<zipfileset dir="${webapp}/colonies" prefix="colonies" excludes="classes/** courses/** orders/**" />
			<zipfileset dir="${webapp}/WEB-INF/base/connect" prefix="connect" excludes="classes/** courses/** " />
			<zipfileset dir="${webapp}/colony42" prefix="colony42" excludes="classes/** courses/** " />


		</zip>

		<copy overwrite="true" file="${etc}/install.js" tofile="${deployDir}/install.js">
			<filterset>
				<filter token="BRANCH" value="${branch}" />
			</filterset>
		</copy>
		<copy overwrite="true" file="${etc}/install.xml" tofile="${deployDir}/install.xml">
			<filterset>
				<filter token="BRANCH" value="${branch}" />
			</filterset>
		</copy>


	</target>


</project>
