<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (C) 2011, 2013 EclipseSource and others.
  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:
     EclipseSource - initial 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>

  <name>RAP Runtime build</name>

  <groupId>org.eclipse.rap</groupId>
  <artifactId>org.eclipse.rap.runtime-parent</artifactId>
  <version>2.2.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <properties>
    <tycho-version>0.18.1</tycho-version>
    <tycho-extras-version>${tycho-version}</tycho-extras-version>
    <signing-plugin-version>1.0.4</signing-plugin-version>
    <surefire-version>2.15</surefire-version>
    <junit-version>4.8.2</junit-version>
    <mockito-version>1.8.4</mockito-version>
    <base-platform-kepler>4.3/R-4.3.1-201309111000/</base-platform-kepler>
    <base-platform-kepler-repository>http://download.eclipse.org/eclipse/updates/${base-platform-kepler}</base-platform-kepler-repository>
    <base-platform-luna>4.4milestones/S-4.4M3-201310302000/</base-platform-luna>
    <base-platform-luna-repository>http://download.eclipse.org/eclipse/updates/${base-platform-luna}</base-platform-luna-repository>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <!-- disabled due to bug 393977
    <baseline-repository>http://download.eclipse.org/rt/rap/nightly/runtime/</baseline-repository>
     -->
    <tycho.scmUrl>scm:git:git://git.eclipse.org/gitroot/rap/org.eclipse.rap.git</tycho.scmUrl>
  </properties>

  <prerequisites>
    <maven>3.0</maven>
  </prerequisites>

  <modules>
    <!-- Runtime projects -->
    <module>../../bundles/org.eclipse.rap.rwt</module>
    <module>../../bundles/org.eclipse.rap.rwt.osgi</module>
    <module>../../bundles/org.eclipse.rap.jface</module>
    <module>../../bundles/org.eclipse.rap.jface.databinding</module>
    <module>../../bundles/org.eclipse.rap.junit</module>
    <module>../../bundles/org.eclipse.rap.junit.runtime</module>
    <module>../../bundles/org.eclipse.rap.ui</module>
    <module>../../bundles/org.eclipse.rap.ui.cheatsheets</module>
    <module>../../bundles/org.eclipse.rap.ui.forms</module>
    <module>../../bundles/org.eclipse.rap.ui.views</module>
    <module>../../bundles/org.eclipse.rap.ui.workbench</module>
    <!-- Examples projects -->
    <module>../../examples/org.eclipse.rap.demo</module>
    <module>../../examples/org.eclipse.rap.demo.databinding</module>
    <module>../../examples/org.eclipse.rap.demo.controls</module>
    <module>../../examples/org.eclipse.rap.design.example</module>
    <module>../../examples/org.eclipse.rap.examples</module>
    <module>../../examples/org.eclipse.rap.examples.pages</module>
    <!-- Test projects -->
    <module>../../tests/org.eclipse.rap.rwt.testfixture</module>
    <module>../../tests/org.eclipse.rap.rwt.cluster.testfixture</module>
    <module>../../tests/org.eclipse.rap.rwt.test</module>
    <module>../../tests/org.eclipse.rap.rwt.osgi.test</module>
    <module>../../tests/org.eclipse.rap.rwt.themes.test</module>
    <module>../../tests/org.eclipse.rap.ui.forms.test</module>
    <!--
    <module>../../tests/org.eclipse.rap.rwt.cluster.test</module>
    <module>../../tests/org.eclipse.rap.rwt.cluster.testfixture.test</module>
    -->
    <!-- Packaging projects -->
    <module>../../features/org.eclipse.rap.feature</module>
    <module>../../features/org.eclipse.rap.sdk.feature</module>
    <module>../../features/org.eclipse.rap.examples.feature</module>
    <module>../../features/org.eclipse.rap.equinox.target.feature</module>
    <module>../../features/org.eclipse.rap.equinox.luna.target.feature</module>
    <module>repository</module>
    <module>repository.kepler</module>
    <module>repository.luna</module>
  </modules>

  <repositories>
    <repository>
      <id>base-platform-repository</id>
      <layout>p2</layout>
      <!--
        TODO [rst]: Because of bug 348045, we cannot add the entire platform repository to the
                    target platform, try target definitions instead.
        -->
      <url>http://build.eclipse.org/rt/rap/base-platforms/2.1/RC4/runtime-base</url>
    </repository>
    <repository>
      <id>extra-dependencies-repository</id>
      <layout>p2</layout>
      <url>http://build.eclipse.org/rt/rap/base-platforms/2.2/extra-dependencies</url>
    </repository>
  </repositories>

  <build>
    <plugins>

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

      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-packaging-plugin</artifactId>
        <version>${tycho-version}</version>
        <dependencies>
          <dependency>
            <groupId>org.eclipse.tycho.extras</groupId>
            <artifactId>tycho-buildtimestamp-jgit</artifactId>
            <version>${tycho-extras-version}</version>
          </dependency>
          <dependency> 
            <groupId>org.eclipse.tycho.extras</groupId> 
            <artifactId>tycho-sourceref-jgit</artifactId> 
            <version>${tycho-extras-version}</version> 
          </dependency> 
        </dependencies>
        <configuration>
          <timestampProvider>jgit</timestampProvider>
<!-- generate new qualifier even if it is only the pom.xml that changed
          <jgit.ignore>
            pom.xml
          </jgit.ignore>
 -->
          <format>yyyyMMdd-HHmm</format>
          <sourceReferences> 
            <generate>true</generate> 
          </sourceReferences> 
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-p2-plugin</artifactId>
        <version>${tycho-version}</version>
        <configuration>
          <baselineRepositories>
            <repository>
              <url>${baseline-repository}</url>
            </repository>
          </baselineRepositories>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-source-plugin</artifactId>
        <version>${tycho-version}</version>
        <executions>
          <execution>
            <id>plugin-source</id>
            <goals>
              <goal>plugin-source</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>${surefire-version}</version>
        <executions>
          <execution>
            <id>test</id>
            <phase>test</phase>
            <configuration>
              <testClassesDirectory>${project.build.outputDirectory}</testClassesDirectory>
              <includes>
                <include>**/*_Test.java</include>
              </includes>
              <runOrder>random</runOrder>
            </configuration>
            <goals>
              <goal>test</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

    </plugins>
  </build>

  <profiles>

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

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

      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>target-platform-configuration</artifactId>
            <version>${tycho-version}</version>
            <configuration>
              <includePackedArtifacts>true</includePackedArtifacts>
            </configuration>
          </plugin>

          <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>
              </execution>
            </executions>
          </plugin>

          <plugin>
            <groupId>org.eclipse.cbi.maven.plugins</groupId>
            <artifactId>eclipse-jarsigner-plugin</artifactId>
            <version>${signing-plugin-version}</version>
            <executions>
              <execution>
                <id>sign</id>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
          </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>
              </execution>
            </executions>
          </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>
                </goals>
                <phase>package</phase>
              </execution>
            </executions>
            <configuration>
              <defaultP2Metadata>false</defaultP2Metadata>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>

  </profiles>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>${junit-version}</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

</project>
