<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2012 Eclipse Foundation.
  All rights reserved. This program and the accompanying materials
  are made available under the terms of the Eclipse Distribution License v1.0
  which accompanies this distribution, and is available at
  http://www.eclipse.org/org/documents/edl-v10.php
 
  Contributors:
     Igor Fedorenko - 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</groupId>
    <artifactId>eclipse-platform-parent</artifactId>
    <version>4.4.0-SNAPSHOT</version>
    <relativePath>../eclipse-platform-parent</relativePath>
  </parent>
  <groupId>eclipse.platform.repository</groupId>
  <artifactId>eclipse.platform.repository</artifactId>
  <version>4.4.0-SNAPSHOT</version>
  <packaging>eclipse-repository</packaging>
  <build>
    <plugins>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>target-platform-configuration</artifactId>
        <version>${tycho.version}</version>
        <configuration>
          <includePackedArtifacts>true</includePackedArtifacts>
        </configuration>
      </plugin>    
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <id>unpack-content-jar</id>
            <phase>package</phase>
            <configuration>
              <tasks>
                <unjar src="target/repository/content.jar" dest="target/repository"/>
                <delete file="target/repository/content.jar"/>
              </tasks>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>xml-maven-plugin</artifactId>
        <version>1.0</version>
        <executions>
          <execution>
            <id>generate-extra-iu</id>
            <phase>package</phase>
            <goals>
              <goal>transform</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <transformationSets>
            <transformationSet>
              <dir>target/repository</dir>
              <includes>
                <include>content.xml</include>
              </includes>
              <stylesheet>cp-content.xsl</stylesheet>
            </transformationSet>
          </transformationSets>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.6</version>
        <executions>
          <execution>
            <id>copy-extra-iu</id>
            <phase>package</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>${basedir}/target/repository</outputDirectory>
              <resources>
                <resource>
                  <directory>${basedir}/target/generated-resources/xml/xslt</directory>
                  <includes>
                    <include>content.xml</include>
                  </includes>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.eclipse.tycho.extras</groupId>
        <artifactId>tycho-p2-extras-plugin</artifactId>
        <version>${tycho.version}</version>
        <executions>
          <execution>
            <id>mirror-build</id>
            <phase>prepare-package</phase>
            <goals>
              <goal>mirror</goal>
            </goals>
            <configuration>
              <source>
                <!-- source repositories to mirror from -->

                <!-- This config/executable p2 metadata should be in any of the "product" targetPlatformRepoositories, 
                     I'd just arbitrarily picked "platform" as the one to use to get our final versions from, for our 
                     main repository.
                -->
                <repository>
                  <url>${project.baseUri}../eclipse.platform.releng.tychoeclipsebuilder/platform/target/targetPlatformRepository</url>
                  <layout>p2-metadata</layout>
                  <!-- supported layouts are "p2-metadata", "p2-artifacts", and "p2" (for joint repositories; default) -->
                </repository>

                <repository>
                  <url>${project.baseUri}/../eclipse.platform.releng.tychoeclipsebuilder/rcp/target/repository</url>
                  <layout>p2</layout>
                  <!-- supported layouts are "p2-metadata", "p2-artifacts", and "p2" (for joint repositories; default) -->
                </repository>
                <repository>
                  <url>${project.baseUri}/../eclipse.platform.releng.tychoeclipsebuilder/rcp.sdk/target/repository</url>
                  <layout>p2</layout>
                  <!-- supported layouts are "p2-metadata", "p2-artifacts", and "p2" (for joint repositories; default) -->
                </repository>
                <repository>
                  <url>${project.baseUri}/../eclipse.platform.releng.tychoeclipsebuilder/platform/target/repository</url>
                  <layout>p2</layout>
                  <!-- supported layouts are "p2-metadata", "p2-artifacts", and "p2" (for joint repositories; default) -->
                </repository>
                <repository>
                  <url>${project.baseUri}/../eclipse.platform.releng.tychoeclipsebuilder/platform.sdk/target/repository</url>
                  <layout>p2</layout>
                  <!-- supported layouts are "p2-metadata", "p2-artifacts", and "p2" (for joint repositories; default) -->
                </repository>
                <repository>
                  <url>${project.baseUri}/../eclipse.platform.releng.tychoeclipsebuilder/sdk/target/repository</url>
                  <layout>p2</layout>
                  <!-- supported layouts are "p2-metadata", "p2-artifacts", and "p2" (for joint repositories; default) -->
                </repository>
                <repository>
                  <url>${project.baseUri}/../eclipse.platform.releng.tychoeclipsebuilder/eclipse-junit-tests/target/repository</url>
                  <layout>p2</layout>
                  <!-- supported layouts are "p2-metadata", "p2-artifacts", and "p2" (for joint repositories; default) -->
                </repository>
              </source>
              <!-- starting from here all configuration parameters are optional -->
              <!-- they are only shown here with default values for documentation purpose -->
              <!-- List of IUs to mirror. If omitted, allIUs will be mirrored. -->
              <!-- Omitted IU version element means latest version of the IU -->
              <!--ius>
                    <iu>
                        <id>org.eclipse.rcp.feature.group</id>
                    </iu>
                </ius-->
              <!-- The destination directory to mirror to. -->
              <destination>${project.build.directory}/repository</destination>
              <!-- Whether only strict dependencies should be followed. -->
              <!-- "strict" means perfect version match -->
              <followStrictOnly>false</followStrictOnly>
              <!-- Whether or not to follow optional requirements. -->
              <includeOptional>false</includeOptional>
              <!-- Whether or not to follow non-greedy requirements. -->
              <includeNonGreedy>false</includeNonGreedy>
              <!-- Filter properties. E.g. filter only one platform -->
              <!-- Whether to filter the resulting set of IUs to only -->
              <!-- include the latest version of each IU -->
              <latestVersionOnly>true</latestVersionOnly>
              <!-- don't mirror artifacts, only metadata -->
              <mirrorMetadataOnly>false</mirrorMetadataOnly>
              <!-- whether to compress the content.xml/artifacts.xml -->
              <compress>true</compress>
              <!-- whether to append to the target repository content -->
              <append>true</append>
            </configuration>
          </execution>
          <!-- We add emf features to our repo, since we "require" (not "include") them, but are
               required to build (or pull) against "just" the platform repository. 
               We specify in a seperate step than above because unlike the others, there are 
               af few IUs, even the "base" repo, that we do not want.
           -->
          <execution>
            <id>mirror-build-emf</id>
            <phase>prepare-package</phase>
            <goals>
              <goal>mirror</goal>
            </goals>
            <configuration>
              <source>
                <!-- source repositories to mirror from -->
                <repository>
                  <url>${emf-repo.url}</url>
                  <layout>p2</layout>
                  <!-- supported layouts are "p2-metadata", "p2-artifacts", and "p2" (for joint repositories; default) -->
                </repository>
              </source>
              <!-- starting from here all configuration parameters are optional -->
              <!-- they are only shown here with default values for documentation purpose -->
              <!-- List of IUs to mirror. If omitted, allIUs will be mirrored. -->
              <!-- Omitted IU version element means latest version of the IU -->
              <ius>
                    <iu>
                        <id>org.eclipse.emf.common.feature.group</id>
                    </iu>
                    <iu>
                        <id>org.eclipse.emf.ecore.feature.group</id>
                    </iu>
                    <iu>
                        <id>org.eclipse.emf.common.source.feature.group</id>
                    </iu>
                    <iu>
                        <id>org.eclipse.emf.ecore.source.feature.group</id>
                    </iu>
              </ius>
              <!-- The destination directory to mirror to. -->
              <destination>${project.build.directory}/repository</destination>
              <!-- Whether only strict dependencies should be followed. -->
              <!-- "strict" means perfect version match -->
              <followStrictOnly>false</followStrictOnly>
              <!-- Whether or not to follow optional requirements. -->
              <includeOptional>false</includeOptional>
              <!-- Whether or not to follow non-greedy requirements. -->
              <includeNonGreedy>false</includeNonGreedy>
              <!-- Filter properties. E.g. filter only one platform -->
              <!-- Whether to filter the resulting set of IUs to only -->
              <!-- include the latest version of each IU -->
              <latestVersionOnly>true</latestVersionOnly>
              <!-- don't mirror artifacts, only metadata -->
              <mirrorMetadataOnly>false</mirrorMetadataOnly>
              <!-- whether to compress the content.xml/artifacts.xml -->
              <compress>true</compress>
              <!-- whether to append to the target repository content -->
              <append>true</append>
            </configuration>
          </execution>
          <execution>
            <id>mirror-org.eclipse.pde</id>
            <phase>package</phase>
            <goals>
              <goal>mirror</goal>
            </goals>
            <configuration>
              <source>
                <!-- source repositories to mirror from -->
                <repository>
                  <url>${project.baseUri}/target/repository</url>
                  <layout>p2</layout>
                  <!-- supported layouts are "p2-metadata", "p2-artifacts", and "p2" (for joint repositories; default) -->
                </repository>
              </source>
              <!-- starting from here all configuration parameters are optional -->
              <!-- they are only shown here with default values for documentation purpose -->
              <!-- List of IUs to mirror. If omitted, allIUs will be mirrored. -->
              <!-- Omitted IU version element means latest version of the IU -->
              <ius>
                <iu>
                  <id>org.eclipse.pde.feature.group</id>
                </iu>
              </ius>
              <!-- The destination directory to mirror to. -->
              <destination>${project.build.directory}/repos/org.eclipse.pde</destination>
              <!-- Whether only strict dependencies should be followed. -->
              <!-- "strict" means perfect version match -->
              <followStrictOnly>true</followStrictOnly>
              <!-- Whether or not to follow optional requirements. -->
              <includeOptional>false</includeOptional>
              <!-- Whether or not to follow non-greedy requirements. -->
              <includeNonGreedy>false</includeNonGreedy>
              <!-- Filter properties. E.g. filter only one platform -->
              <!-- Whether to filter the resulting set of IUs to only -->
              <!-- include the latest version of each IU -->
              <latestVersionOnly>true</latestVersionOnly>
              <!-- don't mirror artifacts, only metadata -->
              <mirrorMetadataOnly>false</mirrorMetadataOnly>
              <!-- whether to compress the content.xml/artifacts.xml -->
              <compress>true</compress>
              <!-- whether to append to the target repository content -->
              <append>true</append>
              <includePacked>false</includePacked>
            </configuration>
          </execution>
          <execution>
            <id>mirror-org.eclipse.jdt</id>
            <phase>package</phase>
            <goals>
              <goal>mirror</goal>
            </goals>
            <configuration>
              <source>
                <!-- source repositories to mirror from -->
                <repository>
                  <url>${project.baseUri}/target/repository</url>
                  <layout>p2</layout>
                  <!-- supported layouts are "p2-metadata", "p2-artifacts", and "p2" (for joint repositories; default) -->
                </repository>
              </source>
              <!-- starting from here all configuration parameters are optional -->
              <!-- they are only shown here with default values for documentation purpose -->
              <!-- List of IUs to mirror. If omitted, allIUs will be mirrored. -->
              <!-- Omitted IU version element means latest version of the IU -->
              <ius>
                <iu>
                  <id>org.eclipse.jdt.feature.group</id>
                </iu>
              </ius>
              <!-- The destination directory to mirror to. -->
              <destination>${project.build.directory}/repos/org.eclipse.jdt</destination>
              <!-- Whether only strict dependencies should be followed. -->
              <!-- "strict" means perfect version match -->
              <followStrictOnly>true</followStrictOnly>
              <!-- Whether or not to follow optional requirements. -->
              <includeOptional>false</includeOptional>
              <!-- Whether or not to follow non-greedy requirements. -->
              <includeNonGreedy>false</includeNonGreedy>
              <!-- Filter properties. E.g. filter only one platform -->
              <!-- Whether to filter the resulting set of IUs to only -->
              <!-- include the latest version of each IU -->
              <latestVersionOnly>true</latestVersionOnly>
              <!-- don't mirror artifacts, only metadata -->
              <mirrorMetadataOnly>false</mirrorMetadataOnly>
              <!-- whether to compress the content.xml/artifacts.xml -->
              <compress>true</compress>
              <!-- whether to append to the target repository content -->
              <append>true</append>
              <includePacked>false</includePacked>
            </configuration>
          </execution>
          <execution>
            <id>mirror-org.eclipse.cvs</id>
            <phase>package</phase>
            <goals>
              <goal>mirror</goal>
            </goals>
            <configuration>
              <source>
                <!-- source repositories to mirror from -->
                <repository>
                  <url>${project.baseUri}/target/repository</url>
                  <layout>p2</layout>
                  <!-- supported layouts are "p2-metadata", "p2-artifacts", and "p2" (for joint repositories; default) -->
                </repository>
              </source>
              <!-- starting from here all configuration parameters are optional -->
              <!-- they are only shown here with default values for documentation purpose -->
              <!-- List of IUs to mirror. If omitted, allIUs will be mirrored. -->
              <!-- Omitted IU version element means latest version of the IU -->
              <ius>
                <iu>
                  <id>org.eclipse.cvs.feature.group</id>
                </iu>
              </ius>
              <!-- The destination directory to mirror to. -->
              <destination>${project.build.directory}/repos/org.eclipse.cvs</destination>
              <!-- Whether only strict dependencies should be followed. -->
              <!-- "strict" means perfect version match -->
              <followStrictOnly>true</followStrictOnly>
              <!-- Whether or not to follow optional requirements. -->
              <includeOptional>false</includeOptional>
              <!-- Whether or not to follow non-greedy requirements. -->
              <includeNonGreedy>false</includeNonGreedy>
              <!-- Filter properties. E.g. filter only one platform -->
              <!-- Whether to filter the resulting set of IUs to only -->
              <!-- include the latest version of each IU -->
              <latestVersionOnly>true</latestVersionOnly>
              <!-- don't mirror artifacts, only metadata -->
              <mirrorMetadataOnly>false</mirrorMetadataOnly>
              <!-- whether to compress the content.xml/artifacts.xml -->
              <compress>true</compress>
              <!-- whether to append to the target repository content -->
              <append>true</append>
              <includePacked>false</includePacked>
            </configuration>
          </execution>
          <execution>
            <id>mirror-org.eclipse.pde.api.tools.ee.feature</id>
            <phase>package</phase>
            <goals>
              <goal>mirror</goal>
            </goals>
            <configuration>
              <source>
                <!-- source repositories to mirror from -->
                <repository>
                  <url>${project.baseUri}/target/repository</url>
                  <layout>p2</layout>
                  <!-- supported layouts are "p2-metadata", "p2-artifacts", and "p2" (for joint repositories; default) -->
                </repository>
              </source>
              <!-- starting from here all configuration parameters are optional -->
              <!-- they are only shown here with default values for documentation purpose -->
              <!-- List of IUs to mirror. If omitted, allIUs will be mirrored. -->
              <!-- Omitted IU version element means latest version of the IU -->
              <ius>
                <iu>
                  <id>org.eclipse.pde.api.tools.ee.feature.feature.group</id>
                </iu>
              </ius>
              <!-- The destination directory to mirror to. -->
              <destination>${project.build.directory}/repos/org.eclipse.pde.api.tools.ee.feature</destination>
              <!-- Whether only strict dependencies should be followed. -->
              <!-- "strict" means perfect version match -->
              <followStrictOnly>true</followStrictOnly>
              <!-- Whether or not to follow optional requirements. -->
              <includeOptional>false</includeOptional>
              <!-- Whether or not to follow non-greedy requirements. -->
              <includeNonGreedy>false</includeNonGreedy>
              <!-- Filter properties. E.g. filter only one platform -->
              <!-- Whether to filter the resulting set of IUs to only -->
              <!-- include the latest version of each IU -->
              <latestVersionOnly>true</latestVersionOnly>
              <!-- don't mirror artifacts, only metadata -->
              <mirrorMetadataOnly>false</mirrorMetadataOnly>
              <!-- whether to compress the content.xml/artifacts.xml -->
              <compress>true</compress>
              <!-- whether to append to the target repository content -->
              <append>true</append>
              <includePacked>false</includePacked>
            </configuration>
          </execution>
          <execution>
            <id>mirror-org.eclipse.releng.tools</id>
            <phase>package</phase>
            <goals>
              <goal>mirror</goal>
            </goals>
            <configuration>
              <source>
                <!-- source repositories to mirror from -->
                <repository>
                  <url>${project.baseUri}/target/repository</url>
                  <layout>p2</layout>
                  <!-- supported layouts are "p2-metadata", "p2-artifacts", and "p2" (for joint repositories; default) -->
                </repository>
              </source>
              <!-- starting from here all configuration parameters are optional -->
              <!-- they are only shown here with default values for documentation purpose -->
              <!-- List of IUs to mirror. If omitted, allIUs will be mirrored. -->
              <!-- Omitted IU version element means latest version of the IU -->
              <ius>
                <iu>
                  <id>org.eclipse.releng.tools.feature.group</id>
                </iu>
              </ius>
              <!-- The destination directory to mirror to. -->
              <destination>${project.build.directory}/repos/org.eclipse.releng.tools</destination>
              <!-- Whether only strict dependencies should be followed. -->
              <!-- "strict" means perfect version match -->
              <followStrictOnly>true</followStrictOnly>
              <!-- Whether or not to follow optional requirements. -->
              <includeOptional>false</includeOptional>
              <!-- Whether or not to follow non-greedy requirements. -->
              <includeNonGreedy>false</includeNonGreedy>
              <!-- Filter properties. E.g. filter only one platform -->
              <!-- Whether to filter the resulting set of IUs to only -->
              <!-- include the latest version of each IU -->
              <latestVersionOnly>true</latestVersionOnly>
              <!-- don't mirror artifacts, only metadata -->
              <mirrorMetadataOnly>false</mirrorMetadataOnly>
              <!-- whether to compress the content.xml/artifacts.xml -->
              <compress>true</compress>
              <!-- whether to append to the target repository content -->
              <append>true</append>
              <includePacked>false</includePacked>
            </configuration>
          </execution>
          <execution>
            <id>mirror-org.eclipse.pde.source</id>
            <phase>package</phase>
            <goals>
              <goal>mirror</goal>
            </goals>
            <configuration>
              <source>
                <!-- source repositories to mirror from -->
                <repository>
                  <url>${project.baseUri}/target/repository</url>
                  <layout>p2</layout>
                  <!-- supported layouts are "p2-metadata", "p2-artifacts", and "p2" (for joint repositories; default) -->
                </repository>
              </source>
              <!-- starting from here all configuration parameters are optional -->
              <!-- they are only shown here with default values for documentation purpose -->
              <!-- List of IUs to mirror. If omitted, allIUs will be mirrored. -->
              <!-- Omitted IU version element means latest version of the IU -->
              <ius>
                <iu>
                  <id>org.eclipse.pde.feature.group</id>
                  <id>org.eclipse.pde.source.feature.group</id>
                </iu>
              </ius>
              <!-- The destination directory to mirror to. -->
              <destination>${project.build.directory}/repos/org.eclipse.pde.source</destination>
              <!-- Whether only strict dependencies should be followed. -->
              <!-- "strict" means perfect version match -->
              <followStrictOnly>true</followStrictOnly>
              <!-- Whether or not to follow optional requirements. -->
              <includeOptional>false</includeOptional>
              <!-- Whether or not to follow non-greedy requirements. -->
              <includeNonGreedy>false</includeNonGreedy>
              <!-- Filter properties. E.g. filter only one platform -->
              <!-- Whether to filter the resulting set of IUs to only -->
              <!-- include the latest version of each IU -->
              <latestVersionOnly>true</latestVersionOnly>
              <!-- don't mirror artifacts, only metadata -->
              <mirrorMetadataOnly>false</mirrorMetadataOnly>
              <!-- whether to compress the content.xml/artifacts.xml -->
              <compress>true</compress>
              <!-- whether to append to the target repository content -->
              <append>true</append>
              <includePacked>false</includePacked>
            </configuration>
          </execution>
          <execution>
            <id>mirror-org.eclipse.jdt.source</id>
            <phase>package</phase>
            <goals>
              <goal>mirror</goal>
            </goals>
            <configuration>
              <source>
                <!-- source repositories to mirror from -->
                <repository>
                  <url>${project.baseUri}/target/repository</url>
                  <layout>p2</layout>
                  <!-- supported layouts are "p2-metadata", "p2-artifacts", and "p2" (for joint repositories; default) -->
                </repository>
              </source>
              <!-- starting from here all configuration parameters are optional -->
              <!-- they are only shown here with default values for documentation purpose -->
              <!-- List of IUs to mirror. If omitted, allIUs will be mirrored. -->
              <!-- Omitted IU version element means latest version of the IU -->
              <ius>
                <iu>
                  <id>org.eclipse.jdt.feature.group</id>
                  <id>org.eclipse.jdt.source.feature.group</id>
                </iu>
              </ius>
              <!-- The destination directory to mirror to. -->
              <destination>${project.build.directory}/repos/org.eclipse.jdt.source</destination>
              <!-- Whether only strict dependencies should be followed. -->
              <!-- "strict" means perfect version match -->
              <followStrictOnly>true</followStrictOnly>
              <!-- Whether or not to follow optional requirements. -->
              <includeOptional>false</includeOptional>
              <!-- Whether or not to follow non-greedy requirements. -->
              <includeNonGreedy>false</includeNonGreedy>
              <!-- Filter properties. E.g. filter only one platform -->
              <!-- Whether to filter the resulting set of IUs to only -->
              <!-- include the latest version of each IU -->
              <latestVersionOnly>true</latestVersionOnly>
              <!-- don't mirror artifacts, only metadata -->
              <mirrorMetadataOnly>false</mirrorMetadataOnly>
              <!-- whether to compress the content.xml/artifacts.xml -->
              <compress>true</compress>
              <!-- whether to append to the target repository content -->
              <append>true</append>
              <includePacked>false</includePacked>
            </configuration>
          </execution>
          <execution>
            <id>mirror-org.eclipse.cvs.source</id>
            <phase>package</phase>
            <goals>
              <goal>mirror</goal>
            </goals>
            <configuration>
              <source>
                <!-- source repositories to mirror from -->
                <repository>
                  <url>${project.baseUri}/target/repository</url>
                  <layout>p2</layout>
                  <!-- supported layouts are "p2-metadata", "p2-artifacts", and "p2" (for joint repositories; default) -->
                </repository>
              </source>
              <!-- starting from here all configuration parameters are optional -->
              <!-- they are only shown here with default values for documentation purpose -->
              <!-- List of IUs to mirror. If omitted, allIUs will be mirrored. -->
              <!-- Omitted IU version element means latest version of the IU -->
              <ius>
                <iu>
                  <id>org.eclipse.cvs.feature.group</id>
                  <id>org.eclipse.cvs.source.feature.group</id>
                </iu>
              </ius>
              <!-- The destination directory to mirror to. -->
              <destination>${project.build.directory}/repos/org.eclipse.cvs.source</destination>
              <!-- Whether only strict dependencies should be followed. -->
              <!-- "strict" means perfect version match -->
              <followStrictOnly>true</followStrictOnly>
              <!-- Whether or not to follow optional requirements. -->
              <includeOptional>false</includeOptional>
              <!-- Whether or not to follow non-greedy requirements. -->
              <includeNonGreedy>false</includeNonGreedy>
              <!-- Filter properties. E.g. filter only one platform -->
              <!-- Whether to filter the resulting set of IUs to only -->
              <!-- include the latest version of each IU -->
              <latestVersionOnly>true</latestVersionOnly>
              <!-- don't mirror artifacts, only metadata -->
              <mirrorMetadataOnly>false</mirrorMetadataOnly>
              <!-- whether to compress the content.xml/artifacts.xml -->
              <compress>true</compress>
              <!-- whether to append to the target repository content -->
              <append>true</append>
              <includePacked>false</includePacked>
            </configuration>
          </execution>
          <execution>
            <id>mirror-org.eclipse.sdk.examples.source</id>
            <phase>package</phase>
            <goals>
              <goal>mirror</goal>
            </goals>
            <configuration>
              <source>
                <!-- source repositories to mirror from -->
                <repository>
                  <url>${project.baseUri}/target/repository</url>
                  <layout>p2</layout>
                  <!-- supported layouts are "p2-metadata", "p2-artifacts", and "p2" (for joint repositories; default) -->
                </repository>
              </source>
              <!-- starting from here all configuration parameters are optional -->
              <!-- they are only shown here with default values for documentation purpose -->
              <!-- List of IUs to mirror. If omitted, allIUs will be mirrored. -->
              <!-- Omitted IU version element means latest version of the IU -->
              <ius>
                <iu>
                  <id>org.eclipse.sdk.examples.source.feature.group</id>
                </iu>
              </ius>
              <!-- The destination directory to mirror to. -->
              <destination>${project.build.directory}/repos/org.eclipse.sdk.examples.source</destination>
              <!-- Whether only strict dependencies should be followed. -->
              <!-- "strict" means perfect version match -->
              <followStrictOnly>true</followStrictOnly>
              <!-- Whether or not to follow optional requirements. -->
              <includeOptional>false</includeOptional>
              <!-- Whether or not to follow non-greedy requirements. -->
              <includeNonGreedy>false</includeNonGreedy>
              <!-- Filter properties. E.g. filter only one platform -->
              <!-- Whether to filter the resulting set of IUs to only -->
              <!-- include the latest version of each IU -->
              <latestVersionOnly>true</latestVersionOnly>
              <!-- don't mirror artifacts, only metadata -->
              <mirrorMetadataOnly>false</mirrorMetadataOnly>
              <!-- whether to compress the content.xml/artifacts.xml -->
              <compress>true</compress>
              <!-- whether to append to the target repository content -->
              <append>true</append>
              <includePacked>false</includePacked>
            </configuration>
          </execution>
          <execution>
            <id>mirror-org.eclipse.platform</id>
            <phase>package</phase>
            <goals>
              <goal>mirror</goal>
            </goals>
            <configuration>
              <source>
                <!-- source repositories to mirror from -->
                <repository>
                  <url>${project.baseUri}/target/repository</url>
                  <layout>p2</layout>
                  <!-- supported layouts are "p2-metadata", "p2-artifacts", and "p2" (for joint repositories; default) -->
                </repository>
              </source>
              <!-- starting from here all configuration parameters are optional -->
              <!-- they are only shown here with default values for documentation purpose -->
              <!-- List of IUs to mirror. If omitted, allIUs will be mirrored. -->
              <!-- Omitted IU version element means latest version of the IU -->
              <ius>
                <iu>
                  <id>org.eclipse.platform.feature.group</id>
                  <id>org.eclipse.equinox.p2.user.ui.feature.group</id>
                 
                  <id>org.eclipse.equinox.executable.feature.group</id>
                  <id>org.eclipse.platform.ide</id>
                </iu>
              </ius>
              <!-- The destination directory to mirror to. -->
              <destination>${project.build.directory}/repos/org.eclipse.platform</destination>
              <!-- Whether only strict dependencies should be followed. -->
              <!-- "strict" means perfect version match -->
              <followStrictOnly>true</followStrictOnly>
              <!-- Whether or not to follow optional requirements. -->
              <includeOptional>false</includeOptional>
              <!-- Whether or not to follow non-greedy requirements. -->
              <includeNonGreedy>false</includeNonGreedy>
              <!-- Filter properties. E.g. filter only one platform -->
              <!-- Whether to filter the resulting set of IUs to only -->
              <!-- include the latest version of each IU -->
              <latestVersionOnly>true</latestVersionOnly>
              <!-- don't mirror artifacts, only metadata -->
              <mirrorMetadataOnly>false</mirrorMetadataOnly>
              <!-- whether to compress the content.xml/artifacts.xml -->
              <compress>true</compress>
              <!-- whether to append to the target repository content -->
              <append>true</append>
              <includePacked>false</includePacked>
            </configuration>
          </execution>
          <execution>
            <id>mirror-org.eclipse.platform.source</id>
            <phase>package</phase>
            <goals>
              <goal>mirror</goal>
            </goals>
            <configuration>
              <source>
                <!-- source repositories to mirror from -->
                <repository>
                  <url>${project.baseUri}/target/repository</url>
                  <layout>p2</layout>
                  <!-- supported layouts are "p2-metadata", "p2-artifacts", and "p2" (for joint repositories; default) -->
                </repository>
              </source>
              <!-- starting from here all configuration parameters are optional -->
              <!-- they are only shown here with default values for documentation purpose -->
              <!-- List of IUs to mirror. If omitted, allIUs will be mirrored. -->
              <!-- Omitted IU version element means latest version of the IU -->
              <ius>
                <iu>
                  <id>org.eclipse.platform.feature.group</id>
                  <id>org.eclipse.platform.source.feature.group</id>
                  <id>org.eclipse.equinox.p2.user.ui.feature.group</id>
                  <id>org.eclipse.equinox.p2.user.ui.source.feature.group</id>
                 
                  <id>org.eclipse.equinox.executable.feature.group</id>
                  <id>org.eclipse.platform.ide</id>
                </iu>
              </ius>
              <!-- The destination directory to mirror to. -->
              <destination>${project.build.directory}/repos/org.eclipse.platform.source</destination>
              <!-- Whether only strict dependencies should be followed. -->
              <!-- "strict" means perfect version match -->
              <followStrictOnly>true</followStrictOnly>
              <!-- Whether or not to follow optional requirements. -->
              <includeOptional>false</includeOptional>
              <!-- Whether or not to follow non-greedy requirements. -->
              <includeNonGreedy>false</includeNonGreedy>
              <!-- Filter properties. E.g. filter only one platform -->
              <!-- Whether to filter the resulting set of IUs to only -->
              <!-- include the latest version of each IU -->
              <latestVersionOnly>true</latestVersionOnly>
              <!-- don't mirror artifacts, only metadata -->
              <mirrorMetadataOnly>false</mirrorMetadataOnly>
              <!-- whether to compress the content.xml/artifacts.xml -->
              <compress>true</compress>
              <!-- whether to append to the target repository content -->
              <append>true</append>
              <includePacked>false</includePacked>
            </configuration>
          </execution>
          <execution>
            <id>mirror-org.eclipse.rcp</id>
            <phase>package</phase>
            <goals>
              <goal>mirror</goal>
            </goals>
            <configuration>
              <source>
                <!-- source repositories to mirror from -->
                <repository>
                  <url>${project.baseUri}/target/repository</url>
                  <layout>p2</layout>
                  <!-- supported layouts are "p2-metadata", "p2-artifacts", and "p2" (for joint repositories; default) -->
                </repository>
              </source>
              <!-- starting from here all configuration parameters are optional -->
              <!-- they are only shown here with default values for documentation purpose -->
              <!-- List of IUs to mirror. If omitted, allIUs will be mirrored. -->
              <!-- Omitted IU version element means latest version of the IU -->
              <ius>
                <iu>
                  <id>org.eclipse.rcp.feature.group</id>
                  <id>a.jre.javase</id>
                </iu>
              </ius>
              <!-- The destination directory to mirror to. -->
              <destination>${project.build.directory}/repos/org.eclipse.rcp</destination>
              <!-- Whether only strict dependencies should be followed. -->
              <!-- "strict" means perfect version match -->
              <followStrictOnly>true</followStrictOnly>
              <!-- Whether or not to follow optional requirements. -->
              <includeOptional>false</includeOptional>
              <!-- Whether or not to follow non-greedy requirements. -->
              <includeNonGreedy>false</includeNonGreedy>
              <!-- Filter properties. E.g. filter only one platform -->
              <!-- Whether to filter the resulting set of IUs to only -->
              <!-- include the latest version of each IU -->
              <latestVersionOnly>true</latestVersionOnly>
              <!-- don't mirror artifacts, only metadata -->
              <mirrorMetadataOnly>false</mirrorMetadataOnly>
              <!-- whether to compress the content.xml/artifacts.xml -->
              <compress>true</compress>
              <!-- whether to append to the target repository content -->
              <append>true</append>
              <includePacked>false</includePacked>
            </configuration>
          </execution>
          <execution>
            <id>mirror-org.eclipse.rcp.source</id>
            <phase>package</phase>
            <goals>
              <goal>mirror</goal>
            </goals>
            <configuration>
              <source>
                <!-- source repositories to mirror from -->
                <repository>
                  <url>${project.baseUri}/target/repository</url>
                  <layout>p2</layout>
                  <!-- supported layouts are "p2-metadata", "p2-artifacts", and "p2" (for joint repositories; default) -->
                </repository>
              </source>
              <!-- starting from here all configuration parameters are optional -->
              <!-- they are only shown here with default values for documentation purpose -->
              <!-- List of IUs to mirror. If omitted, allIUs will be mirrored. -->
              <!-- Omitted IU version element means latest version of the IU -->
              <ius>
                <iu>
                  <id>org.eclipse.rcp.feature.group</id>
                  <id>org.eclipse.rcp.source.feature.group</id>
                  <id>a.jre.javase</id>
                  <!-- TODO this needs to be o.e.equinox.executable -->
                  <id>org.eclipse.equinox.executable.feature.group</id>
                </iu>
              </ius>
              <!-- The destination directory to mirror to. -->
              <destination>${project.build.directory}/repos/org.eclipse.rcp.source</destination>
              <!-- Whether only strict dependencies should be followed. -->
              <!-- "strict" means perfect version match -->
              <followStrictOnly>true</followStrictOnly>
              <!-- Whether or not to follow optional requirements. -->
              <includeOptional>false</includeOptional>
              <!-- Whether or not to follow non-greedy requirements. -->
              <includeNonGreedy>false</includeNonGreedy>
              <!-- Filter properties. E.g. filter only one platform -->
              <!-- Whether to filter the resulting set of IUs to only -->
              <!-- include the latest version of each IU -->
              <latestVersionOnly>true</latestVersionOnly>
              <!-- don't mirror artifacts, only metadata -->
              <mirrorMetadataOnly>false</mirrorMetadataOnly>
              <!-- whether to compress the content.xml/artifacts.xml -->
              <compress>true</compress>
              <!-- whether to append to the target repository content -->
              <append>true</append>
              <includePacked>false</includePacked>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
