<?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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>eu.exeris</groupId>
        <artifactId>exeris-kernel-root</artifactId>
        <version>0.12.0</version>
    </parent>

    <artifactId>exeris-kernel-bom</artifactId>
    <packaging>pom</packaging>

    <name>Exeris Kernel BOM</name>
    <description>Single Source of Truth for Exeris Kernel (Java 26+, FFM, Virtual Threads, Agrona, JCTools).</description>
    <url>https://github.com/exeris-systems/exeris-kernel</url>

    <properties>
        <agrona.version>2.6.1</agrona.version>
        <jctools.version>4.0.7</jctools.version>
        <lz4.version>1.12.0</lz4.version>
        <java.uuid.version>5.2.0</java.uuid.version>

        <jackson.version>3.2.3</jackson.version>
        <postgresql.version>42.7.13</postgresql.version>
        <bouncycastle.version>1.86</bouncycastle.version>
        <hikaricp.version>7.1.0</hikaricp.version>
        <flyway.version>11.20.3</flyway.version>
        <redis.version>7.5.3</redis.version>
        <commons-pool2.version>2.13.1</commons-pool2.version>
        <neo4j.driver.version>6.3.0</neo4j.driver.version>
        <kafka-clients.version>4.3.1</kafka-clients.version>

        <slf4j.version>2.0.20</slf4j.version>
        <logback.version>1.6.4</logback.version>
        <janino.version>3.1.12</janino.version>

        <junit.version>6.1.3</junit.version>
        <assertj.version>4.0.0-M1</assertj.version>
        <mockito.version>5.24.0</mockito.version>
        <testcontainers.version>1.21.4</testcontainers.version>
        <jmh.version>1.37</jmh.version>
        <archunit.version>1.5.1</archunit.version>
        <nimbus.jose.jwt.version>10.10</nimbus.jose.jwt.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>eu.exeris</groupId>
                <artifactId>exeris-kernel-spi</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>eu.exeris</groupId>
                <artifactId>exeris-kernel-core</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>eu.exeris</groupId>
                <artifactId>exeris-kernel-community</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>eu.exeris</groupId>
                <artifactId>exeris-kernel-community-testkit</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>eu.exeris</groupId>
                <artifactId>exeris-kernel-community-kafka</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>eu.exeris</groupId>
                <artifactId>exeris-kernel-tck</artifactId>
                <version>${project.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.agrona</groupId>
                <artifactId>agrona</artifactId>
                <version>${agrona.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jctools</groupId>
                <artifactId>jctools-core</artifactId>
                <version>${jctools.version}</version>
            </dependency>
            <dependency>
                <groupId>at.yawk.lz4</groupId>
                <artifactId>lz4-java</artifactId>
                <version>${lz4.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.uuid</groupId>
                <artifactId>java-uuid-generator</artifactId>
                <version>${java.uuid.version}</version>
            </dependency>

            <dependency>
                <groupId>tools.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>${jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>tools.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>${jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>org.postgresql</groupId>
                <artifactId>postgresql</artifactId>
                <version>${postgresql.version}</version>
            </dependency>
            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcprov-jdk18on</artifactId>
                <version>${bouncycastle.version}</version>
            </dependency>
            <!-- Test-scope only: certificate authoring for the TLS carrier suites, which had no
                 certificate to run against. Same version as bcprov by construction. -->
            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcpkix-jdk18on</artifactId>
                <version>${bouncycastle.version}</version>
            </dependency>
            <dependency>
                <groupId>com.zaxxer</groupId>
                <artifactId>HikariCP</artifactId>
                <version>${hikaricp.version}</version>
            </dependency>
            <dependency>
                <groupId>org.flywaydb</groupId>
                <artifactId>flyway-core</artifactId>
                <version>${flyway.version}</version>
            </dependency>
            <dependency>
                <groupId>org.flywaydb</groupId>
                <artifactId>flyway-database-postgresql</artifactId>
                <version>${flyway.version}</version>
            </dependency>
            <dependency>
                <groupId>redis.clients</groupId>
                <artifactId>jedis</artifactId>
                <version>${redis.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-pool2</artifactId>
                <version>${commons-pool2.version}</version>
            </dependency>
            <dependency>
                <groupId>org.neo4j.driver</groupId>
                <artifactId>neo4j-java-driver</artifactId>
                <version>${neo4j.driver.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.kafka</groupId>
                <artifactId>kafka-clients</artifactId>
                <version>${kafka-clients.version}</version>
            </dependency>

            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>${logback.version}</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.janino</groupId>
                <artifactId>janino</artifactId>
                <version>${janino.version}</version>
            </dependency>

            <dependency>
                <groupId>org.junit</groupId>
                <artifactId>junit-bom</artifactId>
                <version>${junit.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.testcontainers</groupId>
                <artifactId>testcontainers-bom</artifactId>
                <version>${testcontainers.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.assertj</groupId>
                <artifactId>assertj-core</artifactId>
                <version>${assertj.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-core</artifactId>
                <version>${mockito.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-junit-jupiter</artifactId>
                <version>${mockito.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.openjdk.jmh</groupId>
                <artifactId>jmh-core</artifactId>
                <version>${jmh.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.openjdk.jmh</groupId>
                <artifactId>jmh-generator-annprocess</artifactId>
                <version>${jmh.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.tngtech.archunit</groupId>
                <artifactId>archunit-junit5</artifactId>
                <version>${archunit.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.nimbusds</groupId>
                <artifactId>nimbus-jose-jwt</artifactId>
                <version>${nimbus.jose.jwt.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>