<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2011 Sonatype, Inc.
  All rights reserved. This program and the accompanying materials
  are made available under the terms of the Eclipse Public License 2.0
  which accompanies this distribution, and is available at
  https://www.eclipse.org/legal/epl-2.0/

  SPDX-License-Identifier: EPL-2.0
-->
<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.sonatype.forge</groupId>
    <artifactId>forge-parent</artifactId>
    <version>10</version>
    <relativePath />
  </parent>

  <groupId>org.eclipse.m2e</groupId>
  <artifactId>m2e-maven-runtime</artifactId>
  <version>1.16.0-SNAPSHOT</version>
  <packaging>pom</packaging>
  <name>M2E - Maven runtime bundles</name>
  <organization>
    <name>Eclipse.org - m2e</name>
    <url>www.eclipse.org</url>
  </organization>

  <properties>
    <maven.build.timestamp.format>yyyyMMdd-HHmm</maven.build.timestamp.format>
    <osgi-version-qualifier>${maven.build.timestamp}</osgi-version-qualifier>
    <maven-bundle-plugin.version>4.2.1</maven-bundle-plugin.version>
    <tycho.version>1.6.0</tycho.version>
    <tycho-extras-version>${tycho.version}</tycho-extras-version>
  </properties>

  <modules>
    <module>org.eclipse.m2e.archetype.common</module>
    <module>org.eclipse.m2e.maven.indexer</module>
    <module>org.eclipse.m2e.maven.runtime</module>
    <module>org.eclipse.m2e.maven.runtime.slf4j.simple</module>
  </modules>

  <build>
    <plugins>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-maven-plugin</artifactId>
        <version>${tycho.version}</version>
        <extensions>true</extensions>
      </plugin>
    </plugins>

    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.1</version>
          <configuration>
          <!-- http://maven.apache.org/plugins/maven-compiler-plugin/ -->
            <source>1.7</source>
            <target>1.7</target>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.felix</groupId>
          <artifactId>maven-bundle-plugin</artifactId>
          <version>${maven-bundle-plugin.version}</version>
          <extensions>true</extensions>
          <configuration>
            <instructions>
              <Embed-Transitive>true</Embed-Transitive>
              <_failok>true</_failok>
              <_nouses>true</_nouses>
              <_nodefaultversion>true</_nodefaultversion>
              <_snapshot>${osgi-version-qualifier}</_snapshot>

              <Bundle-SymbolicName>${project.artifactId};singleton:=false</Bundle-SymbolicName>
              <Bundle-RequiredExecutionEnvironment>JavaSE-1.8</Bundle-RequiredExecutionEnvironment>
              <Bundle-Name>%Bundle-Name</Bundle-Name>
              <Bundle-Vendor>%Bundle-Vendor</Bundle-Vendor>
              <Bundle-ClassPath>{maven-dependencies}</Bundle-ClassPath>

              <Eclipse-BundleShape>dir</Eclipse-BundleShape>
            </instructions>
            <archive>
              <addMavenDescriptor>false</addMavenDescriptor>
            </archive>
          </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>
                <goal>update-local-index</goal>
              </goals>
              <phase>package</phase>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

  <profiles>
    <profile>
      <id>m2e</id>
      <activation>
        <property>
          <name>m2e.version</name>
        </property>
      </activation>
      <properties>
        <osgi-version-qualifier>qualifier</osgi-version-qualifier>
      </properties>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>org.apache.felix</groupId>
              <artifactId>maven-bundle-plugin</artifactId>
              <configuration>
                  <!-- PDE does not honour custom manifest location -->
                <manifestLocation>META-INF</manifestLocation>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>

    <profile>
      <id>eclipse-sign</id>

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

      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.tycho.extras</groupId>
            <artifactId>tycho-pack200a-plugin</artifactId>
            <version>${tycho-extras-version}</version>
            <executions>
              <execution>
                <id>pack200-normalize</id>
                <goals>
                  <goal>normalize</goal>
                </goals>
                <phase>verify</phase>
              </execution>
            </executions>
            <configuration>
              <supportedProjectTypes>
                <supportedProjectType>bundle</supportedProjectType>
              </supportedProjectTypes>
            </configuration>
          </plugin>

          <plugin>
            <groupId>org.eclipse.cbi.maven.plugins</groupId>
            <artifactId>eclipse-jarsigner-plugin</artifactId>
            <version>1.1.5</version>
            <executions>
              <execution>
                <id>sign</id>
                <goals>
                  <goal>sign</goal>
                </goals>
                <phase>verify</phase>
              </execution>
            </executions>
            <configuration>
              <supportedProjectTypes>
                <supportedProjectType>bundle</supportedProjectType>
              </supportedProjectTypes>
              <excludeInnerJars>true</excludeInnerJars>
              <resigningStrategy>DO_NOT_RESIGN</resigningStrategy>
            </configuration>
          </plugin>

          <plugin>
            <groupId>org.eclipse.tycho.extras</groupId>
            <artifactId>tycho-pack200b-plugin</artifactId>
            <version>${tycho-extras-version}</version>
            <executions>
              <execution>
                <id>pack200-pack</id>
                <goals>
                  <goal>pack</goal>
                </goals>
                <phase>verify</phase>
              </execution>
            </executions>
            <configuration>
              <supportedProjectTypes>
                <supportedProjectType>bundle</supportedProjectType>
              </supportedProjectTypes>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

</project>
