<?xml version="1.0" encoding="UTF-8"?>
<!--

    Copyright (c) 2019, 2020 Oracle and/or its affiliates.

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

-->

<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
        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>io.helidon</groupId>
        <artifactId>helidon-bom</artifactId>
        <version>2.0.0-RC2</version>
        <relativePath>../bom/pom.xml</relativePath>
    </parent>
    <artifactId>helidon-dependencies</artifactId>
    <packaging>pom</packaging>

    <name>Helidon Dependencies</name>
    <description>Maven dependency management for Helidon applications</description>

    <properties>
        <!--
        Changing these versions requires approval for a new third party dependency!
        -->
        <version.lib.activation-api>1.2.2</version.lib.activation-api>
        <version.lib.animal-sniffer>1.18</version.lib.animal-sniffer>
        <version.lib.annotation-api>1.3.5</version.lib.annotation-api>
        <version.lib.apache-httpclient>4.5.10</version.lib.apache-httpclient>
        <version.lib.brave-opentracing>0.35.0</version.lib.brave-opentracing>
        <version.lib.cdi-api>2.0.2</version.lib.cdi-api>
        <version.lib.commons-logging>1.2</version.lib.commons-logging>
        <version.lib.dropwizard.metrics>4.1.2</version.lib.dropwizard.metrics>
        <version.lib.eclipselink>2.7.4</version.lib.eclipselink>
        <version.lib.el-api>3.0.3</version.lib.el-api>
        <version.lib.el-impl>3.0.2</version.lib.el-impl>
        <version.lib.etcd4j>2.17.0</version.lib.etcd4j>
        <version.lib.failsafe>2.3.1</version.lib.failsafe>
        <version.lib.google-api-client>1.30.5</version.lib.google-api-client>
        <version.lib.google-error-prone>2.3.3</version.lib.google-error-prone>
        <version.lib.graalvm>19.2.0</version.lib.graalvm>
        <version.lib.grpc>1.27.1</version.lib.grpc>
        <version.lib.guava>28.1-jre</version.lib.guava>
        <version.lib.h2>1.4.199</version.lib.h2>
        <version.lib.hamcrest>1.3</version.lib.hamcrest>
        <version.lib.hibernate>5.4.4.Final</version.lib.hibernate>
        <version.lib.hikaricp>3.4.1</version.lib.hikaricp>
        <version.lib.hystrix>1.5.18</version.lib.hystrix>
        <version.lib.inject>1.0</version.lib.inject>
        <version.lib.interceptor-api>1.2.5</version.lib.interceptor-api>
        <version.lib.jackson>2.10.0</version.lib.jackson>
        <version.lib.jaegertracing>1.1.0</version.lib.jaegertracing>
        <version.lib.jandex>2.1.1.Final</version.lib.jandex>
        <version.lib.jaxb-api>2.3.3</version.lib.jaxb-api>
        <version.lib.jaxb-core>2.3.0.1</version.lib.jaxb-core>
        <version.lib.jaxb-impl>2.3.2</version.lib.jaxb-impl>
        <version.lib.jaxrs-api>2.1.6</version.lib.jaxrs-api>
        <version.lib.jboss.classfilewriter>1.2.4.Final</version.lib.jboss.classfilewriter>
        <version.lib.jboss.logging>3.2.1.Final</version.lib.jboss.logging>
        <version.lib.jboss.transaction-spi>7.6.0.Final</version.lib.jboss.transaction-spi>
        <version.lib.jboss.transaction-api>1.0.0.Final</version.lib.jboss.transaction-api>
        <version.lib.jedis>3.1.0</version.lib.jedis>
        <version.lib.jersey>2.31</version.lib.jersey>
        <version.lib.jsonb-api>1.0.2</version.lib.jsonb-api>
        <version.lib.jsonp-api>1.1.6</version.lib.jsonp-api>
        <version.lib.jsonp-impl>1.1.6</version.lib.jsonp-impl>
        <version.lib.junit>5.6.2</version.lib.junit>
        <version.lib.maven-wagon>2.10</version.lib.maven-wagon>
        <version.lib.microprofile-config>1.4</version.lib.microprofile-config>
        <version.lib.microprofile-health>2.1</version.lib.microprofile-health>
        <version.lib.microprofile-jwt>1.1.1</version.lib.microprofile-jwt>
        <version.lib.microprofile-metrics-api>2.2</version.lib.microprofile-metrics-api>
        <version.lib.microprofile-openapi-api>1.1.2</version.lib.microprofile-openapi-api>
        <version.lib.microprofile-fault-tolerance-api>2.0.2</version.lib.microprofile-fault-tolerance-api>
        <version.lib.microprofile-tracing>1.3.1</version.lib.microprofile-tracing>
        <version.lib.microprofile-rest-client>1.3.3</version.lib.microprofile-rest-client>
        <version.lib.microprofile-reactive-messaging-api>1.0</version.lib.microprofile-reactive-messaging-api>
        <version.lib.microprofile-reactive-streams-operators-api>1.0.1</version.lib.microprofile-reactive-streams-operators-api>
        <version.lib.microprofile-reactive-streams-operators-core>1.0.1</version.lib.microprofile-reactive-streams-operators-core>
        <version.lib.mockito>2.23.4</version.lib.mockito>
        <version.lib.mongodb.reactivestreams>1.11.0</version.lib.mongodb.reactivestreams>
        <version.lib.oracle.ojdbc10>19.3.0.0</version.lib.oracle.ojdbc10>
        <version.lib.mysql-connector-java>8.0.11</version.lib.mysql-connector-java>
        <version.lib.narayana>5.9.3.Final</version.lib.narayana>
        <version.lib.netty>4.1.45.Final</version.lib.netty>
        <version.lib.oci-java-sdk-objectstorage>1.10.0</version.lib.oci-java-sdk-objectstorage>
        <version.lib.ojdbc8>19.6.0.0</version.lib.ojdbc8>
        <version.lib.opentracing>0.33.0</version.lib.opentracing>
        <version.lib.opentracing.grpc>0.2.1</version.lib.opentracing.grpc>
        <version.lib.opentracing.tracerresolver>0.1.8</version.lib.opentracing.tracerresolver>
        <version.lib.persistence-api>2.2.3</version.lib.persistence-api>
        <version.lib.prometheus>0.6.0</version.lib.prometheus>
        <version.lib.reactivestreams>1.0.3</version.lib.reactivestreams>
        <version.lib.slf4j>1.7.26</version.lib.slf4j>
        <version.lib.smallrye-openapi>1.2.0</version.lib.smallrye-openapi>
        <version.lib.snakeyaml>1.24</version.lib.snakeyaml>
        <version.lib.transaction-api>1.3.3</version.lib.transaction-api>
        <version.lib.typesafe-config>1.4.0</version.lib.typesafe-config>
        <version.lib.tyrus>1.15</version.lib.tyrus>
        <version.lib.ucp>${version.lib.ojdbc8}</version.lib.ucp>
        <version.lib.validation-api>2.0.2</version.lib.validation-api>
        <version.lib.websockets-api>1.1.2</version.lib.websockets-api>
        <version.lib.weld>3.1.3.Final</version.lib.weld>
        <version.lib.weld-api>3.1.SP2</version.lib.weld-api>
        <version.lib.yasson>1.0.6</version.lib.yasson>
        <version.lib.zipkin>2.12.5</version.lib.zipkin>
        <version.lib.zipkin.sender-urlconnection>2.12.0</version.lib.zipkin.sender-urlconnection>
        <version.lib.kafka>2.5.0</version.lib.kafka>
        <version.lib.kafka-junit5>3.2.1</version.lib.kafka-junit5>
        <version.lib.reactive-streams-tck>1.0.3</version.lib.reactive-streams-tck>
        <version.lib.scala>2.12.10</version.lib.scala>
        <version.lib.zookeeper>3.5.7</version.lib.zookeeper>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.glassfish.jersey.core</groupId>
                <artifactId>jersey-server</artifactId>
                <version>${version.lib.jersey}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.glassfish.hk2.external</groupId>
                        <artifactId>jakarta.inject</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.glassfish.jersey.media</groupId>
                        <artifactId>jersey-media-jaxb</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jersey.core</groupId>
                <artifactId>jersey-client</artifactId>
                <version>${version.lib.jersey}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.glassfish.hk2.external</groupId>
                        <artifactId>jakarta.inject</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jersey.inject</groupId>
                <artifactId>jersey-hk2</artifactId>
                <version>${version.lib.jersey}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.glassfish.hk2.external</groupId>
                        <artifactId>jakarta.inject</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <!-- Explicitly force jackson-annotations to use proper version; bom doesn't -->
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-annotations</artifactId>
                <version>${version.lib.jackson}</version>
            </dependency>
            <dependency>
                <groupId>io.jaegertracing</groupId>
                <artifactId>jaeger-client</artifactId>
                <version>${version.lib.jaegertracing}</version>
                <exclusions>
                    <exclusion>
                        <groupId>javax.annotation</groupId>
                        <artifactId>javax.annotation-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>io.opentracing</groupId>
                <artifactId>opentracing-util</artifactId>
                <version>${version.lib.opentracing}</version>
                <exclusions>
                    <exclusion>
                        <groupId>javax.annotation</groupId>
                        <artifactId>javax.annotation-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>io.opentracing</groupId>
                <artifactId>opentracing-api</artifactId>
                <version>${version.lib.opentracing}</version>
            </dependency>
            <dependency>
                <groupId>io.opentracing</groupId>
                <artifactId>opentracing-noop</artifactId>
                <version>${version.lib.opentracing}</version>
            </dependency>
            <dependency>
                <groupId>io.opentracing.contrib</groupId>
                <artifactId>opentracing-tracerresolver</artifactId>
                <version>${version.lib.opentracing.tracerresolver}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.xml.bind</groupId>
                <artifactId>jakarta.xml.bind-api</artifactId>
                <version>${version.lib.jaxb-api}</version>
            </dependency>
            <dependency>
                <groupId>com.sun.xml.bind</groupId>
                <artifactId>jaxb-core</artifactId>
                <version>${version.lib.jaxb-core}</version>
            </dependency>
            <dependency>
                <groupId>com.sun.xml.bind</groupId>
                <artifactId>jaxb-impl</artifactId>
                <version>${version.lib.jaxb-impl}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.ws.rs</groupId>
                <artifactId>jakarta.ws.rs-api</artifactId>
                <version>${version.lib.jaxrs-api}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.enterprise</groupId>
                <artifactId>jakarta.enterprise.cdi-api</artifactId>
                <version>${version.lib.cdi-api}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.el</groupId>
                <artifactId>jakarta.el-api</artifactId>
                <version>${version.lib.el-api}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.annotation</groupId>
                <artifactId>jakarta.annotation-api</artifactId>
                <version>${version.lib.annotation-api}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.interceptor</groupId>
                <artifactId>jakarta.interceptor-api</artifactId>
                <version>${version.lib.interceptor-api}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.inject</groupId>
                <artifactId>jakarta.inject-api</artifactId>
                <version>${version.lib.inject}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.json</groupId>
                <artifactId>jakarta.json-api</artifactId>
                <version>${version.lib.jsonp-api}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.json.bind</groupId>
                <artifactId>jakarta.json.bind-api</artifactId>
                <version>${version.lib.jsonb-api}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.activation</groupId>
                <artifactId>jakarta.activation-api</artifactId>
                <version>${version.lib.activation-api}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish</groupId>
                <artifactId>jakarta.json</artifactId>
                <version>${version.lib.jsonp-impl}</version>
            </dependency>
            <dependency>
                <!-- contains the API as well -->
                <groupId>org.glassfish</groupId>
                <artifactId>jakarta.el</artifactId>
                <version>${version.lib.el-impl}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-handler</artifactId>
                <version>${version.lib.netty}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-handler-proxy</artifactId>
                <version>${version.lib.netty}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-codec-dns</artifactId>
                <version>${version.lib.netty}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-resolver-dns</artifactId>
                <version>${version.lib.netty}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-codec-http</artifactId>
                <version>${version.lib.netty}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-codec-http2</artifactId>
                <version>${version.lib.netty}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-buffer</artifactId>
                <version>${version.lib.netty}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse</groupId>
                <artifactId>yasson</artifactId>
                <version>${version.lib.yasson}</version>
                <exclusions>
                    <exclusion>
                        <!-- we must only have implementation on classpath, not API - module conflict -->
                        <groupId>jakarta.json</groupId>
                        <artifactId>jakarta.json-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <!-- Config related -->
            <dependency>
                <groupId>com.typesafe</groupId>
                <artifactId>config</artifactId>
                <version>${version.lib.typesafe-config}</version>
            </dependency>
            <dependency>
                <groupId>org.yaml</groupId>
                <artifactId>snakeyaml</artifactId>
                <version>${version.lib.snakeyaml}</version>
            </dependency>
            <dependency>
                <groupId>org.mousio</groupId>
                <artifactId>etcd4j</artifactId>
                <version>${version.lib.etcd4j}</version>
            </dependency>
            <dependency>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-core</artifactId>
                <version>${version.lib.grpc}</version>
                <exclusions>
                    <exclusion>
                        <!-- Used for compilation of "their" sources -->
                        <groupId>com.google.code.findbugs</groupId>
                        <artifactId>jsr305</artifactId>
                    </exclusion>
                    <exclusion>
                        <!-- Used for compilation of "their" sources -->
                        <groupId>com.google.errorprone</groupId>
                        <artifactId>error_prone_annotations</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-api</artifactId>
                <version>${version.lib.grpc}</version>
                <exclusions>
                    <exclusion>
                        <!-- Used for compilation of "their" sources -->
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>animal-sniffer-annotations</artifactId>
                    </exclusion>
                    <exclusion>
                        <!-- Used for compilation of "their" sources -->
                        <groupId>com.google.errorprone</groupId>
                        <artifactId>error_prone_annotations</artifactId>
                    </exclusion>
                    <exclusion>
                        <!-- Used for compilation of "their" sources -->
                        <groupId>com.google.code.findbugs</groupId>
                        <artifactId>jsr305</artifactId>
                    </exclusion>
                    <exclusion>
                        <!-- Used for compilation of "their" sources -->
                        <groupId>com.google.j2objc</groupId>
                        <artifactId>j2objc-annotations</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-context</artifactId>
                <version>${version.lib.grpc}</version>
            </dependency>
            <dependency>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-protobuf</artifactId>
                <version>${version.lib.grpc}</version>
            </dependency>
            <dependency>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-stub</artifactId>
                <version>${version.lib.grpc}</version>
            </dependency>
            <dependency>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-services</artifactId>
                <version>${version.lib.grpc}</version>
            </dependency>
            <dependency>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-netty</artifactId>
                <version>${version.lib.grpc}</version>
            </dependency>
            <dependency>
                <!-- required for dependency convergence, used from guava and perfmark-api -->
                <groupId>com.google.errorprone</groupId>
                <artifactId>error_prone_annotations</artifactId>
                <version>${version.lib.google-error-prone}</version>
            </dependency>
            <dependency>
              <groupId>io.opentracing.contrib</groupId>
              <artifactId>opentracing-grpc</artifactId>
              <version>${version.lib.opentracing.grpc}</version>
            </dependency>

            <!-- Webserver related -->
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>${version.lib.guava}</version>
            </dependency>
            <dependency>
                <groupId>io.prometheus</groupId>
                <artifactId>simpleclient</artifactId>
                <version>${version.lib.prometheus}</version>
            </dependency>
            <dependency>
                <groupId>io.zipkin.zipkin2</groupId>
                <artifactId>zipkin</artifactId>
                <version>${version.lib.zipkin}</version>
            </dependency>
            <dependency>
                <groupId>io.zipkin.reporter2</groupId>
                <artifactId>zipkin-sender-urlconnection</artifactId>
                <version>${version.lib.zipkin.sender-urlconnection}</version>
            </dependency>
            <dependency>
                <groupId>io.opentracing.brave</groupId>
                <artifactId>brave-opentracing</artifactId>
                <version>${version.lib.brave-opentracing}</version>
                <exclusions>
                    <exclusion>
                        <!-- failure in dependency convergence -->
                        <groupId>io.zipkin.reporter2</groupId>
                        <artifactId>zipkin-reporter</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.zipkin.brave</groupId>
                        <artifactId>brave-tests</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.zipkin.zipkin2</groupId>
                        <artifactId>zipkin</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.reactivestreams</groupId>
                <artifactId>reactive-streams</artifactId>
                <version>${version.lib.reactivestreams}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.websocket</groupId>
                <artifactId>jakarta.websocket-api</artifactId>
                <version>${version.lib.websockets-api}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.tyrus</groupId>
                <artifactId>tyrus-core</artifactId>
                <version>${version.lib.tyrus}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.tyrus</groupId>
                <artifactId>tyrus-client</artifactId>
                <version>${version.lib.tyrus}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.tyrus</groupId>
                <artifactId>tyrus-server</artifactId>
                <version>${version.lib.tyrus}</version>
            </dependency>

            <!-- Security related -->
            <dependency>
                <!-- Use this version instead of the one in google-api-client -->
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>${version.lib.apache-httpclient}</version>
            </dependency>
            <dependency>
                <!-- Google APIs -->
                <groupId>com.google.api-client</groupId>
                <artifactId>google-api-client</artifactId>
                <version>${version.lib.google-api-client}</version>
                <exclusions>
                    <exclusion>
                        <!-- must use current version -->
                        <groupId>org.apache.httpcomponents</groupId>
                        <artifactId>httpclient</artifactId>
                    </exclusion>
                    <exclusion>
                        <!-- must use guava artifactId -->
                        <groupId>com.google.guava</groupId>
                        <artifactId>guava-jdk5</artifactId>
                    </exclusion>
                    <exclusion>
                        <!-- must use current version -->
                        <groupId>com.fasterxml.jackson.core</groupId>
                        <artifactId>jackson-core</artifactId>
                    </exclusion>
                    <exclusion>
                        <!-- should be optional -->
                        <groupId>com.google.code.findbugs</groupId>
                        <artifactId>jsr305</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <!-- DB Client related -->
            <dependency>
                <groupId>org.mongodb</groupId>
                <artifactId>mongodb-driver-reactivestreams</artifactId>
                <version>${version.lib.mongodb.reactivestreams}</version>
            </dependency>
            <dependency>
                <groupId>com.oracle.ojdbc</groupId>
                <artifactId>ojdbc10</artifactId>
                <version>${version.lib.oracle.ojdbc10}</version>
            </dependency>

            <!-- Microprofile related -->
            <dependency>
                <groupId>org.eclipse.microprofile.config</groupId>
                <artifactId>microprofile-config-api</artifactId>
                <version>${version.lib.microprofile-config}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.osgi</groupId>
                        <artifactId>org.osgi.annotation.versioning</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.eclipse.microprofile.health</groupId>
                <artifactId>microprofile-health-api</artifactId>
                <version>${version.lib.microprofile-health}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.osgi</groupId>
                        <artifactId>org.osgi.annotation.versioning</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.inject</groupId>
                        <artifactId>javax.inject</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.eclipse.microprofile.jwt</groupId>
                <artifactId>microprofile-jwt-auth-api</artifactId>
                <version>${version.lib.microprofile-jwt}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.osgi</groupId>
                        <artifactId>org.osgi.annotation.versioning</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.eclipse.microprofile.fault-tolerance</groupId>
                <artifactId>microprofile-fault-tolerance-api</artifactId>
                <version>${version.lib.microprofile-fault-tolerance-api}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.osgi</groupId>
                        <artifactId>org.osgi.annotation.versioning</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.eclipse.microprofile.opentracing</groupId>
                <artifactId>microprofile-opentracing-api</artifactId>
                <version>${version.lib.microprofile-tracing}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.osgi</groupId>
                        <artifactId>org.osgi.annotation.versioning</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.eclipse.microprofile.rest.client</groupId>
                <artifactId>microprofile-rest-client-api</artifactId>
                <version>${version.lib.microprofile-rest-client}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.osgi</groupId>
                        <artifactId>org.osgi.annotation.versioning</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.inject</groupId>
                        <artifactId>javax.inject</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.eclipse.microprofile.openapi</groupId>
                <artifactId>microprofile-openapi-api</artifactId>
                <version>${version.lib.microprofile-openapi-api}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.osgi</groupId>
                        <artifactId>org.osgi.annotation.versioning</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.eclipse.microprofile.metrics</groupId>
                <artifactId>microprofile-metrics-api</artifactId>
                <version>${version.lib.microprofile-metrics-api}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.osgi</groupId>
                        <artifactId>org.osgi.annotation.versioning</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.eclipse.microprofile.metrics</groupId>
                <artifactId>microprofile-metrics-rest-tck</artifactId>
                <version>${version.lib.microprofile-metrics-api}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.jboss.arquillian.junit</groupId>
                        <artifactId>arquillian-junit-container</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.eclipse.microprofile.metrics</groupId>
                <artifactId>microprofile-metrics-api-tck</artifactId>
                <version>${version.lib.microprofile-metrics-api}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.jboss.arquillian.junit</groupId>
                        <artifactId>arquillian-junit-container</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.eclipse.microprofile.reactive-streams-operators</groupId>
                <artifactId>microprofile-reactive-streams-operators-api</artifactId>
                <version>${version.lib.microprofile-reactive-streams-operators-api}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.microprofile.reactive-streams-operators</groupId>
                <artifactId>microprofile-reactive-streams-operators-core</artifactId>
                <version>${version.lib.microprofile-reactive-streams-operators-core}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.microprofile.reactive.messaging</groupId>
                <artifactId>microprofile-reactive-messaging-api</artifactId>
                <version>${version.lib.microprofile-reactive-messaging-api}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.eclipse.microprofile.reactive-streams-operators</groupId>
                        <artifactId>microprofile-reactive-streams-operators-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.eclipse.microprofile.reactive-streams-operators</groupId>
                        <artifactId>microprofile-reactive-streams-operators-core</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.enterprise</groupId>
                        <artifactId>cdi-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.netflix.hystrix</groupId>
                <artifactId>hystrix-core</artifactId>
                <version>${version.lib.hystrix}</version>
            </dependency>
            <dependency>
                <groupId>net.jodah</groupId>
                <artifactId>failsafe</artifactId>
                <version>${version.lib.failsafe}</version>
            </dependency>
            <dependency>
                <groupId>org.jboss</groupId>
                <artifactId>jandex</artifactId>
                <version>${version.lib.jandex}</version>
            </dependency>

            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${version.lib.slf4j}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-jdk14</artifactId>
                <version>${version.lib.slf4j}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-simple</artifactId>
                <version>${version.lib.slf4j}</version>
            </dependency>

            <dependency>
                <groupId>io.smallrye</groupId>
                <artifactId>smallrye-open-api</artifactId>
                <version>${version.lib.smallrye-openapi}</version>
            </dependency>

            <!-- Integrations related -->
            <dependency>
                <groupId>jakarta.persistence</groupId>
                <artifactId>jakarta.persistence-api</artifactId>
                <version>${version.lib.persistence-api}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.transaction</groupId>
                <artifactId>jakarta.transaction-api</artifactId>
                <version>${version.lib.transaction-api}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.validation</groupId>
                <artifactId>jakarta.validation-api</artifactId>
                <version>${version.lib.validation-api}</version>
            </dependency>
            <dependency>
                <groupId>com.h2database</groupId>
                <artifactId>h2</artifactId>
                <version>${version.lib.h2}</version>
            </dependency>
            <dependency>
                <groupId>com.oracle.database.jdbc</groupId>
                <artifactId>ojdbc8</artifactId>
                <version>${version.lib.ojdbc8}</version>
            </dependency>
            <dependency>
                <groupId>com.oracle.database.jdbc</groupId>
                <artifactId>ucp</artifactId>
                <version>${version.lib.ucp}</version>
            </dependency>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${version.lib.mysql-connector-java}</version>
            </dependency>
            <dependency>
                <groupId>com.oracle.oci.sdk</groupId>
                <artifactId>oci-java-sdk-objectstorage</artifactId>
                <version>${version.lib.oci-java-sdk-objectstorage}</version>
                <type>pom</type>
                <exclusions>
                    <exclusion>
                        <groupId>org.glassfish.hk2.external</groupId>
                        <artifactId>jakarta.inject</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.zaxxer</groupId>
                <artifactId>HikariCP</artifactId>
                <version>${version.lib.hikaricp}</version>
            </dependency>
            <dependency>
                <!-- used by Hikari CP to add metrics -->
                <groupId>io.dropwizard.metrics</groupId>
                <artifactId>metrics-core</artifactId>
                <version>${version.lib.dropwizard.metrics}</version>
            </dependency>
            <dependency>
                <groupId>redis.clients</groupId>
                <artifactId>jedis</artifactId>
                <version>${version.lib.jedis}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.jpa</artifactId>
                <version>${version.lib.eclipselink}</version>
            </dependency>
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-core</artifactId>
                <version>${version.lib.hibernate}</version>
                <exclusions>
                    <exclusion>
                        <groupId>javax.persistence</groupId>
                        <artifactId>javax.persistence-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.activation</groupId>
                        <artifactId>javax.activation-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.xml.bind</groupId>
                        <artifactId>jaxb-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.jboss.narayana.jta</groupId>
                <artifactId>cdi</artifactId>
                <version>${version.lib.narayana}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.jboss.spec.javax.resource</groupId>
                        <artifactId>jboss-connector-api_1.7_spec</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>sun.jdk</groupId>
                        <artifactId>jconsole</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.jboss.weld</groupId>
                <artifactId>weld-api</artifactId>
                <version>${version.lib.weld-api}</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.weld</groupId>
                <artifactId>weld-core-impl</artifactId>
                <version>${version.lib.weld}</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.weld</groupId>
                <artifactId>weld-spi</artifactId>
                <version>${version.lib.weld-api}</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.weld.module</groupId>
                <artifactId>weld-jta</artifactId>
                <version>${version.lib.weld}</version>
                <exclusions>
                    <exclusion>
                        <groupId>javax.injects</groupId>
                        <artifactId>javax.inject</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.jboss.weld</groupId>
                        <artifactId>weld-core-impl</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.jboss</groupId>
                <artifactId>jboss-transaction-spi</artifactId>
                <version>${version.lib.jboss.transaction-spi}</version>
                <exclusions>
                  <exclusion>
                      <groupId>org.jboss.spec.javax.resource</groupId>
                      <artifactId>jboss-connector-api_1.7_spec</artifactId>
                  </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.jboss.spec.javax.transaction</groupId>
                <artifactId>jboss-transaction-api_1.2_spec</artifactId>
                <version>${version.lib.jboss.transaction-api}</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.weld.environment</groupId>
                <artifactId>weld-environment-common</artifactId>
                <version>${version.lib.weld}</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.weld.probe</groupId>
                <artifactId>weld-probe-core</artifactId>
                <version>${version.lib.weld}</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.classfilewriter</groupId>
                <artifactId>jboss-classfilewriter</artifactId>
                <version>${version.lib.jboss.classfilewriter}</version>
            </dependency>
            <dependency>
                <!-- if needed (as excluded from weld) -->
                <groupId>org.codehaus.groovy</groupId>
                <artifactId>groovy-all</artifactId>
                <version>${version.lib.groovy-all}</version>
            </dependency>
            <dependency>
                <!-- required for dependency convergence, transitive dependency of both
                commons-configuration (through hystrix-core)
                org.apache.httpcomponents:httpclient (through health-tck)
                -->
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
                <version>${version.lib.commons-logging}</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.logging</groupId>
                <artifactId>jboss-logging</artifactId>
                <version>${version.lib.jboss.logging}</version>
            </dependency>
            <dependency>
                <groupId>org.graalvm.sdk</groupId>
                <artifactId>graal-sdk</artifactId>
                <version>${version.lib.graalvm}</version>
            </dependency>
            <dependency>
                <groupId>com.oracle.substratevm</groupId>
                <artifactId>svm</artifactId>
                <version>${version.lib.graalvm}</version>
            </dependency>
            <!-- Kafka support -->
            <dependency>
                <groupId>org.apache.kafka</groupId>
                <artifactId>kafka-clients</artifactId>
                <version>${version.lib.kafka}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.kafka</groupId>
                <artifactId>kafka_2.12</artifactId>
                <version>${version.lib.kafka}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.zookeeper</groupId>
                        <artifactId>zookeeper</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.scala-lang</groupId>
                        <artifactId>scala-library</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.scala-lang</groupId>
                        <artifactId>scala-reflect</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <!-- Testing libraries -->
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-core</artifactId>
                <version>${version.lib.mockito}</version>
            </dependency>
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-api</artifactId>
                <version>${version.lib.junit}</version>
            </dependency>
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-params</artifactId>
                <version>${version.lib.junit}</version>
            </dependency>
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-engine</artifactId>
                <version>${version.lib.junit}</version>
            </dependency>
            <dependency>
                <groupId>org.hamcrest</groupId>
                <artifactId>hamcrest-all</artifactId>
                <version>${version.lib.hamcrest}</version>
            </dependency>
            <dependency>
                <groupId>org.hamcrest</groupId>
                <artifactId>hamcrest-core</artifactId>
                <version>${version.lib.hamcrest}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jersey.media</groupId>
                <artifactId>jersey-media-json-binding</artifactId>
                <version>${version.lib.jersey}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.glassfish.hk2.external</groupId>
                        <artifactId>jakarta.inject</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>jakarta.json</groupId>
                        <artifactId>jakarta.json-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.activation</groupId>
                        <artifactId>jakarta.activation</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jersey.ext.microprofile</groupId>
                <artifactId>jersey-mp-rest-client</artifactId>
                <version>${version.lib.jersey}</version>
                <exclusions>
                    <!-- most of these libraries are either bad (javax*), or we need additional exclusions on them -->
                    <exclusion>
                        <groupId>org.glassfish.jersey.core</groupId>
                        <artifactId>jersey-server</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.glassfish.jersey.core</groupId>
                        <artifactId>jersey-client</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.glassfish.jersey.inject</groupId>
                        <artifactId>jersey-hk2</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.glassfish.jersey.media</groupId>
                        <artifactId>jersey-media-json-binding</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.glassfish.jersey.ext.cdi</groupId>
                        <artifactId>jersey-cdi1x</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.glassfish</groupId>
                        <artifactId>jsonp-jaxrs</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.eclipse.microprofile.config</groupId>
                        <artifactId>microprofile-config-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.enterprise</groupId>
                        <artifactId>cdi-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.el</groupId>
                        <artifactId>javax.el-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.interceptor</groupId>
                        <artifactId>javax.interceptor-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>jakarta.json</groupId>
                        <artifactId>jakarta.json-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.salesforce.kafka.test</groupId>
                <artifactId>kafka-junit5</artifactId>
                <version>${version.lib.kafka-junit5}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.zookeeper</groupId>
                        <artifactId>zookeeper</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper</artifactId>
                <version>${version.lib.zookeeper}</version>
            </dependency>
            <dependency>
                <groupId>org.scala-lang</groupId>
                <artifactId>scala-library</artifactId>
                <version>${version.lib.scala}</version>
            </dependency>
            <dependency>
                <groupId>org.reactivestreams</groupId>
                <artifactId>reactive-streams-tck</artifactId>
                <version>${version.lib.reactive-streams-tck}</version>
            </dependency>
            <!-- imported boms -->
            <dependency>
                <groupId>org.glassfish.jersey</groupId>
                <artifactId>jersey-bom</artifactId>
                <version>${version.lib.jersey}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson</groupId>
                <artifactId>jackson-bom</artifactId>
                <version>${version.lib.jackson}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>
