<?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>11.0.0.alpha_3</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>
