<?xml version="1.0" encoding="UTF-8"?>
<!--
   Copyright (c) 2017 Willink Transformations and others.

   All rights reserved. This program and the accompanying materials
   are made available under the terms of the Eclipse Public License v2.0
   which accompanies this distribution, and is available at
   http://www.eclipse.org/legal/epl-v20.html
-->
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.eclipse.ocl</groupId>
  <artifactId>org.eclipse.ocl.releng.tycho</artifactId>
  <version>6.18.0-SNAPSHOT</version>
  <packaging>pom</packaging>
  <licenses>
    <license>
      <name>Eclipse Public License v2.0</name>
      <comments>
        All rights reserved.

        This program and the accompanying materials are made
        available under the terms of the Eclipse Public License v2.0
        which accompanies this distribution, and is available at
        http://www.eclipse.org/legal/epl-v10.htm
      </comments>
    </license>
  </licenses>
  <properties>
    <project.buildId>org.eclipse.ocl</project.buildId>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    <maven.build.timestamp.format>yyyyMMdd-HHmm</maven.build.timestamp.format>
    <buildTimestamp>${maven.build.timestamp}</buildTimestamp>
    <buildId>${buildType}${buildTimestamp}</buildId>
    <targetPlatform>targetPlatforms/unspecified</targetPlatform>

    <tycho.scmUrl>scm:git:https://git.eclipse.org/c/ocl/org.eclipse.ocl.git</tycho.scmUrl>
    <!--executionEnvironment>J2SE-1.5</executionEnvironment>
    <source-java-version>1.5</source-java-version>
    <target-java-version>${source-java-version}</target-java-version-->
    <java-source-encoding>UTF-8</java-source-encoding>
    <resource-encoding>UTF-8</resource-encoding>
    <os-jvm-flags/>

    <!-- plugin versions -->
    <!-- use the "Build OCL - Versions" launch to check for the latest -->
    <!-- interctively see e.g. https://mvnrepository.com/artifact/org.eclipse.jdt/ecj -->
    <ecj-version>3.23.0</ecj-version>
    <eclipse-jarsigner-version>1.3.1</eclipse-jarsigner-version>
    <exec-maven-version>3.0.0</exec-maven-version>
    <findbugs-maven-version>3.0.0</findbugs-maven-version>
    <jacoco-maven-version>0.8.17</jacoco-maven-version>
    <maven-antrun-version>3.0.0</maven-antrun-version>
    <maven-assembly-version>3.3.0</maven-assembly-version>
    <maven-checkstyle-version>3.1.1</maven-checkstyle-version>
    <maven-clean-version>3.1.0</maven-clean-version>
    <maven-compiler-version>3.8.1</maven-compiler-version>
    <maven-deploy-version>3.0.0-M1</maven-deploy-version>
    <maven-enforcer-version>3.0.0-M3</maven-enforcer-version>
    <maven-install-version>3.0.0-M1</maven-install-version>
    <maven-jar-version>3.2.0</maven-jar-version>
    <maven-javadoc-version>3.2.0</maven-javadoc-version>
    <maven-jxr-version>3.0.0</maven-jxr-version>
    <maven-pmd-version>3.13.0</maven-pmd-version>
    <maven-resources-version>3.2.0</maven-resources-version>
    <maven-site-version>3.9.1</maven-site-version>
    <maven-surefire-version>3.0.0-M5</maven-surefire-version>
    <tycho-version>2.1.0</tycho-version>
    <tycho-extras-version>${tycho-version}</tycho-extras-version>
    
    <BUILD_ALIAS></BUILD_ALIAS>
  </properties>
  
  <modules>
   <module>../../doc</module>
   <module>../../examples</module>
   <module>../../features</module>
   <module>../../plugins</module>   
   <module>../../releng</module>
   <module>../../tests</module>
  </modules>

  <build>
    <!-- This is for checkstyle and PMD -->
    <sourceDirectory>src</sourceDirectory>
    
    <!-- See Bug 526404 This enables maven-surefire-plugin to do standalone tests AND tycho-surefire-plugin to do plugin tests -->
    <testOutputDirectory>${project.build.directory}/classes</testOutputDirectory>

    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>${maven-enforcer-version}</version>
        <executions>
          <execution>
            <id>enforce-versions</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requireMavenVersion>
                  <version>3.6.3</version>
                </requireMavenVersion>
                <!--requireJavaVersion>
                  <version>1.5</version>
                </requireJavaVersion-->
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <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>
          <includePackedArtifacts>true</includePackedArtifacts>
          <resolver>p2</resolver>
          <!-- See Bug 541797, org.eclipse.equinox.http.jetty seemed to need JavaSE-1.8 to be explicit.
           Since moving to a Java 11-build environment, it no longer appears to be necessary. -->
          <!--executionEnvironment>JavaSE-1.8</executionEnvironment-->
          <target>
            <artifact>
              <groupId>org.eclipse.ocl</groupId>
              <artifactId>org.eclipse.ocl.releng.tycho</artifactId>
              <version>6.18.0-SNAPSHOT</version>
              <classifier>${targetPlatform}</classifier>
            </artifact>
          </target>
          <dependency-resolution>
            <extraRequirements>
              <requirement>
                <type>eclipse-plugin</type>
                <id>org.apache.ant</id>
                <versionRange>0.0.0</versionRange>
              </requirement>
              <requirement>
                <type>eclipse-plugin</type>
                <id>org.eclipse.osgi.compatibility.state</id>
                <versionRange>[1.1.0,2.0.0)</versionRange>
              </requirement>
              <requirement>
                <type>eclipse-plugin</type>
                <id>org.eclipse.jdt.annotation</id>
                <versionRange>[2.0.0,3.0.0)</versionRange>
              </requirement>
              <requirement>
                <type>eclipse-plugin</type>
                <id>javax.annotation</id>
                <versionRange>[1.0.0,2.0.0)</versionRange>
              </requirement>
              <requirement>
                <type>eclipse-plugin</type>
                <id>org.eclipse.xtext.logging</id>
                <versionRange>[1.0.0,2.0.0)</versionRange>
              </requirement>
              <!--requirement>
                <type>eclipse-plugin</type>
                <id>org.eclipse.jdt.compiler.apt</id>
                <versionRange>0.0.0</versionRange>
              </requirement>
              <requirement>
                <type>eclipse-plugin</type>
                <id>org.eclipse.jdt.core</id>
                <versionRange>0.0.0</versionRange>
              </requirement-->
            </extraRequirements>
          </dependency-resolution>
          <environments>
           <environment>
              <os>win32</os>
              <ws>win32</ws>
              <arch>x86_64</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>

      <!-- Generate source bundles (exclude target so we don't enter
           an infinite loop for binary-only plugins, which have itself
           as the source). -->
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-source-plugin</artifactId>
        <version>${tycho-version}</version>
        <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.eclipse.tycho.extras</groupId>
        <artifactId>tycho-source-feature-plugin</artifactId>
        <version>${tycho-extras-version}</version>
        <configuration>
          <archive>
            <addMavenDescriptor>false</addMavenDescriptor>
          </archive>
        </configuration>
        <executions>
          <execution>
            <id>source-feature</id>
            <phase>package</phase>
            <goals>
              <goal>source-feature</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-maven-plugin</artifactId>
          <version>${tycho-version}</version>
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-packaging-plugin</artifactId>
          <version>${tycho-version}</version>
          <configuration>
            <archive>
              <addMavenDescriptor>false</addMavenDescriptor>
            </archive>
            <format>'v'yyyyMMdd'-'HHmm</format>
            <sourceReferences>
              <generate>true</generate>
            </sourceReferences>
          </configuration>
          <dependencies>
            <dependency>
              <groupId>org.eclipse.tycho.extras</groupId>
              <artifactId>tycho-sourceref-jgit</artifactId>
              <version>${tycho-extras-version}</version>
            </dependency>
          </dependencies>
        </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>
          <configuration>
            <!-- Workaround Bug 569379 -->
            <deriveReleaseCompilerArgumentFromTargetLevel>false</deriveReleaseCompilerArgumentFromTargetLevel>
            <!-- Workaround Bug 526011 -->
            <compilerArgs>
              <arg>-annotationpath</arg>
              <arg>${project.basedir}/../../plugins/org.eclipse.ocl.pivot/annotations</arg>
            </compilerArgs>
            <log>plain</log>
            <verbose>true</verbose>
          </configuration>
          <dependencies>
            <!-- Investigate Bug 569379 -->
            <dependency>
              <groupId>org.eclipse.jdt</groupId>
              <artifactId>ecj</artifactId>
              <version>${ecj-version}</version>
            </dependency>
            <!--dependency>
              <groupId>org.eclipse.jdt</groupId>
              <artifactId>org.eclipse.jdt.core</artifactId>
              <version>${cbi-jdt-version}</version>
            </dependency>
            <dependency>
              <groupId>org.eclipse.jdt</groupId>
              <artifactId>org.eclipse.jdt.compiler.apt</artifactId>
              <version>${cbi-jdt-apt-version}</version>
            </dependency-->
          </dependencies>
          <!--configuration>
            <encoding>${java-source-encoding}</encoding>
            <source>${source-java-version}</source>
            <target>${target-java-version}</target>
            <showWarnings>true</showWarnings>
          </configuration-->
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-p2-plugin</artifactId>
          <version>${tycho-version}</version>
          <executions>
            <execution>
              <id>attached-p2-metadata</id>
              <phase>package</phase>
              <goals>
                <goal>p2-metadata</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
           <artifactId>tycho-surefire-plugin</artifactId>
           <version>${tycho-version}</version>
           <!--configuration>
             <argLine>${tycho.testArgLine} -Xms40m -Xmx1G ${os-jvm-flags}</argLine>
             <failIfNoTests>false</failIfNoTests>
           </configuration-->
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-p2-publisher-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.cbi.maven.plugins</groupId>
            <artifactId>eclipse-jarsigner-plugin</artifactId>
            <version>${eclipse-jarsigner-version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <version>${maven-resources-version}</version>
          <configuration>
            <encoding>${resource-encoding}</encoding>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>${maven-antrun-version}</version>
        </plugin>
        <!--plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>findbugs-maven-plugin</artifactId>
          <version>${findbugs-maven-version}</version>
        </plugin-->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-pmd-plugin</artifactId>
          <version>${maven-pmd-version}</version>
          <configuration>
            <sourceEncoding>${java-source-encoding}</sourceEncoding>
            <targetJdk>${target-java-version}</targetJdk>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <version>${maven-checkstyle-version}</version>
          <configuration>
            <encoding>${java-source-encoding}</encoding>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>exec-maven-plugin</artifactId>
          <version>${exec-maven-version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>${maven-compiler-version}</version>
        </plugin>
        <plugin>
          <groupId>org.jacoco</groupId>
          <artifactId>jacoco-maven-plugin</artifactId>
          <version>${jacoco-maven-version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>${maven-jar-version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>${maven-assembly-version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-clean-plugin</artifactId>
          <version>${maven-clean-version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>${maven-deploy-version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-install-plugin</artifactId>
          <version>${maven-install-version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-site-plugin</artifactId>
          <version>${maven-site-version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${maven-surefire-version}</version>
          <dependencies>
            <dependency>
              <groupId>org.apache.maven.surefire</groupId>
              <artifactId>surefire-junit4</artifactId>
              <version>${maven-surefire-version}</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jxr-plugin</artifactId>
          <version>${maven-jxr-version}</version>
        </plugin>
        <!--plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>2.10.3</version>
          <configuration>
            <sourceFileIncludes>
              <sourceFileInclude>org/eclipse/ocl/**/*.java</sourceFileInclude>
            </sourceFileIncludes>
            <doctitle>OCL Interim API</doctitle>
          </configuration>
        </plugin-->
      </plugins>
    </pluginManagement>
  </build>
  <!--pluginRepositories>
    <pluginRepository>
      <id>cbi-jdt</id>
      <url>${cbi-jdt-repo.url}</url>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </pluginRepository>
  </pluginRepositories-->
  <profiles>
    <!-- Target platforms are located in org.eclipse.ocl.releng.tycho/targetPlatforms. -->
    <profile>
      <id>nightly</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <buildType>N</buildType>
        <targetPlatform>targetPlatforms/nightly</targetPlatform>
      </properties>
    </profile>
    <profile>
      <id>interim</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <buildType>I</buildType>
        <targetPlatform>targetPlatforms/interim</targetPlatform>
      </properties>
    </profile>
    <profile>
      <id>stable</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <buildType>S</buildType>
        <targetPlatform>targetPlatforms/stable</targetPlatform>
      </properties>
      <!--properties>
        <cbi-jdt-repo.url>https://repo.eclipse.org/content/repositories/eclipse-staging/</cbi-jdt-repo.url>
        <!- - jdt.core and jdt.compiler.apt should "match", come from same build, and be signed
          by same certificate. See bug 462783. - ->
        <cbi-jdt-version>3.14.0.v20170830-0152</cbi-jdt-version>
        <cbi-jdt-apt-version>1.3.0.v20170502-0408</cbi-jdt-apt-version>
      </properties-->
    </profile>
    <profile>
      <id>release</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <buildType>R</buildType>
        <targetPlatform>targetPlatforms/stable</targetPlatform>
      </properties>
       <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>tycho-p2-repository-plugin</artifactId>
            <configuration>
              <extraArtifactRepositoryProperties>
                <p2.statsURI>http://download.eclipse.org/stats/modeling/mdt/ocl/updates/releases/${unqualifiedVersion}</p2.statsURI>
                <p2.mirrorsURL>http://www.eclipse.org/downloads/download.php?file=/modeling/mdt/ocl/updates/releases/${unqualifiedVersion}&amp;format=xml</p2.mirrorsURL>
              </extraArtifactRepositoryProperties>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>oxygen</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <buildType></buildType>
        <targetPlatform>targetPlatforms/oxygen</targetPlatform>
      </properties>
    </profile>
    <profile>
      <id>photon</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <buildType></buildType>
        <targetPlatform>targetPlatforms/photon</targetPlatform>
      </properties>
    </profile>
    <profile>
      <id>sign</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.cbi.maven.plugins</groupId>
            <artifactId>eclipse-jarsigner-plugin</artifactId>
            <executions>
              <execution>
                <id>sign</id>
                <phase>package</phase>
                <configuration>
                  <retryLimit>10</retryLimit>
                </configuration>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>tycho-p2-plugin</artifactId>
            <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>
      <pluginRepositories>
        <pluginRepository>
          <id>cbi</id>
          <url>https://repo.eclipse.org/content/repositories/cbi-releases/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </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>
            <configuration>
              <additionalFileSets>
                <fileSet>
                  <directory>${project.build.directory}</directory>
                  <includes>
                    <include>about.mappings</include>
                  </includes>
                </fileSet>
              </additionalFileSets>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>