blob: 2ca4d952023d8caa3f9a3ab42414cf8f2fb4aef5 [file] [log] [blame]
<?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 v1.0 -->
<!--# which accompanies this distribution, and is available at -->
<!--# http://www.eclipse.org/legal/epl-v10.html -->
<!--# -->
<!--# 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.developer.home.repositories}${osbp.federated.repository.label}${file.separator}${osbp.build.eclipse.platform.name}${file.separator}${osbp.build.branch}${file.separator}</osbp.build.local.federated.p2.dir>
<osbp.build.local.federated.p2.url>file://${osbp.build.local.federated.p2.dir}</osbp.build.local.federated.p2.url>
<osbp.build.remote.federated.p2.url>${osbp.p2}</osbp.build.remote.federated.p2.url>
<!-- this property is calculated based on the aggregator pom's version -->
<!-- osbp.stage.artifact.version>none</osbp.stage.artifact.version> -->
<osbp.stage.artifact.version>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.${osgi-version-qualifier}</osbp.stage.artifact.version>
<osbp.stage.p2.keep.old>false</osbp.stage.p2.keep.old>
</properties>
<scm>
<connection>${osbp.scm.connection}</connection>
<developerConnection>${osbp.scm.connection.dev}</developerConnection>
<tag>HEAD</tag>
</scm>
<profiles>
<profile>
<id>platform.default</id>
<activation>
<property>
<name>!osbp.build.eclipse.platform.name</name>
</property>
</activation>
<properties>
<osbee.build.eclipse.platform.p2.url>http://download.eclipse.org/releases/neon</osbee.build.eclipse.platform.p2.url>
<osbp.build.eclipse.platform.name>neon</osbp.build.eclipse.platform.name>
<orbit-site>http://download.eclipse.org/tools/orbit/downloads/drops/R20170307180635/repository/</orbit-site>
</properties>
<repositories>
<repository>
<id>Neon eclipse.p2</id>
<url>http://download.eclipse.org/releases/neon</url>
<layout>p2</layout>
</repository>
<repository>
<id>EclipseNeonSR2</id>
<url>http://download.eclipse.org/releases/neon/201612211000/
</url>
<layout>p2</layout>
</repository>
<repository>
<id>EclipseNeonSR3</id>
<url>http://download.eclipse.org/releases/neon/201703231000/
</url>
<layout>p2</layout>
</repository>
<repository>
<id>Neon3 Orbit</id>
<url>http://download.eclipse.org/tools/orbit/downloads/drops/R20170307180635/repository/
</url>
<layout>p2</layout>
</repository>
<repository>
<id>EclipseNeonComposite</id>
<url>http://download.eclipse.org/eclipse/updates/4.6/
</url>
<layout>p2</layout>
</repository>
</repositories>
</profile>
<profile>
<id>platform.neon</id>
<activation>
<property>
<name>osbp.build.eclipse.platform.name</name>
<value>neon</value>
</property>
</activation>
<properties>
<osbee.build.eclipse.platform.p2.url>http://download.eclipse.org/releases/neon</osbee.build.eclipse.platform.p2.url>
<orbit-site>http://download.eclipse.org/tools/orbit/downloads/drops/R20170307180635/repository/</orbit-site>
<osbp.build.eclipse.platform.name>neon</osbp.build.eclipse.platform.name>
</properties>
<repositories>
<repository>
<id>Neon eclipse.p2</id>
<url>http://download.eclipse.org/releases/neon</url>
<layout>p2</layout>
</repository>
<repository>
<id>EclipseNeonSR2</id>
<url>http://download.eclipse.org/releases/neon/201612211000/
</url>
<layout>p2</layout>
</repository>
<repository>
<id>EclipseNeonSR3</id>
<url>http://download.eclipse.org/releases/neon/201703231000/
</url>
<layout>p2</layout>
</repository>
<repository>
<id>Neon3 Orbit</id>
<url>http://download.eclipse.org/tools/orbit/downloads/drops/R20170307180635/repository/
</url>
<layout>p2</layout>
</repository>
<repository>
<id>EclipseNeonComposite</id>
<url>http://download.eclipse.org/eclipse/updates/4.6/
</url>
<layout>p2</layout>
</repository>
</repositories>
</profile>
<profile>
<id>platform.luna</id>
<activation>
<property>
<name>osbp.build.eclipse.platform.name</name>
<value>luna</value>
</property>
</activation>
<properties>
<osbp.build.eclipse.platform.name>luna</osbp.build.eclipse.platform.name>
<orbit-site>http://download.eclipse.org/tools/orbit/downloads/drops/R20140525021250/repository/</orbit-site>
</properties>
<repositories>
<repository>
<id>Luna eclipse.p2</id>
<url>http://download.eclipse.org/releases/luna</url>
<layout>p2</layout>
</repository>
<repository>
<id>orbit</id>
<url>http://download.eclipse.org/tools/orbit/downloads/drops/R20140525021250/repository/</url>
<layout>p2</layout>
</repository>
</repositories>
</profile>
<profile>
<id>osbp.build.uses.local.federated.p2</id>
<activation>
<property>
<name>osbp.build.uses.local.federated.p2</name>
</property>
</activation>
<repositories>
<repository>
<id>osbp.local.federated.p2</id>
<url>${osbp.build.local.federated.p2.url}</url>
<layout>p2</layout>
</repository>
</repositories>
</profile>
<profile>
<id>osbp.build.uses.remote.federated.p2</id>
<activation>
<property>
<name>osbp.build.uses.remote.federated.p2</name>
</property>
</activation>
<repositories>
<repository>
<id>osbp.remote.federated.p2</id>
<url>${osbp.build.remote.federated.p2.url}</url>
<layout>p2</layout>
</repository>
</repositories>
</profile>
<profile>
<id>whenIsDependenciesRepositoryP2Project</id>
<activation>
<file>
<exists>.osbp.releng.eclipse.dependencies.p2</exists>
</file>
</activation>
<properties>
<!-- encoded files needed by ant task -->
<encoded.p2index>dmVyc2lvbiA9IDEKIG1ldGFkYXRhLnJlcG9zaXRvcnkuZmFjdG9yeS5vcmRlciA9IGNvbXBvc2l0ZUNvbnRlbnQueG1sLFwhCiBhcnRpZmFjdC5yZXBvc2l0b3J5LmZhY3Rvcnkub3JkZXIgPSBjb21wb3NpdGVBcnRpZmFjdHMueG1sLFwh</encoded.p2index>
<encoded.compositeArtifacts>PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjw/Y29tcG9zaXRlQXJ0aWZhY3RSZXBvc2l0b3J5IHZlcnNpb249JzEuMC4wJz8+DQo8cmVwb3NpdG9yeSBuYW1lPSdPUy5iZWUgUHVibGljIFAyIFJlcG9zaXRvcnknIHR5cGU9J29yZy5lY2xpcHNlLmVxdWlub3guaW50ZXJuYWwucDIuYXJ0aWZhY3QucmVwb3NpdG9yeS5Db21wb3NpdGVBcnRpZmFjdFJlcG9zaXRvcnknIHZlcnNpb249JzEuMC4wJz4NCiAgPHByb3BlcnRpZXMgc2l6ZT0nMSc+DQoJPHByb3BlcnR5IG5hbWU9J3AyLnRpbWVzdGFtcCcgdmFsdWU9JzEyNDM4MjI1MDI0NDAnLz4NCiAgPC9wcm9wZXJ0aWVzPg0KICA8Y2hpbGRyZW4gc2l6ZT0nMCc+CQ0KICA8L2NoaWxkcmVuPg0KPC9yZXBvc2l0b3J5Pg==</encoded.compositeArtifacts>
<encoded.compositeContent>PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjw/Y29tcG9zaXRlTWV0YWRhdGFSZXBvc2l0b3J5IHZlcnNpb249JzEuMC4wJz8+DQo8cmVwb3NpdG9yeSBuYW1lPSdPUy5iZWUgUHVibGljIFAyIFJlcG9zaXRvcnknIHR5cGU9J29yZy5lY2xpcHNlLmVxdWlub3guaW50ZXJuYWwucDIubWV0YWRhdGEucmVwb3NpdG9yeS5Db21wb3NpdGVNZXRhZGF0YVJlcG9zaXRvcnknIHZlcnNpb249JzEuMC4wJz4NCiAgPHByb3BlcnRpZXMgc2l6ZT0nMSc+DQoJPHByb3BlcnR5IG5hbWU9J3AyLnRpbWVzdGFtcCcgdmFsdWU9JzEyNDM4MjI1MDI0OTknLz4NCiAgPC9wcm9wZXJ0aWVzPg0KICA8Y2hpbGRyZW4gc2l6ZT0nMCc+DQogIDwvY2hpbGRyZW4+DQo8L3JlcG9zaXRvcnk+</encoded.compositeContent>
<!-- this properties should be overridden for each repository POM -->
<osbp.stage.p2.label>${project.artifactId}</osbp.stage.p2.label>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<configuration>
<resolver>p2</resolver>
<pomDependencies>consider</pomDependencies>
<environments>
<environment>
<os>win32</os>
<ws>win32</ws>
<arch>x86</arch>
</environment>
<environment>
<os>win32</os>
<ws>win32</ws>
<arch>x86_64</arch>
</environment>
<environment>
<os>linux</os>
<ws>gtk</ws>
<arch>x86</arch>
</environment>
<environment>
<os>linux</os>
<ws>gtk</ws>
<arch>x86_64</arch>
</environment>
<environment>
<os>macosx</os>
<ws>cocoa</ws>
<arch>x86_64</arch>
</environment>
</environments>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>whenIsRepositoryP2Project</id>
<activation>
<file>
<exists>.osbp.releng.eclipse.p2</exists>
</file>
</activation>
<properties>
<!-- encoded files needed by ant task -->
<encoded.p2index>dmVyc2lvbiA9IDEKIG1ldGFkYXRhLnJlcG9zaXRvcnkuZmFjdG9yeS5vcmRlciA9IGNvbXBvc2l0ZUNvbnRlbnQueG1sLFwhCiBhcnRpZmFjdC5yZXBvc2l0b3J5LmZhY3Rvcnkub3JkZXIgPSBjb21wb3NpdGVBcnRpZmFjdHMueG1sLFwh</encoded.p2index>
<encoded.compositeArtifacts>PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjw/Y29tcG9zaXRlQXJ0aWZhY3RSZXBvc2l0b3J5IHZlcnNpb249JzEuMC4wJz8+DQo8cmVwb3NpdG9yeSBuYW1lPSdPUy5iZWUgUHVibGljIFAyIFJlcG9zaXRvcnknIHR5cGU9J29yZy5lY2xpcHNlLmVxdWlub3guaW50ZXJuYWwucDIuYXJ0aWZhY3QucmVwb3NpdG9yeS5Db21wb3NpdGVBcnRpZmFjdFJlcG9zaXRvcnknIHZlcnNpb249JzEuMC4wJz4NCiAgPHByb3BlcnRpZXMgc2l6ZT0nMSc+DQoJPHByb3BlcnR5IG5hbWU9J3AyLnRpbWVzdGFtcCcgdmFsdWU9JzEyNDM4MjI1MDI0NDAnLz4NCiAgPC9wcm9wZXJ0aWVzPg0KICA8Y2hpbGRyZW4gc2l6ZT0nMCc+CQ0KICA8L2NoaWxkcmVuPg0KPC9yZXBvc2l0b3J5Pg==</encoded.compositeArtifacts>
<encoded.compositeContent>PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjw/Y29tcG9zaXRlTWV0YWRhdGFSZXBvc2l0b3J5IHZlcnNpb249JzEuMC4wJz8+DQo8cmVwb3NpdG9yeSBuYW1lPSdPUy5iZWUgUHVibGljIFAyIFJlcG9zaXRvcnknIHR5cGU9J29yZy5lY2xpcHNlLmVxdWlub3guaW50ZXJuYWwucDIubWV0YWRhdGEucmVwb3NpdG9yeS5Db21wb3NpdGVNZXRhZGF0YVJlcG9zaXRvcnknIHZlcnNpb249JzEuMC4wJz4NCiAgPHByb3BlcnRpZXMgc2l6ZT0nMSc+DQoJPHByb3BlcnR5IG5hbWU9J3AyLnRpbWVzdGFtcCcgdmFsdWU9JzEyNDM4MjI1MDI0OTknLz4NCiAgPC9wcm9wZXJ0aWVzPg0KICA8Y2hpbGRyZW4gc2l6ZT0nMCc+DQogIDwvY2hpbGRyZW4+DQo8L3JlcG9zaXRvcnk+</encoded.compositeContent>
<!-- this properties should be overridden for each repository POM -->
<osbp.stage.p2.label>${project.artifactId}</osbp.stage.p2.label>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<configuration>
<resolver>p2</resolver>
<pomDependencies>consider</pomDependencies>
<environments>
<environment>
<os>win32</os>
<ws>win32</ws>
<arch>x86</arch>
</environment>
<environment>
<os>win32</os>
<ws>win32</ws>
<arch>x86_64</arch>
</environment>
<environment>
<os>linux</os>
<ws>gtk</ws>
<arch>x86</arch>
</environment>
<environment>
<os>linux</os>
<ws>gtk</ws>
<arch>x86_64</arch>
</environment>
<environment>
<os>macosx</os>
<ws>cocoa</ws>
<arch>x86_64</arch>
</environment>
</environments>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>whenIsDependenciesRepositoryP2Project.stage.p2</id>
<activation>
<file>
<exists>.osbp.releng.eclipse.dependencies.p2</exists>
</file>
</activation>
<properties>
<osbp.build.local.federated.p2.dir>${osbp.developer.home.repositories}${osbp.dependencies.repository.label}${file.separator}${osbp.build.eclipse.platform.name}${file.separator}${osbp.build.branch}${file.separator}</osbp.build.local.federated.p2.dir>
<osbp.build.local.federated.p2.url>file://${osbp.build.local.federated.p2.dir}</osbp.build.local.federated.p2.url>
<osbp.build.remote.federated.p2.url>${osbp.p2}</osbp.build.remote.federated.p2.url>
<osbp.stage.p2.log.file.path>${project.basedir}${file.separator}build.${osbp.stage.p2.label}.${osbp.build.eclipse.platform.name}.${osbp.build.branch}.log.properties</osbp.stage.p2.log.file.path>
<osbp.stage.p2.origin.dir>${project.build.directory}${file.separator}repository</osbp.stage.p2.origin.dir>
<osbp.stage.p2.target.dir>${osbp.developer.home.repositories}${osbp.dependencies.repository.label}${file.separator}${osbp.build.eclipse.platform.name}${file.separator}${osbp.build.branch}${file.separator}${osbp.stage.p2.label}${file.separator}${osbp.stage.artifact.version}</osbp.stage.p2.target.dir>
</properties>
<repositories>
<repository>
<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>
</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 the latest built repository directory -->
<if>
<equals arg1="${osbp.stage.p2.keep.old}" arg2="false"/>
<then>
<echo message="Checking property 'old.osbp.stage.p2.target.dir'"/>
<if>
<isset property="old.osbp.stage.p2.target.dir"/>
<then>
<if>
<available file="${old.osbp.stage.p2.target.dir}" type="dir"/>
<then>
<echo message="REMOVING OLD BUILDS at:'${old.osbp.stage.p2.target.dir}/..'"/>
<delete includeemptydirs="true" failonerror="false">
<fileset includes="**/*" dir="${old.osbp.stage.p2.target.dir}/.."/>
</delete>
<delete dir="${old.osbp.stage.p2.target.dir}/.."/>
</then>
<else>
<echo message="Old build was not found at:'${old.osbp.stage.p2.target.dir}'"/>
</else>
</if>
</then>
<else>
<echo message="Property 'old.osbp.stage.p2.target.dir' was not set due a missing log file."/>
</else>
</if>
</then>
</if>
<!-- remove an existent repository directory -->
<if>
<available file="${osbp.stage.p2.target.dir}" type="dir"/>
<then>
<delete includeemptydirs="true" failonerror="false">
<fileset includes="**/*" dir="${osbp.stage.p2.target.dir}"/>
</delete>
<delete dir="${osbp.stage.p2.target.dir}"/>
</then>
</if>
<!-- deploy.generated.p2.to.composite.p2 -->
<!-- create the repository directory and copy files from the generated
P2 -->
<echo message="COPYING P2"/>
<if>
<available file="${osbp.stage.p2.origin.dir}" type="dir"/>
<then>
<mkdir dir="${osbp.stage.p2.target.dir}"/>
<copy todir="${osbp.stage.p2.target.dir}">
<fileset dir="${osbp.stage.p2.origin.dir}" includes="**/*"/>
</copy>
<if>
<equals arg1="${osbp.stage.p2.keep.old}" arg2="false"/>
<then>
<propertyfile file="${osbp.stage.p2.log.file.path}" comment="Building log for ${osbp.build.eclipse.platform.name} - ${osbp.build.branch}">
<entry key="build.counter" type="int" default="0" operation="+"/>
<entry key="build.date" type="date" value="now"/>
<entry key="osbp.stage.artifact.version" value="${osbp.stage.artifact.version}"/>
<entry key="osbp.stage.p2.target.dir" value="${osbp.stage.p2.target.dir}"/>
</propertyfile>
</then>
<else>
<propertyfile file="${osbp.stage.p2.log.file.path}" comment="Building log for ${osbp.build.eclipse.platform.name} - ${osbp.build.branch}">
<entry key="build.counter" type="int" default="0" operation="+"/>
<entry key="build.date" type="date" value="now"/>
<entry key="osbp.build.local.federated.p2.dir" value="${osbp.build.local.federated.p2.dir}"/>
<entry key="osbp.stage.artifact.versions" default="" operation="+" value=",${osbp.stage.artifact.version}"/>
</propertyfile>
</else>
</if>
</then>
<else>
<fail message="The P2 repository was not generated in '${osbp.stage.p2.origin.dir}' !"/>
</else>
</if>
<!-- start rebuilding... -->
<echo message="Rebuilding Federated Repository !!!"/>
<echo message=" (osbp.build.local.federated.p2.dir): ${osbp.build.local.federated.p2.dir}"/>
<dirset id="dirs" dir="${osbp.build.local.federated.p2.dir}" includes="*/*"/>
<fail message="There is no repositories to process !">
<condition>
<resourcecount when="equal" count="0" refid="dirs"/>
</condition>
</fail>
<if>
<available file="${osbp.build.local.federated.p2.dir}compositeContent.xml" type="file"/>
<then>
<echo message="DELETED OLD CONTENT FILE"/>
<delete file="${osbp.build.local.federated.p2.dir}compositeContent.xml"/>
</then>
</if>
<if>
<available file="${osbp.build.local.federated.p2.dir}compositeArtifacts.xml" type="file"/>
<then>
<echo message="DELETED OLD ARTIFACTS FILE"/>
<delete file="${osbp.build.local.federated.p2.dir}compositeArtifacts.xml"/>
</then>
</if>
<!-- generate.composite.p2.add.compositeContentFile -->
<xmltask source="${compositeContentFile}" destbuffer="bufferCompositeContent" report="true"/>
<var name="counterContent" value="0"/>
<for param="child" list="${toString:dirs}" delimiter=";">
<sequential>
<math result="counterContent" operand1="${counterContent}" operand2="1" operation="+" datatype="int"/>
<echo message="Adding Content Child @{child} - ${counterContent}"/>
<xmltask sourcebuffer="bufferCompositeContent" destbuffer="bufferCompositeContent">
<insert path="/repository/children">
&lt;child location='@{child}' /&gt;
</insert>
</xmltask>
</sequential>
</for>
<xmltask sourcebuffer="bufferCompositeContent" destbuffer="bufferCompositeContent">
<replace path="/repository/children/@size" withText="${counterContent}"/>
</xmltask>
<!-- generate.composite.p2.add.compositeArtifactsFile -->
<xmltask source="${compositeArtifactsFile}" destbuffer="bufferCompositeArtifacts" report="true"/>
<var name="counterArtifacts" value="0"/>
<for param="child" list="${toString:dirs}" delimiter=";">
<sequential>
<math result="counterArtifacts" operand1="${counterArtifacts}" operand2="1" operation="+" datatype="int"/>
<echo message="Adding Artifact Child @{child} - ${counterArtifacts}"/>
<xmltask sourcebuffer="bufferCompositeArtifacts" destbuffer="bufferCompositeArtifacts">
<insert path="/repository/children">
&lt;child location='@{child}' /&gt;
</insert>
</xmltask>
</sequential>
</for>
<xmltask sourcebuffer="bufferCompositeArtifacts" destbuffer="bufferCompositeArtifacts">
<replace path="/repository/children/@size" withText="${counterArtifacts}"/>
</xmltask>
<!-- generate.composite.p2.add.p2.index.file -->
<if>
<not>
<available file="${osbp.build.local.federated.p2.dir}p2.index" type="file"/>
</not>
<then>
<copy file="${p2indexFile}" todir="${osbp.build.local.federated.p2.dir}"/>
</then>
</if>
<!-- generate.composite.p2 -->
<echo message="CREATE COMPOSITE ARTIFACTS"/>
<xmltask sourcebuffer="bufferCompositeArtifacts" dest="${osbp.build.local.federated.p2.dir}compositeArtifacts.xml"/>
<echo message="CREATE COMPOSITE CONTENT"/>
<xmltask sourcebuffer="bufferCompositeContent" dest="${osbp.build.local.federated.p2.dir}compositeContent.xml"/>
<!-- end generation -->
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>${groovy-all.version}</version>
</dependency>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>${ant-version}</version>
</dependency>
<dependency>
<groupId>ant-contrib</groupId>
<artifactId>ant-contrib</artifactId>
<version>1.0b3</version>
<exclusions>
<exclusion>
<groupId>ant</groupId>
<artifactId>ant</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>net.sf.saxon</groupId>
<artifactId>Saxon-HE</artifactId>
<version>9.4</version>
</dependency>
<dependency>
<groupId>com.oopsconsultancy</groupId>
<artifactId>xmltask</artifactId>
<version>1.16</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>whenIsRepositoryP2Project.stage.p2</id>
<activation>
<file>
<exists>.osbp.releng.eclipse.p2</exists>
</file>
</activation>
<properties>
<osbp.stage.p2.log.file.path>${project.basedir}${file.separator}build.${osbp.stage.p2.label}.${osbp.build.eclipse.platform.name}.${osbp.build.branch}.log.properties</osbp.stage.p2.log.file.path>
<osbp.stage.p2.origin.dir>${project.build.directory}${file.separator}repository</osbp.stage.p2.origin.dir>
<osbp.stage.p2.target.dir>${osbp.developer.home.repositories}${osbp.federated.repository.label}${file.separator}${osbp.build.eclipse.platform.name}${file.separator}${osbp.build.branch}${file.separator}${osbp.stage.p2.label}${file.separator}${osbp.stage.artifact.version}</osbp.stage.p2.target.dir>
</properties>
<repositories>
<repository>
<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>
</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 the latest built repository directory -->
<if>
<equals arg1="${osbp.stage.p2.keep.old}" arg2="false"/>
<then>
<echo message="Checking property 'old.osbp.stage.p2.target.dir'"/>
<if>
<isset property="old.osbp.stage.p2.target.dir"/>
<then>
<if>
<available file="${old.osbp.stage.p2.target.dir}" type="dir"/>
<then>
<echo message="REMOVING OLD BUILDS at:'${old.osbp.stage.p2.target.dir}/..'"/>
<delete includeemptydirs="true" failonerror="false">
<fileset includes="**/*" dir="${old.osbp.stage.p2.target.dir}/.."/>
</delete>
<delete dir="${old.osbp.stage.p2.target.dir}/.."/>
</then>
<else>
<echo message="Old build was not found at:'${old.osbp.stage.p2.target.dir}'"/>
</else>
</if>
</then>
<else>
<echo message="Property 'old.osbp.stage.p2.target.dir' was not set due a missing log file."/>
</else>
</if>
</then>
</if>
<!-- remove an existent repository directory -->
<if>
<available file="${osbp.stage.p2.target.dir}" type="dir"/>
<then>
<delete includeemptydirs="true" failonerror="false">
<fileset includes="**/*" dir="${osbp.stage.p2.target.dir}"/>
</delete>
<delete dir="${osbp.stage.p2.target.dir}"/>
</then>
</if>
<!-- deploy.generated.p2.to.composite.p2 -->
<!-- create the repository directory and copy files from the generated
P2 -->
<echo message="COPYING P2"/>
<if>
<available file="${osbp.stage.p2.origin.dir}" type="dir"/>
<then>
<mkdir dir="${osbp.stage.p2.target.dir}"/>
<copy todir="${osbp.stage.p2.target.dir}">
<fileset dir="${osbp.stage.p2.origin.dir}" includes="**/*"/>
</copy>
<if>
<equals arg1="${osbp.stage.p2.keep.old}" arg2="false"/>
<then>
<propertyfile file="${osbp.stage.p2.log.file.path}" comment="Building log for ${osbp.build.eclipse.platform.name} - ${osbp.build.branch}">
<entry key="build.counter" type="int" default="0" operation="+"/>
<entry key="build.date" type="date" value="now"/>
<entry key="osbp.stage.artifact.version" value="${osbp.stage.artifact.version}"/>
<entry key="osbp.stage.p2.target.dir" value="${osbp.stage.p2.target.dir}"/>
</propertyfile>
</then>
<else>
<propertyfile file="${osbp.stage.p2.log.file.path}" comment="Building log for ${osbp.build.eclipse.platform.name} - ${osbp.build.branch}">
<entry key="build.counter" type="int" default="0" operation="+"/>
<entry key="build.date" type="date" value="now"/>
<entry key="osbp.build.local.federated.p2.dir" value="${osbp.build.local.federated.p2.dir}"/>
<entry key="osbp.stage.artifact.versions" default="" operation="+" value=",${osbp.stage.artifact.version}"/>
</propertyfile>
</else>
</if>
</then>
<else>
<fail message="The P2 repository was not generated in '${osbp.stage.p2.origin.dir}' !"/>
</else>
</if>
<!-- start rebuilding... -->
<echo message="Rebuilding Federated Repository !!!"/>
<echo message=" (osbp.build.local.federated.p2.dir): ${osbp.build.local.federated.p2.dir}"/>
<dirset id="dirs" dir="${osbp.build.local.federated.p2.dir}" includes="*/*"/>
<fail message="There is no repositories to process !">
<condition>
<resourcecount when="equal" count="0" refid="dirs"/>
</condition>
</fail>
<if>
<available file="${osbp.build.local.federated.p2.dir}compositeContent.xml" type="file"/>
<then>
<echo message="DELETED OLD CONTENT FILE"/>
<delete file="${osbp.build.local.federated.p2.dir}compositeContent.xml"/>
</then>
</if>
<if>
<available file="${osbp.build.local.federated.p2.dir}compositeArtifacts.xml" type="file"/>
<then>
<echo message="DELETED OLD ARTIFACTS FILE"/>
<delete file="${osbp.build.local.federated.p2.dir}compositeArtifacts.xml"/>
</then>
</if>
<!-- generate.composite.p2.add.compositeContentFile -->
<xmltask source="${compositeContentFile}" destbuffer="bufferCompositeContent" report="true"/>
<var name="counterContent" value="0"/>
<for param="child" list="${toString:dirs}" delimiter=";">
<sequential>
<math result="counterContent" operand1="${counterContent}" operand2="1" operation="+" datatype="int"/>
<echo message="Adding Content Child @{child} - ${counterContent}"/>
<xmltask sourcebuffer="bufferCompositeContent" destbuffer="bufferCompositeContent">
<insert path="/repository/children">
&lt;child location='@{child}' /&gt;
</insert>
</xmltask>
</sequential>
</for>
<xmltask sourcebuffer="bufferCompositeContent" destbuffer="bufferCompositeContent">
<replace path="/repository/children/@size" withText="${counterContent}"/>
</xmltask>
<!-- generate.composite.p2.add.compositeArtifactsFile -->
<xmltask source="${compositeArtifactsFile}" destbuffer="bufferCompositeArtifacts" report="true"/>
<var name="counterArtifacts" value="0"/>
<for param="child" list="${toString:dirs}" delimiter=";">
<sequential>
<math result="counterArtifacts" operand1="${counterArtifacts}" operand2="1" operation="+" datatype="int"/>
<echo message="Adding Artifact Child @{child} - ${counterArtifacts}"/>
<xmltask sourcebuffer="bufferCompositeArtifacts" destbuffer="bufferCompositeArtifacts">
<insert path="/repository/children">
&lt;child location='@{child}' /&gt;
</insert>
</xmltask>
</sequential>
</for>
<xmltask sourcebuffer="bufferCompositeArtifacts" destbuffer="bufferCompositeArtifacts">
<replace path="/repository/children/@size" withText="${counterArtifacts}"/>
</xmltask>
<!-- generate.composite.p2.add.p2.index.file -->
<if>
<not>
<available file="${osbp.build.local.federated.p2.dir}p2.index" type="file"/>
</not>
<then>
<copy file="${p2indexFile}" todir="${osbp.build.local.federated.p2.dir}"/>
</then>
</if>
<!-- generate.composite.p2 -->
<echo message="CREATE COMPOSITE ARTIFACTS"/>
<xmltask sourcebuffer="bufferCompositeArtifacts" dest="${osbp.build.local.federated.p2.dir}compositeArtifacts.xml"/>
<echo message="CREATE COMPOSITE CONTENT"/>
<xmltask sourcebuffer="bufferCompositeContent" dest="${osbp.build.local.federated.p2.dir}compositeContent.xml"/>
<!-- end generation -->
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>${groovy-all.version}</version>
</dependency>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>${ant-version}</version>
</dependency>
<dependency>
<groupId>ant-contrib</groupId>
<artifactId>ant-contrib</artifactId>
<version>1.0b3</version>
<exclusions>
<exclusion>
<groupId>ant</groupId>
<artifactId>ant</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>net.sf.saxon</groupId>
<artifactId>Saxon-HE</artifactId>
<version>9.4</version>
</dependency>
<dependency>
<groupId>com.oopsconsultancy</groupId>
<artifactId>xmltask</artifactId>
<version>1.16</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>whenIsProductProject</id>
<activation>
<file>
<exists>.osbp.releng.eclipse.rcp</exists>
</file>
</activation>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-p2-director-plugin</artifactId>
<version>${tycho-version}</version>
<executions>
<execution>
<!-- install the product for all configured os/ws/arch environments
using p2 director -->
<id>materialize-products</id>
<goals>
<goal>materialize-products</goal>
</goals>
</execution>
<execution>
<!-- (optional) create product zips (one per os/ws/arch) -->
<id>archive-products</id>
<goals>
<goal>archive-products</goal>
</goals>
<phase>pre-integration-test</phase>
</execution>
</executions>
<configuration>
<formats>
<win32>zip</win32>
<linux>tar.gz</linux>
<macosx>tar.gz</macosx>
</formats>
<products>
<product>
<id>${project.artifactId}</id>
<!-- <archiveFileName>Equinox-OSBPa-Standard-Node-${unqualifiedVersion}.${buildQualifier}</archiveFileName> -->
<!-- (optional) customize the root folder name of the product zip -->
<!-- <rootFolder>myServer</rootFolder> -->
</product>
</products>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
<profile>
<id>prepare-for-next-release</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<build>
<defaultGoal>org.eclipse.tycho:tycho-versions-plugin:set-version</defaultGoal>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-versions-plugin</artifactId>
<version>${tycho-version}</version>
<executions>
<execution>
<id>change-next-release</id>
<goals>
<goal>set-version</goal>
</goals>
</execution>
</executions>
<configuration>
<newVersion>${next-release}</newVersion>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<!-- this profile must be activated when there isn't osbp.build.branch
defined. -->
<id>latest</id>
<activation>
<property>
<name>!osbp.build.branch</name>
</property>
</activation>
<properties>
<osbp.build.branch>latest</osbp.build.branch>
<osbp.stage.artifact.version>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.${osgi-version-qualifier}</osbp.stage.artifact.version>
<osbp.stage.p2.keep.old>false</osbp.stage.p2.keep.old>
</properties>
<build>
<plugins>
<!-- used to debug... -->
<!-- <plugin> -->
<!-- <artifactId>maven-antrun-plugin</artifactId> -->
<!-- <executions> -->
<!-- <execution> -->
<!-- <phase>initialize</phase> -->
<!-- <configuration> -->
<!-- <quiet>true</quiet> -->
<!-- <target> -->
<!-- <echo message="Started a Latest Build..." /> -->
<!-- </target> -->
<!-- </configuration> -->
<!-- <goals> -->
<!-- <goal>run</goal> -->
<!-- </goals> -->
<!-- </execution> -->
<!-- </executions> -->
<!-- </plugin> -->
</plugins>
</build>
</profile>
<profile>
<id>milestone</id>
<activation>
<property>
<name>osbp.build.branch</name>
<value>milestone</value>
</property>
</activation>
<properties>
<osbp.stage.artifact.version>M${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.${osgi-version-qualifier}</osbp.stage.artifact.version>
<osbp.stage.p2.keep.old>false</osbp.stage.p2.keep.old>
</properties>
<build>
<plugins>
<!-- used to debug... -->
<!-- <plugin> -->
<!-- <artifactId>maven-antrun-plugin</artifactId> -->
<!-- <executions> -->
<!-- <execution> -->
<!-- <phase>initialize</phase> -->
<!-- <configuration> -->
<!-- <quiet>true</quiet> -->
<!-- <target> -->
<!-- <echo message="Started a Milestone Build..." /> -->
<!-- </target> -->
<!-- </configuration> -->
<!-- <goals> -->
<!-- <goal>run</goal> -->
<!-- </goals> -->
<!-- </execution> -->
<!-- </executions> -->
<!-- </plugin> -->
</plugins>
</build>
</profile>
<profile>
<id>release</id>
<activation>
<property>
<name>osbp.build.branch</name>
<value>release</value>
</property>
</activation>
<properties>
<osbp.stage.artifact.version>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}</osbp.stage.artifact.version>
<osbp.stage.p2.keep.old>true</osbp.stage.p2.keep.old>
</properties>
<build>
<plugins>
<!-- <plugin> -->
<!-- <artifactId>maven-antrun-plugin</artifactId> -->
<!-- <executions> -->
<!-- <execution> -->
<!-- <phase>validate</phase> -->
<!-- <configuration> -->
<!-- <quiet>true</quiet> -->
<!-- <target> -->
<!-- <echo message="Started a Release Build..." /> -->
<!-- <fail message="Release should not use SNAPSHOT version !"> -->
<!-- <condition> -->
<!-- <contains string="${project.version}" substring="SNAPSHOT" /> -->
<!-- </condition> -->
<!-- </fail> -->
<!-- </target> -->
<!-- </configuration> -->
<!-- <goals> -->
<!-- <goal>run</goal> -->
<!-- </goals> -->
<!-- </execution> -->
<!-- </executions> -->
<!-- </plugin> -->
</plugins>
</build>
</profile>
<profile>
<!-- switch off jarsigner if not properly configured in settings.xml -->
<id>donotsign</id>
<activation>
<property>
<name>!maven-jarsigner-plugin.keystore</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jarsigner-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>sign</id>
<activation>
<file>
<missing>.osbp.releng.root</missing>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jarsigner-plugin</artifactId>
<configuration>
<verify>true</verify>
<storetype>jks</storetype>
<tsa>${maven-jarsigner-plugin.tsa}</tsa>
<keystore>${maven-jarsigner-plugin.keystore}</keystore>
<alias>${maven-jarsigner-plugin.alias}</alias>
<storepass>${maven-jarsigner-plugin.storepass}</storepass>
<removeExistingSignatures>true</removeExistingSignatures>
<verbose>true</verbose>
</configuration>
<executions>
<execution>
<id>sign</id>
<goals>
<goal>sign</goal>
</goals>
</execution>
<execution>
<id>verify</id>
<goals>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-compiler-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-source-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<configuration>
<filesets>
<fileset>
<directory>xtend-gen</directory>
<includes>
<include>**</include>
</includes>
</fileset>
</filesets>
</configuration>
</plugin>
<plugin>
<groupId>org.eclipse.xtend</groupId>
<artifactId>xtend-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
<configuration>
<outputDirectory>xtend-gen</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<!-- enable tycho build -->
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-maven-plugin</artifactId>
<version>${tycho-version}</version>
<extensions>true</extensions>
<configuration>
<localArtifacts>ignore</localArtifacts>
</configuration>
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-compiler-plugin</artifactId>
<version>${tycho-version}</version>
<configuration>
<compilerVersion>1.8</compilerVersion>
<encoding>UTF-8</encoding>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<version>${tycho-version}</version>
<configuration>
<resolver>p2</resolver>
<pomDependencies>consider</pomDependencies>
</configuration>
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-source-plugin</artifactId>
<version>${tycho-version}</version>
<executions>
<execution>
<id>plugin-source</id>
<goals>
<goal>plugin-source</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-surefire-plugin</artifactId>
<version>${tycho-version}</version>
<configuration>
<includes>
<include>**/*Tests.java</include>
</includes>
<showEclipseLog>true</showEclipseLog>
<useUIHarness>false</useUIHarness>
<useUIThread>false</useUIThread>
<failIfNoTests>false</failIfNoTests>
<!-- <appArgLine>-Dfile.encoding=UTF-8</appArgLine> -->
<argLine>${jacoco.agent.it.arg}</argLine>
<!-- Kill test JVM if tests take more than 10 minutes (600 seconds)
to finish -->
<forkedProcessTimeoutInSeconds>600</forkedProcessTimeoutInSeconds>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>add-source</id>
<phase>initialize</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>src-gen</source>
<source>xtend-gen</source>
<source>emf-gen</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.eclipse.xtend</groupId>
<artifactId>xtend-maven-plugin</artifactId>
<version>${xtext.version}</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>xtend-install-debug-info</goal>
<goal>testCompile</goal>
<goal>xtend-test-install-debug-info</goal>
</goals>
</execution>
</executions>
<configuration>
<outputDirectory>xtend-gen</outputDirectory>
</configuration>
</plugin>
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
<version>2.2.0</version>
<executions>
<execution>
<goals>
<goal>revision</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
<dependencies>
<dependency>
<groupId>org.eclipse.osbp.releng.maven</groupId>
<artifactId>org.eclipse.osbp.releng.maven.licenses</artifactId>
<version>0.9.0-SNAPSHOT</version>
<!-- <classifier>third-party</classifier> -->
<!-- <type>properties</type> -->
<!-- <scope>provided</scope> -->
</dependency>
</dependencies>
</project>