<?xml version="1.0" encoding="UTF-8"?>
<!--#======================================================================= -->
<!--# Copyright (c) 2012, 2014 - C4biz Softwares ME, Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
<!--# All rights reserved. This program and the accompanying materials -->
<!--# are made available under the terms of the Eclipse Public License 2.0  -->
<!--# which accompanies this distribution, and is available at -->
<!--# https://www.eclipse.org/legal/epl-2.0/    -->
<!--#                                           -->
<!--# SPDX-License-Identifier: EPL-2.0          -->
<!--# -->
<!--# Contributors: -->
<!--# Cristiano Gavião (C4biz)- initial API and implementation -->
<!--#======================================================================= -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.eclipse.osbp.releng.maven</groupId>
        <artifactId>org.eclipse.osbp.releng.maven</artifactId>
        <version>0.9.0-SNAPSHOT</version>
        <relativePath>../pom.xml</relativePath>
    </parent>

    <artifactId>org.eclipse.osbp.releng.maven.parent.tycho</artifactId>

    <packaging>pom</packaging>

    <properties>
    
        <!-- these will be set by profiles (defaults to OSBPa) -->
        <!-- 		<osbp.build.eclipse.platform.name></osbp.build.eclipse.platform.name> -->
        <!-- 		<osbp.build.eclipse.platform.p2.url></osbp.build.eclipse.platform.p2.url> -->
    
        <!-- these will be set by profiles that deals with the local federated 
			stage repository -->
        <osbp.build.local.federated.p2.dir>${osbp.stage.p2.target.dir.base}${file.separator}${osbp.build.branch}${file.separator}</osbp.build.local.federated.p2.dir>
        <osbp.build.local.federated.p2.url>file://${osbp.build.local.federated.p2.dir}</osbp.build.local.federated.p2.url>
        <osbp.build.remote.federated.p2.url>${osbp.p2}</osbp.build.remote.federated.p2.url>
    
        <!-- this property is calculated based on the aggregator pom's version -->
        <!-- osbp.stage.artifact.version>none</osbp.stage.artifact.version> -->
        <osbp.stage.artifact.version>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.${osgi-version-qualifier}</osbp.stage.artifact.version>
        <osbp.stage.p2.keep.old>false</osbp.stage.p2.keep.old>
    </properties>

    <scm>
        <connection>${osbp.scm.connection}</connection>
        <developerConnection>${osbp.scm.connection.dev}</developerConnection>
        <tag>HEAD</tag>
    </scm>

    <profiles>
        <profile>
            <id>platform.default</id>
            <activation>
                <property>
                    <name>!osbp.build.eclipse.platform.name</name>
                </property>
            </activation>
            <properties>
	            <osbee.build.eclipse.platform.p2.url>http://download.eclipse.org/releases/neon</osbee.build.eclipse.platform.p2.url>
                <osbp.build.eclipse.platform.name>neon</osbp.build.eclipse.platform.name>
	            <orbit-site>http://download.eclipse.org/tools/orbit/downloads/drops/R20170307180635/repository/</orbit-site>
            </properties>
            <repositories>
	            <repository>
		            <id>Neon eclipse.p2</id>
        		    <url>http://download.eclipse.org/releases/neon</url>
            		<layout>p2</layout>
        		</repository>
	            <repository>
	                <id>EclipseNeonSR2</id>
	                <url>http://download.eclipse.org/releases/neon/201612211000/
	                </url>
	                <layout>p2</layout>
	            </repository>
	            <repository>
	                <id>EclipseNeonSR3</id>
	                <url>http://download.eclipse.org/releases/neon/201703231000/
	                </url>
	                <layout>p2</layout>
	            </repository>
	            <repository>
	                <id>Neon3 Orbit</id>
	                <url>http://download.eclipse.org/tools/orbit/downloads/drops/R20170307180635/repository/
	                </url>
	                <layout>p2</layout>
	            </repository>
	            <repository>
	                <id>EclipseNeonComposite</id>
	                <url>http://download.eclipse.org/eclipse/updates/4.6/
	                </url>
	                <layout>p2</layout>
	            </repository>
            </repositories>
        </profile>
        <profile>
            <id>platform.neon</id>
            <activation>
                <property>
                    <name>osbp.build.eclipse.platform.name</name>
                    <value>neon</value>
                </property>
            </activation>
            <properties>
	            <osbee.build.eclipse.platform.p2.url>http://download.eclipse.org/releases/neon</osbee.build.eclipse.platform.p2.url>
	            <orbit-site>http://download.eclipse.org/tools/orbit/downloads/drops/R20170307180635/repository/</orbit-site>
                <osbp.build.eclipse.platform.name>neon</osbp.build.eclipse.platform.name>
            </properties>
            <repositories>
	            <repository>
		            <id>Neon eclipse.p2</id>
        		    <url>http://download.eclipse.org/releases/neon</url>
            		<layout>p2</layout>
        		</repository>
	            <repository>
	                <id>EclipseNeonSR2</id>
	                <url>http://download.eclipse.org/releases/neon/201612211000/
	                </url>
	                <layout>p2</layout>
	            </repository>
	            <repository>
	                <id>EclipseNeonSR3</id>
	                <url>http://download.eclipse.org/releases/neon/201703231000/
	                </url>
	                <layout>p2</layout>
	            </repository>
	            <repository>
	                <id>Neon3 Orbit</id>
	                <url>http://download.eclipse.org/tools/orbit/downloads/drops/R20170307180635/repository/
	                </url>
	                <layout>p2</layout>
	            </repository>
	            <repository>
	                <id>EclipseNeonComposite</id>
	                <url>http://download.eclipse.org/eclipse/updates/4.6/
	                </url>
	                <layout>p2</layout>
	            </repository>
            </repositories>
        </profile>
        <profile>
            <id>platform.luna</id>
            <activation>
                <property>
                    <name>osbp.build.eclipse.platform.name</name>
                    <value>luna</value>
                </property>
            </activation>
            <properties>
                <osbp.build.eclipse.platform.name>luna</osbp.build.eclipse.platform.name>
	            <orbit-site>http://download.eclipse.org/tools/orbit/downloads/drops/R20140525021250/repository/</orbit-site>
            </properties>
            <repositories>
	            <repository>
		            <id>Luna eclipse.p2</id>
        		    <url>http://download.eclipse.org/releases/luna</url>
            		<layout>p2</layout>
        		</repository>
        		<repository>
            		<id>orbit</id>
            		<url>http://download.eclipse.org/tools/orbit/downloads/drops/R20140525021250/repository/</url>
            		<layout>p2</layout>
        		</repository>
            </repositories>
            
        </profile>
        <profile>
            <id>osbp.build.uses.local.federated.p2</id>
            <activation>
                <property>
                    <name>osbp.build.uses.local.federated.p2</name>
                </property>
            </activation>
            <repositories>
                <repository>
                    <id>osbp.local.federated.p2</id>
                    <url>${osbp.build.local.federated.p2.url}</url>
                    <layout>p2</layout>
                </repository>
            </repositories>
        </profile>
        <profile>
            <id>osbp.build.uses.remote.federated.p2</id>
            <activation>
                <property>
                    <name>osbp.build.uses.remote.federated.p2</name>
                </property>
            </activation>
            <repositories>
                <repository>
                    <id>osbp.remote.federated.p2</id>
                    <url>${osbp.build.remote.federated.p2.url}</url>
                    <layout>p2</layout>
                </repository>
            </repositories>
        </profile>
        <profile>
            <id>whenIsDependenciesRepositoryP2Project</id>
            <activation>
                <file>
                    <exists>.osbp.releng.eclipse.dependencies.p2</exists>
                </file>
            </activation>
            <properties>
                <!-- encoded files needed by ant task -->
                <encoded.p2index>dmVyc2lvbiA9IDEKIG1ldGFkYXRhLnJlcG9zaXRvcnkuZmFjdG9yeS5vcmRlciA9IGNvbXBvc2l0ZUNvbnRlbnQueG1sLFwhCiBhcnRpZmFjdC5yZXBvc2l0b3J5LmZhY3Rvcnkub3JkZXIgPSBjb21wb3NpdGVBcnRpZmFjdHMueG1sLFwh</encoded.p2index>
                <encoded.compositeArtifacts>PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjw/Y29tcG9zaXRlQXJ0aWZhY3RSZXBvc2l0b3J5IHZlcnNpb249JzEuMC4wJz8+DQo8cmVwb3NpdG9yeSBuYW1lPSdPUy5iZWUgUHVibGljIFAyIFJlcG9zaXRvcnknIHR5cGU9J29yZy5lY2xpcHNlLmVxdWlub3guaW50ZXJuYWwucDIuYXJ0aWZhY3QucmVwb3NpdG9yeS5Db21wb3NpdGVBcnRpZmFjdFJlcG9zaXRvcnknIHZlcnNpb249JzEuMC4wJz4NCiAgPHByb3BlcnRpZXMgc2l6ZT0nMSc+DQoJPHByb3BlcnR5IG5hbWU9J3AyLnRpbWVzdGFtcCcgdmFsdWU9JzEyNDM4MjI1MDI0NDAnLz4NCiAgPC9wcm9wZXJ0aWVzPg0KICA8Y2hpbGRyZW4gc2l6ZT0nMCc+CQ0KICA8L2NoaWxkcmVuPg0KPC9yZXBvc2l0b3J5Pg==</encoded.compositeArtifacts>
                <encoded.compositeContent>PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjw/Y29tcG9zaXRlTWV0YWRhdGFSZXBvc2l0b3J5IHZlcnNpb249JzEuMC4wJz8+DQo8cmVwb3NpdG9yeSBuYW1lPSdPUy5iZWUgUHVibGljIFAyIFJlcG9zaXRvcnknIHR5cGU9J29yZy5lY2xpcHNlLmVxdWlub3guaW50ZXJuYWwucDIubWV0YWRhdGEucmVwb3NpdG9yeS5Db21wb3NpdGVNZXRhZGF0YVJlcG9zaXRvcnknIHZlcnNpb249JzEuMC4wJz4NCiAgPHByb3BlcnRpZXMgc2l6ZT0nMSc+DQoJPHByb3BlcnR5IG5hbWU9J3AyLnRpbWVzdGFtcCcgdmFsdWU9JzEyNDM4MjI1MDI0OTknLz4NCiAgPC9wcm9wZXJ0aWVzPg0KICA8Y2hpbGRyZW4gc2l6ZT0nMCc+DQogIDwvY2hpbGRyZW4+DQo8L3JlcG9zaXRvcnk+</encoded.compositeContent>
            
                <!-- this properties should be overridden for each repository POM -->
                <osbp.stage.p2.label>${project.artifactId}</osbp.stage.p2.label>
            </properties>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.eclipse.tycho</groupId>
                        <artifactId>target-platform-configuration</artifactId>
                        <configuration>
                            <resolver>p2</resolver>
                            <pomDependencies>consider</pomDependencies>
                            <environments>
                                <environment>
                                    <os>win32</os>
                                    <ws>win32</ws>
                                    <arch>x86</arch>
                                </environment>
                                <environment>
                                    <os>win32</os>
                                    <ws>win32</ws>
                                    <arch>x86_64</arch>
                                </environment>
                                <environment>
                                    <os>linux</os>
                                    <ws>gtk</ws>
                                    <arch>x86</arch>
                                </environment>
                                <environment>
                                    <os>linux</os>
                                    <ws>gtk</ws>
                                    <arch>x86_64</arch>
                                </environment>
                                <environment>
                                    <os>macosx</os>
                                    <ws>cocoa</ws>
                                    <arch>x86_64</arch>
                                </environment>
                            </environments>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        
        </profile>
        <profile>
            <id>whenIsRepositoryP2Project</id>
            <activation>
                <file>
                    <exists>.osbp.releng.eclipse.p2</exists>
                </file>
            </activation>
            <properties>
                <!-- encoded files needed by ant task -->
                <encoded.p2index>dmVyc2lvbiA9IDEKIG1ldGFkYXRhLnJlcG9zaXRvcnkuZmFjdG9yeS5vcmRlciA9IGNvbXBvc2l0ZUNvbnRlbnQueG1sLFwhCiBhcnRpZmFjdC5yZXBvc2l0b3J5LmZhY3Rvcnkub3JkZXIgPSBjb21wb3NpdGVBcnRpZmFjdHMueG1sLFwh</encoded.p2index>
                <encoded.compositeArtifacts>PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjw/Y29tcG9zaXRlQXJ0aWZhY3RSZXBvc2l0b3J5IHZlcnNpb249JzEuMC4wJz8+DQo8cmVwb3NpdG9yeSBuYW1lPSdPUy5iZWUgUHVibGljIFAyIFJlcG9zaXRvcnknIHR5cGU9J29yZy5lY2xpcHNlLmVxdWlub3guaW50ZXJuYWwucDIuYXJ0aWZhY3QucmVwb3NpdG9yeS5Db21wb3NpdGVBcnRpZmFjdFJlcG9zaXRvcnknIHZlcnNpb249JzEuMC4wJz4NCiAgPHByb3BlcnRpZXMgc2l6ZT0nMSc+DQoJPHByb3BlcnR5IG5hbWU9J3AyLnRpbWVzdGFtcCcgdmFsdWU9JzEyNDM4MjI1MDI0NDAnLz4NCiAgPC9wcm9wZXJ0aWVzPg0KICA8Y2hpbGRyZW4gc2l6ZT0nMCc+CQ0KICA8L2NoaWxkcmVuPg0KPC9yZXBvc2l0b3J5Pg==</encoded.compositeArtifacts>
                <encoded.compositeContent>PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjw/Y29tcG9zaXRlTWV0YWRhdGFSZXBvc2l0b3J5IHZlcnNpb249JzEuMC4wJz8+DQo8cmVwb3NpdG9yeSBuYW1lPSdPUy5iZWUgUHVibGljIFAyIFJlcG9zaXRvcnknIHR5cGU9J29yZy5lY2xpcHNlLmVxdWlub3guaW50ZXJuYWwucDIubWV0YWRhdGEucmVwb3NpdG9yeS5Db21wb3NpdGVNZXRhZGF0YVJlcG9zaXRvcnknIHZlcnNpb249JzEuMC4wJz4NCiAgPHByb3BlcnRpZXMgc2l6ZT0nMSc+DQoJPHByb3BlcnR5IG5hbWU9J3AyLnRpbWVzdGFtcCcgdmFsdWU9JzEyNDM4MjI1MDI0OTknLz4NCiAgPC9wcm9wZXJ0aWVzPg0KICA8Y2hpbGRyZW4gc2l6ZT0nMCc+DQogIDwvY2hpbGRyZW4+DQo8L3JlcG9zaXRvcnk+</encoded.compositeContent>
            
                <!-- this properties should be overridden for each repository POM -->
                <osbp.stage.p2.label>${project.artifactId}</osbp.stage.p2.label>
            </properties>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.eclipse.tycho</groupId>
                        <artifactId>target-platform-configuration</artifactId>
                        <configuration>
                            <resolver>p2</resolver>
                            <pomDependencies>consider</pomDependencies>
                            <environments>
                                <environment>
                                    <os>win32</os>
                                    <ws>win32</ws>
                                    <arch>x86</arch>
                                </environment>
                                <environment>
                                    <os>win32</os>
                                    <ws>win32</ws>
                                    <arch>x86_64</arch>
                                </environment>
                                <environment>
                                    <os>linux</os>
                                    <ws>gtk</ws>
                                    <arch>x86</arch>
                                </environment>
                                <environment>
                                    <os>linux</os>
                                    <ws>gtk</ws>
                                    <arch>x86_64</arch>
                                </environment>
                                <environment>
                                    <os>macosx</os>
                                    <ws>cocoa</ws>
                                    <arch>x86_64</arch>
                                </environment>
                            </environments>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        
        </profile>
        <profile>
            <id>whenIsDependenciesRepositoryP2Project.stage.p2</id>
            <activation>
                <file>
                    <exists>.osbp.releng.eclipse.dependencies.p2</exists>
                </file>
            </activation>
            <properties>
				<osbp.build.local.federated.p2.dir>${osbp.stage.p2.dependencies.target.dir.base}${file.separator}${osbp.build.branch}${file.separator}</osbp.build.local.federated.p2.dir>
				<osbp.build.local.federated.p2.url>file://${osbp.build.local.federated.p2.dir}</osbp.build.local.federated.p2.url>
				<osbp.build.remote.federated.p2.url>${osbp.p2}</osbp.build.remote.federated.p2.url>
				
                <osbp.stage.p2.log.file.path>${project.basedir}${file.separator}build.${osbp.stage.p2.label}.${osbp.build.eclipse.platform.name}.${osbp.build.branch}.log.properties</osbp.stage.p2.log.file.path>
                <osbp.stage.p2.origin.dir>${project.build.directory}${file.separator}repository</osbp.stage.p2.origin.dir>
                <osbp.stage.p2.target.dir>${osbp.stage.p2.dependencies.target.dir.base}${file.separator}${osbp.build.branch}${file.separator}${osbp.stage.p2.label}${file.separator}${osbp.stage.artifact.version}</osbp.stage.p2.target.dir>
            </properties>
			<pluginRepositories>
				<pluginRepository>
					<id>atlassian 3rd party</id>
					<url>https://maven.atlassian.com/3rdparty/</url>
					<snapshots>
						<enabled>true</enabled>
						<updatePolicy>never</updatePolicy>
						<checksumPolicy>warn</checksumPolicy>
					</snapshots>
					<releases>
						<enabled>true</enabled>
						<checksumPolicy>warn</checksumPolicy>
					</releases>
				</pluginRepository>
			</pluginRepositories>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>generate-files</id>
                                <phase>verify</phase>
                                <configuration>
                                    <quiet>true</quiet>
                                    <target>
                                        <taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy">
                                            <classpath refid="maven.compile.classpath"/>
                                        </taskdef>
                                        <taskdef resource="net/sf/antcontrib/antlib.xml"/>
                                        <taskdef resource="net/sf/antcontrib/antcontrib.properties"/>
                                        <taskdef name="xmltask" classname="com.oopsconsultancy.xmltask.ant.XmlTask"/>
                                    
                                        <echo message="Federated Repository Local Dir (osbp.build.local.federated.p2.dir): ${osbp.build.local.federated.p2.dir}"/>
                                        <echo message="Platform: ${osbp.build.eclipse.platform.name}"/>
                                        <echo message="Build Type: ${osbp.build.branch}"/>
                                        <echo message="Repo Name: ${osbp.stage.p2.label}"/>
                                        <echo message="Repo Keep Old: ${osbp.stage.p2.keep.old}"/>
                                        <echo message="Repo Version: ${osbp.stage.artifact.version}"/>
                                        <echo message="Log File (osbp.stage.p2.log.file.path): ${osbp.stage.p2.log.file.path}"/>
                                        <echo message="P2 Source Dir (osbp.stage.p2.origin.dir): ${osbp.stage.p2.origin.dir}"/>
                                        <echo message="P2 Target Dir (osbp.stage.p2.target.dir): ${osbp.stage.p2.target.dir}"/>
                                    
                                        <!-- "init" -->
                                        <fail message="There property 'osbp.developer.home' was not defined in settings.xml or in commandline.">
                                            <condition>
                                                <or>
                                                    <not>
                                                        <isset property="osbp.developer.home"/>
                                                    </not>
                                                    <equals arg1="${osbp.developer.home}" arg2="none"/>
                                                </or>
                                            </condition>
                                        </fail>
                                        <if>
                                            <not>
                                                <available file="${osbp.developer.home}" type="dir"/>
                                            </not>
                                            <then>
                                                <mkdir dir="${osbp.developer.home}"/>
                                            </then>
                                        </if>
                                        <if>
                                            <not>
                                                <available file="${osbp.developer.home.repositories}" type="dir"/>
                                            </not>
                                            <then>
                                                <mkdir dir="${osbp.developer.home.repositories}"/>
                                            </then>
                                        </if>
                                        <if>
                                            <not>
                                                <available file="${osbp.build.local.federated.p2.dir}" type="dir"/>
                                            </not>
                                            <then>
                                                <mkdir dir="${osbp.build.local.federated.p2.dir}"/>
                                            </then>
                                        </if>
                                        <groovy>
                                            ant.echo "Extracted building templates..."
                                        
                                            def
                                            separator =
                                            "${properties['file.separator']}"
                                            def directory =
                                            "${properties['project.build.directory']}" + separator +
                                            "templates" + separator
                                        
                                            new
                                            File(directory).mkdir()
                                        
                                            def
                                            encodedP2index =
                                            "${properties['encoded.p2index']}"
                                            def
                                            encodedCompositeArtifacts =
                                            "${properties['encoded.compositeArtifacts']}"
                                            def
                                            encodedCompositeContent =
                                            "${properties['encoded.compositeContent']}"
                                        
                                            properties.p2indexFile = directory + "p2.index"
                                            properties.compositeArtifactsFile = directory +
                                            "compositeArtifacts.xml"
                                            properties.compositeContentFile =
                                            directory + "compositeContent.xml"
                                        
                                            new
                                            FileOutputStream(properties.p2indexFile).write(encodedP2index.decodeBase64())
                                            new
                                            FileOutputStream(properties.compositeArtifactsFile).write(encodedCompositeArtifacts.decodeBase64())
                                            new
                                            FileOutputStream(properties.compositeContentFile).write(encodedCompositeContent.decodeBase64())
                                        
                                        </groovy>
                                        <echo message="** OSBP User Developer Home: ${osbp.developer.home}"/>
                                        <echo message=" - index source: ${p2indexFile}"/>
                                        <echo message=" - contentFile source: ${compositeContentFile}"/>
                                        <echo message=" - artifactsFile source: ${compositeArtifactsFile}"/>
                                    
                                        <!-- generate.composite.p2.init -->
                                    
                                        <fail message="Could not find p2.index template at ${p2indexFile} !">
                                            <condition>
                                                <not>
                                                    <available file="${p2indexFile}" type="file"/>
                                                </not>
                                            </condition>
                                        </fail>
                                    
                                        <fail message="Could not find compositeContent.xml template at ${compositeContentFile} !">
                                            <condition>
                                                <not>
                                                    <available file="${compositeContentFile}" type="file"/>
                                                </not>
                                            </condition>
                                        </fail>
                                    
                                        <fail message="Could not find compositeArtifacts.xml template at ${compositeArtifactsFile} !">
                                            <condition>
                                                <not>
                                                    <available file="${compositeArtifactsFile}" type="file"/>
                                                </not>
                                            </condition>
                                        </fail>
                                    
                                        <!-- "deploy.generated.p2.to.composite.dir.init" -->
                                        <echo message="Copying repo to Federated Repository !!!"/>
                                        <echo message="Checking existence of log file at:'${osbp.stage.p2.log.file.path}'"/>
                                        <if>
                                            <available file="${osbp.stage.p2.log.file.path}" type="file"/>
                                            <then>
                                                <echo message="OPEN BUILD LOG"/>
                                                <property file="${osbp.stage.p2.log.file.path}" prefix="old"/>
                                                <echoproperties prefix="old."/>
                                            </then>
                                            <else>
                                                <echo message="Log file was not found at: '${osbp.stage.p2.log.file.path}'"/>
                                            </else>
                                        </if>
                                    
                                        <!-- deploy.generated.p2.to.composite.dir.clean -->
                                        <!-- remove the latest built repository directory -->
                                        <if>
                                            <equals arg1="${osbp.stage.p2.keep.old}" arg2="false"/>
                                            <then>
                                                <echo message="Checking property 'old.osbp.stage.p2.target.dir'"/>
                                                <if>
                                                    <isset property="old.osbp.stage.p2.target.dir"/>
                                                    <then>
                                                        <if>
                                                            <available file="${old.osbp.stage.p2.target.dir}" type="dir"/>
                                                            <then>
                                                                <echo message="REMOVING OLD BUILDS at:'${old.osbp.stage.p2.target.dir}/..'"/>
                                                                <delete includeemptydirs="true" failonerror="false">
                                                                    <fileset includes="**/*" dir="${old.osbp.stage.p2.target.dir}/.."/>
                                                                </delete>
                                                                <delete dir="${old.osbp.stage.p2.target.dir}/.."/>
                                                            </then>
                                                            <else>
                                                                <echo message="Old build was not found at:'${old.osbp.stage.p2.target.dir}'"/>
                                                            </else>
                                                        </if>
                                                    </then>
                                                    <else>
                                                        <echo message="Property 'old.osbp.stage.p2.target.dir' was not set due a missing log file."/>
                                                    </else>
                                                </if>
                                            </then>
                                        </if>
                                        <!-- remove an existent repository directory -->
                                        <if>
                                            <available file="${osbp.stage.p2.target.dir}" type="dir"/>
                                            <then>
                                                <delete includeemptydirs="true" failonerror="false">
                                                    <fileset includes="**/*" dir="${osbp.stage.p2.target.dir}"/>
                                                </delete>
                                                <delete dir="${osbp.stage.p2.target.dir}"/>
                                            </then>
                                        </if>
                                    
                                        <!-- deploy.generated.p2.to.composite.p2 -->
                                        <!-- create the repository directory and copy files from the generated 
											P2 -->
                                        <echo message="COPYING P2"/>
                                        <if>
                                            <available file="${osbp.stage.p2.origin.dir}" type="dir"/>
                                            <then>
                                                <mkdir dir="${osbp.stage.p2.target.dir}"/>
                                                <copy todir="${osbp.stage.p2.target.dir}">
                                                    <fileset dir="${osbp.stage.p2.origin.dir}" includes="**/*"/>
                                                </copy>
                                                <if>
                                                    <equals arg1="${osbp.stage.p2.keep.old}" arg2="false"/>
                                                    <then>
                                                        <propertyfile file="${osbp.stage.p2.log.file.path}" comment="Building log for ${osbp.build.eclipse.platform.name} - ${osbp.build.branch}">
                                                            <entry key="build.counter" type="int" default="0" operation="+"/>
                                                            <entry key="build.date" type="date" value="now"/>
                                                            <entry key="osbp.stage.artifact.version" value="${osbp.stage.artifact.version}"/>
                                                            <entry key="osbp.stage.p2.target.dir" value="${osbp.stage.p2.target.dir}"/>
                                                        </propertyfile>
                                                    </then>
                                                    <else>
                                                        <propertyfile file="${osbp.stage.p2.log.file.path}" comment="Building log for ${osbp.build.eclipse.platform.name} - ${osbp.build.branch}">
                                                            <entry key="build.counter" type="int" default="0" operation="+"/>
                                                            <entry key="build.date" type="date" value="now"/>
                                                            <entry key="osbp.build.local.federated.p2.dir" value="${osbp.build.local.federated.p2.dir}"/>
                                                            <entry key="osbp.stage.artifact.versions" default="" operation="+" value=",${osbp.stage.artifact.version}"/>
                                                        </propertyfile>
                                                    </else>
                                                </if>
                                            </then>
                                            <else>
                                                <fail message="The P2 repository was not generated in '${osbp.stage.p2.origin.dir}' !"/>
                                            </else>
                                        </if>
                                    
                                        <!-- start rebuilding... -->
                                        <echo message="Rebuilding Federated Repository !!!"/>
                                        <echo message=" (osbp.build.local.federated.p2.dir): ${osbp.build.local.federated.p2.dir}"/>
                                    
                                        <dirset id="dirs" dir="${osbp.build.local.federated.p2.dir}" includes="*/*"/>
                                    
                                        <fail message="There is no repositories to process !">
                                            <condition>
                                                <resourcecount when="equal" count="0" refid="dirs"/>
                                            </condition>
                                        </fail>
                                    
                                        <if>
                                            <available file="${osbp.build.local.federated.p2.dir}compositeContent.xml" type="file"/>
                                            <then>
                                                <echo message="DELETED OLD CONTENT FILE"/>
                                                <delete file="${osbp.build.local.federated.p2.dir}compositeContent.xml"/>
                                            </then>
                                        </if>
                                        <if>
                                            <available file="${osbp.build.local.federated.p2.dir}compositeArtifacts.xml" type="file"/>
                                            <then>
                                                <echo message="DELETED OLD ARTIFACTS FILE"/>
                                                <delete file="${osbp.build.local.federated.p2.dir}compositeArtifacts.xml"/>
                                            </then>
                                        </if>
                                    
                                        <!-- generate.composite.p2.add.compositeContentFile -->
                                        <xmltask source="${compositeContentFile}" destbuffer="bufferCompositeContent" report="true"/>
                                        <var name="counterContent" value="0"/>
                                        <for param="child" list="${toString:dirs}" delimiter=";">
                                            <sequential>
                                                <math result="counterContent" operand1="${counterContent}" operand2="1" operation="+" datatype="int"/>
                                                <echo message="Adding Content Child @{child} - ${counterContent}"/>
                                                <xmltask sourcebuffer="bufferCompositeContent" destbuffer="bufferCompositeContent">
                                                    <insert path="/repository/children">
                                                        &lt;child location='@{child}' /&gt; 
                                                    </insert>
                                                </xmltask>
                                            </sequential>
                                        </for>
                                        <xmltask sourcebuffer="bufferCompositeContent" destbuffer="bufferCompositeContent">
                                            <replace path="/repository/children/@size" withText="${counterContent}"/>
                                        </xmltask>
                                    
                                        <!-- generate.composite.p2.add.compositeArtifactsFile -->
                                        <xmltask source="${compositeArtifactsFile}" destbuffer="bufferCompositeArtifacts" report="true"/>
                                        <var name="counterArtifacts" value="0"/>
                                        <for param="child" list="${toString:dirs}" delimiter=";">
                                            <sequential>
                                                <math result="counterArtifacts" operand1="${counterArtifacts}" operand2="1" operation="+" datatype="int"/>
                                                <echo message="Adding Artifact Child @{child} - ${counterArtifacts}"/>
                                                <xmltask sourcebuffer="bufferCompositeArtifacts" destbuffer="bufferCompositeArtifacts">
                                                    <insert path="/repository/children">
                                                        &lt;child location='@{child}' /&gt; 
                                                    </insert>
                                                </xmltask>
                                            </sequential>
                                        </for>
                                        <xmltask sourcebuffer="bufferCompositeArtifacts" destbuffer="bufferCompositeArtifacts">
                                            <replace path="/repository/children/@size" withText="${counterArtifacts}"/>
                                        </xmltask>
                                    
                                        <!-- generate.composite.p2.add.p2.index.file -->
                                        <if>
                                            <not>
                                                <available file="${osbp.build.local.federated.p2.dir}p2.index" type="file"/>
                                            </not>
                                            <then>
                                                <copy file="${p2indexFile}" todir="${osbp.build.local.federated.p2.dir}"/>
                                            </then>
                                        </if>
                                    
                                        <!-- generate.composite.p2 -->
                                        <echo message="CREATE COMPOSITE ARTIFACTS"/>
                                        <xmltask sourcebuffer="bufferCompositeArtifacts" dest="${osbp.build.local.federated.p2.dir}compositeArtifacts.xml"/>
                                    
                                        <echo message="CREATE COMPOSITE CONTENT"/>
                                        <xmltask sourcebuffer="bufferCompositeContent" dest="${osbp.build.local.federated.p2.dir}compositeContent.xml"/>
                                    
                                        <!-- end generation -->
                                    
                                    </target>
                                </configuration>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                            </execution>
                        </executions>
                        <dependencies>
                            <dependency>
                                <groupId>org.codehaus.groovy</groupId>
                                <artifactId>groovy-all</artifactId>
                                <version>${groovy-all.version}</version>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.ant</groupId>
                                <artifactId>ant</artifactId>
                                <version>${ant-version}</version>
                            </dependency>
                            <dependency>
                                <groupId>ant-contrib</groupId>
                                <artifactId>ant-contrib</artifactId>
                                <version>1.0b3</version>
                                <exclusions>
                                    <exclusion>
                                        <groupId>ant</groupId>
                                        <artifactId>ant</artifactId>
                                    </exclusion>
                                </exclusions>
                            </dependency>
                            <dependency>
                                <groupId>net.sf.saxon</groupId>
                                <artifactId>Saxon-HE</artifactId>
                                <version>9.4</version>
                            </dependency>
                            <dependency>
                                <groupId>com.oopsconsultancy</groupId>
                                <artifactId>xmltask</artifactId>
                                <version>1.16</version>
                            </dependency>
                        </dependencies>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>whenIsRepositoryP2Project.stage.p2</id>
            <activation>
                <file>
                    <exists>.osbp.releng.eclipse.p2</exists>
                </file>
            </activation>
            <properties>
                <osbp.stage.p2.log.file.path>${project.basedir}${file.separator}build.${osbp.stage.p2.label}.${osbp.build.eclipse.platform.name}.${osbp.build.branch}.log.properties</osbp.stage.p2.log.file.path>
                <osbp.stage.p2.origin.dir>${project.build.directory}${file.separator}repository</osbp.stage.p2.origin.dir>
                <osbp.stage.p2.target.dir>${osbp.stage.p2.target.dir.base}${file.separator}${osbp.build.branch}${file.separator}${osbp.stage.p2.label}${file.separator}${osbp.stage.artifact.version}</osbp.stage.p2.target.dir>
            </properties>
			<pluginRepositories>
				<pluginRepository>
					<id>atlassian 3rd party</id>
					<url>https://maven.atlassian.com/3rdparty/</url>
					<snapshots>
						<enabled>true</enabled>
						<updatePolicy>never</updatePolicy>
						<checksumPolicy>warn</checksumPolicy>
					</snapshots>
					<releases>
						<enabled>true</enabled>
						<checksumPolicy>warn</checksumPolicy>
					</releases>
				</pluginRepository>
			</pluginRepositories>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>generate-files</id>
                                <phase>verify</phase>
                                <configuration>
                                    <quiet>true</quiet>
                                    <target>
                                        <taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy">
                                            <classpath refid="maven.compile.classpath"/>
                                        </taskdef>
                                        <taskdef resource="net/sf/antcontrib/antlib.xml"/>
                                        <taskdef resource="net/sf/antcontrib/antcontrib.properties"/>
                                        <taskdef name="xmltask" classname="com.oopsconsultancy.xmltask.ant.XmlTask"/>
                                    
                                        <echo message="Federated Repository Local Dir (osbp.build.local.federated.p2.dir): ${osbp.build.local.federated.p2.dir}"/>
                                        <echo message="Platform: ${osbp.build.eclipse.platform.name}"/>
                                        <echo message="Build Type: ${osbp.build.branch}"/>
                                        <echo message="Repo Name: ${osbp.stage.p2.label}"/>
                                        <echo message="Repo Keep Old: ${osbp.stage.p2.keep.old}"/>
                                        <echo message="Repo Version: ${osbp.stage.artifact.version}"/>
                                        <echo message="Log File (osbp.stage.p2.log.file.path): ${osbp.stage.p2.log.file.path}"/>
                                        <echo message="P2 Source Dir (osbp.stage.p2.origin.dir): ${osbp.stage.p2.origin.dir}"/>
                                        <echo message="P2 Target Dir (osbp.stage.p2.target.dir): ${osbp.stage.p2.target.dir}"/>
                                    
                                        <!-- "init" -->
                                        <fail message="There property 'osbp.developer.home' was not defined in settings.xml or in commandline.">
                                            <condition>
                                                <or>
                                                    <not>
                                                        <isset property="osbp.developer.home"/>
                                                    </not>
                                                    <equals arg1="${osbp.developer.home}" arg2="none"/>
                                                </or>
                                            </condition>
                                        </fail>
                                        <if>
                                            <not>
                                                <available file="${osbp.developer.home}" type="dir"/>
                                            </not>
                                            <then>
                                                <mkdir dir="${osbp.developer.home}"/>
                                            </then>
                                        </if>
                                        <if>
                                            <not>
                                                <available file="${osbp.developer.home.repositories}" type="dir"/>
                                            </not>
                                            <then>
                                                <mkdir dir="${osbp.developer.home.repositories}"/>
                                            </then>
                                        </if>
                                        <if>
                                            <not>
                                                <available file="${osbp.build.local.federated.p2.dir}" type="dir"/>
                                            </not>
                                            <then>
                                                <mkdir dir="${osbp.build.local.federated.p2.dir}"/>
                                            </then>
                                        </if>
                                        <groovy>
                                            ant.echo "Extracted building templates..."
                                        
                                            def
                                            separator =
                                            "${properties['file.separator']}"
                                            def directory =
                                            "${properties['project.build.directory']}" + separator +
                                            "templates" + separator
                                        
                                            new
                                            File(directory).mkdir()
                                        
                                            def
                                            encodedP2index =
                                            "${properties['encoded.p2index']}"
                                            def
                                            encodedCompositeArtifacts =
                                            "${properties['encoded.compositeArtifacts']}"
                                            def
                                            encodedCompositeContent =
                                            "${properties['encoded.compositeContent']}"
                                        
                                            properties.p2indexFile = directory + "p2.index"
                                            properties.compositeArtifactsFile = directory +
                                            "compositeArtifacts.xml"
                                            properties.compositeContentFile =
                                            directory + "compositeContent.xml"
                                        
                                            new
                                            FileOutputStream(properties.p2indexFile).write(encodedP2index.decodeBase64())
                                            new
                                            FileOutputStream(properties.compositeArtifactsFile).write(encodedCompositeArtifacts.decodeBase64())
                                            new
                                            FileOutputStream(properties.compositeContentFile).write(encodedCompositeContent.decodeBase64())
                                        
                                        </groovy>
                                        <echo message="** OSBP User Developer Home: ${osbp.developer.home}"/>
                                        <echo message=" - index source: ${p2indexFile}"/>
                                        <echo message=" - contentFile source: ${compositeContentFile}"/>
                                        <echo message=" - artifactsFile source: ${compositeArtifactsFile}"/>
                                    
                                        <!-- generate.composite.p2.init -->
                                    
                                        <fail message="Could not find p2.index template at ${p2indexFile} !">
                                            <condition>
                                                <not>
                                                    <available file="${p2indexFile}" type="file"/>
                                                </not>
                                            </condition>
                                        </fail>
                                    
                                        <fail message="Could not find compositeContent.xml template at ${compositeContentFile} !">
                                            <condition>
                                                <not>
                                                    <available file="${compositeContentFile}" type="file"/>
                                                </not>
                                            </condition>
                                        </fail>
                                    
                                        <fail message="Could not find compositeArtifacts.xml template at ${compositeArtifactsFile} !">
                                            <condition>
                                                <not>
                                                    <available file="${compositeArtifactsFile}" type="file"/>
                                                </not>
                                            </condition>
                                        </fail>
                                    
                                        <!-- "deploy.generated.p2.to.composite.dir.init" -->
                                        <echo message="Copying repo to Federated Repository !!!"/>
                                        <echo message="Checking existence of log file at:'${osbp.stage.p2.log.file.path}'"/>
                                        <if>
                                            <available file="${osbp.stage.p2.log.file.path}" type="file"/>
                                            <then>
                                                <echo message="OPEN BUILD LOG"/>
                                                <property file="${osbp.stage.p2.log.file.path}" prefix="old"/>
                                                <echoproperties prefix="old."/>
                                            </then>
                                            <else>
                                                <echo message="Log file was not found at: '${osbp.stage.p2.log.file.path}'"/>
                                            </else>
                                        </if>
                                    
                                        <!-- deploy.generated.p2.to.composite.dir.clean -->
                                        <!-- remove the latest built repository directory -->
                                        <if>
                                            <equals arg1="${osbp.stage.p2.keep.old}" arg2="false"/>
                                            <then>
                                                <echo message="Checking property 'old.osbp.stage.p2.target.dir'"/>
                                                <if>
                                                    <isset property="old.osbp.stage.p2.target.dir"/>
                                                    <then>
                                                        <if>
                                                            <available file="${old.osbp.stage.p2.target.dir}" type="dir"/>
                                                            <then>
                                                                <echo message="REMOVING OLD BUILDS at:'${old.osbp.stage.p2.target.dir}/..'"/>
                                                                <delete includeemptydirs="true" failonerror="false">
                                                                    <fileset includes="**/*" dir="${old.osbp.stage.p2.target.dir}/.."/>
                                                                </delete>
                                                                <delete dir="${old.osbp.stage.p2.target.dir}/.."/>
                                                            </then>
                                                            <else>
                                                                <echo message="Old build was not found at:'${old.osbp.stage.p2.target.dir}'"/>
                                                            </else>
                                                        </if>
                                                    </then>
                                                    <else>
                                                        <echo message="Property 'old.osbp.stage.p2.target.dir' was not set due a missing log file."/>
                                                    </else>
                                                </if>
                                            </then>
                                        </if>
                                        <!-- remove an existent repository directory -->
                                        <if>
                                            <available file="${osbp.stage.p2.target.dir}" type="dir"/>
                                            <then>
                                                <delete includeemptydirs="true" failonerror="false">
                                                    <fileset includes="**/*" dir="${osbp.stage.p2.target.dir}"/>
                                                </delete>
                                                <delete dir="${osbp.stage.p2.target.dir}"/>
                                            </then>
                                        </if>
                                    
                                        <!-- deploy.generated.p2.to.composite.p2 -->
                                        <!-- create the repository directory and copy files from the generated 
											P2 -->
                                        <echo message="COPYING P2"/>
                                        <if>
                                            <available file="${osbp.stage.p2.origin.dir}" type="dir"/>
                                            <then>
                                                <mkdir dir="${osbp.stage.p2.target.dir}"/>
                                                <copy todir="${osbp.stage.p2.target.dir}">
                                                    <fileset dir="${osbp.stage.p2.origin.dir}" includes="**/*"/>
                                                </copy>
                                                <if>
                                                    <equals arg1="${osbp.stage.p2.keep.old}" arg2="false"/>
                                                    <then>
                                                        <propertyfile file="${osbp.stage.p2.log.file.path}" comment="Building log for ${osbp.build.eclipse.platform.name} - ${osbp.build.branch}">
                                                            <entry key="build.counter" type="int" default="0" operation="+"/>
                                                            <entry key="build.date" type="date" value="now"/>
                                                            <entry key="osbp.stage.artifact.version" value="${osbp.stage.artifact.version}"/>
                                                            <entry key="osbp.stage.p2.target.dir" value="${osbp.stage.p2.target.dir}"/>
                                                        </propertyfile>
                                                    </then>
                                                    <else>
                                                        <propertyfile file="${osbp.stage.p2.log.file.path}" comment="Building log for ${osbp.build.eclipse.platform.name} - ${osbp.build.branch}">
                                                            <entry key="build.counter" type="int" default="0" operation="+"/>
                                                            <entry key="build.date" type="date" value="now"/>
                                                            <entry key="osbp.build.local.federated.p2.dir" value="${osbp.build.local.federated.p2.dir}"/>
                                                            <entry key="osbp.stage.artifact.versions" default="" operation="+" value=",${osbp.stage.artifact.version}"/>
                                                        </propertyfile>
                                                    </else>
                                                </if>
                                            </then>
                                            <else>
                                                <fail message="The P2 repository was not generated in '${osbp.stage.p2.origin.dir}' !"/>
                                            </else>
                                        </if>
                                    
                                        <!-- start rebuilding... -->
                                        <echo message="Rebuilding Federated Repository !!!"/>
                                        <echo message=" (osbp.build.local.federated.p2.dir): ${osbp.build.local.federated.p2.dir}"/>
                                    
                                        <dirset id="dirs" dir="${osbp.build.local.federated.p2.dir}" includes="*/*"/>
                                    
                                        <fail message="There is no repositories to process !">
                                            <condition>
                                                <resourcecount when="equal" count="0" refid="dirs"/>
                                            </condition>
                                        </fail>
                                    
                                        <if>
                                            <available file="${osbp.build.local.federated.p2.dir}compositeContent.xml" type="file"/>
                                            <then>
                                                <echo message="DELETED OLD CONTENT FILE"/>
                                                <delete file="${osbp.build.local.federated.p2.dir}compositeContent.xml"/>
                                            </then>
                                        </if>
                                        <if>
                                            <available file="${osbp.build.local.federated.p2.dir}compositeArtifacts.xml" type="file"/>
                                            <then>
                                                <echo message="DELETED OLD ARTIFACTS FILE"/>
                                                <delete file="${osbp.build.local.federated.p2.dir}compositeArtifacts.xml"/>
                                            </then>
                                        </if>
                                    
                                        <!-- generate.composite.p2.add.compositeContentFile -->
                                        <xmltask source="${compositeContentFile}" destbuffer="bufferCompositeContent" report="true"/>
                                        <var name="counterContent" value="0"/>
                                        <for param="child" list="${toString:dirs}" delimiter=";">
                                            <sequential>
                                                <math result="counterContent" operand1="${counterContent}" operand2="1" operation="+" datatype="int"/>
                                                <echo message="Adding Content Child @{child} - ${counterContent}"/>
                                                <xmltask sourcebuffer="bufferCompositeContent" destbuffer="bufferCompositeContent">
                                                    <insert path="/repository/children">
                                                        &lt;child location='@{child}' /&gt; 
                                                    </insert>
                                                </xmltask>
                                            </sequential>
                                        </for>
                                        <xmltask sourcebuffer="bufferCompositeContent" destbuffer="bufferCompositeContent">
                                            <replace path="/repository/children/@size" withText="${counterContent}"/>
                                        </xmltask>
                                    
                                        <!-- generate.composite.p2.add.compositeArtifactsFile -->
                                        <xmltask source="${compositeArtifactsFile}" destbuffer="bufferCompositeArtifacts" report="true"/>
                                        <var name="counterArtifacts" value="0"/>
                                        <for param="child" list="${toString:dirs}" delimiter=";">
                                            <sequential>
                                                <math result="counterArtifacts" operand1="${counterArtifacts}" operand2="1" operation="+" datatype="int"/>
                                                <echo message="Adding Artifact Child @{child} - ${counterArtifacts}"/>
                                                <xmltask sourcebuffer="bufferCompositeArtifacts" destbuffer="bufferCompositeArtifacts">
                                                    <insert path="/repository/children">
                                                        &lt;child location='@{child}' /&gt; 
                                                    </insert>
                                                </xmltask>
                                            </sequential>
                                        </for>
                                        <xmltask sourcebuffer="bufferCompositeArtifacts" destbuffer="bufferCompositeArtifacts">
                                            <replace path="/repository/children/@size" withText="${counterArtifacts}"/>
                                        </xmltask>
                                    
                                        <!-- generate.composite.p2.add.p2.index.file -->
                                        <if>
                                            <not>
                                                <available file="${osbp.build.local.federated.p2.dir}p2.index" type="file"/>
                                            </not>
                                            <then>
                                                <copy file="${p2indexFile}" todir="${osbp.build.local.federated.p2.dir}"/>
                                            </then>
                                        </if>
                                    
                                        <!-- generate.composite.p2 -->
                                        <echo message="CREATE COMPOSITE ARTIFACTS"/>
                                        <xmltask sourcebuffer="bufferCompositeArtifacts" dest="${osbp.build.local.federated.p2.dir}compositeArtifacts.xml"/>
                                    
                                        <echo message="CREATE COMPOSITE CONTENT"/>
                                        <xmltask sourcebuffer="bufferCompositeContent" dest="${osbp.build.local.federated.p2.dir}compositeContent.xml"/>
                                    
                                        <!-- end generation -->
                                    
                                    </target>
                                </configuration>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                            </execution>
                        </executions>
                        <dependencies>
                            <dependency>
                                <groupId>org.codehaus.groovy</groupId>
                                <artifactId>groovy-all</artifactId>
                                <version>${groovy-all.version}</version>
                            </dependency>
                            <dependency>
                                <groupId>org.apache.ant</groupId>
                                <artifactId>ant</artifactId>
                                <version>${ant-version}</version>
                            </dependency>
                            <dependency>
                                <groupId>ant-contrib</groupId>
                                <artifactId>ant-contrib</artifactId>
                                <version>1.0b3</version>
                                <exclusions>
                                    <exclusion>
                                        <groupId>ant</groupId>
                                        <artifactId>ant</artifactId>
                                    </exclusion>
                                </exclusions>
                            </dependency>
                            <dependency>
                                <groupId>net.sf.saxon</groupId>
                                <artifactId>Saxon-HE</artifactId>
                                <version>9.4</version>
                            </dependency>
                            <dependency>
                                <groupId>com.oopsconsultancy</groupId>
                                <artifactId>xmltask</artifactId>
                                <version>1.16</version>
                            </dependency>
                        </dependencies>
                    </plugin>
                </plugins>
            </build>
        </profile>
    
        <profile>
            <id>whenIsProductProject</id>
            <activation>
                <file>
                    <exists>.osbp.releng.eclipse.rcp</exists>
                </file>
            </activation>
            <build>
                <pluginManagement>
                    <plugins>
                        <plugin>
                            <groupId>org.eclipse.tycho</groupId>
                            <artifactId>tycho-p2-director-plugin</artifactId>
                            <version>${tycho-version}</version>
                            <executions>
                                <execution>
                                    <!-- install the product for all configured os/ws/arch environments 
										using p2 director -->
                                    <id>materialize-products</id>
                                    <goals>
                                        <goal>materialize-products</goal>
                                    </goals>
                                </execution>
                                <execution>
                                    <!-- (optional) create product zips (one per os/ws/arch) -->
                                    <id>archive-products</id>
                                    <goals>
                                        <goal>archive-products</goal>
                                    </goals>
                                    <phase>pre-integration-test</phase>
                                </execution>
                            </executions>
                            <configuration>
                                <formats>
                                    <win32>zip</win32>
                                    <linux>tar.gz</linux>
                                    <macosx>tar.gz</macosx>
                                </formats>
                                <products>
                                    <product>
                                        <id>${project.artifactId}</id>
                                        <!-- <archiveFileName>Equinox-OSBPa-Standard-Node-${unqualifiedVersion}.${buildQualifier}</archiveFileName> -->
                                        <!-- (optional) customize the root folder name of the product zip -->
                                        <!-- <rootFolder>myServer</rootFolder> -->
                                    </product>
                                </products>
                            </configuration>
                        </plugin>
                    </plugins>
                </pluginManagement>
            </build>
        </profile>
    
        <profile>
            <id>prepare-for-next-release</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <build>
                <defaultGoal>org.eclipse.tycho:tycho-versions-plugin:set-version</defaultGoal>
                <plugins>
                    <plugin>
                        <groupId>org.eclipse.tycho</groupId>
                        <artifactId>tycho-versions-plugin</artifactId>
                        <version>${tycho-version}</version>
                        <executions>
                            <execution>
                                <id>change-next-release</id>
                                <goals>
                                    <goal>set-version</goal>
                                </goals>
                            </execution>
                        </executions>
                        <configuration>
                            <newVersion>${next-release}</newVersion>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <!-- this profile must be activated when there isn't osbp.build.branch 
				defined. -->
            <id>latest</id>
            <activation>
                <property>
                    <name>!osbp.build.branch</name>
                </property>
            </activation>
            <properties>
                <osbp.build.branch>latest</osbp.build.branch>
                <osbp.stage.artifact.version>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.${osgi-version-qualifier}</osbp.stage.artifact.version>
                <osbp.stage.p2.keep.old>false</osbp.stage.p2.keep.old>
            </properties>
            <build>
                <plugins>
                    <!-- used to debug... -->
                    <!-- <plugin> -->
                    <!-- <artifactId>maven-antrun-plugin</artifactId> -->
                    <!-- <executions> -->
                    <!-- <execution> -->
                    <!-- <phase>initialize</phase> -->
                    <!-- <configuration> -->
                    <!-- <quiet>true</quiet> -->
                    <!-- <target> -->
                    <!-- <echo message="Started a Latest Build..." /> -->
                    <!-- </target> -->
                    <!-- </configuration> -->
                    <!-- <goals> -->
                    <!-- <goal>run</goal> -->
                    <!-- </goals> -->
                    <!-- </execution> -->
                    <!-- </executions> -->
                    <!-- </plugin> -->
                </plugins>
            </build>
        </profile>
    
        <profile>
            <id>milestone</id>
            <activation>
                <property>
                    <name>osbp.build.branch</name>
                    <value>milestone</value>
                </property>
            </activation>
            <properties>
                <osbp.stage.artifact.version>M${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.${osgi-version-qualifier}</osbp.stage.artifact.version>
                <osbp.stage.p2.keep.old>false</osbp.stage.p2.keep.old>
            </properties>
            <build>
                <plugins>
                    <!-- used to debug... -->
                    <!-- <plugin> -->
                    <!-- <artifactId>maven-antrun-plugin</artifactId> -->
                    <!-- <executions> -->
                    <!-- <execution> -->
                    <!-- <phase>initialize</phase> -->
                    <!-- <configuration> -->
                    <!-- <quiet>true</quiet> -->
                    <!-- <target> -->
                    <!-- <echo message="Started a Milestone Build..." /> -->
                    <!-- </target> -->
                    <!-- </configuration> -->
                    <!-- <goals> -->
                    <!-- <goal>run</goal> -->
                    <!-- </goals> -->
                    <!-- </execution> -->
                    <!-- </executions> -->
                    <!-- </plugin> -->
                </plugins>
            </build>
        </profile>
    
        <profile>
            <id>release</id>
            <activation>
                <property>
                    <name>osbp.build.branch</name>
                    <value>release</value>
                </property>
            </activation>
            <properties>
                <osbp.stage.artifact.version>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}</osbp.stage.artifact.version>
                <osbp.stage.p2.keep.old>true</osbp.stage.p2.keep.old>
            </properties>
            <build>
                <plugins>
                    <!-- <plugin> -->
                    <!-- <artifactId>maven-antrun-plugin</artifactId> -->
                    <!-- <executions> -->
                    <!-- <execution> -->
                    <!-- <phase>validate</phase> -->
                    <!-- <configuration> -->
                    <!-- <quiet>true</quiet> -->
                    <!-- <target> -->
                    <!-- <echo message="Started a Release Build..." /> -->
                    <!-- <fail message="Release should not use SNAPSHOT version !"> -->
                    <!-- <condition> -->
                    <!-- <contains string="${project.version}" substring="SNAPSHOT" /> -->
                    <!-- </condition> -->
                    <!-- </fail> -->
                    <!-- </target> -->
                    <!-- </configuration> -->
                    <!-- <goals> -->
                    <!-- <goal>run</goal> -->
                    <!-- </goals> -->
                    <!-- </execution> -->
                    <!-- </executions> -->
                    <!-- </plugin> -->
                </plugins>
            </build>
        </profile>
    
        <profile>
        	<!-- do static weaving to enable performant transactions across entity levels -->
        	<id>dostaticweaving</id>
			<activation>
				<file>
					<exists>.doStaticWeaving</exists>
				</file>
			</activation>
			<build>
				<pluginManagement>
					<plugins>
						<!-- This plugin's configuration is used to store Eclipse m2e settings 
							only. It has no influence on the Maven build itself. -->
						<plugin>
							<groupId>org.eclipse.m2e</groupId>
							<artifactId>lifecycle-mapping</artifactId>
							<version>1.0.0</version>
							<configuration>
								<lifecycleMappingMetadata>
									<pluginExecutions>
										<pluginExecution>
											<pluginExecutionFilter>
												<groupId>de.empulse.eclipselink</groupId>
												<artifactId>staticweave-maven-plugin</artifactId>
												<versionRange>[1.0,)</versionRange>
												<goals>
													<goal>weave</goal>
												</goals>
											</pluginExecutionFilter>
											<action>
												<execute>
													<runOnIncremental>true</runOnIncremental>
													<runOnConfiguration>true</runOnConfiguration>
												</execute>
											</action>
										</pluginExecution>
									</pluginExecutions>
								</lifecycleMappingMetadata>
							</configuration>
						</plugin>
					</plugins>
				</pluginManagement>
				<plugins>
					<plugin>
						<groupId>de.empulse.eclipselink</groupId>
						<artifactId>staticweave-maven-plugin</artifactId>
						<version>1.0.0</version>
						<executions>
							<execution>
								<!-- <?m2e execute onConfiguration,onIncremental?> -->
								<phase>process-classes</phase>
								<goals>
									<goal>weave</goal>
								</goals>
								<configuration>
		
									<persistenceXMLLocation>../../META-INF/persistence.xml</persistenceXMLLocation>
									<logLevel>FINE</logLevel>
								</configuration>
							</execution>
						</executions>
						<dependencies>
							<dependency>
								<groupId>org.eclipse.persistence</groupId>
								<artifactId>org.eclipse.persistence.jpa</artifactId>
								<version>2.6.1</version>
							</dependency>
							<dependency>
								<groupId>org.eclipse.platform</groupId>
								<artifactId>org.eclipse.core.runtime</artifactId>
								<version>3.12.0</version>
							</dependency>
							<dependency>
								<groupId>org.eclipse.osbp.dsl</groupId>
								<artifactId>org.eclipse.osbp.dsl.datatype.lib</artifactId>
								<version>0.9.0-SNAPSHOT</version>
							</dependency>
							<dependency>  
								<groupId>org.eclipse.osbp.dsl</groupId>
								<artifactId>org.eclipse.osbp.dsl.dto.lib</artifactId>
								<version>0.9.0-SNAPSHOT</version>
							</dependency>
							<dependency>
								<groupId>org.eclipse.osbp.runtime</groupId>
								<artifactId>org.eclipse.osbp.runtime.common</artifactId>
								<version>0.9.0-SNAPSHOT</version>
							</dependency>
						</dependencies>
					</plugin>
				</plugins>
			</build>
        </profile>
        <profile>
			<!-- switch off jarsigner if not properly configured in settings.xml --> 
            <id>donotsign</id>
            <activation>
                <property>
                
                    <name>!maven-jarsigner-plugin.keystore</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-jarsigner-plugin</artifactId>
                        <configuration>
                            <skip>true</skip>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>sign</id>
            <activation>
                <file>
                    <missing>.osbp.releng.root</missing>
                </file>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-jarsigner-plugin</artifactId>
                        <configuration>
                            <verify>true</verify>
                            <storetype>jks</storetype>
                            <tsa>${maven-jarsigner-plugin.tsa}</tsa>
                            <keystore>${maven-jarsigner-plugin.keystore}</keystore>
                            <alias>${maven-jarsigner-plugin.alias}</alias>
                            <storepass>${maven-jarsigner-plugin.storepass}</storepass>
                            <removeExistingSignatures>true</removeExistingSignatures>
                            <verbose>true</verbose>
                        </configuration>
                        <executions>
                            <execution>
                                <id>sign</id>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                            </execution>
                            <execution>
                                <id>verify</id>
                                <goals>
                                    <goal>verify</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

    <build>
        <sourceDirectory>src</sourceDirectory>
    
        <plugins>
            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>tycho-maven-plugin</artifactId>
            </plugin>
        
            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>tycho-compiler-plugin</artifactId>
            </plugin>
        
            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>target-platform-configuration</artifactId>
            </plugin>
        
            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>tycho-source-plugin</artifactId>
            </plugin>

            <plugin>
                <artifactId>maven-clean-plugin</artifactId>
                <configuration>
                    <filesets>
                        <fileset>
                            <directory>xtend-gen</directory>
                            <includes>
                                <include>**</include>
                            </includes>
                        </fileset>
                    </filesets>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.eclipse.xtend</groupId>
                <artifactId>xtend-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>compile</goal>
                            <goal>testCompile</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>xtend-gen</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    
        <pluginManagement>
            <plugins>
                <!-- enable tycho build -->
                <plugin>
                    <groupId>org.eclipse.tycho</groupId>
                    <artifactId>tycho-maven-plugin</artifactId>
                    <version>${tycho-version}</version>
                    <extensions>true</extensions>
                    <configuration>
						<localArtifacts>ignore</localArtifacts>    
                    </configuration>
						
                </plugin>
                <plugin>
                    <groupId>org.eclipse.tycho</groupId>
                    <artifactId>tycho-compiler-plugin</artifactId>
                    <version>${tycho-version}</version>
                    <configuration>
                        <compilerVersion>1.8</compilerVersion>
                        <encoding>UTF-8</encoding>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.eclipse.tycho</groupId>
                    <artifactId>target-platform-configuration</artifactId>
                    <version>${tycho-version}</version>
                    <configuration>
                        <resolver>p2</resolver>
                        <pomDependencies>consider</pomDependencies>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.eclipse.tycho</groupId>
                    <artifactId>tycho-source-plugin</artifactId>
                    <version>${tycho-version}</version>
                    <executions>
                        <execution>
                            <id>plugin-source</id>
                            <goals>
                                <goal>plugin-source</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.eclipse.tycho</groupId>
                    <artifactId>tycho-surefire-plugin</artifactId>
                    <version>${tycho-version}</version>
                    <configuration>
                        <includes>
                            <include>**/*Tests.java</include>
                        </includes>
                        <showEclipseLog>true</showEclipseLog>
                        <useUIHarness>false</useUIHarness>
                        <useUIThread>false</useUIThread>
                        <failIfNoTests>false</failIfNoTests>
                        <!-- <appArgLine>-Dfile.encoding=UTF-8</appArgLine> -->
                        <argLine>${jacoco.agent.it.arg}</argLine>
                        <!-- Kill test JVM if tests take more than 10 minutes (600 seconds) 
							to finish -->
                        <forkedProcessTimeoutInSeconds>600</forkedProcessTimeoutInSeconds>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>build-helper-maven-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>add-source</id>
                            <phase>initialize</phase>
                            <goals>
                                <goal>add-source</goal>
                            </goals>
                            <configuration>
                                <sources>
                                    <source>src-gen</source>
                                    <source>xtend-gen</source>
                                    <source>emf-gen</source>
                                </sources>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.eclipse.xtend</groupId>
                    <artifactId>xtend-maven-plugin</artifactId>
                    <version>${xtext.version}</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>compile</goal>
                                <goal>xtend-install-debug-info</goal>
                                <goal>testCompile</goal>
                                <goal>xtend-test-install-debug-info</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <outputDirectory>xtend-gen</outputDirectory>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>pl.project13.maven</groupId>
                    <artifactId>git-commit-id-plugin</artifactId>
                    <version>2.2.0</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>revision</goal>
                            </goals>
                        </execution>
                    </executions>
                
                </plugin>
            
            </plugins>
        </pluginManagement>
    </build>
    <dependencies>
        <dependency>
            <groupId>org.eclipse.osbp.releng.maven</groupId>
            <artifactId>org.eclipse.osbp.releng.maven.licenses</artifactId>
            <version>0.9.0-SNAPSHOT</version>
            <!-- 			<classifier>third-party</classifier> -->
            <!-- 			<type>properties</type> -->
            <!-- 			<scope>provided</scope> -->
        </dependency>
    </dependencies>
</project>
