<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2012, 2021 Eclipse Foundation and others.
  All rights reserved. This program and the accompanying materials
  are made available under the terms of the Eclipse Distribution License v1.0
  which accompanies this distribution, and is available at
  https://www.eclipse.org/org/documents/edl-v10.php

  Contributors:
  Igor Fedorenko - initial implementation
  Thanh Ha - improvements and maintenance
  David Williams - improvements and maintenance
  Lars Vogel - Bug 442042
-->
<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>
  <groupId>org.eclipse</groupId>
  <artifactId>eclipse-platform-parent</artifactId>
  <version>4.23.0-SNAPSHOT</version>
  <packaging>pom</packaging>
  <!--
    See maven-enforcer-plugin configuration to actually break the build if
    run with older maven.
    prerequisites section is kept for now as even if it doesn't break the build, it
    is used by other plugins like versions-maven-plugin which check and warn
    for using plugins with older than they require Maven version.
    If version number changed in one place, be sure to change in the other.
  -->
  <prerequisites>
    <maven>3.6.3</maven>
  </prerequisites>
  <properties>
    <!-- As of Tycho 0.22, skipTests takes priority, if maven.test.skip also specified,
      with different value. See https://bugs.eclipse.org/442976.
      During production builds, we run with -DskipTests=true -->
    <skipTests>false</skipTests>
    <maven.build.timestamp.format>yyyyMMdd-HHmm</maven.build.timestamp.format>
    <macSigner.forceContinue>false</macSigner.forceContinue>
    <buildTimestamp>${maven.build.timestamp}</buildTimestamp>
    <buildType>I</buildType>
    <buildId>${buildType}${buildTimestamp}</buildId>
     <!--
      releaseName should match the yearly "release train" name.
      For example, "Mars", "Mars.1", "Luna SR2", etc.
      It will show up in "about box",
      such as Version: Mars (4.5), for main features.
      See bug 328139.
    -->
    <releaseName>2022-03</releaseName>
    <!--
      The releaseNumbers below, for SDK and Platform, might be
      thought of as the "marketing number" or "branding number",
      and in fact are used in the branding bundle of the corresponding products.
      In practice, the SDK number and Platform number are always the same,
      though in theory they would not always have to be ... so we'll use
      separate numbers. Also in practice, they are almost always the same as
      or nearly the same as the "product feature" numbers, but for example, for
      the initial release, some prefer we not use the trailing zero, but instead
      merely "4.5, instead of 4.5.0". And, hypothetically, there might be a time
      in the future when the platform for a new release was "merely service",
      but we'd still want the "marketing number" to be increased to reflect
      "a new yearly release".
    -->
    <releaseNumberSDK>4.23</releaseNumberSDK>
    <releaseNumberPlatform>4.23</releaseNumberPlatform>

    <tycho.version>2.7.0-SNAPSHOT</tycho.version>

    <cbi-plugins.version>1.3.2</cbi-plugins.version>
    <surefire.version>3.0.0-M5</surefire.version>

    <!--  
      The tycho-eclipserun-plugin will create its instance of Eclipse from this
      'eclipiserun-repo' repository, such as for computing .api-descriptions and
      generating API Tools reports.
    -->
    <eclipserun-repo>https://download.eclipse.org/eclipse/updates/4.23-I-builds/</eclipserun-repo>
    
    <comparator.repo>https://download.eclipse.org/eclipse/updates/4.23-I-builds</comparator.repo>

    <!-- only used when Tycho snapshot repo is enabled in <pluginRepositories> further down -->
    <tycho-snapshot-repo.url>https://repo.eclipse.org/content/repositories/tycho-snapshots/</tycho-snapshot-repo.url>

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <cbi-jdt-repo.url>https://repo.eclipse.org/content/repositories/eclipse-staging/</cbi-jdt-repo.url>
    <cbi-ecj-version>3.29.0.v20211225-2158</cbi-ecj-version>

    <!--
      Production bundles are produced by ignoring the compiler warnings specified
      by ${code.ignoredWarnings} (see further down).
      Good citizens don't override those default settings for their production bundles.
    -->
    <code.ignoredWarnings>-warn:-deprecation,unavoidableGenericProblems,warningToken</code.ignoredWarnings>

    <!--
      Test bundles may override the list of ignored warnings by setting this at the top of their pom.xml:
      <properties>
      <code.ignoredWarnings>${tests.ignoredWarnings}</code.ignoredWarnings>
      </properties>
      Good citizens use those default settings for their test bundles.
    -->
    <tests.ignoredWarnings>-warn:-deprecation,raw,unchecked,discouraged,warningToken</tests.ignoredWarnings>

    <!--
      repo for released versions of CBI. Note, we intentionally use as specific a repo as possible.
      See bug 471835.
    -->
    <eclipse-repo.url>https://repo.eclipse.org/content/repositories/cbi/</eclipse-repo.url>
    <cbi-snapshots-repo.url>https://repo.eclipse.org/content/repositories/cbi-snapshots/</cbi-snapshots-repo.url>

    <cbi-releases-repo.url>https://repo.eclipse.org/content/repositories/cbi-releases/</cbi-releases-repo.url>


    <!--
      This eclipse-p2-repo.url is specifically for the build-individual-bundles profile.
      See that profile for longer comment.
    -->
    <eclipse-p2-repo.url>This_URL_set_in_build-individual-bundles_profile</eclipse-p2-repo.url>

    <!--
      If configuration is not specified at all, in signing plugin, the default
      is 'false' (do not exclude inner jars, that is inner jars are signed).
    -->
    <defaultSigning-excludeInnerJars>false</defaultSigning-excludeInnerJars>

    <!--
      Valid options: error, warning, and ignore
      jgit.dirtyWorkingTree checking was added as of Tycho 0.19.0
      see: https://bugs.eclipse.org/419030
    -->
    <jgit.dirtyWorkingTree-platformDefault>ignore</jgit.dirtyWorkingTree-platformDefault>

    <qualifier.format>'v'yyyyMMdd-HHmm</qualifier.format>

    <compare-version-with-baselines.skip>true</compare-version-with-baselines.skip>
    <previous-release.baseline>https://download.eclipse.org/eclipse/updates/4.22/R-4.22-202111241800/</previous-release.baseline>

    <!--
      Declaration of properties that contribute to the arg line for the tycho-surefire-plugin.
      The properties are declared empty by default and are overridden by automatic activation
      of the profiles 'macos' and 'jdk9-or-newer' or specific configuration in modules.
    -->
    <!-- any additional surefire args; to be defined by a test-plugin -->
    <surefire.testArgLine></surefire.testArgLine>
    <!-- platform/OS specific JVM args -->
    <surefire.platformSystemProperties></surefire.platformSystemProperties>
    <!-- properties related to Java modules on Java 9+ -->
    <surefire.moduleProperties></surefire.moduleProperties>
    <!-- system specific JVM args; if needed provided by system properties to the build command -->
    <surefire.systemProperties></surefire.systemProperties>
    <java.version>11</java.version>
  </properties>

  <organization>
    <name>Eclipse Foundation</name>
    <url>https://www.eclipse.org/</url>
  </organization>

  <issueManagement>
    <system>Bugzilla</system>
    <url>https://bugs.eclipse.org/bugs/</url>
  </issueManagement>

  <distributionManagement>
    <repository>
      <id>repo.eclipse.org</id>
      <name>Eclipse Repository - Releases</name>
      <url>https://repo.eclipse.org/content/repositories/eclipse-releases/</url>
    </repository>
    <snapshotRepository>
      <id>repo.eclipse.org</id>
      <name>Eclipse Repository - Snapshots</name>
      <url>https://repo.eclipse.org/content/repositories/eclipse-snapshots/</url>
    </snapshotRepository>
  </distributionManagement>
  <pluginRepositories>

    <!-- Released Tycho versions are available on maven central, which is now mirrored to Eclipse.org.
         The tycho-snapshot-repo is only needed when using snapshots. -->
    <pluginRepository>
      <id>tycho-snapshots</id>
      <url>${tycho-snapshot-repo.url}</url>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </pluginRepository>

    <pluginRepository>
      <id>cbi-jdt</id>
      <url>${cbi-jdt-repo.url}</url>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </pluginRepository>
    <pluginRepository>
      <id>cbi-snapshots</id>
      <url>${cbi-snapshots-repo.url}</url>
      <snapshots>
      <enabled>true</enabled>
      </snapshots>
    </pluginRepository>
    <pluginRepository>
      <id>cbi-releases</id>
      <url>${cbi-releases-repo.url}</url>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </pluginRepository>
    <pluginRepository>
      <id>eclipse</id>
      <url>${eclipse-repo.url}</url>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </pluginRepository>
  </pluginRepositories>
  <build>
    <plugins>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-maven-plugin</artifactId>
        <version>${tycho.version}</version>
        <extensions>true</extensions>
      </plugin>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>target-platform-configuration</artifactId>
        <configuration>
          <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=453757
            <resolveWithExecutionEnvironmentConstraints>false</resolveWithExecutionEnvironmentConstraints>
          -->
          <target>
            <artifact>
              <groupId>org.eclipse</groupId>
              <artifactId>eclipse-sdk-prereqs</artifactId>
              <version>4.23.0-SNAPSHOT</version>
            </artifact>
          </target>
          <environments>
            <environment>
              <os>linux</os>
              <ws>gtk</ws>
              <arch>x86_64</arch>
            </environment>
            <environment>
              <os>linux</os>
              <ws>gtk</ws>
              <arch>ppc64le</arch>
            </environment>
             <environment>
              <os>linux</os>
              <ws>gtk</ws>
              <arch>aarch64</arch>
            </environment>
            <environment>
              <os>win32</os>
              <ws>win32</ws>
              <arch>x86_64</arch>
            </environment>
            <environment>
              <os>macosx</os>
              <ws>cocoa</ws>
              <arch>x86_64</arch>
            </environment>
            <environment>
              <os>macosx</os>
              <ws>cocoa</ws>
              <arch>aarch64</arch>
            </environment>
          </environments>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-source-plugin</artifactId>
        <configuration>
          <archive>
            <addMavenDescriptor>false</addMavenDescriptor>
          </archive>
        </configuration>
        <executions>
          <execution>
            <id>plugin-source</id>
            <goals>
              <goal>plugin-source</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <executions>
          <execution>
            <id>filter-resources</id>
            <goals>
              <goal>resources</goal>
            </goals>
            <phase>process-resources</phase>
            <configuration>
              <outputDirectory>${project.build.directory}/resources</outputDirectory>
              <escapeString>\</escapeString>
            </configuration>
          </execution>
          <execution>
            <id>saveproperties</id>
            <configuration>
              <outputDirectory>${project.build.directory}</outputDirectory>
              <overwrite>true</overwrite>
              <resources>
                <resource>
                  <directory>saveproperties</directory>
                  <filtering>true</filtering>
                </resource>
              </resources>
            </configuration>
            <phase>validate</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <!--
          This maven-enforcer-plugin configuration to actually break the build if
          run with older maven.
          prerequisites section is kept for now as even if it doesn't break the build, it
          is used by other plugins like versions-maven-plugin which check and warn
          for using plugins with older than they require Maven version.
          If version number changed in one place, be sure to change in the other.
        -->
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>3.0.0</version>
        <executions>
          <execution>
            <id>enforce-maven</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requireMavenVersion>
                  <version>3.5.4</version>
                </requireMavenVersion>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
       <groupId>org.eclipse.tycho.extras</groupId>
       <artifactId>tycho-p2-extras-plugin</artifactId>
       <version>${tycho.version}</version>
       <executions>
         <execution> <!-- Checks versions are properly bumped from one stream to the other -->
           <id>compare-attached-artifacts-with-release</id>
           <goals>
             <goal>compare-version-with-baselines</goal>
           </goals>
           <configuration>
             <skip>${compare-version-with-baselines.skip}</skip>
             <baselines>
               <baseline>${previous-release.baseline}</baseline>
             </baselines>
             <comparator>zip</comparator>
           </configuration>
         </execution>
       </executions>
     </plugin>
    </plugins>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.eclipse.tycho.extras</groupId>
          <artifactId>tycho-eclipserun-plugin</artifactId>
          <!-- this is actually present in any 0.14+ version -->
          <version>${tycho.version}</version>
          <configuration>
            <executionEnvironment>JavaSE-11</executionEnvironment>
            <repositories>
              <repository>
                <id>eclipse</id>
                <layout>p2</layout>
                <url>${eclipserun-repo}</url>
              </repository>
            </repositories>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>3.0.0</version>
        </plugin>
		<plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>3.2.0</version>
        </plugin>
         <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${surefire.version}</version>
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>target-platform-configuration</artifactId>
          <version>${tycho.version}</version>
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-compiler-plugin</artifactId>
          <version>${tycho.version}</version>
          <dependencies>
            <dependency>
              <groupId>org.eclipse.jdt</groupId>
              <artifactId>ecj</artifactId>
              <version>${cbi-ecj-version}</version>
            </dependency>
          </dependencies>
          <configuration>
            <compilerArgs>
              <args>${code.ignoredWarnings}</args>
              <args>-verbose</args>
              <args>-inlineJSR</args>
              <args>-enableJavadoc</args>
              <args>-encoding</args>
              <args>${project.build.sourceEncoding}</args>
              <args>-proceedOnError</args>
              <!-- Use this form, for Tycho 22 or less.
                <args>-log</args>
                <args>${project.build.directory}/@dot.xml</args>
              -->
            </compilerArgs>
            <!-- Use this form for Tycho 23 or greater -->
            <log>xml</log>
            <logDirectory>${project.build.directory}/compilelogs</logDirectory>
            <showWarnings>true</showWarnings>
            <excludeResources>
              <exclude>**/package.html</exclude>
            </excludeResources>
            <useProjectSettings>false</useProjectSettings>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-packaging-plugin</artifactId>
          <version>${tycho.version}</version>
          <dependencies>
            <dependency>
              <groupId>org.eclipse.tycho.extras</groupId>
              <artifactId>tycho-buildtimestamp-jgit</artifactId>
              <version>${tycho.version}</version>
            </dependency>
            <dependency>
              <groupId>org.eclipse.tycho.extras</groupId>
              <artifactId>tycho-sourceref-jgit</artifactId>
              <version>${tycho.version}</version>
            </dependency>
          </dependencies>
          <configuration>
            <format>${qualifier.format}</format>
            <timestampProvider>jgit</timestampProvider>
            <jgit.ignore>
              pom.xml
              .polyglot.build.properties
            </jgit.ignore>
            <jgit.dirtyWorkingTree>${jgit.dirtyWorkingTree-platformDefault}</jgit.dirtyWorkingTree>
            <sourceReferences>
              <generate>true</generate>
            </sourceReferences>
            <archive>
              <addMavenDescriptor>false</addMavenDescriptor>
            </archive>
            <additionalFileSets combine.children="append">
              <fileSet>
                <directory>${project.build.directory}</directory>
                <includes>
                  <include>.api_description</include>
                </includes>
              </fileSet>
            </additionalFileSets>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-surefire-plugin</artifactId>
          <version>${tycho.version}</version>
          <configuration>
            <enableAssertions>true</enableAssertions>
            <argLine>${surefire.testArgLine} ${surefire.platformSystemProperties} ${surefire.systemProperties} ${surefire.moduleProperties}</argLine>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-source-plugin</artifactId>
          <version>${tycho.version}</version>
          <configuration>
            <distinctSourceRoots>true</distinctSourceRoots>
            <archive>
              <addMavenDescriptor>false</addMavenDescriptor>
            </archive>
            <reuseBrandingPlugin>false</reuseBrandingPlugin>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-p2-director-plugin</artifactId>
          <version>${tycho.version}</version>
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-p2-repository-plugin</artifactId>
          <version>${tycho.version}</version>
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-p2-plugin</artifactId>
          <version>${tycho.version}</version>
          <configuration>
            <baselineMode>warn</baselineMode>
            <baselineReplace>all</baselineReplace>
            <baselineRepositories>
              <repository>
                <url>${comparator.repo}</url>
              </repository>
            </baselineRepositories>
            <ignoredPatterns>
              <pattern>META-INF/ECLIPSE_.RSA</pattern>
              <pattern>META-INF/ECLIPSE_.SF</pattern>
            </ignoredPatterns>
            <generateDownloadStatsProperty>true</generateDownloadStatsProperty>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>3.3.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.2.0</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>xml-maven-plugin</artifactId>
          <version>1.0.2</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
  <profiles>
   <profile>
      <id>java17patch</id>
      <properties>
        <qualifier.format>'v'yyyyMMdd-HHmm'_BETA_JAVA17'</qualifier.format>
 
        <featureToPatch>org.eclipse.jdt</featureToPatch>
        <featureToPatchPDE>org.eclipse.pde</featureToPatchPDE>

        <!--
          For future versions, in addition to changing this value of "featureToPatchVersion",
          the same value needs to be edited in
          .../java17patch/org.eclipse.jdt.java17patch/feature.xml
          and
          .../java17patch/org.eclipse.jdt-feature-dummy/feature.xml
          and it of course, must "match" what ever version was produced by the build specified
          a few lines below, as the eclipse-p2-repo-java17patch p2 repository, as well as the lower
          bound, in 'versionRangeForPatch'.
 
          Also, when new patch created, should update the wiki at
          https://wiki.eclipse.org/Java17
        -->
        <!-- This needs the version of the feature to be patched. -->
        <featureToPatchVersion>3.18.900.v20210830-0600</featureToPatchVersion>
        <featureToPatchVersionPDE>3.14.900.v20210830-0600</featureToPatchVersionPDE>
        <!-- Can specify an exact range here, or something of a loose range, depending on what's needed. -->
        <versionRangeForPatch>[3.18.900.v20210830-0600,3.18.949.v20211028-1800)</versionRangeForPatch>
        <versionRangeForPatchPDE>[3.14.900.v20210830-0600,3.14.949.v20211028-1800)</versionRangeForPatchPDE>
        <!-- Comment this line when a patch is required on top of I-build -->
        <comparator.repo>https://download.eclipse.org/eclipse/updates/4.21/R-4.21-202109060500/</comparator.repo>
      </properties>
      <repositories>
       <repository>
         <id>eclipse-p2-repo-java17patch</id>
         <url>https://download.eclipse.org/eclipse/updates/4.21/R-4.21-202109060500/</url>
         <layout>p2</layout>
       </repository>
     </repositories>
   </profile>
   <profile>
      <id>build-individual-bundles</id>
      <activation>
        <property>
          <!-- Enable if aggregatorBuild property is not set -->
          <name>!aggregatorBuild</name>
        </property>
      </activation>
      <properties>
        <!--
          This eclipse-p2-repo.url is specifically for the build individual bundles profile and Gerrit jobs.
          Default is set to I-builds for main development cycle.
          For maintenance streams should always be "M-builds".
          Ideally, this value would be provided by the environment, see bug 489789.
        -->
        <eclipse-p2-repo.url>https://download.eclipse.org/eclipse/updates/4.23-I-builds</eclipse-p2-repo.url>
      </properties>
      <repositories>
        <repository>
          <id>eclipse</id>
          <url>${eclipse-p2-repo.url}</url>
          <layout>p2</layout>
        </repository>
      </repositories>
    </profile>
    <profile>
      <id>eclipse-sign</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>target-platform-configuration</artifactId>
            <version>${tycho.version}</version>
            <configuration>
              <includePackedArtifacts>false</includePackedArtifacts>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.eclipse.cbi.maven.plugins</groupId>
            <artifactId>eclipse-jarsigner-plugin</artifactId>
            <version>${cbi-plugins.version}</version>
            <executions>
              <execution>
                <id>sign</id>
                <goals>
                  <goal>sign</goal>
                </goals>
                <phase>verify</phase>
              </execution>
            </executions>
            <configuration>
              <excludeInnerJars>${defaultSigning-excludeInnerJars}</excludeInnerJars>
              <!--
               The default timeout is 0 seconds which means "wait forever": https://www.eclipse.org/cbi/sitedocs/eclipse-jarsigner-plugin/sign-mojo.html#timeoutMillis
               We don't want to wait until the build finally aborts, so, setting a timeout (see bug 507369).
               Increasing timeout from 60000 to 120000 (see bug 544823).
              -->
              <timeoutMillis>120000</timeoutMillis>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>tycho-p2-plugin</artifactId>
            <version>${tycho.version}</version>
            <executions>
              <execution>
                <id>p2-metadata</id>
                <goals>
                  <goal>p2-metadata</goal>
                </goals>
                <phase>verify</phase>
              </execution>
            </executions>
            <configuration>
              <defaultP2Metadata>false</defaultP2Metadata>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>bree-libs</id>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>org.eclipse.tycho</groupId>
              <artifactId>tycho-compiler-plugin</artifactId>
              <version>${tycho.version}</version>
              <configuration>
                <!--
                  this tells Tycho to use JRE libraries that match bundle runtime execution environment
                  https://wiki.eclipse.org/Tycho/Release_Notes/0.14
                  TODO provide CBI-specific wiki that explains how to setup BREE libraries and toolchain.xml
                -->
                <useJDK>BREE</useJDK>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>
    <profile>
      <id>partial-build</id>
      <activation>
        <property>
          <name>eclipse-sdk-repo.url</name>
        </property>
      </activation>
      <repositories>
        <repository>
          <id>eclipse-sdk-repo</id>
          <url>${eclipse-sdk-repo.url}</url>
          <layout>p2</layout>
        </repository>
      </repositories>
    </profile>
    <profile>
      <id>api-generation</id>
      <activation>
        <!-- Does it have to be a profile if we can evaluate condition reliably in antrun? -->
        <file><exists>META-INF/MANIFEST.MF</exists></file>
        <property>
          <name>!longnotexistingproperty</name>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
              <execution>
                <id>check-has-apiTools-nature</id>
                <phase>validate</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <exportAntProperties>true</exportAntProperties>
                  <target>
                    <loadfile srcfile=".project" property="natureIn.project" failonerror="false">
                      <filterchain>
                        <linecontains>
                          <contains value="org.eclipse.pde.api.tools.apiAnalysisNature"/>
                        </linecontains>
                      </filterchain>
                    </loadfile>
                    <condition property="skipAPIDescription" value="false" else="true">
                        <isset property="natureIn.project" />
                    </condition>
                  </target>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.eclipse.tycho.extras</groupId>
            <artifactId>tycho-eclipserun-plugin</artifactId>
            <executions>
              <execution>
                <goals>
                  <goal>eclipse-run</goal>
                </goals>
                <phase>process-classes</phase>
                <id>build-.api_description</id>
                <configuration>
                  <skip>${skipAPIDescription}</skip>
                  <work>${project.build.directory}/apigeneration-workspace</work>
                  <appArgLine>-application org.eclipse.pde.api.tools.apiGeneration
                  -projectName ${project.artifactId}_${qualifiedVersion}
                  -project ${project.basedir}
                  -binary ${tychoProject.build.outputDirectories}
                  -target ${project.build.directory}
                  </appArgLine>
                  <dependencies>
                    <!-- list of bundles that we need -->
                    <dependency>
                      <artifactId>org.eclipse.pde.api.tools</artifactId>
                      <type>eclipse-plugin</type>
                    </dependency>
                    <dependency>
                      <artifactId>org.eclipse.pde.build</artifactId>
                      <type>eclipse-plugin</type>
                    </dependency>
                    <dependency>
                      <artifactId>org.eclipse.pde.core</artifactId>
                      <type>eclipse-plugin</type>
                    </dependency>
                    <dependency>
                      <artifactId>org.eclipse.equinox.launcher</artifactId>
                      <type>eclipse-plugin</type>
                    </dependency>
                    <dependency>
                      <artifactId>org.eclipse.osgi.compatibility.state</artifactId>
                      <type>eclipse-plugin</type>
                    </dependency>
                    <dependency>
                      <artifactId>javax.annotation</artifactId>
                      <type>eclipse-plugin</type>
                    </dependency>
                  </dependencies>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
       <id>api-check</id>
       <activation>
         <activeByDefault>false</activeByDefault>
       </activation>
       <build>
         <plugins>
          <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
              <execution>
                <id>check-skip-api-analysis</id>
                <phase>verify</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <skip>${skipAPIAnalysis}</skip>
                  <exportAntProperties>true</exportAntProperties>
                  <target>
                    <condition property="skipAPIAnalysis" value="true">
                      <not>
                        <available file="${basedir}/META-INF/MANIFEST.MF"/>
                      </not>
                    </condition>
                    <echo file="${project.build.directory}/${project.artifactId}-apiBaseline.target">
                      <![CDATA[
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde version="3.8"?>
<target name="${project.artifactId}-apiBaseline" sequenceNumber="1">
	<locations>
		<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="false" type="InstallableUnit">
			<repository location="${previous-release.baseline}"/>
			<unit id="${project.artifactId}" version="0.0.0"/>
		</location>
	</locations>
</target>
                      ]]>
                    </echo>
                  </target>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.eclipse.tycho.extras</groupId>
            <artifactId>tycho-dependency-tools-plugin</artifactId>
            <version>${tycho.version}</version>
            <executions>
              <execution>
                <id>list-dependencies</id>
                <goals>
                  <goal>list-dependencies</goal>
                </goals>
                <phase>verify</phase>
                <configuration>
                  <skip>${skipAPIAnalysis}</skip>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.eclipse.tycho.extras</groupId>
            <artifactId>tycho-eclipserun-plugin</artifactId>
            <executions>
              <execution>
                <id>api-analysis</id>
                <goals>
                  <goal>eclipse-run</goal>
                </goals>
                <phase>verify</phase>
                <configuration>
                  <skip>${skipAPIAnalysis}</skip>
                  <!-- keep workspace across execution to reuse downloaded artifacts -->
                  <clearWorkspaceBeforeLaunch>false</clearWorkspaceBeforeLaunch>
                  <!-- need to set workspace to a dir that's not a child of the project and that the same for all executions -->
                  <work>${user.dir}/apiAnalyzer-workspace</work>
                  <applicationsArgs>
                    <args>-application</args>
                    <args>org.eclipse.pde.api.tools.apiAnalyzer</args>
                    <args>-project</args>
                    <args>${project.basedir}</args>
                    <args>-baseline</args>
                    <args>${project.build.directory}/${project.artifactId}-apiBaseline.target</args>
                    <args>-dependencyList</args>
                    <args>${project.build.directory}/dependencies-list.txt</args>
                    <args>-failOnError</args>
                  </applicationsArgs>
                  <jvmArgs>
                  	<jvmArg>-Xmx2048M</jvmArg>
                  	<jvmArg>-Dp2.RepositoryPreferences.retryOnSocketTimeout=true</jvmArg>
                  	<jvmArg>-Dp2.RepositoryPreferences.connectionRetryCount=3</jvmArg>
                  	<jvmArg>-Dp2.RepositoryPreferences.connectionMsRetryDelay=500</jvmArg>
                  	<jvmArg>-Dorg.eclipse.ecf.provider.filetransfer.retrieve.readTimeout=10000</jvmArg>
                  </jvmArgs>
                  <dependencies>
                    <dependency>
                      <artifactId>org.eclipse.pde.api.tools</artifactId>
                      <type>p2-installable-unit</type>
                    </dependency>
                    <dependency>
                      <artifactId>javax.annotation</artifactId>
                      <type>p2-installable-unit</type>
                    </dependency>
                    <dependency>
                      <artifactId>org.eclipse.equinox.p2.transport.ecf</artifactId>
                      <type>p2-installable-unit</type>
                    </dependency>
                    <dependency>
                      <artifactId>org.eclipse.ecf.provider.filetransfer.ssl</artifactId>
                      <type>p2-installable-unit</type>
                    </dependency>
                    <dependency>
                      <artifactId>org.eclipse.equinox.p2.touchpoint.natives</artifactId>
                      <type>p2-installable-unit</type>
                    </dependency>
                    <dependency>
                      <artifactId>org.eclipse.osgi.compatibility.state</artifactId>
                      <type>p2-installable-unit</type>
                    </dependency>
                  </dependencies>
                </configuration>
              </execution>
            </executions>
          </plugin>
         </plugins>
      </build>
    </profile>

    <profile>
      <id>update-branding-plugins-about.mappings</id>
      <activation>
        <file>
          <exists>${basedir}/about.mappings</exists>
        </file>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <executions>
              <execution>
                <id>process-about.mappings</id>
                <phase>prepare-package</phase>
                <configuration>
                  <outputDirectory>${project.build.directory}</outputDirectory>
                  <overwrite>true</overwrite>
                  <resources>
                    <resource>
                      <directory>${basedir}</directory>
                      <includes>
                        <include>about.mappings</include>
                      </includes>
                      <filtering>true</filtering>
                    </resource>
                  </resources>
                </configuration>
                <goals>
                  <goal>copy-resources</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>tycho-packaging-plugin</artifactId>
            <version>${tycho.version}</version>
            <configuration>
              <additionalFileSets>
                <fileSet>
                  <directory>${project.build.directory}</directory>
                  <includes>
                    <include>about.mappings</include>
                  </includes>
                </fileSet>
              </additionalFileSets>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>coverage</id>
      <properties>
        <!-- Since we append output of various tests, write to a common folder besides tests -->
        <!-- it's recommended to override that to an absolute value in specific Hudson configurations
          and Sonar integration -->
        <jacoco.destFile>${project.basedir}/../target/jacoco.exec</jacoco.destFile>
        <sonar.jacoco.reportPath>${jacoco.destFile}</sonar.jacoco.reportPath>
      </properties>
      <build>
        <plugins>
          <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.8.7</version>
            <executions>
              <execution>
                <id>jacoco-agent</id>
                <goals>
                  <goal>prepare-agent</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <append>true</append>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>spotbugs</id>
      <build>
        <plugins>
          <plugin>
            <groupId>com.github.spotbugs</groupId>
            <artifactId>spotbugs-maven-plugin</artifactId>
            <version>4.5.3.0</version>
            <configuration>
              <targetJDK>${java.version}</targetJDK>
              <xmlOutput>true</xmlOutput>
              <effort>Max</effort>
              <maxHeap>2000</maxHeap>
              <threshold>medium</threshold>
              <failOnError>false</failOnError>
              <excludeFilterFile>spotbugs/spotbugs-exclude.xml</excludeFilterFile>
            </configuration>
            <executions>
              <execution>
                <id>analyze-compile</id>
                <phase>compile</phase>
                <goals>
                  <goal>check</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>pmd</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-pmd-plugin</artifactId>
            <version>3.15.0</version>
            <configuration>
            <!-- PMD options -->
              <targetJDK>${java.version}</targetJDK>
              <aggregate>true</aggregate>
              <failOnViolation>false</failOnViolation>
              <format>xml</format>
              <rulesets><ruleset>pmd/eclipse_ruleset.xml</ruleset></rulesets>
            <!-- CPD options -->
              <minimumTokens>100</minimumTokens>
              <ignoreIdentifiers>true</ignoreIdentifiers>
            </configuration>
            <executions>
              <execution>
                <id>analyze-compile</id>
                <phase>compile</phase>
                <goals>
                  <goal>check</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>checkstyle</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-checkstyle-plugin</artifactId>
            <version>3.1.2</version>
            <configuration>
              <consoleOutput>true</consoleOutput>
              <failsOnError>false</failsOnError>
              <configLocation>checkstyle/checkstyle.xml</configLocation>
            </configuration>
            <executions>
              <execution>
                <id>analyze-compile</id>
                <phase>compile</phase>
                <goals>
                  <goal>check</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>macos</id>
      <activation>
        <os>
          <family>mac</family>
        </os>
      </activation>
      <properties>
        <surefire.platformSystemProperties>-XstartOnFirstThread</surefire.platformSystemProperties>
      </properties>
    </profile>

    <profile>
      <id>jdk9-or-newer</id>
      <activation>
        <jdk>[9,)</jdk>
      </activation>
      <properties>
        <surefire.moduleProperties>--add-modules=ALL-SYSTEM</surefire.moduleProperties>
      </properties>
    </profile>
  </profiles>
  <scm>
    <connection>scm:git:https://git.eclipse.org/r/platform/eclipse.platform.releng.aggregator</connection>
  </scm>
</project>
