<?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 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.hisp</groupId>
  <artifactId>dhis2-java-client</artifactId>
  <version>2.4.3</version>
  <packaging>jar</packaging>

  <name>DHIS 2 API client for Java</name>
  <description>DHIS 2 API client for Java.</description>
  <url>https://github.com/dhis2/dhis2-java-client</url>

  <organization>
    <name>UiO</name>
    <url>http://www.dhis2.org</url>
  </organization>

  <licenses>
    <license>
      <name>BSD</name>
      <url>https://opensource.org/license/BSD-3-Clause</url>
    </license>
  </licenses>

  <developers>
    <developer>
      <name>Lars Helge Overland</name>
      <email>lars@dhis2.org</email>
      <organization>UiO</organization>
      <organizationUrl>http://www.uio.no/</organizationUrl>
    </developer>
  </developers>

  <scm>
    <connection>scm:git:git@github.com:dhis2/dhis2-java-client.git</connection>
    <developerConnection>scm:git:git@github.com:dhis2/dhis2-java-client.git</developerConnection>
    <url>git@github.com:dhis2/dhis2-java-client.git</url>
  </scm>

  <issueManagement>
    <system>GitHub</system>
    <url>https://github.com/dhis2/dhis2-java-client</url>
  </issueManagement>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <maven.compiler.release>17</maven.compiler.release>
    <jackson.version>2.19.0</jackson.version>
    <jts.version>1.20.0</jts.version>
    <slf4j.version>2.0.17</slf4j.version>
    <lombok.version>1.18.36</lombok.version>
    <maven-artifact.version>3.9.9</maven-artifact.version>
    <httpclient5.version>5.3.1</httpclient5.version>
    <jackson-datatype-jts.version>2.14</jackson-datatype-jts.version>
    <junit-jupiter.version>5.12.1</junit-jupiter.version>
    <maven-artifact.version>3.9.4</maven-artifact.version>
    <maven-surefire-plugin.version>3.5.2</maven-surefire-plugin.version>
    <commons-io.version>2.19.0</commons-io.version>
    <commons-lang3.version>3.18.0</commons-lang3.version>
    <commons-collections4.version>4.5.0</commons-collections4.version>
    <commons-codec.version>1.18.0</commons-codec.version>
    <spotless.version>2.44.3</spotless.version>
    <gpg.skip>true</gpg.skip>
  </properties>

  <dependencies>
    <!-- Apache Commons -->
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>${commons-io.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-lang3</artifactId>
      <version>${commons-lang3.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-collections4</artifactId>
      <version>${commons-collections4.version}</version>
    </dependency>
    <dependency>
      <groupId>commons-codec</groupId>
      <artifactId>commons-codec</artifactId>
      <version>${commons-codec.version}</version>
    </dependency>
    <!-- Jackson -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>${jackson.version}</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-annotations</artifactId>
      <version>${jackson.version}</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>${jackson.version}</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.dataformat</groupId>
      <artifactId>jackson-dataformat-xml</artifactId>
      <version>${jackson.version}</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.dataformat</groupId>
      <artifactId>jackson-dataformat-yaml</artifactId>
      <version>${jackson.version}</version>
    </dependency>
    <dependency>
      <groupId>com.graphhopper.external</groupId>
      <artifactId>jackson-datatype-jts</artifactId>
      <version>${jackson-datatype-jts.version}</version>
    </dependency>
    <!-- SLF4J -->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>${slf4j.version}</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-simple</artifactId>
      <version>${slf4j.version}</version>
      <scope>test</scope>
    </dependency>
    <!-- Other -->
    <dependency>
      <groupId>org.apache.httpcomponents.client5</groupId>
      <artifactId>httpclient5</artifactId>
      <version>${httpclient5.version}</version>
    </dependency>
    <dependency>
      <groupId>org.locationtech.jts.io</groupId>
      <artifactId>jts-io-common</artifactId>
      <version>${jts.version}</version>
    </dependency>
    <dependency>
      <groupId>org.locationtech.jts</groupId>
      <artifactId>jts-core</artifactId>
      <version>${jts.version}</version>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>${lombok.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-artifact</artifactId>
      <version>${maven-artifact.version}</version>
    </dependency>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter</artifactId>
      <version>${junit-jupiter.version}</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <repositories>
    <repository>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <id>MavenCentral</id>
      <name>Maven repository</name>
      <url>https://repo1.maven.org/maven2</url>
    </repository>
    <repository>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
        <updatePolicy>always</updatePolicy>
      </snapshots>
      <id>PortalSnapshots</id>
      <name>Maven Portal Snapshots</name>
      <url>https://central.sonatype.com/repository/maven-snapshots/</url>
    </repository>
  </repositories>

  <!-- Note: Maven config file exists at .mvn/jvm.config -->

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.0</version>
        <configuration>
          <release>17</release>
          <encoding>UTF-8</encoding>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <version>3.0.1</version>
        <executions>
          <execution>
            <id>attach-sources</id>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>3.3.2</version>
        <executions>
          <execution>
            <id>attach-javadocs</id>
            <goals>
              <goal>jar</goal>
            </goals>
            <configuration>
              <failOnError>false</failOnError>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>${maven-surefire-plugin.version}</version>
        <configuration>
          <excludedGroups>${test.excluded.groups}</excludedGroups>
          <trimStackTrace>false</trimStackTrace>
        </configuration>
      </plugin>
      <plugin>
        <groupId>com.diffplug.spotless</groupId>
        <artifactId>spotless-maven-plugin</artifactId>
        <version>${spotless.version}</version>
        <configuration>
          <upToDateChecking>
            <enabled>true</enabled>
          </upToDateChecking>
          <java>
            <googleJavaFormat/>
            <trimTrailingWhitespace/>
            <licenseHeader>
              <file>license-header</file>
            </licenseHeader>
            <toggleOffOn/>
          </java>
          <pom>
            <includes>
              <include>pom.xml</include>
            </includes>
            <sortPom>
              <expandEmptyElements>false</expandEmptyElements>
            </sortPom>
          </pom>
          <lineEndings>UNIX</lineEndings>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-gpg-plugin</artifactId>
        <version>3.0.1</version>
        <configuration>
          <gpgArguments>
            <arg>--pinentry-mode</arg>
            <arg>loopback</arg>
          </gpgArguments>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>sign</goal>
            </goals>
            <phase>verify</phase>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.sonatype.central</groupId>
        <artifactId>central-publishing-maven-plugin</artifactId>
        <version>0.8.0</version>
        <extensions>true</extensions>
        <configuration>
          <publishingServerId>central</publishingServerId>
          <autoPublish>true</autoPublish>
          <deploymentName>DHIS2 Java Client</deploymentName>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <profiles>
    <profile>
      <id>default</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
        <test.excluded.groups>integration</test.excluded.groups>
      </properties>
    </profile>
    <profile>
      <id>integration</id>
      <properties>
        <test.excluded.groups/>
      </properties>
    </profile>
  </profiles>

</project>
