<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2011, 2020 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>

  <parent>
    <groupId>org.eclipse.rap</groupId>
    <artifactId>org.eclipse.rap.runtime-parent</artifactId>
    <version>3.12.0-SNAPSHOT</version>
  </parent>

  <artifactId>org.eclipse.rap.runtime-aggregation-repository-e4</artifactId>
  <packaging>eclipse-repository</packaging>
  <version>3.12.0-SNAPSHOT</version>

  <repositories>
    <repository>
      <id>platform-repo</id>
      <layout>p2</layout>
      <url>${platform-repo.url}</url>
    </repository>
    <repository>
      <id>orbit-repo</id>
      <layout>p2</layout>
      <url>${orbit-repo.url}</url>
    </repository>
    <repository>
      <id>jetty-repo</id>
      <layout>p2</layout>
      <url>${jetty-repo.url}</url>
    </repository>
  </repositories>

  <build>
    <plugins>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-p2-repository-plugin</artifactId>
        <version>${tycho.version}</version>
        <configuration>
          <repositoryName>RAP Runtime e4</repositoryName>
          <includeAllDependencies>false</includeAllDependencies>
          <compress>true</compress>
          <finalName>rap-e4-${unqualifiedVersion}-${buildType}-${build}</finalName>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.eclipse.tycho.extras</groupId>
        <artifactId>tycho-p2-extras-plugin</artifactId>
        <version>${tycho.version}</version>
        <executions>
          <execution>
            <phase>prepare-package</phase>
              <goals>
                <goal>mirror</goal>
              </goals>
          </execution>
        </executions>
        <configuration>
          <source>
            <repository>
              <url>${platform-repo.url}</url>
              <layout>p2</layout>
            </repository>
          </source>
          <ius>
            <iu>
              <id>a.jre.javase</id>
            </iu>
          </ius>
          <includeOptional>false</includeOptional>
          <includeNonGreedy>false</includeNonGreedy>
          <latestVersionOnly>true</latestVersionOnly>
          <mirrorMetadataOnly>true</mirrorMetadataOnly>
        </configuration>
      </plugin>

    <!-- include legal files in zip -->
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-antrun-plugin</artifactId>
      <version>1.7</version>
      <executions>
        <execution>
          <id>copy</id>
          <phase>prepare-package</phase>
          <configuration>
            <target name="copy legal files">
              <copy todir="${project.build.directory}/repository">
                <fileset dir="${project.basedir}/../legal"/>
              </copy>
            </target>
          </configuration>
          <goals>
            <goal>run</goal>
          </goals>
        </execution>
      </executions>
    </plugin>

    </plugins>
  </build>

</project>
