<?xml version="1.0" encoding="UTF-8"?>
<!--
   Copyright (C) 2009, Igor Fedorenko <igor@ifedorenko.com>
   Copyright (C) 2011, Chris Aniszczyk <caniszczyk@gmail.com>
   Copyright (C) 2011-2012, Matthias Sohn <matthias.sohn@sap.com>

   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.eclipse.egit</groupId>
    <artifactId>egit-parent</artifactId>
    <version>5.11.0.202102031030-m2</version>
  </parent>

  <artifactId>org.eclipse.egit.repository</artifactId>
  <packaging>eclipse-repository</packaging>

  <name>EGit P2 Repository</name>
  <properties>
    <p2MirrorsURL>https://www.eclipse.org/downloads/download.php?file=${PUBLISH_FOLDER}&amp;format=xml</p2MirrorsURL>
    <p2StatsURL>https://download.eclipse.org/stats/egit/${project.artifactId}</p2StatsURL>
    <!-- At the moment, this list of features needs to be maintained manually. -->
    <statsTrackedArtifacts>org.eclipse.jgit.feature,org.eclipse.jgit.source.feature,org.eclipse.jgit.pgm.feature,org.eclipse.jgit.pgm.source.feature,org.eclipse.jgit.http.apache.feature,org.eclipse.jgit.ssh.apache.feature,org.eclipse.egit.feature,org.eclipse.egit.gitflow.feature,org.eclipse.egit.mylyn.feature,org.eclipse.egit.source.feature</statsTrackedArtifacts>
  </properties>

  <pluginRepositories>
    <pluginRepository>
      <id>jboss-public-repository-group</id>
      <name>JBoss Public Repository Group</name>
      <url>https://repository.jboss.org/nexus/content/groups/public/</url>
    </pluginRepository>
  </pluginRepositories>
  <build>
    <plugins>
      <plugin>
        <groupId>org.jboss.tools.tycho-plugins</groupId>
        <artifactId>repository-utils</artifactId>
        <executions>
          <execution>
            <id>generate-facade</id>
            <phase>package</phase>
            <goals>
              <goal>generate-repository-facade</goal>
            </goals>
            <configuration>
              <siteTemplateFolder>siteTemplate/</siteTemplateFolder>
              <!-- Symbols are used while expanding index.html template -->
              <symbols>
                <update.site.name>EGit Update Site</update.site.name>
                <update.site.description>Use this URL in Eclipse to install EGit and JGit</update.site.description>
                <update.site.version>${project.version}</update.site.version>
                <target.eclipse.version>4.6.0 (Neon) or newer</target.eclipse.version>
              </symbols>
              <associateSites>
                <site>https://download.eclipse.org/egit/github/updates</site>
                <site>https://download.eclipse.org/egit/github/updates-nightly</site>
                <site>https://download.eclipse.org/e4/snapshots/org.eclipse.e4.ui</site>
                <site>https://download.eclipse.org/tools/orbit/downloads/drops/R20201130205003/repository</site>
              </associateSites>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.eclipse.tycho.extras</groupId>
        <artifactId>tycho-eclipserun-plugin</artifactId>
        <version>${tycho-version}</version>
        <executions>
         <execution>
          <id>add-repo-properties</id>
          <goals>
           <goal>eclipse-run</goal>
          </goals>
          <phase>package</phase>
          <configuration>
           <executionEnvironment>JavaSE-1.8</executionEnvironment>
           <appArgLine>-application org.eclipse.wtp.releng.tools.addRepoProperties</appArgLine>
           <!-- See <http://wiki.eclipse.org/Equinox/p2/p2.mirrorsURL>. -->
           <!-- See <http://wiki.eclipse.org/Equinox_p2_download_stats>. -->
           <argLine>-DartifactRepoDirectory=${project.build.directory}/repository -Dp2MirrorsURL=${p2MirrorsURL} -Dp2StatsURI=${p2StatsURL} -DstatsTrackedArtifacts=${statsTrackedArtifacts} -DstatsArtifactsSuffix=-${project.version}</argLine>
           <dependencies>
            <dependency>
             <artifactId>org.eclipse.wtp.releng.tools.feature</artifactId>
             <type>eclipse-feature</type>
            </dependency>
           </dependencies>
           <repositories>
            <repository>
             <url>https://download.eclipse.org/webtools/downloads/drops/R3.19.0/R-3.19.0-20200828030223/repositoryunittests/</url>
             <layout>p2</layout>
            </repository>
            <repository>
             <url>https://download.eclipse.org/releases/neon/201705151400/</url>
             <layout>p2</layout>
            </repository>
           </repositories>
          </configuration>
         </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
