<?xml version="1.0" encoding="UTF-8" standalone="no"?><!--
    Copyright (c) 2016, 2019 Chalmers | University of Gothenburg, rt-labs and others.
    All rights reserved. This program and the accompanying materials
    are made available under the terms of the Eclipse Public License v2.0
    which accompanies this distribution, and is available at
    http://www.eclipse.org/legal/epl-v20.html
     
    SPDX-License-Identifier: EPL-2.0
     
    Contributors:
         Chalmers | University of Gothenburg and rt-labs - initial API and implementation and/or initial documentation
         Chalmers | University of Gothenburg - additional features, updated API
 --><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>
    <relativePath>../../pom.xml</relativePath>
    <groupId>org.eclipse.capra</groupId>
    <artifactId>parent</artifactId>
    <version>0.7.0.RC_201904301041</version>
  </parent>
  <groupId>org.eclipse.capra</groupId>
  <artifactId>org.eclipse.capra.p2</artifactId>
  <version>0.7.0.RC_201904301041</version>
  <packaging>eclipse-repository</packaging>
  <name>Capra update site</name>

  <pluginRepositories>
    <pluginRepository>
      <id>jboss-public-repository-group</id>
      <name>JBoss Public Repository Group</name>
      <url>http://repository.jboss.org/nexus/content/groups/public/</url>
    </pluginRepository>

    <pluginRepository>
      <id>jboss-snapshots-repository</id>
      <name>JBoss Snapshots Repository</name>
      <url>https://repository.jboss.org/nexus/content/repositories/snapshots/</url>
    </pluginRepository>
  </pluginRepositories>

  <build>
    <plugins>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-p2-repository-plugin</artifactId>
        <version>${tycho-version}</version>
      </plugin>

      <!-- Generate HTML version of update site -->
      <!-- Also add additional repositories. Note that this
           information could be entered in category.xml but Tycho
           ignores it currently. See
           https://bugs.eclipse.org/bugs/show_bug.cgi?id=453708 -->
      <plugin>
        <groupId>org.jboss.tools.tycho-plugins</groupId>
        <artifactId>repository-utils</artifactId>
        <version>${org.jboss.tools.tycho-plugins.version}</version>

        <executions>
          <execution>
            <id>generate-facade</id>
            <phase>package</phase>

            <goals>
              <goal>generate-repository-facade</goal>
            </goals>

            <configuration>
              <siteTemplateFolder>siteTemplate</siteTemplateFolder>

              <symbols>
                <update.site.name>${project.parent.name}</update.site.name>
              </symbols>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
