<?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.31.0</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>
