<?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.technologystack.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.base}${osbp.build.eclipse.platform.name}${file.separator}${osbp.build.branch}${file.separator}</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 Technologystack Internal P2</id>
	                <url>${osbp.technologystack.p2}</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 Technologystack Internal P2</id>
	                <url>${osbp.technologystack.p2}</url>
	                <layout>p2</layout>
	            </repository>
            </repositories>
        </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>
            <id>whenIsDependenciesRepositoryP2Project</id>
            <activation>
                <file>
                    <exists>.osbp.releng.eclipse.dependencies.p2</exists>
                </file>
            </activation>
            <properties>
                <!-- 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>
                <!-- 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>
                <!-- encoded files needed by ant task -->
                <encoded.p2index>dmVyc2lvbiA9IDEKIG1ldGFkYXRhLnJlcG9zaXRvcnkuZmFjdG9yeS5vcmRlciA9IGNvbXBvc2l0ZUNvbnRlbnQueG1sLFwhCiBhcnRpZmFjdC5yZXBvc2l0b3J5LmZhY3Rvcnkub3JkZXIgPSBjb21wb3NpdGVBcnRpZmFjdHMueG1sLFwh</encoded.p2index>
                <encoded.compositeArtifacts>PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4KPD9jb21wb3NpdGVBcnRpZmFjdFJlcG9zaXRvcnkgdmVyc2lvbj0nMS4wLjAnPz4KPHJlcG9zaXRvcnkgbmFtZT0nT1NCUCBQdWJsaWMgUDIgUmVwb3NpdG9yeScgdHlwZT0nb3JnLmVjbGlwc2UuZXF1aW5veC5pbnRlcm5hbC5wMi5hcnRpZmFjdC5yZXBvc2l0b3J5LkNvbXBvc2l0ZUFydGlmYWN0UmVwb3NpdG9yeScgdmVyc2lvbj0nMS4wLjAnPgogIDxwcm9wZXJ0aWVzIHNpemU9JzEnPgoJPHByb3BlcnR5IG5hbWU9J3AyLnRpbWVzdGFtcCcgdmFsdWU9JzEyNDM4MjI1MDI0NDAnLz4KICA8L3Byb3BlcnRpZXM+CiAgPGNoaWxkcmVuIHNpemU9JzAnPgkKICA8L2NoaWxkcmVuPgo8L3JlcG9zaXRvcnk+Cg==</encoded.compositeArtifacts>
                <encoded.compositeContent>PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4KPD9jb21wb3NpdGVNZXRhZGF0YVJlcG9zaXRvcnkgdmVyc2lvbj0nMS4wLjAnPz4KPHJlcG9zaXRvcnkgbmFtZT0nT1NCUCBQdWJsaWMgUDIgUmVwb3NpdG9yeScgdHlwZT0nb3JnLmVjbGlwc2UuZXF1aW5veC5pbnRlcm5hbC5wMi5tZXRhZGF0YS5yZXBvc2l0b3J5LkNvbXBvc2l0ZU1ldGFkYXRhUmVwb3NpdG9yeScgdmVyc2lvbj0nMS4wLjAnPgogIDxwcm9wZXJ0aWVzIHNpemU9JzEnPgoJPHByb3BlcnR5IG5hbWU9J3AyLnRpbWVzdGFtcCcgdmFsdWU9JzEyNDM4MjI1MDI0OTknLz4KICA8L3Byb3BlcnRpZXM+CiAgPGNoaWxkcmVuIHNpemU9JzAnPgogIDwvY2hpbGRyZW4+CjwvcmVwb3NpdG9yeT4K</encoded.compositeContent>

				<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.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.build.local.federated.p2.dir}${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 an existent repository directory -->
                                        <if>
                                            <available file="${osbp.build.local.federated.p2.dir}${osbp.stage.p2.label}" type="dir"/>
                                            <then>
                                                <delete includeemptydirs="true" failonerror="false">
                                                    <fileset includes="**/*" dir="${osbp.build.local.federated.p2.dir}${osbp.stage.p2.label}"/>
                                                </delete>
                                                <delete dir="${osbp.build.local.federated.p2.dir}${osbp.stage.p2.label}"/>
                                            </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>
			<!-- used for technologystack -->
            <id>whenIsTechnologystackP2Project.stage.p2</id>
            <activation>
                <file>
                    <exists>.osbp.releng.eclipse.technologystack.p2</exists>
                </file>
            </activation>
            <properties>
                <!-- encoded files needed by ant task -->
                <encoded.p2index>dmVyc2lvbiA9IDEKIG1ldGFkYXRhLnJlcG9zaXRvcnkuZmFjdG9yeS5vcmRlciA9IGNvbXBvc2l0ZUNvbnRlbnQueG1sLFwhCiBhcnRpZmFjdC5yZXBvc2l0b3J5LmZhY3Rvcnkub3JkZXIgPSBjb21wb3NpdGVBcnRpZmFjdHMueG1sLFwh</encoded.p2index>
                <encoded.compositeArtifacts>PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4KPD9jb21wb3NpdGVBcnRpZmFjdFJlcG9zaXRvcnkgdmVyc2lvbj0nMS4wLjAnPz4KPHJlcG9zaXRvcnkgbmFtZT0nT1NCUCBQdWJsaWMgUDIgUmVwb3NpdG9yeScgdHlwZT0nb3JnLmVjbGlwc2UuZXF1aW5veC5pbnRlcm5hbC5wMi5hcnRpZmFjdC5yZXBvc2l0b3J5LkNvbXBvc2l0ZUFydGlmYWN0UmVwb3NpdG9yeScgdmVyc2lvbj0nMS4wLjAnPgogIDxwcm9wZXJ0aWVzIHNpemU9JzEnPgoJPHByb3BlcnR5IG5hbWU9J3AyLnRpbWVzdGFtcCcgdmFsdWU9JzEyNDM4MjI1MDI0NDAnLz4KICA8L3Byb3BlcnRpZXM+CiAgPGNoaWxkcmVuIHNpemU9JzAnPgkKICA8L2NoaWxkcmVuPgo8L3JlcG9zaXRvcnk+Cg==</encoded.compositeArtifacts>
                <encoded.compositeContent>PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4KPD9jb21wb3NpdGVNZXRhZGF0YVJlcG9zaXRvcnkgdmVyc2lvbj0nMS4wLjAnPz4KPHJlcG9zaXRvcnkgbmFtZT0nT1NCUCBQdWJsaWMgUDIgUmVwb3NpdG9yeScgdHlwZT0nb3JnLmVjbGlwc2UuZXF1aW5veC5pbnRlcm5hbC5wMi5tZXRhZGF0YS5yZXBvc2l0b3J5LkNvbXBvc2l0ZU1ldGFkYXRhUmVwb3NpdG9yeScgdmVyc2lvbj0nMS4wLjAnPgogIDxwcm9wZXJ0aWVzIHNpemU9JzEnPgoJPHByb3BlcnR5IG5hbWU9J3AyLnRpbWVzdGFtcCcgdmFsdWU9JzEyNDM4MjI1MDI0OTknLz4KICA8L3Byb3BlcnRpZXM+CiAgPGNoaWxkcmVuIHNpemU9JzAnPgogIDwvY2hpbGRyZW4+CjwvcmVwb3NpdG9yeT4K</encoded.compositeContent>

                <!-- this properties should be overridden for each repository POM -->
                <osbp.stage.p2.label>${project.artifactId}</osbp.stage.p2.label>
                
				<osbp.build.local.federated.p2.dir>${osbp.stage.p2.technologystack.target.dir.base}${file.separator}${osbp.build.branch}${file.separator}</osbp.build.local.federated.p2.dir>
				
				<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.build.local.federated.p2.dir}${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>
			<repositories>
	            <repository>
	                <id>OSBP dependencies Internal P2</id>
	                <url>file://${osbp.stage.p2.dependencies.target.dir.base}${file.separator}${osbp.build.branch}${file.separator}</url>
	                <layout>p2</layout>
	            </repository>
			</repositories>	
            <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 an existent repository directory -->
                                        <if>
                                            <available file="${osbp.build.local.federated.p2.dir}${osbp.stage.p2.label}" type="dir"/>
                                            <then>
                                                <delete includeemptydirs="true" failonerror="false">
                                                    <fileset includes="**/*" dir="${osbp.build.local.federated.p2.dir}${osbp.stage.p2.label}"/>
                                                </delete>
                                                <delete dir="${osbp.build.local.federated.p2.dir}${osbp.stage.p2.label}"/>
                                            </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>
			<!-- used for softwarefactory -->
            <id>whenIsRepositoryP2Project.stage.p2</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>PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4KPD9jb21wb3NpdGVBcnRpZmFjdFJlcG9zaXRvcnkgdmVyc2lvbj0nMS4wLjAnPz4KPHJlcG9zaXRvcnkgbmFtZT0nT1NCUCBQdWJsaWMgUDIgUmVwb3NpdG9yeScgdHlwZT0nb3JnLmVjbGlwc2UuZXF1aW5veC5pbnRlcm5hbC5wMi5hcnRpZmFjdC5yZXBvc2l0b3J5LkNvbXBvc2l0ZUFydGlmYWN0UmVwb3NpdG9yeScgdmVyc2lvbj0nMS4wLjAnPgogIDxwcm9wZXJ0aWVzIHNpemU9JzEnPgoJPHByb3BlcnR5IG5hbWU9J3AyLnRpbWVzdGFtcCcgdmFsdWU9JzEyNDM4MjI1MDI0NDAnLz4KICA8L3Byb3BlcnRpZXM+CiAgPGNoaWxkcmVuIHNpemU9JzAnPgkKICA8L2NoaWxkcmVuPgo8L3JlcG9zaXRvcnk+Cg==</encoded.compositeArtifacts>
                <encoded.compositeContent>PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4KPD9jb21wb3NpdGVNZXRhZGF0YVJlcG9zaXRvcnkgdmVyc2lvbj0nMS4wLjAnPz4KPHJlcG9zaXRvcnkgbmFtZT0nT1NCUCBQdWJsaWMgUDIgUmVwb3NpdG9yeScgdHlwZT0nb3JnLmVjbGlwc2UuZXF1aW5veC5pbnRlcm5hbC5wMi5tZXRhZGF0YS5yZXBvc2l0b3J5LkNvbXBvc2l0ZU1ldGFkYXRhUmVwb3NpdG9yeScgdmVyc2lvbj0nMS4wLjAnPgogIDxwcm9wZXJ0aWVzIHNpemU9JzEnPgoJPHByb3BlcnR5IG5hbWU9J3AyLnRpbWVzdGFtcCcgdmFsdWU9JzEyNDM4MjI1MDI0OTknLz4KICA8L3Byb3BlcnRpZXM+CiAgPGNoaWxkcmVuIHNpemU9JzAnPgogIDwvY2hpbGRyZW4+CjwvcmVwb3NpdG9yeT4K</encoded.compositeContent>

				<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.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.build.local.federated.p2.dir}${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>
			<repositories>
	            <repository>
	                <id>OSBP Technologystack Internal P2</id>
	                <url>${osbp.technologystack.p2}</url>
	                <layout>p2</layout>
	            </repository>
			</repositories>	
            <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 an existent repository directory -->
                                        <if>
                                            <available file="${osbp.build.local.federated.p2.dir}${osbp.stage.p2.label}" type="dir"/>
                                            <then>
                                                <delete includeemptydirs="true" failonerror="false">
                                                    <fileset includes="**/*" dir="${osbp.build.local.federated.p2.dir}${osbp.stage.p2.label}"/>
                                                </delete>
                                                <delete dir="${osbp.build.local.federated.p2.dir}${osbp.stage.p2.label}"/>
                                            </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>
        	<!-- 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>
				<dependencies>
					<!--  due to https://github.com/eclipse/xtext/issues/1231 -->
					<dependency>
					    <groupId>org.eclipse.platform</groupId>
					    <artifactId>org.eclipse.equinox.common</artifactId>
					    <version>3.10.0</version>
					</dependency>
					<dependency>
						<groupId>org.eclipse.jdt</groupId>
						<artifactId>org.eclipse.jdt.core</artifactId>
						<version>3.12.2</version>
					</dependency>
					<dependency>
						<groupId>org.eclipse.jdt</groupId>
						<artifactId>org.eclipse.jdt.debug</artifactId>
						<version>3.12.0</version>
					</dependency>
					<dependency>
						<groupId>org.eclipse.jdt</groupId>
						<artifactId>org.eclipse.jdt.launching</artifactId>
						<version>3.11.0</version>
					</dependency>
				</dependencies>
                <executions>
                    <execution>
                        <goals>
                            <goal>compile</goal>
                            <goal>testCompile</goal>
                        </goals>
                        <configuration>
							<javaSourceVersion>1.7</javaSourceVersion>
							<writeTraceFiles>false</writeTraceFiles>
							<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>
					<dependencies>
						<!--  due to https://github.com/eclipse/xtext/issues/1231 -->
						<dependency>
						    <groupId>org.eclipse.platform</groupId>
						    <artifactId>org.eclipse.equinox.common</artifactId>
						    <version>3.10.0</version>
						</dependency>
						<dependency>
							<groupId>org.eclipse.jdt</groupId>
							<artifactId>org.eclipse.jdt.core</artifactId>
							<version>3.12.2</version>
						</dependency>
						<dependency>
							<groupId>org.eclipse.jdt</groupId>
							<artifactId>org.eclipse.jdt.debug</artifactId>
							<version>3.12.0</version>
						</dependency>
						<dependency>
							<groupId>org.eclipse.jdt</groupId>
							<artifactId>org.eclipse.jdt.launching</artifactId>
							<version>3.11.0</version>
						</dependency>
					</dependencies>
					<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>
						<javaSourceVersion>1.7</javaSourceVersion>
						<writeTraceFiles>false</writeTraceFiles>
						<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>
