<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2015 BSI Business Systems Integration AG.
  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:
  BSI Business Systems Integration AG - 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.scout.sdk</groupId>
    <artifactId>org.eclipse.scout.sdk</artifactId>
    <version>10.0.28</version>
    <relativePath>../org.eclipse.scout.sdk</relativePath>
  </parent>

  <artifactId>org.eclipse.scout.sdk.s2e.releng</artifactId>
  <packaging>pom</packaging>
  <name>${project.groupId}:${project.artifactId}</name>

  <!--
    To update the Eclipse artifacts needed by the Maven class-loader side of Eclipse Scout SDK:

    1.  If needed, update the source p2 repository below
    2.  Update versions in the parent POM: ${org.eclipse.m2e.core}, ${org.eclipse.m2e.core.ui}, ${org.eclipse.m2e.archetype.common}, ...
    3a. For deploying snapshots (to be used by Eclipse Scout SDK snapshots)
        - In org.eclipse.scout.sdk.s2e.releng/, execute
          mvn clean deploy -DforgeSnapshotUrl=https://scout.bsiag.com/repository/org.eclipse.scout-snapshot-local -DforgeSnapshotId=bsi-tools-snapshot
    3b. For deploying releases (to be used by Tycho releases):
        - Prerequisite: 1. you need to have GPG properly set up, see http://central.sonatype.org/pages/working-with-pgp-signatures.html
                        2. if not already present: you need to add the server with id of property DforgeReleaseId into your settings.xml including the corresponding credentials (e.g. oss sonatype username/password)
        - Make sure that ${org.eclipse.m2e.core}, ${org.eclipse.m2e.core.ui}, ${org.eclipse.m2e.archetype.common},... in the parent POM don't have a '-SNAPSHOT' suffix
        3b.1 For full deploy: In org.eclipse.scout.sdk.s2e.releng/, execute
             mvn clean deploy -Pdeploy-releases -DforgeReleaseUrl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DforgeReleaseId=forge-releases -Dgpg.passphrase=<your_passphrase>
        3b.2 For single additional deps: In org.eclipse.scout.sdk.s2e.releng/, execute
             mvn clean deploy -Pdeploy-releases-addNewDeps -DforgeReleaseUrl=https://oss.sonatype.org/service/local/staging/deploy/maven2/ -DforgeReleaseId=forge-releases -Dgpg.passphrase=<your_passphrase>
        - Login to https://oss.sonatype.org: Close and release staged artifacts into repository 'Releases'
  -->
  <properties>
    <downloaded>${project.build.directory}/repository/plugins/</downloaded>
    <!-- don't deploy this helper pom -->
    <maven.deploy.skip>true</maven.deploy.skip>
  </properties>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.eclipse.tycho.extras</groupId>
          <artifactId>tycho-p2-extras-plugin</artifactId>
          <version>${master_plugin_tycho-extras_version}</version>
        </plugin>
        <plugin>
          <groupId>com.googlecode.maven-download-plugin</groupId>
          <artifactId>download-maven-plugin</artifactId>
          <version>1.4.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>3.0.0-M1</version>
          <configuration>
            <url>${forgeSnapshotUrl}</url>
            <repositoryId>${forgeSnapshotId}</repositoryId>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>

    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
        <includes>
          <include>*.pom</include>
        </includes>
      </resource>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>false</filtering>
        <excludes>
          <exclude>*.pom</exclude>
        </excludes>
      </resource>
    </resources>

    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <executions>
          <execution>
            <id>filter-resources</id>
            <goals>
              <goal>resources</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.eclipse.tycho.extras</groupId>
        <artifactId>tycho-p2-extras-plugin</artifactId>
        <configuration>
          <includePacked>false</includePacked>
          <includeOptional>false</includeOptional>
          <source>
            <repository>
              <id>eclipse_2020_03</id>
              <url>http://download.eclipse.org/releases/2020-03/</url>
              <layout>p2</layout>
            </repository>
          </source>
          <ius>
            <iu>
              <id>org.eclipse.m2e.core</id>
              <version>${org.eclipse.m2e.core}</version>
            </iu>
            <iu>
              <id>org.eclipse.m2e.core.source</id>
              <version>${org.eclipse.m2e.core}</version>
            </iu>
            <iu>
              <id>org.eclipse.m2e.archetype.common</id>
              <version>${org.eclipse.m2e.archetype.common}</version>
            </iu>
            <iu>
              <id>org.eclipse.m2e.core.ui</id>
              <version>${org.eclipse.m2e.core.ui}</version>
            </iu>
            <iu>
              <id>org.eclipse.m2e.core.ui.source</id>
              <version>${org.eclipse.m2e.core.ui}</version>
            </iu>
          </ius>
          <followStrictOnly>true</followStrictOnly>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>mirror</goal>
            </goals>
            <phase>validate</phase>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <distributionManagement>
    <repository>
      <id>${forgeReleaseId}</id>
      <url>${forgeReleaseUrl}</url>
    </repository>
    <snapshotRepository>
      <id>${forgeSnapshotId}</id>
      <url>${forgeSnapshotUrl}</url>
    </snapshotRepository>
    <site>
      <id>eclipse.scout.sdk.site</id>
      <name>Eclipse Scout SDK Site</name>
      <!-- >workaround for http://jira.codehaus.org/browse/MSITE-671 -->
      <url>http://staging</url>
    </site>
  </distributionManagement>

  <pluginRepositories>
    <pluginRepository>
      <id>apache.snapshots</id>
      <name>Apache Snapshot Repository</name>
      <url>http://repository.apache.org/snapshots</url>
      <releases>
        <enabled>false</enabled>
      </releases>
    </pluginRepository>
  </pluginRepositories>

  <profiles>
    <profile>
      <id>deploy-m2e-snapshots</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-deploy-plugin</artifactId>
            <executions>
              <execution>
                <id>deploy-m2e-core</id>
                <goals>
                  <goal>deploy-file</goal>
                </goals>
                <phase>deploy</phase>
                <configuration>
                  <file>${downloaded}/org.eclipse.m2e.core_${org.eclipse.m2e.core}.jar</file>
                  <sources>${downloaded}/org.eclipse.m2e.core.source_${org.eclipse.m2e.core}.jar</sources>
                  <pomFile>${project.build.outputDirectory}/org.eclipse.m2e.core.pom</pomFile>
                </configuration>
              </execution>
              <execution>
                <id>deploy-m2e-ui</id>
                <goals>
                  <goal>deploy-file</goal>
                </goals>
                <phase>deploy</phase>
                <configuration>
                  <file>${downloaded}/org.eclipse.m2e.core.ui_${org.eclipse.m2e.core.ui}.jar</file>
                  <sources>${downloaded}/org.eclipse.m2e.core.ui.source_${org.eclipse.m2e.core.ui}.jar</sources>
                  <pomFile>${project.build.outputDirectory}/org.eclipse.m2e.core.ui.pom</pomFile>
                </configuration>
              </execution>
              <execution>
                <id>deploy-m2e-archetype-common</id>
                <goals>
                  <goal>deploy-file</goal>
                </goals>
                <phase>deploy</phase>
                <configuration>
                  <file>${downloaded}/org.eclipse.m2e.archetype.common_${org.eclipse.m2e.archetype.common}.jar</file>
                  <pomFile>${project.build.outputDirectory}/org.eclipse.m2e.archetype.common.pom</pomFile>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>deploy-releases</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
            <version>1.7.0.MGPG-53</version>
            <configuration>
              <repositoryId>${forgeReleaseId}</repositoryId>
              <url>${forgeReleaseUrl}</url>
            </configuration>
            <executions>
              <execution>
                <id>deploy-m2e-core</id>
                <goals>
                  <goal>sign-and-deploy-file</goal>
                </goals>
                <phase>deploy</phase>
                <configuration>
                  <file>${downloaded}/org.eclipse.m2e.core_${org.eclipse.m2e.core}.jar</file>
                  <sources>${downloaded}/org.eclipse.m2e.core.source_${org.eclipse.m2e.core}.jar</sources>
                  <pomFile>${project.build.outputDirectory}/org.eclipse.m2e.core.pom</pomFile>
                  <javadoc>${project.build.outputDirectory}/javadoc.jar</javadoc>
                </configuration>
              </execution>
              <execution>
                <id>deploy-m2e-ui</id>
                <goals>
                  <goal>sign-and-deploy-file</goal>
                </goals>
                <phase>deploy</phase>
                <configuration>
                  <file>${downloaded}/org.eclipse.m2e.core.ui_${org.eclipse.m2e.core.ui}.jar</file>
                  <sources>${downloaded}/org.eclipse.m2e.core.ui.source_${org.eclipse.m2e.core.ui}.jar</sources>
                  <pomFile>${project.build.outputDirectory}/org.eclipse.m2e.core.ui.pom</pomFile>
                  <javadoc>${project.build.outputDirectory}/javadoc.jar</javadoc>
                </configuration>
              </execution>
              <execution>
                <id>deploy-m2e-archetype-common</id>
                <goals>
                  <goal>sign-and-deploy-file</goal>
                </goals>
                <phase>deploy</phase>
                <configuration>
                  <file>${downloaded}/org.eclipse.m2e.archetype.common_${org.eclipse.m2e.archetype.common}.jar</file>
                  <pomFile>${project.build.outputDirectory}/org.eclipse.m2e.archetype.common.pom</pomFile>
                  <javadoc>${project.build.outputDirectory}/javadoc.jar</javadoc>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>deploy-releases-addNewDeps</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
            <version>1.7.0.MGPG-53</version>
            <configuration>
              <repositoryId>${forgeReleaseId}</repositoryId>
              <url>${forgeReleaseUrl}</url>
            </configuration>
            <executions>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>
