<?xml version="1.0" encoding="UTF-8"?>
<!--
   Copyright (c) 2014, 2020 1C-Soft LLC and others.

   This program and the accompanying materials are made available under
   the terms of the Eclipse Public License 2.0 which is available at
   https://www.eclipse.org/legal/epl-2.0/

   SPDX-License-Identifier: EPL-2.0

   Contributors:
       Vladimir Piskarev (1C) - initial API and implementation
       George Suaridze (1C)
-->
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.eclipse.handly</groupId>
    <artifactId>releng</artifactId>
    <version>1.3.0-SNAPSHOT</version>
    <relativePath>../releng</relativePath>
  </parent>
  <artifactId>repository</artifactId>
  <packaging>eclipse-repository</packaging>
  <properties>
    <handly.version.major>1</handly.version.major>
    <handly.version.minor>3</handly.version.minor>
    <handly.version.service>0</handly.version.service>
    <handly.version>${handly.version.major}.${handly.version.minor}.${handly.version.service}.${buildQualifier}</handly.version>
    <ant-optional.version>1.5.3-1</ant-optional.version>
    <ant-xalan2.version>1.10.7</ant-xalan2.version>
  </properties>
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <executions>
          <execution>
            <id>copy-p2-index</id>
            <phase>process-resources</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>${project.build.outputDirectory}</outputDirectory>
              <resources>
                <resource>
                  <directory>${project.basedir}</directory>
                  <includes>
                    <include>p2.index</include>
                  </includes>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-p2-publisher-plugin</artifactId>
        <executions>
          <execution>
            <id>default-publish-osgi-ee</id>
            <configuration>
              <skip>true</skip>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-p2-repository-plugin</artifactId>
        <executions>
          <execution>
            <id>default-assemble-repository</id>
            <configuration>
              <repositoryName>Eclipse Handly ${handly.version.major}.${handly.version.minor}.${handly.version.service}</repositoryName>
            </configuration>
          </execution>
          <execution>
            <id>default-archive-repository</id>
            <configuration>
              <finalName>handly-repository-${handly.version}</finalName>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <id>version</id>
            <phase>package</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <target>
                <echo message="${handly.version}" file="${project.build.directory}/VERSION"/>
              </target>
            </configuration>
          </execution>
          <execution>
            <id>test-report</id>
            <phase>verify</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <target>
                <junitreport todir="${project.build.directory}">
                  <fileset dir="${project.build.directory}/../../">
                    <include name="**/target/surefire-reports/TEST-*.xml"/>
                  </fileset>
                  <report format="noframes" todir="${project.build.directory}"/>
                </junitreport>
              </target>
            </configuration>
          </execution>
        </executions>
        <dependencies>
          <dependency>
            <groupId>ant</groupId>
            <artifactId>ant-optional</artifactId>
            <version>${ant-optional.version}</version>
          </dependency>
          <dependency>
            <groupId>org.apache.ant</groupId>
            <artifactId>ant-apache-xalan2</artifactId>
            <version>${ant-xalan2.version}</version>
          </dependency>
        </dependencies>
      </plugin>
    </plugins>
  </build>
  <profiles>
    <profile>
      <id>javadoc</id>
      <properties>
        <javadoc.title>Eclipse Handly ${handly.version.major}.${handly.version.minor} API Specification</javadoc.title>
        <javadoc.header>&lt;span style='font-size:small'&gt;&lt;b&gt;Eclipse Handly&lt;/b&gt;&lt;br&gt;version ${handly.version.major}.${handly.version.minor}&lt;/span&gt;</javadoc.header>
        <javadoc.copyright>Copyright (c) 2014, 2020 1C-Soft LLC and others. Made available under the &lt;a target='_blank' href='https://www.eclipse.org/legal/epl-2.0/'&gt;Eclipse Public License 2.0&lt;/a&gt;</javadoc.copyright>
      </properties>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.tycho.extras</groupId>
            <artifactId>tycho-document-bundle-plugin</artifactId>
            <version>${tycho.extras.version}</version>
            <configuration>
              <javadocOptions>
                <encoding>UTF-8</encoding>
                <ignoreError>false</ignoreError>
                <includes>
                  <include>org.eclipse.handly</include>
                  <include>org.eclipse.handly.*</include>
                </includes>
                <excludes>
                  <exclude>org.eclipse.handly.internal.*</exclude>
                  <exclude>org.eclipse.handly.examples.*</exclude>
                </excludes>
                <additionalArguments>
                  <additionalArgument>-windowtitle "${javadoc.title}"</additionalArgument>
                  <additionalArgument>-doctitle "${javadoc.title}"</additionalArgument>
                  <additionalArgument>-header "${javadoc.header}"</additionalArgument>
                  <additionalArgument>-footer "${javadoc.header}"</additionalArgument>
                  <additionalArgument>-bottom "${javadoc.copyright}"</additionalArgument>
                  <additionalArgument>-tag noextend:t:Restriction:</additionalArgument>
                  <additionalArgument>-tag noimplement:t:Restriction:</additionalArgument>
                  <additionalArgument>-tag noinstantiate:t:Restriction:</additionalArgument>
                  <additionalArgument>-tag noreference:a:Restriction:</additionalArgument>
                </additionalArguments>
              </javadocOptions>
            </configuration>
            <executions>
              <execution>
                <id>javadoc</id>
                <phase>package</phase>
                <goals>
                  <goal>javadoc</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>
