<?xml version="1.0" encoding="UTF-8"?>
<!--
   Copyright (c) 2014, 2024 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.8.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>8</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>
        <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, 2024 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>
