<%--
Copyright (c) 2020 Eclipse contributors and others.

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
--%>
<%@jet package="org.eclipse.justj.codegen.templates.releng.parent.promotion" class="POMXML" imports="org.eclipse.justj.codegen.model.*" builder="StringBuilder builder = new StringBuilder()" minimize="true"%>
<%Model model = (Model)argument;
  String name = model.getName();%>
<?xml version="1.0" encoding="UTF-8"?>
<%@include file="../../../copyright.xml.jetinc"%>
<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><%=name%></groupId>
    <artifactId><%=name%>.parent</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <relativePath>..</relativePath>
  </parent>

  <groupId><%=name%></groupId>
  <artifactId><%=name%>.promote</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <properties>
    <eclipse.repo>https://download.eclipse.org/releases/2020-06</eclipse.repo>
    <justj.tools.repo>https://download.eclipse.org/justj/tools/updates/nightly/latest</justj.tools.repo>
    <org.eclipse.storage.user>genie.justj</org.eclipse.storage.user>
    <org.eclipse.justj.p2.manager.args>-remote ${org.eclipse.storage.user}@projects-storage.eclipse.org:/home/data/httpd/download.eclipse.org/justj</org.eclipse.justj.p2.manager.args>
    <org.eclipse.justj.p2.manager.relative>sandbox-test/jres/updates</org.eclipse.justj.p2.manager.relative>
    <maven.build.timestamp.format>yyyyMMddHHmm</maven.build.timestamp.format>
    <org.eclipse.justj.p2.manager.build.url>http://www.example.com/</org.eclipse.justj.p2.manager.build.url>
    <build.type>nightly</build.type>
  </properties>

  <build>
    <plugins>
      <plugin>
        <groupId>org.eclipse.tycho.extras</groupId>
        <artifactId>tycho-eclipserun-plugin</artifactId>
        <version>${tycho-version}</version>
        <configuration>
          <executionEnvironment>JavaSE-1.8</executionEnvironment>
          <dependencies>
            <dependency>
              <artifactId>org.eclipse.justj.p2</artifactId>
              <type>eclipse-plugin</type>
            </dependency>
            <dependency>
              <artifactId>org.apache.felix.scr</artifactId>
              <type>eclipse-plugin</type>
            </dependency>
          </dependencies>
          <repositories>
            <repository>
              <id>eclipse.repo</id>
              <layout>p2</layout>
              <url>${eclipse.repo}</url>
            </repository>
            <repository>
              <id>justj.tools.repo</id>
              <layout>p2</layout>
              <url>${justj.tools.repo}</url>
            </repository>
          </repositories>
        </configuration>
        <executions>
          <execution>
            <id>promote</id>
            <goals>
              <goal>eclipse-run</goal>
            </goals>
            <phase>generate-sources</phase>
            <configuration>
              <argLine></argLine>
              <appArgLine>
                -consoleLog
                -application org.eclipse.justj.p2.manager
                -data @None
                -nosplash
                ${org.eclipse.justj.p2.manager.args}
                -retain 5
                -label "JustJ JREs"
                -build-url ${org.eclipse.justj.p2.manager.build.url}
                -root ${project.build.directory}/justj-sync
                -relative ${org.eclipse.justj.p2.manager.relative}
                -version-iu org.eclipse.justj.
                -commit https://git.eclipse.org/c/justj/justj.git/commit/?id=${git.commit}
                -target-url https://download.eclipse.org/justj
                -promote ${project.basedir}/../../org.eclipse.justj.site/target/repository
                -timestamp ${build.timestamp}
                -type ${build.type}
                -breadcrumb "JustJ https://www.eclipse.org/justj/?page=download"
                -favicon https://www.eclipse.org/justj/justj_favicon.ico
                -title-image https://www.eclipse.org/justj/justj_title.svg
                -body-image https://www.eclipse.org/justj/justj_incubation.svg
              </appArgLine>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

</project>
