<?xml version="1.0" encoding="UTF-8"?>
<!--
    Copyright (c) 2016, 2022 Contributors to the Eclipse Foundation
   
    See the NOTICE file(s) distributed with this work for additional
    information regarding copyright ownership.
   
    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License 2.0 which is available at
    http://www.eclipse.org/legal/epl-2.0
   
    SPDX-License-Identifier: EPL-2.0
 -->
<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>org.eclipse.hono</groupId>
    <artifactId>hono-parent</artifactId>
    <version>1.12.0</version>
  </parent>

  <artifactId>hono-bom</artifactId>
  <packaging>pom</packaging>

  <name>Hono Dependencies</name>
  <description>A "bill-of-materials" for Hono.</description>

  <properties>
    <artemis.image.name>quay.io/enmasse/artemis-base:2.13.0</artemis.image.name>
    <caffeine.version>2.9.3</caffeine.version>
    <californium.version>2.7.0</californium.version>
    <cryptvault.version>1.0.2</cryptvault.version>
    <dispatch-router.image.name>quay.io/interconnectedcloud/qdrouterd:1.17.1</dispatch-router.image.name>
    <guava.version>30.1-jre</guava.version>
    <gson.version>2.8.6</gson.version>
    <infinispan-image.name>quay.io/infinispan/server-native:13.0</infinispan-image.name>
    <jaeger.image.name>jaegertracing/all-in-one:1.29</jaeger.image.name>
    <jaeger.version>1.6.0</jaeger.version>
    <!-- 
      We want to allow users to run containers in a rootless Docker environment.
      For that purpose, the JVM needs to support cgroups v2 based resource limits
      specified on the containers. OpenJDK supports this starting with version 15:
      https://bugs.openjdk.java.net/browse/JDK-8230305
     -->
    <java-base-image.name>docker.io/eclipse-temurin:17-jre-focal</java-base-image.name>
    <jjwt.version>0.11.2</jjwt.version>
    <!--
      Explicitly override Kafka 3.0 client version defined by Quarkus because
      vertx-kafka-client 4.2.x is incompatible with Kafka 3.0 client.
      See https://github.com/quarkusio/quarkus/issues/22000
    -->
    <kafka-client.version>2.8.1</kafka-client.version>
    <kafka.image.name>confluentinc/cp-kafka:6.2.2</kafka.image.name>
    <logback.version>1.2.9</logback.version>
    <mongodb-image.name>mongo:4.4</mongodb-image.name>
    <native.image.name>registry.access.redhat.com/ubi8/ubi-minimal:8.4</native.image.name>
    <netty.version>4.1.72.Final</netty.version>
    <netty.tcnative.version>2.0.46.Final</netty.tcnative.version>
    <postgresql-image.name>postgres:12-alpine</postgresql-image.name>
    <protoparser.version>4.0.3</protoparser.version>
    <protostream.version>4.4.1.Final</protostream.version>
    <proton.version>0.33.10</proton.version>
    <qpid-jms.version>1.4.1</qpid-jms.version>
    <quarkus.platform.version>2.6.3.Final</quarkus.platform.version>
    <slf4j.version>1.7.33</slf4j.version>
    <spring.version>5.3.15</spring.version>
    <spring-boot.version>2.5.9</spring-boot.version>
    <spring-security-crypto.version>5.5.4</spring-security-crypto.version>
    <truth.version>1.1.3</truth.version>
    <vertx.version>4.2.2</vertx.version>
    <zookeeper.image.name>confluentinc/cp-zookeeper:6.2.2</zookeeper.image.name>

    <!-- The port at which the Prometheus scraping endpoint is exposed -->
    <prometheus.scraping.port>8088</prometheus.scraping.port>
    <!-- The port at which the health check server should expose its resources -->
    <vertx.health.port>8088</vertx.health.port>

    <classifier.spring.boot.artifact>exec</classifier.spring.boot.artifact>

  </properties>

  <dependencyManagement>
    <dependencies>

      <!--
        First we import managed dependencies defined by Quarkus
        and then override with Hono specific versions further down below.
      -->
      <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-bom</artifactId>
        <version>${quarkus.platform.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>

      <!-- exclude Quarkus IDE launcher -->
      <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-arc</artifactId>
        <version>${quarkus.platform.version}</version>
        <scope>compile</scope>
        <exclusions>
          <exclusion>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-ide-launcher</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-core</artifactId>
        <version>${quarkus.platform.version}</version>
        <exclusions>
          <exclusion>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-ide-launcher</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-jaeger</artifactId>
        <version>${quarkus.platform.version}</version>
        <exclusions>
          <exclusion>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-ide-launcher</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.sun.activation</groupId>
            <artifactId>jakarta.activation</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-kafka-client</artifactId>
        <version>${quarkus.platform.version}</version>
        <exclusions>
          <exclusion>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-ide-launcher</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-vertx</artifactId>
        <version>${quarkus.platform.version}</version>
        <exclusions>
          <exclusion>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-ide-launcher</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>io.quarkus</groupId>
        <artifactId>quarkus-junit5</artifactId>
        <version>${quarkus.platform.version}</version>
        <scope>test</scope>
        <exclusions>
          <exclusion>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-ide-launcher</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <!-- Hono components -->
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>hono-legal</artifactId>
        <version>${project.version}</version>
        <scope>provided</scope>
        <optional>true</optional>
      </dependency>
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>hono-demo-certs</artifactId>
        <version>${project.version}</version>
        <scope>provided</scope>
        <optional>true</optional>
      </dependency>
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>hono-core</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>hono-client-core</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>hono-client</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>hono-client-common</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>hono-client-amqp-common</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>hono-client-kafka-common</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>hono-client-command</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>hono-client-command-amqp</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>hono-client-command-kafka</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>hono-client-registry</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>hono-client-registry-amqp</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>hono-client-telemetry</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>hono-client-telemetry-amqp</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>hono-client-telemetry-kafka</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>hono-adapter-base</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>hono-adapter-base-quarkus</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>hono-adapter-base-spring</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>hono-service-base</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>hono-service-base-quarkus</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>hono-service-base-spring</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>hono-service-device-registry-base</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>hono-service-device-registry-mongodb-base</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>hono-service-base-jdbc</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>hono-service-command-router-base</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>client-device-connection-infinispan</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>hono-client-application</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>hono-client-application-amqp</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>hono-client-application-kafka</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>hono-client-notification</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>hono-client-notification-amqp</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>hono-client-notification-kafka</artifactId>
        <version>${project.version}</version>
      </dependency>

      <!-- Californium -->
      <dependency>
        <groupId>org.eclipse.californium</groupId>
        <artifactId>californium-core</artifactId>
        <version>${californium.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.californium</groupId>
        <artifactId>element-connector</artifactId>
        <version>${californium.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.californium</groupId>
        <artifactId>scandium</artifactId>
        <version>${californium.version}</version>
      </dependency>

      <!-- Spring -->
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aop</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-expression</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-crypto</artifactId>
        <version>${spring-security-crypto.version}</version>
      </dependency>

      <!-- Spring Boot-->
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot</artifactId>
        <version>${spring-boot.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-autoconfigure</artifactId>
        <version>${spring-boot.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-actuator-autoconfigure</artifactId>
        <version>${spring-boot.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-logging</artifactId>
        <version>${spring-boot.version}</version>
        <scope>runtime</scope>
      </dependency>

      <!-- vert.x -->
      <dependency>
        <groupId>io.vertx</groupId>
        <artifactId>vertx-core</artifactId>
        <version>${vertx.version}</version>
      </dependency>
      <dependency>
        <groupId>io.vertx</groupId>
        <artifactId>vertx-proton</artifactId>
        <version>${vertx.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.qpid</groupId>
        <artifactId>proton-j</artifactId>
        <version>${proton.version}</version>
      </dependency>
      <dependency>
        <groupId>io.vertx</groupId>
        <artifactId>vertx-mqtt</artifactId>
        <version>${vertx.version}</version>
      </dependency>
      <dependency>
        <groupId>io.vertx</groupId>
        <artifactId>vertx-web</artifactId>
        <version>${vertx.version}</version>
      </dependency>
      <dependency>
        <groupId>io.vertx</groupId>
        <artifactId>vertx-bridge-common</artifactId>
        <version>${vertx.version}</version>
      </dependency>
      <dependency>
        <groupId>io.vertx</groupId>
        <artifactId>vertx-web-common</artifactId>
        <version>${vertx.version}</version>
      </dependency>
      <dependency>
        <groupId>io.vertx</groupId>
        <artifactId>vertx-web-client</artifactId>
        <version>${vertx.version}</version>
      </dependency>
      <dependency>
        <groupId>io.vertx</groupId>
        <artifactId>vertx-auth-common</artifactId>
        <version>${vertx.version}</version>
      </dependency>
      <dependency>
        <groupId>io.vertx</groupId>
        <artifactId>vertx-auth-jdbc</artifactId>
        <version>${vertx.version}</version>
      </dependency>
      <dependency>
        <groupId>io.vertx</groupId>
        <artifactId>vertx-health-check</artifactId>
        <version>${vertx.version}</version>
      </dependency>
      <dependency>
        <groupId>io.vertx</groupId>
        <artifactId>vertx-micrometer-metrics</artifactId>
        <version>${vertx.version}</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>io.vertx</groupId>
        <artifactId>vertx-jdbc-client</artifactId>
        <version>${vertx.version}</version>
      </dependency>
      <dependency>
        <groupId>io.vertx</groupId>
        <artifactId>vertx-sql-client</artifactId>
        <version>${vertx.version}</version>
      </dependency>
      <dependency>
        <groupId>io.vertx</groupId>
        <artifactId>vertx-auth-mongo</artifactId>
        <version>${vertx.version}</version>
      </dependency>
      <dependency>
        <groupId>io.vertx</groupId>
        <artifactId>vertx-mongo-client</artifactId>
        <version>${vertx.version}</version>
      </dependency>
      <dependency>
        <groupId>io.vertx</groupId>
        <artifactId>vertx-kafka-client</artifactId>
        <version>${vertx.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka-clients</artifactId>
        <version>${kafka-client.version}</version>
      </dependency>
      <dependency>
        <groupId>io.vertx</groupId>
        <artifactId>vertx-codegen</artifactId>
        <version>${vertx.version}</version>
      </dependency>

      <!-- Netty -->
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-tcnative</artifactId>
        <version>${netty.tcnative.version}</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-tcnative-boringssl-static</artifactId>
        <version>${netty.tcnative.version}</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-buffer</artifactId>
        <version>${netty.version}</version>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-codec</artifactId>
        <version>${netty.version}</version>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-codec-dns</artifactId>
        <version>${netty.version}</version>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-codec-haproxy</artifactId>
        <version>${netty.version}</version>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-codec-http</artifactId>
        <version>${netty.version}</version>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-codec-http2</artifactId>
        <version>${netty.version}</version>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-codec-mqtt</artifactId>
        <version>${netty.version}</version>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-codec-socks</artifactId>
        <version>${netty.version}</version>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-common</artifactId>
        <version>${netty.version}</version>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-handler</artifactId>
        <version>${netty.version}</version>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-handler-proxy</artifactId>
        <version>${netty.version}</version>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-resolver</artifactId>
        <version>${netty.version}</version>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-resolver-dns</artifactId>
        <version>${netty.version}</version>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-transport</artifactId>
        <version>${netty.version}</version>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-transport-native-epoll</artifactId>
        <classifier>linux-x86_64</classifier>
        <version>${netty.version}</version>
        <optional>true</optional>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-transport-native-kqueue</artifactId>
        <classifier>osx-x86_64</classifier>
        <version>${netty.version}</version>
        <optional>true</optional>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-transport-native-unix-common</artifactId>
        <version>${netty.version}</version>
        <optional>true</optional>
      </dependency>

      <!-- Logging -->
      <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>${logback.version}</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>${slf4j.version}</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jul-to-slf4j</artifactId>
        <version>${slf4j.version}</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>log4j-over-slf4j</artifactId>
        <version>${slf4j.version}</version>
        <scope>runtime</scope>
      </dependency>

      <!-- Tracing -->
      <dependency>
        <groupId>io.jaegertracing</groupId>
        <artifactId>jaeger-client</artifactId>
        <version>${jaeger.version}</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>io.jaegertracing</groupId>
        <artifactId>jaeger-core</artifactId>
        <version>${jaeger.version}</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>io.jaegertracing</groupId>
        <artifactId>jaeger-thrift</artifactId>
        <version>${jaeger.version}</version>
        <scope>runtime</scope>
        <exclusions>
          <!-- libthrift 0.14.1 used by jaeger-thrift 1.6.0 unnecessarily includes tomcat-embed-core dependency - see THRIFT-5375;
               TODO remove exclusion after updating jaeger to version with newer libthrift  -->
          <exclusion>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-core</artifactId>
          </exclusion>
          <!-- 
            Use jakarta.annotations instead.
          -->
          <exclusion>
            <groupId>javax.annotation</groupId>
            <artifactId>javax.annotation-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>io.jaegertracing</groupId>
        <artifactId>jaeger-micrometer</artifactId>
        <version>${jaeger.version}</version>
        <scope>runtime</scope>
      </dependency>
      <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>${gson.version}</version>
        <scope>runtime</scope>
      </dependency>

      <!-- Other -->
      <dependency>
        <groupId>com.github.ben-manes.caffeine</groupId>
        <artifactId>caffeine</artifactId>
        <version>${caffeine.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.checkerframework</groupId>
            <artifactId>checker-qual</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.google.errorprone</groupId>
            <artifactId>error_prone_annotations</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>io.jsonwebtoken</groupId>
        <artifactId>jjwt-api</artifactId>
        <version>${jjwt.version}</version>
      </dependency>
      <dependency>
        <groupId>io.jsonwebtoken</groupId>
        <artifactId>jjwt-impl</artifactId>
        <version>${jjwt.version}</version>
      </dependency>
      <dependency>
        <groupId>io.jsonwebtoken</groupId>
        <artifactId>jjwt-jackson</artifactId>
        <version>${jjwt.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>${guava.version}</version>
        <exclusions>
          <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>failureaccess</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>listenablefuture</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.google.code.findbugs</groupId>
            <artifactId>jsr305</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.checkerframework</groupId>
            <artifactId>checker-qual</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.google.errorprone</groupId>
            <artifactId>error_prone_annotations</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.google.j2objc</groupId>
            <artifactId>j2objc-annotations</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>animal-sniffer-annotations</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>com.bol</groupId>
        <artifactId>cryptvault</artifactId>
        <version>${cryptvault.version}</version>
      </dependency>

      <!-- Testing -->
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>core-test-utils</artifactId>
        <version>${project.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>client-test-utils</artifactId>
        <version>${project.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>adapter-base-test-utils</artifactId>
        <version>${project.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.eclipse.hono</groupId>
        <artifactId>kafka-test-utils</artifactId>
        <version>${project.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.qpid</groupId>
        <artifactId>qpid-jms-client</artifactId>
        <version>${qpid-jms.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>io.vertx</groupId>
        <artifactId>vertx-junit5</artifactId>
        <version>${vertx.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>com.google.truth</groupId>
        <artifactId>truth</artifactId>
        <version>${truth.version}</version>
        <scope>test</scope>
        <!-- exclude JUnit 4, see https://github.com/google/truth/issues/333 -->
        <exclusions>
          <exclusion>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-maven-plugin</artifactId>
          <version>${spring-boot.version}</version>
          <executions>
            <execution>
              <goals>
                <goal>repackage</goal>
              </goals>
              <configuration>
                <attach>false</attach>
                <classifier>${classifier.spring.boot.artifact}</classifier>
                <excludes>
                  <exclude>
                    <groupId>${project.groupId}</groupId>
                    <artifactId>hono-legal</artifactId>
                  </exclude>
                  <exclude>
                    <groupId>${project.groupId}</groupId>
                    <artifactId>hono-demo-certs</artifactId>
                  </exclude>
                </excludes>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>io.quarkus</groupId>
          <artifactId>quarkus-maven-plugin</artifactId>
          <version>${quarkus.platform.version}</version>
          <executions>
            <execution>
              <goals>
                <goal>build</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>
