<?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>ai.timefold.solver</groupId>
    <artifactId>timefold-solver-parent</artifactId>
    <version>1.4.0</version>
    <relativePath>../../pom.xml</relativePath>
  </parent>

  <artifactId>timefold-solver-bom</artifactId>
  <packaging>pom</packaging>

  <properties>
    <version.ai.timefold.solver>${project.version}</version.ai.timefold.solver>
  </properties>

  <name>Timefold Solver BOM (Bill Of Materials)</name>
  <description>
    Import this BOM in your dependencyManagement if you want to depend on multiple Timefold artifacts.
  </description>
  <url>https://timefold.ai</url>

  <dependencyManagement>
    <dependencies>
      <!--
        IMPORTANT: Only declare modules of groupId ai.timefold.solver.
        Do not declare external dependencies, this is not a platform bom.
        Do not declare <scope> or <optional>.
        Always declare the sources jar and the test-jar too.
      -->
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-core</artifactId>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-core-impl</artifactId>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-core-impl</artifactId>
        <version>${version.ai.timefold.solver}</version>
        <classifier>sources</classifier>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-core-impl</artifactId>
        <type>test-jar</type>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-constraint-streams</artifactId>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-constraint-streams</artifactId>
        <version>${version.ai.timefold.solver}</version>
        <classifier>sources</classifier>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-constraint-streams</artifactId>
        <type>test-jar</type>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-persistence-common</artifactId>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-persistence-common</artifactId>
        <version>${version.ai.timefold.solver}</version>
        <classifier>sources</classifier>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-persistence-common</artifactId>
        <type>test-jar</type>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-jaxb</artifactId>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-jaxb</artifactId>
        <version>${version.ai.timefold.solver}</version>
        <classifier>sources</classifier>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-jaxb</artifactId>
        <type>test-jar</type>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-jackson</artifactId>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-jackson</artifactId>
        <version>${version.ai.timefold.solver}</version>
        <classifier>sources</classifier>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-jackson</artifactId>
        <type>test-jar</type>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-jsonb</artifactId>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-jsonb</artifactId>
        <version>${version.ai.timefold.solver}</version>
        <classifier>sources</classifier>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-jsonb</artifactId>
        <type>test-jar</type>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-jpa</artifactId>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-jpa</artifactId>
        <version>${version.ai.timefold.solver}</version>
        <classifier>sources</classifier>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-jpa</artifactId>
        <type>test-jar</type>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-webui</artifactId>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-webui</artifactId>
        <version>${version.ai.timefold.solver}</version>
        <classifier>sources</classifier>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-benchmark</artifactId>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-benchmark</artifactId>
        <version>${version.ai.timefold.solver}</version>
        <classifier>sources</classifier>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-benchmark</artifactId>
        <type>test-jar</type>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-test</artifactId>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-test</artifactId>
        <version>${version.ai.timefold.solver}</version>
        <classifier>sources</classifier>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-test</artifactId>
        <type>test-jar</type>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-examples</artifactId>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-examples</artifactId>
        <version>${version.ai.timefold.solver}</version>
        <classifier>sources</classifier>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-examples</artifactId>
        <type>test-jar</type>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <!-- quarkus-integration -->
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-quarkus</artifactId>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-quarkus</artifactId>
        <version>${version.ai.timefold.solver}</version>
        <classifier>sources</classifier>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-quarkus</artifactId>
        <type>test-jar</type>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-quarkus-deployment</artifactId>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-quarkus-deployment</artifactId>
        <version>${version.ai.timefold.solver}</version>
        <classifier>sources</classifier>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-quarkus-deployment</artifactId>
        <type>test-jar</type>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-quarkus-jackson</artifactId>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-quarkus-jackson</artifactId>
        <version>${version.ai.timefold.solver}</version>
        <classifier>sources</classifier>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-quarkus-jackson</artifactId>
        <type>test-jar</type>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-quarkus-jackson-deployment</artifactId>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-quarkus-jackson-deployment</artifactId>
        <version>${version.ai.timefold.solver}</version>
        <classifier>sources</classifier>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-quarkus-jackson-deployment</artifactId>
        <type>test-jar</type>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-quarkus-jackson-integration-test</artifactId>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-quarkus-jackson-integration-test</artifactId>
        <version>${version.ai.timefold.solver}</version>
        <classifier>sources</classifier>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-quarkus-jackson-integration-test</artifactId>
        <type>test-jar</type>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-quarkus-jsonb</artifactId>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-quarkus-jsonb</artifactId>
        <version>${version.ai.timefold.solver}</version>
        <classifier>sources</classifier>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-quarkus-jsonb</artifactId>
        <type>test-jar</type>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-quarkus-jsonb-deployment</artifactId>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-quarkus-jsonb-deployment</artifactId>
        <version>${version.ai.timefold.solver}</version>
        <classifier>sources</classifier>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-quarkus-jsonb-deployment</artifactId>
        <type>test-jar</type>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-quarkus-jsonb-integration-test</artifactId>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-quarkus-jsonb-integration-test</artifactId>
        <version>${version.ai.timefold.solver}</version>
        <classifier>sources</classifier>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-quarkus-jsonb-integration-test</artifactId>
        <type>test-jar</type>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-quarkus-benchmark</artifactId>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-quarkus-benchmark</artifactId>
        <version>${version.ai.timefold.solver}</version>
        <classifier>sources</classifier>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-quarkus-benchmark</artifactId>
        <type>test-jar</type>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-quarkus-benchmark-deployment</artifactId>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-quarkus-benchmark-deployment</artifactId>
        <version>${version.ai.timefold.solver}</version>
        <classifier>sources</classifier>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-quarkus-benchmark-deployment</artifactId>
        <type>test-jar</type>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <!-- spring-integration -->
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-spring-boot-autoconfigure</artifactId>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-spring-boot-autoconfigure</artifactId>
        <version>${version.ai.timefold.solver}</version>
        <classifier>sources</classifier>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-spring-boot-autoconfigure</artifactId>
        <type>test-jar</type>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-spring-boot-starter</artifactId>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-spring-boot-starter</artifactId>
        <version>${version.ai.timefold.solver}</version>
        <classifier>sources</classifier>
      </dependency>
      <dependency>
        <groupId>ai.timefold.solver</groupId>
        <artifactId>timefold-solver-spring-boot-starter</artifactId>
        <type>test-jar</type>
        <version>${version.ai.timefold.solver}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

</project>
