<project name="Build specific targets and properties" default="noDefault">

	<!-- ===================================================================== -->
	<!-- Run a given ${target} on all elements being built -->
	<!-- Add on <ant> task for each top level element being built. -->
	<!-- ===================================================================== -->
	<available property="allElementsFile" file="${builder}/allElements.xml" value="${builder}/allElements.xml" />
	<property name="allElementsFile" location="${eclipse.pdebuild.templates}/headless-build/allElements.xml" />
	<loadproperties srcfile="${builder}/update_repo.properties" />
	<property name="transformedRepoLocation" value="${targetDir}/${targetDownloadId}" />
	<property name="repoBaseLocation" value="${targetDir}/${targetDownloadId}-p2" />
	<property name="updateSite" value="${targetDir}/updates/0.11-I-builds" />
	<property name="repoBaseline" value="${updateSite}" />


	<import file="${allElementsFile}" />
	<target name="allElements">
		<antcall target="allElementsDelegator" />
	</target>

	<!-- ===================================================================== -->
	<!-- ===================================================================== -->
	<target name="getBaseComponents" depends="checkLocalBase" unless="skipBase">
	</target>

	<target name="checkLocalBase">
		<available file="${base}" property="skipBase" />
	</target>

	<!-- ===================================================================== -->
	<!-- Check out map files from correct repository -->
	<!-- Replace values for mapsCheckoutTag as desired. -->
	<!-- ===================================================================== -->
	<target name="getMapFiles" depends="checkLocalMaps" unless="skipMaps">
		<property name="mapsCheckoutTag" value="HEAD" />
		<cvs cvsRoot="${mapsRepo}" package="${mapsRoot}" dest="${buildDirectory}/maps" tag="${mapsCheckoutTag}" />
		<antcall target="tagMapFiles" />
	</target>

	<target name="checkLocalMaps">
		<available property="skipMaps" file="${buildDirectory}/maps" />
	</target>

	<target name="tagMapFiles" if="tagMaps">
		<cvs dest="${buildDirectory}/maps/${mapsRoot}" command="tag ${mapsTagTag}" />
	</target>

	<!-- ===================================================================== -->

	<target name="clean" unless="noclean">
		<antcall target="allElements">
			<param name="target" value="cleanElement" />
		</antcall>
	</target>

	<target name="gatherLogs">
		<mkdir dir="${buildDirectory}/${buildLabel}/compilelogs" />
		<antcall target="allElements">
			<param name="target" value="gatherLogs" />
		</antcall>
		<unzip dest="${buildDirectory}/${buildLabel}/compilelogs" overwrite="true">
			<fileset dir="${buildDirectory}/features">
				<include name="**/*.log.zip" />
			</fileset>
		</unzip>
		<copy todir="${buildDirectory}/${buildLabel}/compilelogs" overwrite="true" failonerror="false">
			<fileset dir="${buildDirectory}/features/org.eclipse.e4.resources.feature/feature.temp.folder" />
		</copy>
		<copy todir="${buildDirectory}/${buildLabel}/compilelogs" overwrite="true" failonerror="false">
			<fileset dir="${buildDirectory}/features/org.eclipse.e4.master/feature.temp.folder" />
		</copy>
		<copy todir="${buildDirectory}/${buildLabel}/compilelogs" overwrite="true" failonerror="false">
			<fileset dir="${buildDirectory}/features/org.eclipse.e4.sdk.runtime.feature/feature.temp.folder" />
		</copy>
		<copy todir="${buildDirectory}/${buildLabel}/compilelogs" overwrite="true" failonerror="false">
			<fileset dir="${buildDirectory}/features/org.eclipse.e4.sdk.source.feature/feature.temp.folder" />
		</copy>
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do before setup -->
	<!-- ===================================================================== -->
	<target name="preSetup">
	</target>

	<target name="initLocations" >
		<available property="repoURLFile" value="${buildDirectory}/eclipseRepoURL.properties" file="${buildDirectory}/eclipseRepoURL.properties" />
		<antcall target="initRepoURLFile" />
		<property name="repoURLFile" value="${buildDirectory}/eclipseRepoURL.properties" />
		<property file="${repoURLFile}"/>
	</target>
	
	<target name="initRepoURLFile" unless="repoURLFile" >
		<!-- figure out what the most recent eclipse IBuild is -->
		<get src="${eclipseRepoURL}/compositeContent.jar" dest="${buildDirectory}/eclipseRepo.jar" />
		<loadproperties>
			<zipentry zipfile="${buildDirectory}/eclipseRepo.jar" name="compositeContent.xml" />
			<filterchain>
				<replaceregex pattern=".*location\s*=\s*'(.+)'.*" replace="eclipseBuildId=\1" flags="s" />
			</filterchain>
		</loadproperties>
		
		<!-- store it for others -->
		<echo message="eclipseRepoURL-latest=${eclipseRepoURL}/${eclipseBuildId}${line.separator}" file="${buildDirectory}/eclipseRepoURL.properties" />
	</target>
	
	<target name="freeze41Bundles" >
		<replaceregexp file="${buildDirectory}/directory.txt" 
			match="plugin@org.eclipse.e4.tools=GIT,tag=[-v0-9]*," 
			replace="plugin@org.eclipse.e4.tools=GIT,tag=v20110613-2030," />
	</target>
	
	<!-- ===================================================================== -->
	<!-- Steps to do after setup but before starting the build proper -->
	<!-- ===================================================================== -->
	<target name="postSetup" depends="initLocations">
		<antcall target="freeze41Bundles" />
		<antcall target="getBaseComponents" />
		
		<echo message="Mirror from ${eclipseRepoURL-latest} to ${repoBaseLocation}/eclipseSDK" />
		<p2.mirror destination="file:${repoBaseLocation}/eclipseSDK" ignoreerrors="true">
			<source location="${eclipseRepoURL-latest}" />
			<slicingOptions includeOptional="false" includeNonGreedy="false" latestVersionOnly="true"/>
			<iu id="org.eclipse.sdk.ide" />
			<!--<iu id="org.eclipse.equinox.core.sdk.feature.group" /> -->
		</p2.mirror>
		
		<echo message="Mirror from ${orbitRepoURL} to ${repoBaseLocation}/orbit" />
		<p2.mirror destination="file:${repoBaseLocation}/orbit" ignoreerrors="true">
			<source location="${orbitRepoURL}" />
			<slicingOptions includeOptional="false" includeNonGreedy="false" />
			<iu id="org.apache.commons.beanutils" />
			<iu id="org.apache.commons.lang" />
			<iu id="org.junit" version="0.0.0" />
			<iu id="org.junit.source" version="0.0.0" />
			<iu id="javax.el" />
		</p2.mirror>
		
		<echo message="Mirror from ${emfRepoURL} to ${repoBaseLocation}/emf" />
		<p2.mirror destination="file:${repoBaseLocation}/emf" ignoreerrors="true">
			<source location="${emfRepoURL}" />
			<slicingOptions includeOptional="false" includeNonGreedy="false" latestVersionOnly="true" />
			<iu id="org.eclipse.emf.sdk.feature.group" />
			<iu id="org.eclipse.xsd.edit.feature.group" />
		</p2.mirror>
		
		<echo message="Mirror from ${gefRepoURL} to ${repoBaseLocation}/gef" />
		<p2.mirror destination="file:${repoBaseLocation}/gef" ignoreerrors="true">
			<source location="${gefRepoURL}" />
			<slicingOptions includeOptional="false" includeNonGreedy="false" />
			<iu id="org.eclipse.gef.feature.group" />
		</p2.mirror>
		
		<echo message="Mirror from ${wtpRepoURL} to ${repoBaseLocation}/wtp" />
		<p2.mirror destination="file:${repoBaseLocation}/wtp" ignoreerrors="true">
			<source location="${wtpRepoURL}" />
			<slicingOptions includeOptional="false" includeNonGreedy="false" />
			<iu id="org.eclipse.wst.xml_ui.feature.feature.group" />
			<iu id="org.eclipse.wst.web_core.feature.feature.group" />
		</p2.mirror>
		
		<!--<p2.remove.iu>
			<repository location="file:${targetDir}/${targetDownloadId}-p2" />
			<iu id="org.eclipse.rap.jface" />
			<iu id="org.eclipse.rap.rwt" />
			<iu id="org.eclipse.rap.ui.forms" />
		</p2.remove.iu>-->
	
		<p2.repo2runnable destination="${transformedRepoLocation}" failOnError="false">
			<source dir="${repoBaseLocation}" includes="*" excludes="${repoBaseLocation.excludes}"/>
		</p2.repo2runnable>
	</target>	

	<!-- ===================================================================== -->
	<!-- Steps to do before fetching the build elements -->
	<!-- ===================================================================== -->
	<target name="preFetch">
		<echo message="Filtering map files..." />
		<!-- run against base repo instead of the transformed repo, so we don't worry about checking directories -->
		<fileset dir="${repoBaseLocation}/eclipseSDK/plugins" includes="*" id="filter.plugins" />
		<property name="mapFile" value="${buildDirectory}/directory.txt" />
		<script language="javascript"> <![CDATA[
			importClass(java.io.FileInputStream);
			importClass(java.io.FileOutputStream);
			importClass(java.util.Properties);
			importClass(java.lang.System);
			
			var mapFile = project.getProperty("mapFile");
			
			var map = new Properties();
			map.load(new FileInputStream(mapFile));
			
			var fs = project.getReference("filter.plugins");
			var files = fs.getDirectoryScanner(project).getIncludedFiles();

			for(i = 0; i < files.length; i++) {  //14
				var name = files[i].match(/([^_]*((_64)|(_32))?[^_]*)_.*/)[1];
				if (map.containsKey("plugin@" + name)) {
					System.out.println("Removed plugin@" + name);
					map.remove("plugin@" + name);
				} else if (map.containsKey("fragment@" + name)) {
					System.out.println("Removed fragment@" + name);
					map.remove("fragment@" + name);
				}
			}
			
			var out = new FileOutputStream(mapFile);
			map.store(out, "Filtered");
			out.close();
		]]></script>
	</target>
	<!-- ===================================================================== -->
	<!-- Steps to do after fetching the build elements -->
	<!-- ===================================================================== -->
	<target name="postFetch">
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do before generating the build scripts. -->
	<!-- ===================================================================== -->
	<target name="preGenerate">
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do after generating the build scripts. -->
	<!-- ===================================================================== -->
	<target name="postGenerate">
		<antcall target="clean" />
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do before running the build.xmls for the elements being built. -->
	<!-- ===================================================================== -->
	<target name="preProcess">
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do after running the build.xmls for the elements being built. -->
	<!-- ===================================================================== -->
	<target name="postProcess">
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do before running assemble. -->
	<!-- ===================================================================== -->
	<target name="preAssemble">
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do after  running assemble. -->
	<!-- ===================================================================== -->
	<target name="postAssemble">
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do before running package. -->
	<!-- ===================================================================== -->
	<target name="prePackage">
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do after  running package. -->
	<!-- ===================================================================== -->
	<target name="postPackage">
	</target>

	<target name="unzipContentJar" if="contentJar">
		<unzip src="${p2.repo}/content.jar" dest="${p2.repo}" />
		<delete file="${p2.repo}/content.jar" />
	</target>
	<!-- ===================================================================== -->
	<!-- Steps to do after the build is done. -->
	<!-- ===================================================================== -->
	<target name="postBuild" depends="initLocations">
		<antcall target="gatherLogs" />
		<eclipse.convert input="${buildDirectory}/${buildLabel}/compilelogs" />
		<available file="${p2.repo}/content.jar" property="contentJar" />
		<antcall target="unzipContentJar" />
		<xslt style="${builder}/patch-ver.xsl" in="${p2.repo}/content.xml" out="${p2.repo}/out_content.xml">
			<outputproperty name="method" value="xml" />
		</xslt>
		<move file="${p2.repo}/out_content.xml" tofile="${p2.repo}/content.xml" />

		<!--sign the build -->
		<ant antfile="${builder}/sign.xml" dir="${basedir}" target="createSigningArchive" >
			<property name="includesFile" value="${buildDirectory}/built.list" />
		</ant>
		<ant antfile="${builder}/sign.xml" dir="${basedir}" target="signMasterFeature" />
		
		<!--unzip signed build into repository for mirroring and packaging-->
		<unzip dest="${p2.repo}" src="${buildDirectory}/${buildLabel}/eclipse-master-${buildId}.zip" />

		<!--pack master feature and update repository with new checksums for signed bundles -->
		<p2.process.artifacts repositoryPath="file://${p2.repo}"  />
		<delete file="${p2.repo}/pack.properties" />

		<filter token="BUILD_ID" value="${buildLabel}" />
		<copy filtering="true" file="${builder}/templates/artifacts.xml" tofile="${buildDirectory}/formatRepo/artifacts.xml" />
		<p2.mirror source="file:${p2.repo}" log="${buildDirectory}/${buildLabel}/mirrorLog.txt" ignoreErrors="true">
			<destination compressed="true" name="${p2.repo.name}" location="file:${updateSite}/${buildLabel}" append="true" kind="metadata" />
			<destination compressed="true" name="${p2.repo.name}" location="file:${updateSite}/${buildLabel}" append="true" format="file:${buildDirectory}/formatRepo" kind="artifact"/>
			<comparator comparator="org.eclipse.equinox.p2.repository.tools.jar.comparator" comparatorLog="${buildDirectory}/${buildLabel}/comparatorlog.txt">
				<repository location="${repoBaseline}" />
			</comparator>
		</p2.mirror>
		<p2.composite.artifact.repository.add location="file://${updateSite}" child="${buildLabel}" />
		<p2.composite.metadata.repository.add location="file://${updateSite}" child="${buildLabel}" />

		<!--p2.composite.repository location="file:${updateSite}" >
			<add location="${buildLabel}" />
		</p2.composite.repository-->

		<tstamp>
			<format property="repmaindate" pattern="yyyy MMMM dd HH:mm" locale="en" />
		</tstamp>

		<copy file="${builder}/../../templates/dl-icon-update-zip.gif" tofile="${buildDirectory}/${buildLabel}/dl-icon-update-zip.gif" />
		<copy file="${builder}/../../templates/FAIL.gif" tofile="${buildDirectory}/${buildLabel}/FAIL.gif" />
		<copy file="${builder}/../../templates/new.gif" tofile="${buildDirectory}/${buildLabel}/new.gif" />
		<copy file="${builder}/../../templates/OK.gif" tofile="${buildDirectory}/${buildLabel}/OK.gif" />
		<copy file="${builder}/../../templates/build.download.php" tofile="${buildDirectory}/${buildLabel}/download.php" />
		<copy file="${buildDirectory}/directory.txt" todir="${buildDirectory}/${buildLabel}" />

		<zip destfile="${buildDirectory}/${buildLabel}/eclipse-e4-repo-incubation-${buildLabel}.zip" basedir="${p2.repo}"></zip>

		<length file="${buildDirectory}/${buildLabel}/eclipse-e4-repo-incubation-${buildLabel}.zip" property="repobuildsize" />


		<property name="buildlogs" value="${buildDirectory}/${buildLabel}" />
		<property name="p2.root" value="${buildDirectory}/${buildId}/p2temp" />
		<mkdir dir="${p2.root}" />
		<property name="p2.output.base" value="${p2.root}/equinox.p2.build" />
		<mkdir dir="${p2.output.base}" />
		<property name="directorlog" value="${buildlogs}/director.txt" />
	
		<delete file="${buildDirectory}/version.properties" />
		<antcall target="run.version.query">
			<param name="list.repo" value="file:${p2.sdk.install.linux.gtk.x86_64}/eclipse/p2/org.eclipse.equinox.p2.engine/profileRegistry/SDKProfile.profile" />
			<param name="list.iu" value="org.eclipse.e4.workbench.sdk,org.eclipse.emf,org.eclipse.gef,org.eclipse.sdk,org.eclipse.wst.jsdt.ui,org.eclipse.xsd,org.eclipse.wst.xml_ui.feature.feature.group" />
		</antcall>
		<property file="${buildDirectory}/version.properties" />
		
		<!-- generate the build index, guess the component version numbers -->
		<filter token="repbuildid" value="${buildLabel}" />
		<filter token="repmaindate" value="${repmaindate}" />
		<filter token="repbuilddate" value="${buildLabel}" />
		<filter token="repobuildsize" value="${repobuildsize}" />
		<filter token="timestamp" value="${timestamp}" />
		<filter token="buildType" value="${buildType}" />
		<filter token="buildId" value="${buildId}" />
		<filter token="buildLabel" value="${buildLabel}" />
		<filter token="eclipseIbuild" value="${org.eclipse.sdk}" />
		<filter token="emfBuildId" value="${org.eclipse.emf}" />
		<filter token="gefBuildId" value="${org.eclipse.gef}" />
		<filter token="eclipseBuildURL" value="${eclipseRepoURL-latest}" />
		<filter token="emfBuildURL" value="${emfBuildURL}" />
		<filter token="gefBuildURL" value="${gefBuildURL}" />
		<filter token="wtpBuildURL" value="${wtpBuildURL}" />
		<filter token="wtpBuildId" value="${wtpBuildId}" />
		<copy filtering="true" file="${builder}/../../templates/build.index.html" tofile="${buildDirectory}/${buildLabel}/index.html" />
		<copy filtering="true" file="${builder}/tests/build.label.properties" tofile="${buildDirectory}/label.properties" />
		
		<echo message="e4.targetDir=${repoBaseLocation}${line.separator}" file="${buildDirectory}/label.properties" append="true" />
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do to test the build results -->
	<!-- ===================================================================== -->
	<target name="test">
	</target>

	<!-- ===================================================================== -->
	<!-- Steps to do to publish the build results -->
	<!-- ===================================================================== -->
	<target name="publish">
	</target>

	<!-- ===================================================================== -->
	<!-- Default target                                                        -->
	<!-- ===================================================================== -->
	<target name="noDefault">
		<echo message="You must specify a target when invoking this file" />
	</target>

	<target name="run.version.query">
		<delete dir="${base.builder}/configuration/.settings" includeemptydirs="true" failonerror="false" />
		<exec executable="${java15-home}/bin/java" failonerror="false" dir="${base.builder}" timeout="900000" output="${buildDirectory}/version.properties" error="/dev/null">
			<arg line="-jar ${base.builder.launcher}" />
			<arg line="-application org.eclipse.equinox.p2.director" />
			<arg line="-nosplash" />
			<arg line="-repository ${list.repo}" />
			<arg line="-list ${list.iu}" />
		</exec>
	</target>

</project>

