<?xml version="1.0" encoding="UTF-8"?>
<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.rap</groupId>
  <artifactId>org.eclipse.rap.examples.parent.parent</artifactId>
  <version>3.16.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <tycho.version>2.1.0</tycho.version>
    <tycho.showEclipseLog>true</tycho.showEclipseLog>
    <assembly.version>3.3.0</assembly.version>
    <replacer.version>1.4.1</replacer.version>
    <rap-repo.url>http://download.eclipse.org/rt/rap/nightly/runtime/</rap-repo.url>
    <rap-incubator-repo.url>http://download.eclipse.org/rt/rap/incubator/nightly/</rap-incubator-repo.url>
  </properties>

  <repositories>
    <repository>
      <id>rap-repo</id>
      <layout>p2</layout>
      <url>${rap-repo.url}</url>
    </repository>
    <repository>
      <id>rap-incubator-repo</id>
      <layout>p2</layout>
      <url>${rap-incubator-repo.url}</url>
    </repository>
  </repositories>

  <build>
    <plugins>

      <!-- Enable Tycho -->
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-maven-plugin</artifactId>
        <version>${tycho.version}</version>
        <extensions>true</extensions>
      </plugin>

      <!-- Configure qualifier replacement -->
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-packaging-plugin</artifactId>
        <version>${tycho.version}</version>
        <configuration>
          <format>yyyyMMdd-HHmm</format>
        </configuration>
      </plugin>

      <!-- Restrict to environment to enable platform independent war-build -->
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>target-platform-configuration</artifactId>
        <version>${tycho.version}</version>
        <configuration>
          <resolver>p2</resolver>
          <environments>
            <environment>
              <os>linux</os>
              <ws>gtk</ws>
              <arch>x86_64</arch>
            </environment>
           </environments>
        </configuration>
      </plugin>

    </plugins>
  </build>

</project>
