<?xml version="1.0"?>
<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>

  <groupId>eu.mulk</groupId>
  <artifactId>mulkcms2</artifactId>
  <version>0.1.0-SNAPSHOT</version>

  <properties>
    <maven.compiler.parameters>true</maven.compiler.parameters>
    <maven.compiler.source>11</maven.compiler.source>
    <maven.compiler.target>11</maven.compiler.target>

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

    <antrun-plugin.version>1.8</antrun-plugin.version>
    <compiler-plugin.version>3.8.1</compiler-plugin.version>
    <docker-plugin.version>0.33.0</docker-plugin.version>
    <quarkus-plugin.version>1.4.0.CR1</quarkus-plugin.version>
    <spotless-plugin.version>1.30.0</spotless-plugin.version>
    <surefire-plugin.version>3.0.0-M4</surefire-plugin.version>

    <!-- <quarkus.platform.artifact-id>quarkus-universe-bom</quarkus.platform.artifact-id> -->
    <quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id>
    <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
    <quarkus.platform.version>1.4.0.CR1</quarkus.platform.version>

    <basic-annotations.version>0.2.0</basic-annotations.version>
    <findbugs-jsr305.version>3.0.2</findbugs-jsr305.version>
    <flexmark.version>0.61.10</flexmark.version>
    <hibernate.version>5.4.14.Final</hibernate.version>
    <hibernate-types.version>2.9.8</hibernate-types.version>
    <jakarta-jacc-api.version>1.6.1</jakarta-jacc-api.version>
    <jna.version>5.5.0</jna.version>
    <jsoup.version>1.13.1</jsoup.version>
    <mapstruct.version>1.3.1.Final</mapstruct.version>
    <rome.version>1.12.2</rome.version>
    <testcontainers.version>1.14.0</testcontainers.version>
  </properties>

  <dependencyManagement>
    <dependencies>

      <dependency>
        <groupId>${quarkus.platform.group-id}</groupId>
        <artifactId>${quarkus.platform.artifact-id}</artifactId>
        <version>${quarkus.platform.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>

      <!-- Hibernate PostgreSQL Extra Types -->
      <dependency>
        <groupId>com.vladmihalcea</groupId>
        <artifactId>hibernate-types-52</artifactId>
        <version>${hibernate-types.version}</version>
      </dependency>

      <!-- Annotations -->
      <dependency>
        <groupId>pl.tlinkowski.annotation</groupId>
        <artifactId>pl.tlinkowski.annotation.basic</artifactId>
        <version>${basic-annotations.version}</version>
        <scope>provided</scope>
      </dependency>

      <!-- Jsoup -->
      <dependency>
        <groupId>org.jsoup</groupId>
        <artifactId>jsoup</artifactId>
        <version>${jsoup.version}</version>
      </dependency>

      <!-- FlexMark -->
      <dependency>
        <groupId>com.vladsch.flexmark</groupId>
        <artifactId>flexmark-all</artifactId>
        <version>${flexmark.version}</version>
      </dependency>

      <!-- Rome -->
      <dependency>
        <groupId>com.rometools</groupId>
        <artifactId>rome</artifactId>
        <version>${rome.version}</version>
      </dependency>

      <!-- JNA -->
      <dependency>
        <groupId>net.java.dev.jna</groupId>
        <artifactId>jna</artifactId>
        <version>${jna.version}</version>
      </dependency>

      <!-- JACC -->
      <dependency>
        <groupId>jakarta.security.jacc</groupId>
        <artifactId>jakarta.security.jacc-api</artifactId>
        <version>${jakarta-jacc-api.version}</version>
      </dependency>

      <!-- JOSE for Java -->
      <dependency>
        <groupId>org.bitbucket.b_c</groupId>
        <artifactId>jose4j</artifactId>
        <version>0.7.0</version>
      </dependency>

      <!-- MapStruct -->
      <dependency>
        <groupId>org.mapstruct</groupId>
        <artifactId>mapstruct</artifactId>
        <version>${mapstruct.version}</version>
      </dependency>

      <!-- Annotations -->
      <dependency>
        <groupId>com.google.code.findbugs</groupId>
        <artifactId>jsr305</artifactId>
        <version>${findbugs-jsr305.version}</version>
        <scope>provided</scope>
      </dependency>

      <!-- Testing -->
      <dependency>
        <groupId>org.testcontainers</groupId>
        <artifactId>testcontainers</artifactId>
        <version>${testcontainers.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.testcontainers</groupId>
        <artifactId>postgresql</artifactId>
        <version>${testcontainers.version}</version>
        <scope>test</scope>
      </dependency>

    </dependencies>
  </dependencyManagement>

  <dependencies>

    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-agroal</artifactId>
    </dependency>
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-elytron-security-properties-file</artifactId>
    </dependency>
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-flyway</artifactId>
    </dependency>
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-hibernate-orm-panache</artifactId>
    </dependency>
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-hibernate-validator</artifactId>
    </dependency>
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-jdbc-postgresql</artifactId>
    </dependency>
    <!--
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-kubernetes</artifactId>
    </dependency>
    -->
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-mailer</artifactId>
    </dependency>
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-oidc</artifactId>
    </dependency>
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-resteasy</artifactId>
    </dependency>
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-resteasy-jsonb</artifactId>
    </dependency>
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-resteasy-qute</artifactId>
    </dependency>
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-scheduler</artifactId>
    </dependency>
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-smallrye-jwt</artifactId>
    </dependency>
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-container-image-jib</artifactId>
    </dependency>

    <!-- JNA -->
    <dependency>
      <groupId>net.java.dev.jna</groupId>
      <artifactId>jna</artifactId>
    </dependency>

    <!-- JACC -->
    <dependency>
      <groupId>jakarta.security.jacc</groupId>
      <artifactId>jakarta.security.jacc-api</artifactId>
    </dependency>

    <!-- Hibernate PostgreSQL Extra Types -->
    <dependency>
      <groupId>com.vladmihalcea</groupId>
      <artifactId>hibernate-types-52</artifactId>
    </dependency>

    <!-- Annotations -->
    <dependency>
      <groupId>pl.tlinkowski.annotation</groupId>
      <artifactId>pl.tlinkowski.annotation.basic</artifactId>
      <scope>provided</scope>
    </dependency>

    <!-- Jsoup -->
    <dependency>
      <groupId>org.jsoup</groupId>
      <artifactId>jsoup</artifactId>
    </dependency>

    <!-- FlexMark -->
    <dependency>
      <groupId>com.vladsch.flexmark</groupId>
      <artifactId>flexmark-all</artifactId>
    </dependency>

    <!-- Rome -->
    <dependency>
      <groupId>com.rometools</groupId>
      <artifactId>rome</artifactId>
    </dependency>

    <!-- JOSE for Java -->
    <dependency>
      <groupId>org.bitbucket.b_c</groupId>
      <artifactId>jose4j</artifactId>
    </dependency>

    <!-- MapStruct -->
    <dependency>
      <groupId>org.mapstruct</groupId>
      <artifactId>mapstruct</artifactId>
    </dependency>

    <!-- Annotations -->
    <dependency>
      <groupId>com.google.code.findbugs</groupId>
      <artifactId>jsr305</artifactId>
      <scope>provided</scope>
    </dependency>

    <!-- Testing -->
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-junit5</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>io.rest-assured</groupId>
      <artifactId>rest-assured</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.testcontainers</groupId>
      <artifactId>junit-jupiter</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.testcontainers</groupId>
      <artifactId>testcontainers</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.testcontainers</groupId>
      <artifactId>postgresql</artifactId>
      <scope>test</scope>
    </dependency>

  </dependencies>

  <build>

    <plugins>

      <plugin>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-maven-plugin</artifactId>
        <version>${quarkus-plugin.version}</version>
        <executions>
          <execution>
            <goals>
              <goal>build</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>${compiler-plugin.version}</version>

        <configuration>
          <annotationProcessorPaths>
            <!-- Hibernate -->
            <annotationProcessorPath>
              <groupId>org.hibernate</groupId>
              <artifactId>hibernate-jpamodelgen</artifactId>
              <version>${hibernate.version}</version>
            </annotationProcessorPath>

            <!-- MapStruct -->
            <annotationProcessorPath>
              <groupId>org.mapstruct</groupId>
              <artifactId>mapstruct-processor</artifactId>
              <version>${mapstruct.version}</version>
            </annotationProcessorPath>
          </annotationProcessorPaths>
        </configuration>
      </plugin>

      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>${surefire-plugin.version}</version>
        <configuration>
          <systemProperties>
            <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
            <compilerArgs>
              <compilerArg>-Amapstruct.defaultComponentModel=cdi</compilerArg>
            </compilerArgs>
          </systemProperties>
        </configuration>
      </plugin>

      <!-- Google Java Code Formatter, for enforcing style conventions -->
      <plugin>
        <groupId>com.diffplug.spotless</groupId>
        <artifactId>spotless-maven-plugin</artifactId>
        <version>${spotless-plugin.version}</version>
        <configuration>
          <java>
            <removeUnusedImports/>
            <importOrder>
              <order>java,javax,org,com,de,io,dagger,eu.mulk,</order>
            </importOrder>
            <googleJavaFormat>
              <version>${google.java.format.version}</version>
              <style>GOOGLE</style>
            </googleJavaFormat>
          </java>
        </configuration>
      </plugin>

      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>${antrun-plugin.version}</version>
        <executions>
          <execution>
            <phase>generate-resources</phase>
            <configuration>
              <target>
                <ant target="web.resources" />
              </target>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

    </plugins>

    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <excludes>
          <exclude>META-INF/resources/node_modules/**/*</exclude>
          <exclude>META-INF/resources/package.json</exclude>
          <exclude>META-INF/resources/yarn.lock</exclude>
        </excludes>
        <filtering>false</filtering>
      </resource>
    </resources>

  </build>

  <profiles>

    <profile>

      <id>native</id>

      <activation>
        <property>
          <name>native</name>
        </property>
      </activation>

      <build>
        <plugins>
          <plugin>
            <artifactId>maven-failsafe-plugin</artifactId>
            <version>${surefire-plugin.version}</version>
            <executions>
              <execution>
                <goals>
                  <goal>integration-test</goal>
                  <goal>verify</goal>
                </goals>
                <configuration>
                  <systemProperties>
                    <native.image.path>${project.build.directory}/${project.build.finalName}-runner</native.image.path>
                  </systemProperties>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>

      <properties>
        <quarkus.package.type>native</quarkus.package.type>
      </properties>

    </profile>

  </profiles>

</project>
