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

    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You 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="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">
  <parent>
    <artifactId>tomee-microprofile</artifactId>
    <groupId>org.apache.tomee</groupId>
    <version>10.1.5</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>

  <artifactId>mp-common</artifactId>
  <name>TomEE :: TomEE :: MicroProfile Common</name>

  <dependencyManagement>
    <dependencies>
      <!-- SmallRye API & Impl. -->
      <dependency>
        <groupId>io.smallrye.config</groupId>
        <artifactId>smallrye-config</artifactId>
        <version>${version.microprofile.impl.config}</version>
      </dependency>
      <dependency>
        <groupId>io.smallrye</groupId>
        <artifactId>smallrye-fault-tolerance-api</artifactId>
        <version>${version.microprofile.impl.fault-tolerance}</version>
      </dependency>
      <dependency>
        <groupId>io.smallrye</groupId>
        <artifactId>smallrye-fault-tolerance</artifactId>
        <version>${version.microprofile.impl.fault-tolerance}</version>
      </dependency>
      <dependency>
        <groupId>io.smallrye</groupId>
        <artifactId>smallrye-fault-tolerance-autoconfig-core</artifactId>
        <version>${version.microprofile.impl.fault-tolerance}</version>
      </dependency>
      <dependency>
        <groupId>io.smallrye</groupId>
        <artifactId>smallrye-fault-tolerance-core</artifactId>
        <version>${version.microprofile.impl.fault-tolerance}</version>
      </dependency>
      <dependency>
        <groupId>io.smallrye</groupId>
        <artifactId>smallrye-health-api</artifactId>
        <version>${version.microprofile.impl.health}</version>
      </dependency>
      <dependency>
        <groupId>io.smallrye</groupId>
        <artifactId>smallrye-health</artifactId>
        <version>${version.microprofile.impl.health}</version>
      </dependency>
      <dependency>
        <groupId>io.smallrye</groupId>
        <artifactId>smallrye-metrics-api</artifactId>
        <version>${version.microprofile.impl.metrics}</version>
      </dependency>
      <dependency>
        <groupId>io.smallrye</groupId>
        <artifactId>smallrye-metrics</artifactId>
        <version>${version.microprofile.impl.metrics}</version>
      </dependency>
      <dependency>
        <groupId>io.smallrye</groupId>
        <artifactId>smallrye-open-api</artifactId>
        <version>${version.microprofile.impl.openapi}</version>
        <type>pom</type>
      </dependency>
      <dependency>
        <groupId>io.smallrye</groupId>
        <artifactId>smallrye-open-api-core</artifactId>
        <version>${version.microprofile.impl.openapi}</version>
      </dependency>
      <dependency>
        <groupId>io.smallrye</groupId>
        <artifactId>smallrye-open-api-jaxrs</artifactId>
        <version>${version.microprofile.impl.openapi}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <dependencies>

    <!-- provided dependencies -->

    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>jakartaee-api</artifactId>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>tomee-catalina</artifactId>
      <version>${project.version}</version>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.tomee</groupId>
      <artifactId>openejb-rest</artifactId>
      <version>${project.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <artifactId>openejb-cxf-rs</artifactId>
      <groupId>org.apache.tomee</groupId>
      <version>${project.version}</version>
      <scope>provided</scope>
    </dependency>

    <!-- Micro Profile API -->

    <dependency>
      <groupId>org.eclipse.microprofile.config</groupId>
      <artifactId>microprofile-config-api</artifactId>
    </dependency>

    <dependency>
      <groupId>org.eclipse.microprofile.fault-tolerance</groupId>
      <artifactId>microprofile-fault-tolerance-api</artifactId>
    </dependency>

    <dependency>
      <groupId>org.eclipse.microprofile.health</groupId>
      <artifactId>microprofile-health-api</artifactId>
    </dependency>

    <dependency>
      <groupId>org.eclipse.microprofile.jwt</groupId>
      <artifactId>microprofile-jwt-auth-api</artifactId>
    </dependency>

    <dependency>
      <groupId>org.eclipse.microprofile.metrics</groupId>
      <artifactId>microprofile-metrics-api</artifactId>
    </dependency>

    <dependency>
      <groupId>org.eclipse.microprofile.openapi</groupId>
      <artifactId>microprofile-openapi-api</artifactId>
    </dependency>

    <dependency>
      <groupId>org.eclipse.microprofile.rest.client</groupId>
      <artifactId>microprofile-rest-client-api</artifactId>
    </dependency>

    <!-- SmallRye Impl. -->

    <dependency>
      <groupId>io.smallrye.config</groupId>
      <artifactId>smallrye-config</artifactId>
      <exclusions>
        <exclusion>
          <groupId>*</groupId>
          <artifactId>microprofile-config-api</artifactId>
        </exclusion>
        <exclusion>
          <groupId>jakarta.enterprise</groupId>
          <artifactId>*</artifactId>
        </exclusion>
        <!--
        <exclusion>
          <groupId>org.ow2.asm</groupId>
          <artifactId>asm</artifactId>
        </exclusion>
        -->
      </exclusions>
    </dependency>

    <dependency>
      <groupId>io.smallrye</groupId>
      <artifactId>smallrye-fault-tolerance</artifactId>
      <exclusions>
        <exclusion>
          <groupId>jakarta.enterprise</groupId>
          <artifactId>jakarta.enterprise.cdi-api</artifactId>
        </exclusion>
        <exclusion>
          <groupId>*</groupId>
          <artifactId>microprofile-fault-tolerance-api</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>io.smallrye</groupId>
      <artifactId>smallrye-health</artifactId>
      <exclusions>
        <exclusion>
          <groupId>jakarta.enterprise</groupId>
          <artifactId>jakarta.enterprise.cdi-api</artifactId>
        </exclusion>
        <exclusion>
          <groupId>jakarta.json</groupId>
          <artifactId>jakarta.json-api</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.glassfish</groupId>
          <artifactId>jakarta.json</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.eclipse.parsson</groupId>
          <artifactId>jakarta.json</artifactId>
        </exclusion>
        <exclusion>
          <groupId>io.smallrye</groupId>
          <artifactId>smallrye-health-api</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>io.smallrye</groupId>
      <artifactId>smallrye-metrics</artifactId>
      <exclusions>
        <exclusion>
          <groupId>*</groupId>
          <artifactId>microprofile-metrics-api</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>io.micrometer</groupId>
      <artifactId>micrometer-core</artifactId>
      <version>${version.micrometer}</version>
    </dependency>

    <dependency>
      <groupId>io.micrometer</groupId>
      <artifactId>micrometer-registry-prometheus</artifactId>
      <version>${version.micrometer}</version>
    </dependency>

    <dependency>
      <groupId>io.smallrye</groupId>
      <artifactId>smallrye-open-api</artifactId>
      <type>pom</type>
      <exclusions>
        <exclusion>
          <groupId>*</groupId>
          <artifactId>microprofile-openapi-api</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>io.smallrye.opentelemetry</groupId>
      <artifactId>smallrye-opentelemetry-api</artifactId>
      <version>${version.microprofile.impl.opentelemetry}</version>
    </dependency>

    <dependency>
      <groupId>io.smallrye.opentelemetry</groupId>
      <artifactId>smallrye-opentelemetry-cdi</artifactId>
      <version>${version.microprofile.impl.opentelemetry}</version>
      <exclusions>
        <exclusion>
          <groupId>jakarta.enterprise</groupId>
          <artifactId>jakarta.enterprise.cdi-api</artifactId>
        </exclusion>
        <exclusion>
          <groupId>jakarta.ws.rs</groupId>
          <artifactId>jakarta.ws.rs-api</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>io.smallrye.opentelemetry</groupId>
      <artifactId>smallrye-opentelemetry-rest</artifactId>
      <version>${version.microprofile.impl.opentelemetry}</version>
      <exclusions>
        <exclusion>
          <groupId>jakarta.enterprise</groupId>
          <artifactId>jakarta.enterprise.cdi-api</artifactId>
        </exclusion>
        <exclusion>
          <groupId>jakarta.ws.rs</groupId>
          <artifactId>jakarta.ws.rs-api</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>io.smallrye.opentelemetry</groupId>
      <artifactId>smallrye-opentelemetry-config</artifactId>
      <version>${version.microprofile.impl.opentelemetry}</version>
      <exclusions>
        <exclusion>
          <groupId>jakarta.enterprise</groupId>
          <artifactId>jakarta.enterprise.cdi-api</artifactId>
        </exclusion>
        <exclusion>
          <groupId>jakarta.ws.rs</groupId>
          <artifactId>jakarta.ws.rs-api</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>io.smallrye.opentelemetry</groupId>
      <artifactId>smallrye-opentelemetry-propagation</artifactId>
      <version>${version.microprofile.impl.opentelemetry}</version>
      <exclusions>
        <exclusion>
          <groupId>jakarta.enterprise</groupId>
          <artifactId>jakarta.enterprise.cdi-api</artifactId>
        </exclusion>
        <exclusion>
          <groupId>jakarta.ws.rs</groupId>
          <artifactId>jakarta.ws.rs-api</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <!-- Jackson and snakeyaml required by OpenAPI Impl -->
    <dependency>
      <groupId>com.fasterxml.jackson.dataformat</groupId>
      <artifactId>jackson-dataformat-yaml</artifactId>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
    </dependency>
    <dependency>
      <groupId>org.yaml</groupId>
      <artifactId>snakeyaml</artifactId>
    </dependency>

    <!-- Other Micro Profile Impl. -->

    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>mp-jwt</artifactId>
      <version>${tomee.version}</version>
      <exclusions>
        <exclusion>
          <groupId>*</groupId>
          <artifactId>microprofile-jwt-auth-api</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>org.apache.cxf</groupId>
      <artifactId>cxf-rt-rs-mp-client</artifactId>
      <version>${version.cxf}</version>
      <exclusions>
        <exclusion>
          <groupId>org.glassfish.jaxb</groupId>
          <artifactId>jaxb-xjc</artifactId>
        </exclusion>
        <exclusion>
          <groupId>jakarta.ws.rs</groupId>
          <artifactId>jakarta.ws.rs-api</artifactId>
        </exclusion>
        <exclusion>
          <groupId>jakarta.activation</groupId>
          <artifactId>jakarta.activation-api</artifactId>
        </exclusion>
        <exclusion>
          <groupId>jakarta.json.bind</groupId>
          <artifactId>jakarta.json.bind-api</artifactId>
        </exclusion>
        <exclusion>
          <groupId>jakarta.json</groupId>
          <artifactId>jakarta.json-api</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

  </dependencies>
</project>
