<?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>
  <parent>
    <groupId>io.github.microcks</groupId>
    <artifactId>microcks-operator</artifactId>
    <version>0.0.10</version>
    <relativePath>../pom.xml</relativePath>
  </parent>
  <artifactId>microcks-kube-operator</artifactId>
  <name>Microcks Kubernetes Operator</name>

  <properties>
    <compiler-plugin.version>3.14.0</compiler-plugin.version>
    <surefire-plugin.version>3.5.5</surefire-plugin.version>
    <maven.compiler.parameters>true</maven.compiler.parameters>
    <maven.compiler.source>17</maven.compiler.source>
    <maven.compiler.target>17</maven.compiler.target>
    <quarkus.native.native-image-xmx>8G</quarkus.native.native-image-xmx>
    <quarkus.container-image.group>lbroudoux</quarkus.container-image.group>
    <quarkus.container-image.name>microcks-operator</quarkus.container-image.name>
    <microcks-client.version>0.0.8</microcks-client.version>
    <bouncycastle.version>1.83</bouncycastle.version>
    <commons-lang3.version>3.20.0</commons-lang3.version>
    <commons-logging.version>1.3.3</commons-logging.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>io.github.microcks</groupId>
      <artifactId>microcks-kube-api</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>io.github.microcks</groupId>
      <artifactId>microcks-java-client</artifactId>
      <version>${microcks-client.version}</version>
    </dependency>
    <dependency>
      <groupId>io.quarkiverse.operatorsdk</groupId>
      <artifactId>quarkus-operator-sdk</artifactId>
      <version>${quarkus.operator-sdk.version}</version>
    </dependency>
    <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-qute</artifactId>
    </dependency>
    <dependency>
      <groupId>io.fabric8</groupId>
      <artifactId>openshift-client</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-lang3</artifactId>
      <version>${commons-lang3.version}</version>
    </dependency>
    <dependency>
      <groupId>org.bouncycastle</groupId>
      <artifactId>bcpkix-jdk15to18</artifactId>
      <version>${bouncycastle.version}</version>
    </dependency>
    <!-- Required for microcks-java-client to compile native with GraalVM -->
    <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <version>${commons-logging.version}</version>
    </dependency>

    <dependency>
      <groupId>org.graalvm.sdk</groupId>
      <artifactId>graal-sdk</artifactId>
      <version>25.0.1</version>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.junit.platform</groupId>
      <artifactId>junit-platform-launcher</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>${compiler-plugin.version}</version>
        <configuration>
          <compilerArgs>-Xlint:deprecation</compilerArgs>
        </configuration>
      </plugin>
      <plugin>
        <!--
          Forcing the surefire provider was necessary because @BeforeEach methods were not executed when run from GitHub Actions
          See https://stackoverflow.com/questions/49441049/junit-5-does-not-execute-method-annotated-with-beforeeach/49453348#49453348
        -->
        <artifactId>maven-surefire-plugin</artifactId>
        <version>${surefire-plugin.version}</version>
        <dependencies>
          <dependency>
            <groupId>org.apache.maven.surefire</groupId>
            <artifactId>surefire-junit-platform</artifactId>
            <version>${surefire-plugin.version}</version>
          </dependency>
        </dependencies>
      </plugin>
      <plugin>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-maven-plugin</artifactId>
        <version>${quarkus.version}</version>
        <executions>
          <execution>
            <goals>
              <goal>build</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  <profiles>
    <profile>
      <id>native</id>
      <properties>
        <quarkus.package.type>native</quarkus.package.type>
        <quarkus.native.additional-build-args>-H:ReflectionConfigurationFiles=reflection-config.json.old</quarkus.native.additional-build-args>
        <quarkus.native.resources.includes>k8s/**</quarkus.native.resources.includes>
      </properties>
    </profile>
  </profiles>
</project>
