<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>ch.so.agi</groupId>
  <artifactId>hop-plugin-parent</artifactId>
  <version>0.1.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <name>Apache Hop Plugin Parent</name>
  <description>Shared Maven configuration for Apache Hop plugin repositories.</description>
  <url>https://github.com/edigonzales/hop-plugin-parent</url>

  <licenses>
    <license>
      <name>MIT</name>
      <url>https://opensource.org/licenses/MIT</url>
    </license>
  </licenses>

  <scm>
    <connection>scm:git:https://github.com/edigonzales/hop-plugin-parent.git</connection>
    <url>https://github.com/edigonzales/hop-plugin-parent</url>
    <tag>HEAD</tag>
  </scm>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.release>21</maven.compiler.release>

    <hop.version>2.19.0</hop.version>
    <junit.version>5.12.0</junit.version>
    <assertj.version>3.27.3</assertj.version>
    <jandex.plugin.version>3.2.7</jandex.plugin.version>

    <maven.compiler.version>3.14.0</maven.compiler.version>
    <maven.surefire.version>3.5.2</maven.surefire.version>
    <maven.jar.version>3.4.2</maven.jar.version>
    <maven.assembly.version>3.7.1</maven.assembly.version>

    <hop.plugin.doclint.version>0.1.0-SNAPSHOT</hop.plugin.doclint.version>

    <!-- Set to -XstartOnFirstThread on macOS when tests create SWT widgets. -->
    <ui.test.argLine/>
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.apache.hop</groupId>
        <artifactId>hop-core</artifactId>
        <version>${hop.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hop</groupId>
        <artifactId>hop-engine</artifactId>
        <version>${hop.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hop</groupId>
        <artifactId>hop-ui</artifactId>
        <version>${hop.version}</version>
      </dependency>
      <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter</artifactId>
        <version>${junit.version}</version>
      </dependency>
      <dependency>
        <groupId>org.assertj</groupId>
        <artifactId>assertj-core</artifactId>
        <version>${assertj.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <repositories>
    <repository>
      <id>central</id>
      <url>https://repo1.maven.org/maven2/</url>
    </repository>
    <repository>
      <id>jars-interlis</id>
      <url>https://jars.interlis.ch/</url>
    </repository>
    <repository>
      <id>sogeo-releases</id>
      <url>https://jars.interlis.guru/releases/</url>
    </repository>
    <repository>
      <id>sogeo-snapshots</id>
      <url>https://jars.interlis.guru/snapshots/</url>
    </repository>
  </repositories>

  <!-- Maven resolves build plugins exclusively through pluginRepositories. hop-plugin-doclint-maven-plugin
       lives in the sogeo snapshot repository, so consumers need these entries. -->
  <pluginRepositories>
    <pluginRepository>
      <id>central</id>
      <url>https://repo1.maven.org/maven2/</url>
    </pluginRepository>
    <pluginRepository>
      <id>jars-interlis</id>
      <url>https://jars.interlis.ch/</url>
    </pluginRepository>
    <pluginRepository>
      <id>sogeo-releases</id>
      <url>https://jars.interlis.guru/releases/</url>
    </pluginRepository>
    <pluginRepository>
      <id>sogeo-snapshots</id>
      <url>https://jars.interlis.guru/snapshots/</url>
    </pluginRepository>
  </pluginRepositories>

  <distributionManagement>
    <repository>
      <id>sogeo-releases</id>
      <url>https://jars.interlis.guru/releases/</url>
    </repository>
    <snapshotRepository>
      <id>sogeo-snapshots</id>
      <url>https://jars.interlis.guru/snapshots/</url>
    </snapshotRepository>
  </distributionManagement>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>${maven.compiler.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${maven.surefire.version}</version>
          <configuration>
            <argLine>${ui.test.argLine}</argLine>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-jar-plugin</artifactId>
          <version>${maven.jar.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>${maven.assembly.version}</version>
        </plugin>
        <plugin>
          <groupId>io.smallrye</groupId>
          <artifactId>jandex-maven-plugin</artifactId>
          <version>${jandex.plugin.version}</version>
          <executions>
            <execution>
              <id>make-index</id>
              <goals>
                <goal>jandex</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>ch.so.agi</groupId>
          <artifactId>hop-plugin-doclint-maven-plugin</artifactId>
          <version>${hop.plugin.doclint.version}</version>
        </plugin>
      </plugins>
    </pluginManagement>

    <plugins>
      <plugin>
        <groupId>ch.so.agi</groupId>
        <artifactId>hop-plugin-doclint-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>validate-hop-plugin-documentation</id>
            <phase>verify</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <profiles>
    <profile>
      <id>mac-arm64</id>
      <activation>
        <os>
          <family>mac</family>
          <arch>aarch64</arch>
        </os>
      </activation>
      <properties>
        <ui.test.argLine>-XstartOnFirstThread</ui.test.argLine>
      </properties>
    </profile>
    <profile>
      <id>mac-intel</id>
      <activation>
        <os>
          <family>mac</family>
          <arch>x86_64</arch>
        </os>
      </activation>
      <properties>
        <ui.test.argLine>-XstartOnFirstThread</ui.test.argLine>
      </properties>
    </profile>
  </profiles>
</project>
