<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <groupId>org.jboss</groupId>
        <artifactId>jboss-parent</artifactId>
        <version>36</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>

    <groupId>io.quarkus.platform</groupId>
    <artifactId>quarkus-platform-config</artifactId>
    <name>Quarkus Platform - Configuration pom</name>
    <version>2.4.1.Final</version>
    <packaging>pom</packaging>
    <description>Quarkus Universe platform aggregates extensions from Quarkus Core and those developed by the community into a single compatible and versioned set that application developers can reference from their applications to align the dependency versions</description>
    <url>https://github.com/quarkusio/quarkus-platform</url>

    <developers>
        <developer>
            <id>quarkus</id>
            <name>Quarkus Community</name>
            <organization>Quarkus</organization>
            <organizationUrl>https://quarkus.io</organizationUrl>
        </developer>
    </developers>

    <licenses>
        <license>
            <name>The Apache Software License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
            <distribution>repo</distribution>
        </license>
    </licenses>

    <scm>
        <url>https://github.com/quarkusio/quarkus-platform</url>
        <connection>scm:git:git@github.com:quarkusio/quarkus-platform.git</connection>
        <developerConnection>scm:git:git@github.com:quarkusio/quarkus-platform.git</developerConnection>
        <tag>2.4.1.Final</tag>
    </scm>

    <issueManagement>
        <system>GitHub</system>
        <url>https://github.com/quarkusio/quarkus/issues/</url>
    </issueManagement>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <graalvmHome>${env.GRAALVM_HOME}</graalvmHome>
        <postgres.url>jdbc:postgresql:hibernate_orm_test</postgres.url>

        <quarkus.version>2.4.1.Final</quarkus.version>
        <quarkus-bom.version>${quarkus.version}</quarkus-bom.version>

        <camel-quarkus.version>2.4.0</camel-quarkus.version>

        <quarkus-qpid-jms.version>0.29.0</quarkus-qpid-jms.version>
        <quarkus-hazelcast-client.version>2.0.0</quarkus-hazelcast-client.version>
        <debezium-quarkus-outbox.version>1.6.1.Final</debezium-quarkus-outbox.version>
        <quarkus-blaze-persistence.version>1.6.3</quarkus-blaze-persistence.version>
        <quarkus-cassandra-client.version>1.1.1</quarkus-cassandra-client.version>

        <kogito-quarkus.version>1.12.0.Final</kogito-quarkus.version>
        <optaplanner-quarkus.version>8.12.0.Final</optaplanner-quarkus.version>

        <quarkus-google-cloud-services.version>0.10.0</quarkus-google-cloud-services.version>

        <quarkus-platform-bom-generator.version>0.0.32</quarkus-platform-bom-generator.version>
        <build-helper-maven-plugin.version>3.1.0</build-helper-maven-plugin.version>
        <rpkgtests-maven-plugin.version>0.8.0</rpkgtests-maven-plugin.version>
        <groovy-maven-plugin.version>2.1.1</groovy-maven-plugin.version>
        <maven-plugin-plugin.version>3.6.1</maven-plugin-plugin.version>
        <useReleaseProfile>true</useReleaseProfile>

        <!-- the group-id (and the platform key) for the generated platform artifacts -->
        <platform.groupId>${project.groupId}</platform.groupId>
        <platform.version>${project.version}</platform.version>

        <!-- descriptor overrides -->
        <resourcesdir>${project.basedir}/src/main/resources</resourcesdir>
        <overridesfile>${resourcesdir}/extensions-overrides.json</overridesfile>
    </properties>

    <distributionManagement>
        <snapshotRepository>
            <id>sonatype-nexus-snapshots</id>
            <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
        </snapshotRepository>
        <repository>
            <id>sonatype-nexus-release</id>
            <url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        </repository>
    </distributionManagement>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>build-helper-maven-plugin</artifactId>
                    <version>${build-helper-maven-plugin.version}</version>
                </plugin>
                <plugin>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <configuration>
                        <systemProperties>
                            <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
                        </systemProperties>
                        <excludedGroups>quarkus-platform-ignore</excludedGroups>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-failsafe-plugin</artifactId>
                    <configuration>
                        <excludedGroups>quarkus-platform-ignore</excludedGroups>
                        <systemProperties>
                            <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
                        </systemProperties>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.gmaven</groupId>
                    <artifactId>groovy-maven-plugin</artifactId>
                    <version>${groovy-maven-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-plugin-plugin</artifactId>
                    <version>${maven-plugin-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>io.quarkus</groupId>
                    <artifactId>quarkus-platform-bom-maven-plugin</artifactId>
                    <version>${quarkus-platform-bom-generator.version}</version>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>io.quarkus</groupId>
                <artifactId>quarkus-platform-bom-maven-plugin</artifactId>
                <inherited>false</inherited>
                <extensions>true</extensions>
                <executions>
                    <execution>
                        <id>generate-platform-project</id>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>generate-platform-project</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>build-platform-project</id>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>invoke-platform-project</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <platformConfig>
                        <!-- the platform release info -->
                        <release>
                            <!-- the platform (dev stack) key (if not specified, defaults to the root project's groudId) -->
                            <platformKey>${platform.groupId}</platformKey>
                            <!--
                                | platform stream id, representing the flow of backward compatible releases (if not specified, defaults to the project's major.minor platform version)
                            -->
                            <!-- stream>2.0</stream -->
                            <!-- platform release  version, must be unique in the scope of the stream, (if not specified, defaults to the platform version) -->
                            <version>${platform.version}</version>
                        </release>
                        <!-- Universal / all-inclusive platform -->
                        <universal>
                            <!-- coordinates of the generated all-inclusive platform BOM -->
                            <bom>io.quarkus:quarkus-universe-bom:${project.version}</bom>
                            <!-- whether to skip installation of the all-inclusive platform BOM -->
                            <skipInstall>false</skipInstall>
                        </universal>
                        <!-- Quarkus core -->
                        <core>
                            <name>Core</name>
                            <bom>io.quarkus:quarkus-bom:${quarkus-bom.version}</bom>
                            <release>
                                <lastDetectedBomUpdate>io.quarkus.platform:quarkus-bom:2.4.1.Final</lastDetectedBomUpdate>
                                <next>${platform.groupId}:quarkus-bom:${platform.version}</next>
                            </release>
                        </core>
                        <!-- Platform members -->
                        <members>
                            <member>
                                <name>OptaPlanner</name>
                                <bom>org.optaplanner:optaplanner-build-parent:${optaplanner-quarkus.version}</bom>
                                <enabled>true</enabled>
                                <release>
                                    <lastDetectedBomUpdate>io.quarkus.platform:quarkus-optaplanner-bom:2.4.0.Final</lastDetectedBomUpdate>
                                    <next>${platform.groupId}:quarkus-optaplanner-bom:${platform.version}</next>
                                </release>
                                <defaultTestConfig>
                                    <skip>false</skip>
                                </defaultTestConfig>
                                <tests>
                                    <test>
                                        <artifact>org.optaplanner:optaplanner-quarkus-integration-test:${optaplanner-quarkus.version}</artifact>
                                    </test>
                                    <test>
                                        <artifact>org.optaplanner:optaplanner-quarkus-drl-integration-test:${optaplanner-quarkus.version}</artifact>
                                    </test>
                                    <test>
                                        <!-- TODO: remove the skip with upgrade to OptaPlanner 8.12.0.Final. -->
                                        <skip>true</skip>
                                        <artifact>org.optaplanner:optaplanner-quarkus-devui-integration-test:${optaplanner-quarkus.version}</artifact>
                                    </test>
                                    <test>
                                        <artifact>org.optaplanner:optaplanner-quarkus-jackson-integration-test:${optaplanner-quarkus.version}</artifact>
                                    </test>
                                    <test>
                                        <artifact>org.optaplanner:optaplanner-quarkus-jsonb-integration-test:${optaplanner-quarkus.version}</artifact>
                                    </test>
                                </tests>
                            </member>
                            <member>
                                <name>Kogito</name>
                                <bom>org.kie.kogito:kogito-bom:${kogito-quarkus.version}</bom>
                                <enabled>true</enabled>
                                <release>
                                    <lastDetectedBomUpdate>io.quarkus.platform:quarkus-kogito-bom:2.4.0.Final</lastDetectedBomUpdate>
                                    <next>${platform.groupId}:quarkus-kogito-bom:${platform.version}</next>
                                </release>
                                <defaultTestConfig>
                                    <skip>false</skip>
                                    <mavenFailsafePlugin>true</mavenFailsafePlugin>
                                    <jvmExcludes>
                                        <exclude>**/Native*</exclude>
                                    </jvmExcludes>
                                    <systemProperties>
                                        <!-- Need to keep in sync with ${kogito-quarkus.version} -->
                                        <container.image.infinispan>infinispan/server:12.1.4.Final</container.image.infinispan>
                                        <container.image.kafka>confluentinc/cp-kafka:5.4.3</container.image.kafka>
                                        <container.image.keycloak>jboss/keycloak:14.0.0</container.image.keycloak>
                                    </systemProperties>
                                </defaultTestConfig>
                                <testCatalogArtifact>org.kie.kogito:kogito-quarkus-test-list::xml:${kogito-quarkus.version}</testCatalogArtifact>
                                <tests>
                                    <test>
                                        <excluded>true</excluded>
                                        <artifact>org.kie.kogito:kogito-quarkus-rules-integration-test-session:${kogito-quarkus.version}</artifact>
                                    </test>
                                </tests>
                            </member>
                            <member>
                                <name>QpidJMS</name>
                                <bom>org.amqphub.quarkus:quarkus-qpid-jms-bom:${quarkus-qpid-jms.version}</bom>
                                <enabled>true</enabled>
                                <release>
                                    <lastDetectedBomUpdate>io.quarkus.platform:quarkus-qpid-jms-bom:2.4.0.Final</lastDetectedBomUpdate>
                                    <next>${platform.groupId}:quarkus-qpid-jms-bom:${platform.version}</next>
                                </release>
                                <tests>
                                    <test>
                                        <artifact>org.amqphub.quarkus:quarkus-qpid-jms-integration-tests:${quarkus-qpid-jms.version}</artifact>
                                    </test>
                                </tests>
                            </member>
                            <member>
                                <name>Cassandra</name>
                                <bom>com.datastax.oss.quarkus:cassandra-quarkus-bom:${quarkus-cassandra-client.version}</bom>
                                <enabled>true</enabled>
                                <release>
                                    <lastDetectedBomUpdate>io.quarkus.platform:quarkus-cassandra-bom:2.2.0.CR1</lastDetectedBomUpdate>
                                    <next>${platform.groupId}:quarkus-cassandra-bom:${platform.version}</next>
                                </release>
                                <defaultTestConfig>
                                    <skip>true</skip>
                                    <mavenFailsafePlugin>true</mavenFailsafePlugin>
                                    <groups>!native</groups>
                                    <nativeGroups>native</nativeGroups>
                                </defaultTestConfig>
                                <tests>
                                    <test>
                                        <artifact>com.datastax.oss.quarkus:cassandra-quarkus-integration-tests-main:${quarkus-cassandra-client.version}</artifact>
                                    </test>
                                    <test>
                                        <artifact>com.datastax.oss.quarkus:cassandra-quarkus-integration-tests-metrics-disabled:${quarkus-cassandra-client.version}</artifact>
                                    </test>
                                    <test>
                                        <artifact>com.datastax.oss.quarkus:cassandra-quarkus-integration-tests-metrics-microprofile:${quarkus-cassandra-client.version}</artifact>
                                    </test>
                                    <test>
                                        <artifact>com.datastax.oss.quarkus:cassandra-quarkus-integration-tests-no-mapper:${quarkus-cassandra-client.version}</artifact>
                                    </test>
                                </tests>
                            </member>
                            <member>
                                <name>Camel</name>
                                <bom>org.apache.camel.quarkus:camel-quarkus-bom:${camel-quarkus.version}</bom>
                                <enabled>true</enabled>
                                <release>
                                    <lastDetectedBomUpdate>io.quarkus.platform:quarkus-camel-bom:2.4.0.Final</lastDetectedBomUpdate>
                                    <next>${platform.groupId}:quarkus-camel-bom:${platform.version}</next>
                                </release>
                                <defaultTestConfig>
                                    <skip>false</skip>
                                    <jvmSystemProperties>
                                        <quarkus.http.test-port>$${test.http.port.jvm}</quarkus.http.test-port>
                                        <quarkus.http.test-ssl-port>$${test.https.port.jvm}</quarkus.http.test-ssl-port>
                                        <!-- https://github.com/quarkusio/quarkus/issues/20228  -->
                                        <quarkus.https.test-port>$${test.https.port.jvm}</quarkus.https.test-port>
                                    </jvmSystemProperties>
                                    <nativeSystemProperties>
                                        <quarkus.http.test-port>$${test.http.port.native}</quarkus.http.test-port>
                                        <quarkus.http.test-ssl-port>$${test.https.port.native}</quarkus.http.test-ssl-port>
                                        <!-- https://github.com/quarkusio/quarkus/issues/20228  -->
                                        <quarkus.https.test-port>$${test.https.port.native}</quarkus.https.test-port>
                                    </nativeSystemProperties>
                                    <transformWith>src/main/resources/xslt/camel/test-pom.xsl</transformWith>
                                </defaultTestConfig>
                                <testCatalogArtifact>org.apache.camel.quarkus:camel-quarkus-test-list::xml:${camel-quarkus.version}</testCatalogArtifact>
                                <tests>
                                    <test><!-- Workaround for https://github.com/apache/camel-quarkus/pull/3055 -->
                                        <skip>true</skip>
                                        <artifact>org.apache.camel.quarkus:camel-quarkus-integration-test-main-unknown-args-ignore:${camel-quarkus.version}</artifact>
                                    </test>
                                    <test><!-- Workaround for azure-grouped tests failing with Quarkus 999-SNAPSHOT and CQ 2.3.0  -->
                                        <skip>true</skip>
                                        <artifact>org.apache.camel.quarkus:camel-quarkus-integration-test-azure-grouped:${camel-quarkus.version}</artifact>
                                    </test>
                                    <test><!-- Workaround for fop tests failing with Quarkus 999-SNAPSHOT and CQ 2.4.0  -->
                                        <skip>true</skip>
                                        <artifact>org.apache.camel.quarkus:camel-quarkus-integration-test-fop:${camel-quarkus.version}</artifact>
                                    </test>
                                    <test><!-- Workaround for geocoder tests failing in CQ 2.4.0  -->
                                        <skip>true</skip>
                                        <artifact>org.apache.camel.quarkus:camel-quarkus-integration-test-geocoder:${camel-quarkus.version}</artifact>
                                    </test>
                                    <test><!-- Workaround for kafka-sasl tests failing with Quarkus 999-SNAPSHOT and CQ 2.4.0  -->
                                        <skip>true</skip>
                                        <artifact>org.apache.camel.quarkus:camel-quarkus-integration-test-kafka-sasl:${camel-quarkus.version}</artifact>
                                    </test>
                                    <test><!-- Workaround for kafka-sasl-ssl tests failing with Quarkus 999-SNAPSHOT and CQ 2.4.0  -->
                                        <skip>true</skip>
                                        <artifact>org.apache.camel.quarkus:camel-quarkus-integration-test-kafka-sasl-ssl:${camel-quarkus.version}</artifact>
                                    </test>
                                    <test><!-- Workaround for kafka-ssl tests failing with Quarkus 999-SNAPSHOT and CQ 2.4.0  -->
                                        <skip>true</skip>
                                        <artifact>org.apache.camel.quarkus:camel-quarkus-integration-test-kafka-ssl:${camel-quarkus.version}</artifact>
                                    </test>
                                    <test><!-- Workaround for rabbitmq tests failing with Quarkus 999-SNAPSHOT and CQ 2.4.0  -->
                                        <skip>true</skip>
                                        <artifact>org.apache.camel.quarkus:camel-quarkus-integration-test-rabbitmq:${camel-quarkus.version}</artifact>
                                    </test>
                                    <test><!-- Workaround for salesforce tests failing with Quarkus 999-SNAPSHOT and CQ 2.4.0  -->
                                        <skip>true</skip>
                                        <artifact>org.apache.camel.quarkus:camel-quarkus-integration-test-salesforce:${camel-quarkus.version}</artifact>
                                    </test>
                                </tests>
                            </member>
                            <member>
                                <name>Hazelcast</name>
                                <bom>com.hazelcast:quarkus-hazelcast-client:${quarkus-hazelcast-client.version}</bom>
                                <enabled>true</enabled>
                                <release>
                                    <lastDetectedBomUpdate>io.quarkus.platform:quarkus-hazelcast-client:2.1.0.CR1</lastDetectedBomUpdate>
                                    <next>${platform.groupId}:quarkus-hazelcast-client:${platform.version}</next>
                                </release>
                                <tests>
                                    <test>
                                        <artifact>com.hazelcast:quarkus-hazelcast-client-integration-tests:${quarkus-hazelcast-client.version}</artifact>
                                    </test>
                                </tests>
                            </member>
                            <member>
                                <name>Debezium-Outbox</name>
                                <dependencyManagement>
                                    <dependency>io.debezium:debezium-quarkus-outbox:${debezium-quarkus-outbox.version}</dependency>
                                    <dependency>io.debezium:debezium-quarkus-outbox-deployment:${debezium-quarkus-outbox.version}</dependency>
                                    <dependency>io.debezium:debezium-api:${debezium-quarkus-outbox.version}</dependency>
                                    <dependency>io.debezium:debezium-connector-cassandra:${debezium-quarkus-outbox.version}</dependency>
                                    <dependency>io.debezium:debezium-connector-db2:${debezium-quarkus-outbox.version}</dependency>
                                    <dependency>io.debezium:debezium-connector-mongodb:${debezium-quarkus-outbox.version}</dependency>
                                    <dependency>io.debezium:debezium-connector-mysql:${debezium-quarkus-outbox.version}</dependency>
                                    <dependency>io.debezium:debezium-connector-oracle:${debezium-quarkus-outbox.version}</dependency>
                                    <dependency>io.debezium:debezium-connector-postgres:${debezium-quarkus-outbox.version}</dependency>
                                    <dependency>io.debezium:debezium-connector-sqlserver:${debezium-quarkus-outbox.version}</dependency>
                                    <dependency>io.debezium:debezium-connector-vitess:${debezium-quarkus-outbox.version}</dependency>
                                    <dependency>io.debezium:debezium-core:${debezium-quarkus-outbox.version}</dependency>
                                    <dependency>io.debezium:debezium-ddl-parser:${debezium-quarkus-outbox.version}</dependency>
                                    <dependency>io.debezium:debezium-embedded:${debezium-quarkus-outbox.version}</dependency>
                                    <dependency>io.debezium:debezium-scripting:${debezium-quarkus-outbox.version}</dependency>
                                </dependencyManagement>
                                <enabled>true</enabled>
                                <release>
                                    <lastDetectedBomUpdate>io.quarkus.platform:quarkus-debezium-bom:2.2.0.CR1</lastDetectedBomUpdate>
                                    <next>${platform.groupId}:quarkus-debezium-bom:${platform.version}</next>
                                </release>
                                <tests>
                                    <test>
                                        <skip>false</skip>
                                        <artifact>io.debezium:debezium-quarkus-outbox-integration-tests:${debezium-quarkus-outbox.version}</artifact>
                                    </test>
                                </tests>
                            </member>
                            <member>
                                <name>Blaze-Persistence</name>
                                <dependencyManagement>
                                    <dependency>com.blazebit:blaze-persistence-integration-quarkus:${quarkus-blaze-persistence.version}</dependency>
                                    <dependency>com.blazebit:blaze-persistence-integration-quarkus-deployment:${quarkus-blaze-persistence.version}</dependency>
                                    <dependency>com.blazebit:blaze-persistence-entity-view-processor:${quarkus-blaze-persistence.version}</dependency>
                                    <dependency>com.blazebit:blaze-persistence-integration-hibernate-5.4:${quarkus-blaze-persistence.version}</dependency>
                                </dependencyManagement>
                                <enabled>true</enabled>
                                <release>
                                    <lastDetectedBomUpdate>io.quarkus.platform:quarkus-blaze-persistence-bom:2.4.0.CR1</lastDetectedBomUpdate>
                                    <next>${platform.groupId}:quarkus-blaze-persistence-bom:${platform.version}</next>
                                </release>
                                <defaultTestConfig>
                                    <skip>false</skip>
                                    <dependencies>
                                        <dependency>io.quarkus:quarkus-jdbc-h2:${quarkus.version}</dependency>
                                    </dependencies>
                                    <testDependencies>
                                        <dependency>io.quarkus:quarkus-test-h2:${quarkus.version}</dependency>
                                    </testDependencies>
                                </defaultTestConfig>
                                <tests>
                                    <test>
                                        <skipNative>true</skipNative>
                                        <artifact>com.blazebit:blaze-persistence-examples-quarkus-testsuite-base:${quarkus-blaze-persistence.version}</artifact>
                                        <systemProperties>
                                            <quarkus.test.profile>h2</quarkus.test.profile>
                                        </systemProperties>
                                    </test>
                                    <test>
                                        <skipJvm>true</skipJvm>
                                        <artifact>com.blazebit:blaze-persistence-examples-quarkus-testsuite-native-h2:${quarkus-blaze-persistence.version}</artifact>
                                    </test>
                                </tests>
                            </member>
                            <member>
                                <name>GoogleCloudServices</name>
                                <bom>io.quarkiverse.googlecloudservices:quarkus-google-cloud-services-bom:${quarkus-google-cloud-services.version}</bom>
                                <enabled>true</enabled>
                                <release>
                                    <lastDetectedBomUpdate>io.quarkus.platform:quarkus-google-cloud-services-bom:2.3.0.CR1</lastDetectedBomUpdate>
                                    <next>${platform.groupId}:quarkus-google-cloud-services-bom:${platform.version}</next>
                                </release>
                                <defaultTestConfig>
                                    <skip>false</skip>
                                </defaultTestConfig>
                                <tests>
                                    <test>
                                        <artifact>io.quarkiverse.googlecloudservices:quarkus-google-cloud-services-main-it:${quarkus-google-cloud-services.version}</artifact>
                                    </test>
                                </tests>
                            </member>
                        </members>
                        <!-- Platform BOM generator configuration -->
                        <bomGenerator>
                            <!-- Config to enforce specific versions and excluding dependencies -->
                            <!--
                            <enforcedDependencies>
                                <dependency>groupId:artifactId:desired-version</dependency>
                            </enforcedDependencies>
                            <excludedDependencies>
                                <dependency>groupId:artifactId</dependency>
                            </excludedDependencies>
                            <excludedGroups>
                                <excludedGroup>groupId</excludedGroup>
                            </excludedGroups>
                            -->
                            <excludedDependencies>
                                <dependency>io.quarkus:quarkus-bom-quarkus-platform-descriptor:${quarkus-bom.version}:json</dependency>
                                <dependency>io.quarkus:quarkus-bom-quarkus-platform-properties::properties</dependency>
                                <dependency>com.oracle.instantclient:xstreams</dependency> <!-- provided dependency of a Debezium extension, supposed to be added by users manually -->
                                <!-- Kogito: exclude Spring-related dependencies -->
                                <dependency>org.kie.kogito:kogito-spring-boot-starter</dependency>
                                <dependency>org.kie.kogito:kogito-decisions-spring-boot-starter</dependency>
                                <dependency>org.kie.kogito:kogito-processes-spring-boot-starter</dependency>
                                <dependency>org.kie.kogito:kogito-rules-spring-boot-starter</dependency>
                            </excludedDependencies>
                        </bomGenerator>
                        <descriptorGenerator>
                            <overridesFile>${overridesfile}</overridesFile>
                            <skipCategoryCheck>true</skipCategoryCheck>
                        </descriptorGenerator>
                        <attachedMavenPlugin>
                            <originalPluginCoords>io.quarkus:quarkus-maven-plugin:${quarkus.version}</originalPluginCoords>
                            <targetPluginCoords>${platform.groupId}:quarkus-maven-plugin:${platform.version}</targetPluginCoords>
                        </attachedMavenPlugin>
                    </platformConfig>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <repositories>
        <repository>
            <id>confluent</id>
            <url>https://packages.confluent.io/maven/</url>
        </repository>
    </repositories>

    <profiles>
        <profile>
            <id>release</id>
            <modules>
                <!-- To properly push the generated platform project as part of the release, it has to be added as a module to make it visible
                     to the release plugin which will then be able to transform the generated POMs -->
                <module>generated-platform-project</module>
            </modules>
            <build>
                <plugins>
                    <!-- Given that the generated platform project is included as a module in this profile,
                         the platform invoker goal becomes redundant and can be disabled -->
                    <plugin>
                        <groupId>io.quarkus</groupId>
                        <artifactId>quarkus-platform-bom-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>build-platform-project</id>
                                <phase>process-resources</phase>
                                <goals>
                                    <goal>invoke-platform-project</goal>
                                </goals>
                                <configuration>
                                    <skip>true</skip>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <artifactId>maven-release-plugin</artifactId>
                        <configuration>
                            <!-- After the release plugin has transformed all the POMs, we need to re-generate the platform configs (mainly to re-generated the POM properties)
                                 taking into account the upcoming release version. Although this will happen at the `process-resources` phase anyway, this should be done
                                 using the platform invoker goal (otherwise, some dependencies relying on the generated properties may fail to resolve).
                                 Here we are deactivating the release profile to exclude the generated-platform-project module. -->
                            <preparationGoals>clean verify -P !release -DrecordUpdatedBoms</preparationGoals>
                            <completionGoals>process-resources -P !release</completionGoals>
                        </configuration>
                    </plugin>
                    <plugin>
                        <!--
                        ## IMPORTANT ##
                        In your ~/.m2/settings.xml you need to add and edit the following profile:
                        <profile>
                            <id>release</id>
                            <properties>
                                <gpg.useagent>false</gpg.useagent>
                                <gpg.executable>/usr/local/Cellar/gnupg@1.4/1.4.23_1/bin/gpg1</gpg.executable> <- use gpg1 on Mac OS X <gpg.homedir>~/.gnupg</gpg.homedir>  <- Update to your own directory <gpg.passphrase>******</gpg.passphrase> <- Add your passphrase </properties>
                        </profile>
                         -->
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>sign-artifacts</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>rhproduct</id>
            <properties>
                <quarkus.upstream.version>${quarkus.version}</quarkus.upstream.version>
                <platform.groupId>com.redhat.quarkus.platform</platform.groupId>
            </properties>
            <build>
                <plugins>
                    <plugin>
                        <groupId>io.quarkus</groupId>
                        <artifactId>quarkus-platform-bom-maven-plugin</artifactId>
                        <configuration>
                            <platformConfig>
                                <upstreamQuarkusCoreVersion>${quarkus.upstream.version}</upstreamQuarkusCoreVersion>
                                <universal>
                                    <bom>com.redhat.quarkus:quarkus-universe-bom:${platform.version}</bom>
                                </universal>
                                <core combine.children="append">
                                    <metadataOverrideFiles>
                                        <file>${resourcesdir}/core/extensions-support-overrides.json</file>
                                    </metadataOverrideFiles>
                                </core>
                                <members combine.children="append">
                                    <member>
                                        <name>OptaPlanner</name>
                                        <hidden>true</hidden>
                                    </member>
                                    <member>
                                        <name>Kogito</name>
                                        <hidden>true</hidden>
                                    </member>
                                    <member>
                                        <name>QpidJMS</name>
                                        <hidden>true</hidden>
                                    </member>
                                    <member>
                                        <name>Cassandra</name>
                                        <hidden>true</hidden>
                                    </member>
                                    <member>
                                        <name>Camel</name>
                                        <hidden>true</hidden>
                                        <!-- uncomment when the artifact is available
                                        <metadataOverrideArtifacts>
                                            <artifact>org.apache.camel.quarkus:camel-quarkus-product::json:${camel-quarkus.version}</artifact>
                                        </metadataOverrideArtifacts>
                                        -->
                                    </member>
                                    <member>
                                        <name>Hazelcast</name>
                                        <hidden>true</hidden>
                                    </member>
                                    <member>
                                        <name>Debezium-Outbox</name>
                                        <hidden>true</hidden>
                                    </member>
                                    <member>
                                        <name>Blaze-Persistence</name>
                                        <hidden>true</hidden>
                                    </member>
                                    <member>
                                        <name>GoogleCloudServices</name>
                                        <hidden>true</hidden>
                                    </member>
                                </members>
                                <bomGenerator>
                                    <!-- Version constraint preferences during alignment -->
                                    <!-- This allows to favor versions that match a certain expression even if the default Maven version comparator would do otherwise -->
                                    <versionConstraintPreferences>
                                        <prefer>*redhat-*</prefer>
                                    </versionConstraintPreferences>
                                </bomGenerator>
                            </platformConfig>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

</project>
