<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-interlis-plugin-parent</artifactId>
  <version>0.1.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <name>Apache Hop INTERLIS Plugin</name>
  <description>Apache Hop plugin for reading, transforming, validating and writing INTERLIS transfer data.</description>
  <url>https://github.com/edigonzales/hop-interlis-plugin</url>

  <licenses>
    <license>
      <name>MIT License</name>
      <url>https://opensource.org/license/mit/</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

  <modules>
    <module>hop-interlis-core</module>
    <module>hop-interlis-transforms</module>
    <module>assemblies/assemblies-hop-interlis</module>
  </modules>

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

    <!-- Baseline versions are managed here and nowhere else.
         The INTERLIS libraries form a matching pair: ili2c 5.6.8 belongs to
         iox-ili 1.24.4 (iox-api 1.0.3, ehibasics 1.4.1). Keep them in sync. -->
    <hop.version>2.19.0</hop.version>
    <iox.ili.version>1.24.4</iox.ili.version>
    <ili2c.version>5.6.8</ili2c.version>
    <iox.api.version>1.0.3</iox.api.version>
    <ehibasics.version>1.4.1</ehibasics.version>
    <hop.geometry.type.version>0.2.0-SNAPSHOT</hop.geometry.type.version>
    <jts.version>1.20.0</jts.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.assembly.version>3.7.1</maven.assembly.version>
  </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>

      <!-- INTERLIS stack; matches the combination used by ili2db 5.5.x in production. -->
      <dependency>
        <groupId>ch.interlis</groupId>
        <artifactId>iox-ili</artifactId>
        <version>${iox.ili.version}</version>
      </dependency>
      <dependency>
        <groupId>ch.interlis</groupId>
        <artifactId>ili2c-core</artifactId>
        <version>${ili2c.version}</version>
      </dependency>
      <dependency>
        <groupId>ch.interlis</groupId>
        <artifactId>ili2c-tool</artifactId>
        <version>${ili2c.version}</version>
      </dependency>
      <dependency>
        <groupId>ch.interlis</groupId>
        <artifactId>iox-api</artifactId>
        <version>${iox.api.version}</version>
      </dependency>
      <!-- iox-ili 1.24.4 declares ehibasics 1.3.0 while ili2c-core 5.6.8 declares 1.4.1;
           pin the newer one explicitly so the resolution is deterministic. -->
      <dependency>
        <groupId>ch.ehi</groupId>
        <artifactId>ehibasics</artifactId>
        <version>${ehibasics.version}</version>
      </dependency>

      <!-- Shared Hop geometry layer; never bundled into the INTERLIS plugin ZIP. -->
      <dependency>
        <groupId>ch.so.agi</groupId>
        <artifactId>hop-geometry-type</artifactId>
        <version>${hop.geometry.type.version}</version>
      </dependency>
      <dependency>
        <groupId>org.locationtech.jts</groupId>
        <artifactId>jts-core</artifactId>
        <version>${jts.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>geometry-snapshots</id>
      <url>https://jars.interlis.guru/snapshots/</url>
      <releases><enabled>false</enabled></releases>
      <snapshots><enabled>true</enabled></snapshots>
    </repository>
    <repository>
      <id>jars-interlis</id>
      <name>INTERLIS jars</name>
      <url>https://jars.interlis.ch/</url>
    </repository>
  </repositories>

  <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>
          <configuration>
            <release>${maven.compiler.release}</release>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${maven.surefire.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>${maven.assembly.version}</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>
