<?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>
  <parent>
    <groupId>org.optaplanner</groupId>
    <artifactId>optaplanner</artifactId>
    <version>7.46.0.Final</version>
  </parent>

  <artifactId>optaplanner-quarkus-integration</artifactId>
  <packaging>pom</packaging>

  <name>OptaPlanner integration</name>
  <description>
    OptaPlanner solves planning problems.
    This lightweight, embeddable planning engine implements powerful and scalable algorithms
    to optimize business resource scheduling and planning.

    This module contains the Quarkus integration modules.
  </description>
  <url>https://www.optaplanner.org</url>

  <properties>
    <version.io.quarkus>1.8.2.Final</version.io.quarkus>
    <version.org.kie.kogito>0.15.0</version.org.kie.kogito>

    <!-- TODO remove if https://issues.redhat.com/browse/PLANNER-2005 is fixed for 8.x -->
    <!-- TODO Extending kie-parent 7 is extremely dangerous and messy because it's not aligned to quarkus -->
    <version.asm>7.3.1</version.asm>
    <version.commons-cli>1.4</version.commons-cli>
    <version.commons-codec>1.13</version.commons-codec>
    <version.com.google.guava>27.0.1-jre</version.com.google.guava>
    <version.com.google.inject.guice>4.2.1</version.com.google.inject.guice>
    <version.org.apache.httpcomponents.httpclient>4.5.12</version.org.apache.httpcomponents.httpclient>
    <version.org.apache.httpcomponents.httpcore>4.4.13</version.org.apache.httpcomponents.httpcore>
    <version.org.apache.maven>3.6.3</version.org.apache.maven>
    <version.org.apache.maven.plugin-tools>3.6.0</version.org.apache.maven.plugin-tools>
    <version.org.apache.maven.wagon>3.3.3</version.org.apache.maven.wagon>
    <version.org.codehaus.plexus.plexus-classworlds>2.6.0</version.org.codehaus.plexus.plexus-classworlds>
    <version.org.codehaus.plexus.plexus-containers>2.1.0</version.org.codehaus.plexus.plexus-containers>
    <version.org.codehaus.plexus.plexus-interpolation>1.25</version.org.codehaus.plexus.plexus-interpolation>
    <version.org.codehaus.plexus.plexus-utils>3.2.1</version.org.codehaus.plexus.plexus-utils>
    <version.org.eclipse.sisu>0.3.4</version.org.eclipse.sisu>
    <version.org.jsoup>1.11.3</version.org.jsoup>
    <version.org.junit>5.6.2</version.org.junit>
    <version.org.sonatype.plexus.plexus-sec-dispatcher>1.4</version.org.sonatype.plexus.plexus-sec-dispatcher>
    <version.org.wildfly.common>1.5.4.Final-format-001</version.org.wildfly.common>
    <version.org.ow2.asm>8.0.1</version.org.ow2.asm>
    <version.org.jboss.jandex>2.1.3.Final</version.org.jboss.jandex>

    <version.org.jboss.resteasy>4.5.7.Final</version.org.jboss.resteasy>
    <version.com.fasterxml.jackson>2.11.2</version.com.fasterxml.jackson>
    <version.com.fasterxml.jackson.databind>2.11.2</version.com.fasterxml.jackson.databind>

    <!-- TODO Quarkus is riddled with duplicate classes, see https://github.com/quarkusio/quarkus/issues/9834 -->
    <enforcer.failOnDuplicatedClasses>false</enforcer.failOnDuplicatedClasses>

    <!-- TODO Remove when we upgrade to jboss-parent 36 -->
    <version.compiler.plugin>3.8.0-jboss-2</version.compiler.plugin>

  </properties>

  <modules>
    <module>optaplanner-quarkus</module>
    <module>optaplanner-quarkus-jackson</module>
    <module>optaplanner-quarkus-jsonb</module>
  </modules>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-bom</artifactId>
        <version>${version.io.quarkus}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.kie.kogito</groupId>
        <artifactId>kogito-bom</artifactId>
        <version>${version.org.kie.kogito}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <!-- TODO Junit 4 should not be a dependency https://issues.redhat.com/browse/PLANNER-2005 -->
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${version.junit}</version>
        <exclusions>
          <exclusion>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-core</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <configuration>
            <systemPropertyVariables>
              <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
            </systemPropertyVariables>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-failsafe-plugin</artifactId>
          <configuration>
            <systemPropertyVariables>
              <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
            </systemPropertyVariables>
          </configuration>
        </plugin>
        <plugin>
          <groupId>io.quarkus</groupId>
          <artifactId>quarkus-maven-plugin</artifactId>
          <version>${version.io.quarkus}</version>
        </plugin>
        <plugin>
          <groupId>io.quarkus</groupId>
          <artifactId>quarkus-bootstrap-maven-plugin</artifactId>
          <version>${version.io.quarkus}</version>
          <executions>
            <execution>
              <id>generate-extension-descriptor</id>
              <goals>
                <goal>extension-descriptor</goal>
              </goals>
              <phase>process-resources</phase>
              <configuration>
                <deployment>${project.groupId}:${project.artifactId}-deployment:${project.version}
                </deployment>
              </configuration>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

</project>
