<?xml version="1.0"?>
<project name="project">
	
	<target name="getMajorMinorVersion">
	    <script language="javascript">
	        <![CDATA[

	                // getting the value
	                buildnumber = project.getProperty("unqualifiedVersion");
	                index = buildnumber.lastIndexOf(".");
	                counter = buildnumber.substring(0, index);
	    			project.setProperty("majorMinorVersion",counter);

	            ]]>
	    </script>
	</target>

	<target name="test_getMajorMinor" depends="getMajorMinorVersion">
		<echo message="majorMinorVersion: ${majorMinorVersion}"/>
	</target>

	<!--
		site.label			The name/title/label of the created composite site
		unqualifiedVersion 	The version without any qualifier replacement
		buildQualifier		The build qualifier
	-->
	<target name="compute.child.repository.data" depends="getMajorMinorVersion">
		<property name="full.version" value="${unqualifiedVersion}.${buildQualifier}" />

		<property name="software.download.area" location="${user.home}/p2.repositories" />
		<property name="updates.dir" value="updates" />

		<property name="site.composite.name" value="${site.label} ${majorMinorVersion}" />
		<property name="main.site.composite.name" value="${site.label} All Versions" />

		<property name="main.composite.repository.directory" location="${software.download.area}/${updates.dir}" />

		<property name="composite.repository.directory" value="${main.composite.repository.directory}/${majorMinorVersion}" />
		<property name="child.repository" value="${full.version}" />
		<property name="child.repository.directory" value="${composite.repository.directory}/${child.repository}/" />
	</target>

	<target name="p2.composite.add" depends="compute.child.repository.data">
		<property name="source.repository" location="${project.build.directory}/repository"/>

		<echo message=" " />

		<echo message="Source repository path: ${source.repository}" />

		<echo message="Copying to ${child.repository.directory}..." />

		<mkdir dir="${child.repository.directory}"/>
		<copy todir="${child.repository.directory}" overwrite="true">
			<fileset dir="${source.repository}" />
		</copy>

		<add.composite.repository.internal
			composite.repository.location="${composite.repository.directory}"
			composite.repository.name="${site.composite.name}"
			composite.repository.child="${child.repository}"
		/>
		
		<add.composite.repository.internal
			composite.repository.location="${main.composite.repository.directory}"
			composite.repository.name="${main.site.composite.name}"
			composite.repository.child="${majorMinorVersion}"
		/>

	</target>
	
	<!-- = = = = = = = = = = = = = = = = =
          macrodef: add.composite.repository.internal          
         = = = = = = = = = = = = = = = = = -->
    <macrodef name="add.composite.repository.internal">
        <attribute name="composite.repository.location" />
    	<attribute name="composite.repository.name" />
    	<attribute name="composite.repository.child" />
        <sequential>

    		<echo message=" " />
    		<echo message="Composite repository       : @{composite.repository.location}" />
    		<echo message="Composite name             : @{composite.repository.name}" />
    		<echo message="Adding child repository    : @{composite.repository.child}" />

    		<p2.composite.repository>
    			<repository
    				compressed="false"
    				location="@{composite.repository.location}" 
    				name="@{composite.repository.name}" />
    			<add>
    				<repository location="@{composite.repository.child}" />
    			</add>
    		</p2.composite.repository>

		<echo file="@{composite.repository.location}/p2.index">version=1
metadata.repository.factory.order=compositeContent.xml,\!
artifact.repository.factory.order=compositeArtifacts.xml,\!
</echo>
            
        </sequential>
    </macrodef>


</project>
