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

<!--
  ~ Copyright The WildFly Authors
  ~ SPDX-License-Identifier: Apache-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.wildfly</groupId>
        <artifactId>wildfly-feature-pack-parent</artifactId>
        <!--
        Maintain separation between the artifact id and the version to help prevent
        merge conflicts between commits changing the GA and those changing the V.
        -->
        <version>33.0.2.Final</version>
    </parent>

    <artifactId>wildfly-feature-pack-galleon-shared</artifactId>

    <name>WildFly: Feature Pack Shared Galleon Content</name>
    <description>Content for the wildfly feature pack that can also be used in the wildfly-preview feature pack</description>
    <packaging>pom</packaging>

    <dependencies>

        <dependency><groupId>com.fasterxml.jackson.jr</groupId><artifactId>jackson-jr-objects</artifactId></dependency>


        <dependency>
            <groupId>com.github.luben</groupId>
            <artifactId>zstd-jni</artifactId>
        </dependency>

        <dependency><groupId>com.google.api.grpc</groupId><artifactId>proto-google-common-protos</artifactId></dependency>
        <dependency><groupId>com.google.protobuf</groupId><artifactId>protobuf-java</artifactId></dependency>
        <dependency><groupId>com.google.protobuf</groupId><artifactId>protobuf-java-util</artifactId></dependency>

        <dependency>
            <groupId>io.grpc</groupId>
            <artifactId>grpc-api</artifactId>
        </dependency>

        <dependency><groupId>io.micrometer</groupId><artifactId>micrometer-commons</artifactId></dependency>
        <dependency><groupId>io.micrometer</groupId><artifactId>micrometer-core</artifactId></dependency>
        <dependency><groupId>io.micrometer</groupId><artifactId>micrometer-registry-otlp</artifactId></dependency>

        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec-http2</artifactId>
        </dependency>

        <dependency><groupId>io.opentelemetry</groupId><artifactId>opentelemetry-api</artifactId></dependency>
        <dependency><groupId>io.opentelemetry</groupId><artifactId>opentelemetry-api-events</artifactId></dependency>
        <dependency><groupId>io.opentelemetry</groupId><artifactId>opentelemetry-context</artifactId></dependency>
        <dependency><groupId>io.opentelemetry</groupId><artifactId>opentelemetry-exporter-common</artifactId></dependency>
        <dependency><groupId>io.opentelemetry</groupId><artifactId>opentelemetry-sdk</artifactId></dependency>
        <dependency><groupId>io.opentelemetry</groupId><artifactId>opentelemetry-sdk-common</artifactId></dependency>
        <dependency><groupId>io.opentelemetry</groupId><artifactId>opentelemetry-sdk-extension-autoconfigure</artifactId></dependency>
        <dependency><groupId>io.opentelemetry</groupId><artifactId>opentelemetry-sdk-extension-autoconfigure-spi</artifactId></dependency>
        <dependency><groupId>io.opentelemetry</groupId><artifactId>opentelemetry-sdk-logs</artifactId></dependency>
        <dependency><groupId>io.opentelemetry</groupId><artifactId>opentelemetry-sdk-metrics</artifactId></dependency>
        <dependency><groupId>io.opentelemetry</groupId><artifactId>opentelemetry-sdk-trace</artifactId></dependency>
        <dependency><groupId>io.opentelemetry</groupId><artifactId>opentelemetry-semconv</artifactId></dependency>
        <dependency><groupId>io.opentelemetry</groupId><artifactId>opentelemetry-exporter-otlp-common</artifactId></dependency>
        <dependency><groupId>io.opentelemetry</groupId><artifactId>opentelemetry-exporter-otlp</artifactId></dependency>
        <dependency><groupId>io.opentelemetry.instrumentation</groupId><artifactId>opentelemetry-instrumentation-api</artifactId></dependency>
        <dependency><groupId>io.opentelemetry.instrumentation</groupId><artifactId>opentelemetry-instrumentation-api-semconv</artifactId></dependency>
        <dependency><groupId>io.opentelemetry.instrumentation</groupId><artifactId>opentelemetry-instrumentation-annotations</artifactId></dependency>
        <dependency><groupId>io.opentelemetry.instrumentation</groupId><artifactId>opentelemetry-instrumentation-annotations-support</artifactId></dependency>
        <dependency><groupId>io.opentelemetry.proto</groupId><artifactId>opentelemetry-proto</artifactId></dependency>

        <dependency><groupId>io.perfmark</groupId><artifactId>perfmark-api</artifactId></dependency>

        <dependency>
            <groupId>io.smallrye</groupId>
            <artifactId>smallrye-fault-tolerance</artifactId>
        </dependency>
        <dependency>
            <groupId>io.smallrye</groupId>
            <artifactId>smallrye-fault-tolerance-api</artifactId>
        </dependency>
        <dependency>
            <groupId>io.smallrye</groupId>
            <artifactId>smallrye-fault-tolerance-autoconfig-core</artifactId>
        </dependency>
        <dependency>
            <groupId>io.smallrye</groupId>
            <artifactId>smallrye-fault-tolerance-core</artifactId>
        </dependency>

        <dependency>
            <groupId>io.smallrye</groupId>
            <artifactId>smallrye-health</artifactId>
        </dependency>

        <dependency>
            <groupId>io.smallrye</groupId>
            <artifactId>smallrye-jwt</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>*</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>io.smallrye</groupId>
            <artifactId>smallrye-jwt-cdi-extension</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>*</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>io.smallrye</groupId>
            <artifactId>smallrye-jwt-common</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>*</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>io.smallrye</groupId>
            <artifactId>smallrye-jwt-http-mechanism</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>*</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>io.smallrye</groupId>
            <artifactId>smallrye-open-api-core</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>*</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>io.smallrye</groupId>
            <artifactId>smallrye-open-api-jaxrs</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>*</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>io.smallrye.common</groupId>
            <artifactId>smallrye-common-annotation</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>*</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>io.smallrye.common</groupId>
            <artifactId>smallrye-common-classloader</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>*</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>io.smallrye.common</groupId>
            <artifactId>smallrye-common-constraint</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>*</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>io.smallrye.common</groupId>
            <artifactId>smallrye-common-function</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>*</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>io.smallrye.common</groupId>
            <artifactId>smallrye-common-expression</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>*</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>io.smallrye.common</groupId>
            <artifactId>smallrye-common-vertx-context</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>*</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>io.smallrye.config</groupId>
            <artifactId>smallrye-config</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>*</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>io.smallrye.config</groupId>
            <artifactId>smallrye-config-common</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>*</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>io.smallrye.config</groupId>
            <artifactId>smallrye-config-core</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>*</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>io.smallrye.config</groupId>
            <artifactId>smallrye-config-source-file-system</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>*</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency><groupId>io.smallrye.opentelemetry</groupId><artifactId>smallrye-opentelemetry-api</artifactId></dependency>
        <dependency><groupId>io.smallrye.opentelemetry</groupId><artifactId>smallrye-opentelemetry-cdi</artifactId></dependency>
        <dependency><groupId>io.smallrye.opentelemetry</groupId><artifactId>smallrye-opentelemetry-exporters</artifactId></dependency>
        <dependency><groupId>io.smallrye.opentelemetry</groupId><artifactId>smallrye-opentelemetry-propagation</artifactId></dependency>
        <dependency><groupId>io.smallrye.opentelemetry</groupId><artifactId>smallrye-opentelemetry-rest</artifactId></dependency>

        <dependency>
            <groupId>io.smallrye.reactive</groupId>
            <artifactId>mutiny</artifactId>
        </dependency>

        <dependency>
            <groupId>io.smallrye.reactive</groupId>
            <artifactId>mutiny-reactive-streams-operators</artifactId>
        </dependency>

        <dependency>
            <groupId>io.smallrye.reactive</groupId>
            <artifactId>mutiny-zero</artifactId>
        </dependency>

        <dependency>
            <groupId>io.smallrye.reactive</groupId>
            <artifactId>mutiny-zero-flow-adapters</artifactId>
        </dependency>

        <dependency>
            <groupId>io.smallrye.reactive</groupId>
            <artifactId>smallrye-mutiny-vertx-amqp-client</artifactId>
        </dependency>

        <dependency>
            <groupId>io.smallrye.reactive</groupId>
            <artifactId>smallrye-mutiny-vertx-core</artifactId>
        </dependency>

        <dependency>
            <groupId>io.smallrye.reactive</groupId>
            <artifactId>smallrye-mutiny-vertx-kafka-client</artifactId>
        </dependency>

        <dependency>
            <groupId>io.smallrye.reactive</groupId>
            <artifactId>smallrye-mutiny-vertx-runtime</artifactId>
        </dependency>

        <dependency>
            <groupId>io.smallrye.reactive</groupId>
            <artifactId>smallrye-reactive-converter-api</artifactId>
        </dependency>

        <dependency>
            <groupId>io.smallrye.reactive</groupId>
            <artifactId>smallrye-reactive-messaging-amqp</artifactId>
        </dependency>

        <dependency>
            <groupId>io.smallrye.reactive</groupId>
            <artifactId>smallrye-reactive-messaging-api</artifactId>
        </dependency>

        <dependency>
            <groupId>io.smallrye.reactive</groupId>
            <artifactId>smallrye-reactive-messaging-kafka</artifactId>
        </dependency>

        <dependency>
            <groupId>io.smallrye.reactive</groupId>
            <artifactId>smallrye-reactive-messaging-kafka-api</artifactId>
        </dependency>

        <dependency>
            <groupId>io.smallrye.reactive</groupId>
            <artifactId>smallrye-reactive-messaging-provider</artifactId>
        </dependency>

        <dependency>
            <groupId>io.vertx</groupId>
            <artifactId>vertx-amqp-client</artifactId>
        </dependency>

        <dependency>
            <groupId>io.vertx</groupId>
            <artifactId>vertx-core</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>*</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>io.vertx</groupId>
            <artifactId>vertx-grpc-client</artifactId>
        </dependency>
        <dependency>
            <groupId>io.vertx</groupId>
            <artifactId>vertx-grpc-common</artifactId>
        </dependency>

        <dependency>
            <groupId>io.vertx</groupId>
            <artifactId>vertx-kafka-client</artifactId>
        </dependency>

        <dependency>
            <groupId>io.vertx</groupId>
            <artifactId>vertx-proton</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka-clients</artifactId>
        </dependency>

        <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.lra</groupId>
            <artifactId>microprofile-lra-api</artifactId>
        </dependency>

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

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

        <dependency>
            <groupId>org.eclipse.microprofile.reactive-streams-operators</groupId>
            <artifactId>microprofile-reactive-streams-operators-api</artifactId>
        </dependency>

        <dependency>
            <groupId>org.eclipse.microprofile.reactive-streams-operators</groupId>
            <artifactId>microprofile-reactive-streams-operators-core</artifactId>
        </dependency>

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

        <dependency>
            <groupId>org.jboss.narayana.rts</groupId>
            <artifactId>lra-service-base</artifactId>
        </dependency>

        <dependency>
            <groupId>org.jboss.narayana.rts</groupId>
            <artifactId>narayana-lra</artifactId>
        </dependency>

        <dependency>
            <groupId>org.jboss.narayana.rts</groupId>
            <artifactId>lra-client</artifactId>
        </dependency>

        <dependency>
            <groupId>org.jboss.narayana.rts</groupId>
            <artifactId>lra-proxy-api</artifactId>
        </dependency>

        <dependency>
            <groupId>org.jboss.narayana.rts</groupId>
            <artifactId>lra-coordinator-jar</artifactId>
        </dependency>

        <dependency>
            <groupId>org.jboss.resteasy.microprofile</groupId>
            <artifactId>microprofile-config</artifactId>
        </dependency>

        <dependency>
            <groupId>org.jboss.resteasy.microprofile</groupId>
            <artifactId>microprofile-rest-client</artifactId>
        </dependency>

        <dependency>
            <groupId>org.jboss.resteasy.microprofile</groupId>
            <artifactId>microprofile-rest-client-base</artifactId>
        </dependency>

        <dependency>
            <groupId>org.lz4</groupId>
            <artifactId>lz4-java</artifactId>
        </dependency>

        <dependency>
            <groupId>org.wildfly.security.mp</groupId>
            <artifactId>wildfly-elytron-jwt</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>*</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.xerial.snappy</groupId>
            <artifactId>snappy-java</artifactId>
        </dependency>

        <dependency>
            <groupId>${full.maven.groupId}</groupId>
            <artifactId>wildfly-microprofile-config-smallrye</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>*</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>${full.maven.groupId}</groupId>
            <artifactId>wildfly-microprofile-metrics-smallrye</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>*</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency><groupId>${full.maven.groupId}</groupId><artifactId>wildfly-micrometer</artifactId></dependency>
        <dependency><groupId>${full.maven.groupId}</groupId><artifactId>wildfly-micrometer-deployment</artifactId></dependency>

        <dependency>
            <groupId>${full.maven.groupId}</groupId>
            <artifactId>wildfly-microprofile-fault-tolerance-smallrye-deployment</artifactId>
        </dependency>
        <dependency>
            <groupId>${full.maven.groupId}</groupId>
            <artifactId>wildfly-microprofile-fault-tolerance-smallrye-extension</artifactId>
        </dependency>

        <dependency>
            <groupId>${full.maven.groupId}</groupId>
            <artifactId>wildfly-microprofile-health-smallrye</artifactId>
        </dependency>

        <dependency>
            <groupId>${full.maven.groupId}</groupId>
            <artifactId>wildfly-microprofile-jwt-smallrye</artifactId>
        </dependency>

        <dependency>
            <groupId>${full.maven.groupId}</groupId>
            <artifactId>wildfly-microprofile-lra-coordinator</artifactId>
        </dependency>
        <dependency>
            <groupId>${full.maven.groupId}</groupId>
            <artifactId>wildfly-microprofile-lra-participant</artifactId>
        </dependency>

        <dependency>
            <groupId>${full.maven.groupId}</groupId>
            <artifactId>wildfly-microprofile-openapi-smallrye</artifactId>
        </dependency>

        <dependency><groupId>${full.maven.groupId}</groupId><artifactId>wildfly-opentelemetry</artifactId></dependency>
        <dependency><groupId>${full.maven.groupId}</groupId><artifactId>wildfly-opentelemetry-api</artifactId></dependency>

        <dependency>
            <groupId>${full.maven.groupId}</groupId>
            <artifactId>wildfly-microprofile-opentracing-extension</artifactId>
        </dependency>

        <dependency>
            <groupId>${full.maven.groupId}</groupId>
            <artifactId>wildfly-microprofile-reactive-messaging</artifactId>
        </dependency>

        <dependency>
            <groupId>${full.maven.groupId}</groupId>
            <artifactId>wildfly-microprofile-reactive-messaging-amqp</artifactId>
        </dependency>

        <dependency>
            <groupId>${full.maven.groupId}</groupId>
            <artifactId>wildfly-microprofile-reactive-messaging-common</artifactId>
        </dependency>

        <dependency>
            <groupId>${full.maven.groupId}</groupId>
            <artifactId>wildfly-microprofile-reactive-messaging-config</artifactId>
        </dependency>

        <dependency>
            <groupId>${full.maven.groupId}</groupId>
            <artifactId>wildfly-microprofile-reactive-messaging-kafka</artifactId>
        </dependency>

        <dependency>
            <groupId>${full.maven.groupId}</groupId>
            <artifactId>wildfly-microprofile-reactive-streams-operators</artifactId>
        </dependency>
        <dependency>
            <groupId>${full.maven.groupId}</groupId>
            <artifactId>wildfly-microprofile-reactive-streams-operators-cdi-provider</artifactId>
        </dependency>

        <dependency>
            <groupId>${full.maven.groupId}</groupId>
            <artifactId>wildfly-microprofile-telemetry</artifactId>
        </dependency>
        <dependency>
            <groupId>${full.maven.groupId}</groupId>
            <artifactId>wildfly-microprofile-telemetry-cdi-provider</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <executions>
                    <!-- Disable the standard copy-resources -->
                    <execution>
                        <id>copy-resources</id>
                        <phase>none</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <executions>
                    <execution>
                        <id>assemble</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                        <configuration>
                            <descriptors>
                                <descriptor>assembly.xml</descriptor>
                            </descriptors>
                            <recompressZippedFiles>true</recompressZippedFiles>
                            <finalName>${project.build.finalName}</finalName>
                            <appendAssemblyId>false</appendAssemblyId>
                            <outputDirectory>${project.build.directory}</outputDirectory>
                            <workDirectory>${project.build.directory}/assembly/work</workDirectory>
                            <tarLongFileMode>${assembly.tarLongFileMode}</tarLongFileMode>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.wildfly.unstable.api.annotation</groupId>
                <artifactId>unstable-api-annotation-classpath-indexer-plugin</artifactId>
                <configuration>
                    <outputFile>${project.build.directory}/index/wildfly-galleon-pack.zip</outputFile>
                    <filters>
                        <filter>
                            <annotation>io.smallrye.common.annotation.Experimental</annotation>
                            <groupIds>
                                <groupId>io.smallrye</groupId>
                                <groupId>io.smallrye.*</groupId>
                            </groupIds>
                            <excludedClasses>
                                <excludedClass>org.eclipse.microprofile.reactive.messaging.Channel</excludedClass>
                                <excludedClass>org.eclipse.microprofile.reactive.messaging.Incoming</excludedClass>
                            </excludedClasses>
                        </filter>
                    </filters>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <profiles>

        <profile>
            <id>enforce</id>
            <activation>
                <property>
                    <name>!skip-enforce</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-enforcer-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>ban-transitive-deps</id>
                                <goals>
                                    <goal>enforce</goal>
                                </goals>
                                <configuration>
                                    <rules>
                                        <banTransitiveDependencies>
                                            <excludes/>
                                        </banTransitiveDependencies>
                                    </rules>
                                </configuration>
                            </execution>
                        </executions>

                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

</project>
