<?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">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.mule</groupId>
    <artifactId>mule-runtime-bom-parent</artifactId>
    <version>4.6.23</version>
    <packaging>pom</packaging>

    <properties>
        <antlrVersion>3.5.2</antlrVersion>
        <antVersion>1.9.15</antVersion>
        <assertJVersion>3.5.2</assertJVersion>
        <aspectjVersion>1.9.2</aspectjVersion>
        <apacheHttpClientVersion>4.5.13</apacheHttpClientVersion>
        <byteBuddyVersion>1.14.0</byteBuddyVersion>
        <c3p0Version>0.9.5.4</c3p0Version>
        <caffeineVersion>2.8.0</caffeineVersion>
        <checkerQualVersion>3.33.0</checkerQualVersion>
        <cometdVersion>6.1.26</cometdVersion>
        <commonsBeanUtilsVersion>1.11.0</commonsBeanUtilsVersion>
        <commonsCliVersion>1.2</commonsCliVersion>
        <commonsCodecVersion>1.15</commonsCodecVersion>
        <commonsCollectionsVersion>4.4</commonsCollectionsVersion>
        <commonsCompressVersion>1.21</commonsCompressVersion>
        <commonsDbcpVersion>1.4</commonsDbcpVersion>
        <commonsDbUtilsVersion>1.7</commonsDbUtilsVersion>
        <commonsHttpClientVersion>3.1-14-MULE-001</commonsHttpClientVersion>
        <commonsIoVersion>2.17.0</commonsIoVersion>
        <commonsTextVersion>1.3</commonsTextVersion>
        <commonsLangVersion>3.12.0</commonsLangVersion>
        <commonsNetVersion>3.6</commonsNetVersion>
        <commonsPoolVersion>1.6</commonsPoolVersion>
        <commonsPool2Version>2.11.1</commonsPool2Version>
        <commonsMath3Version>3.6.1</commonsMath3Version>
        <!-- not to be confused with LMAX Disruptor (used by log4j2), this one provides queue impls used by Vibur -->
        <coversantmediaDisruptorVersion>1.2.10</coversantmediaDisruptorVersion>
        <disruptorVersion>3.4.3</disruptorVersion>
        <dom4jVersion>2.1.3</dom4jVersion>
        <eaioUuidVersion>3.4.2-MULE-001</eaioUuidVersion>
        <fastUtilVersion>8.5.11</fastUtilVersion>
        <everitJsonSchemaVersion>1.5.1</everitJsonSchemaVersion>
        <greenmailVersion>1.5.0</greenmailVersion>
        <gsonVersion>2.12.1</gsonVersion>
        <guavaVersion>32.1.3-jre</guavaVersion>
        <errorProneAnnotationsVersion>2.5.1</errorProneAnnotationsVersion>
        <hamcrestVersion>2.2</hamcrestVersion>
        <ioGrpcHelidonVersion>2.6.1</ioGrpcHelidonVersion>

        <!-- It must be verified that the com.fasterxml.jackson.core:jackson-databind version is compatible
        with the com.github.java-json-tools:json-schema-validator version -->
        <jackson2Version>2.15.4</jackson2Version>
        <jackson2DatabindVersion>2.15.4</jackson2DatabindVersion>

        <!-- Java EE dependencies -->
        <jakarta.activation.version>1.2.2</jakarta.activation.version>
        <jakarta.annotation.version>1.3.5</jakarta.annotation.version>
        <jakarta.inject.version>1.0.5</jakarta.inject.version>
        <jakarta.jws.version>1.1.1</jakarta.jws.version>
        <java.mail.version>1.6.2</java.mail.version>
        <jakarta.xml.bind.api.version>2.3.3</jakarta.xml.bind.api.version>
        <jakarta.jaxws.version>2.3.3</jakarta.jaxws.version>
        <jakarta.jms.version>2.0.3</jakarta.jms.version>
        <jakarta.transaction.version>1.3.3</jakarta.transaction.version>
        <jakarta.resource.api.version>1.7.4</jakarta.resource.api.version>
        <java.xml.bind.version>2.3.8</java.xml.bind.version>
        <com.sun.istack.version>3.0.12</com.sun.istack.version>
        <jakarta.xml.soap.version>1.4.2</jakarta.xml.soap.version>
        <geronimoSpecsJ2eeVersion>2.0.0</geronimoSpecsJ2eeVersion>
        <geronimoSpecsJmsVersion>1.1.1</geronimoSpecsJmsVersion>
        <geronimoSpecsServletApiVersion>1.0</geronimoSpecsServletApiVersion>

        <jdomVersion>1.1.3</jdomVersion>
        <jettyVersion>9.0.7.v20131107</jettyVersion>
        <jgraphtVersion>1.3.1</jgraphtVersion>
        <jodaTimeVersion>2.12.7</jodaTimeVersion>
        <jsonVersion>20231013</jsonVersion>
        <junitVersion>4.12</junitVersion>
        <log4jVersion>2.20.0</log4jVersion>
        <mavenSharedUtilsVersion>3.3.4</mavenSharedUtilsVersion>
        <mockitoVersion>2.26.0</mockitoVersion>
        <muleMvelVersion>2.1.9-MULE-020</muleMvelVersion>
        <opentelemetryVersion>1.31.0</opentelemetryVersion>
        <powermockVersion>2.0.0</powermockVersion>
        <projectReactorVersion>3.4.22</projectReactorVersion>
        <projectReactorExtraVersion>3.4.8</projectReactorExtraVersion>

        <!-- When raml-parser-2 is updated, it must be verified that the version of its dependency:
        com.github.java-json-tools:json-schema-validator is compatible with the current com.fasterxml.jackson.core:jackson-databind version -->
        <raml.parser.2.version>1.0.44-17</raml.parser.2.version>

        <reflectionsVersion>0.9.10</reflectionsVersion>
        <reactiveStreamsVersion>1.0.4</reactiveStreamsVersion>
        <rhinoVersion>1.7.12</rhinoVersion>
        <saxonVersion>9.9.1-8</saxonVersion>
        <semver4jVersion>3.1.0</semver4jVersion>
        <slf4jVersion>2.0.7</slf4jVersion>
        <snakeYamlVersion>2.0</snakeYamlVersion>
        <springVersion>5.3.39</springVersion>
        <staxUtilsVersion>20080702</staxUtilsVersion>
        <typesafeConfigVersion>1.3.1</typesafeConfigVersion>
        <unirestVersion>1.4.9</unirestVersion>
        <woodstoxVersion>4.4.1</woodstoxVersion>
        <wrapperVersion>3.2.3</wrapperVersion>
        <togglzVersion>3.0.0</togglzVersion>
        <viburVersion>23.0</viburVersion>
        <!-- If this version is upgraded, the repackaged jar must be updated/released as well -->
        <xerces2VersionBase>2.12.2</xerces2VersionBase>
        <xerces2Version>${xerces2VersionBase}-MULE-001</xerces2Version>
        <xmlApisVersion>1.4.01</xmlApisVersion>
        <xmlbeansVersion>3.1.0</xmlbeansVersion>

        <!-- Mule Snapshot Dependencies -->
        <muleSdkApiVersion>0.10.4</muleSdkApiVersion>
        <muleSdkCompatibilityApiVersion>0.10.4</muleSdkCompatibilityApiVersion>
        <muleDslApiVersion>1.6.23</muleDslApiVersion>
        <muleAstVersion>1.2.23</muleAstVersion>
        <mulePropertiesApiVersion>1.2.23</mulePropertiesApiVersion>
        <muleExtensionsApiVersion>1.6.23</muleExtensionsApiVersion>
        <muleHttpPolicyApiVersion>1.6.23</muleHttpPolicyApiVersion>
        <muleMavenClientApi>2.1.23</muleMavenClientApi>
        <muleMavenClientImpl>2.1.23</muleMavenClientImpl>
        <muleMavenParser>2.1.23</muleMavenParser>
        <muleMavenClientTest>2.1.23</muleMavenClientTest>
        <mulePolicyApiVersion>1.6.23</mulePolicyApiVersion>
        <muleApiVersion>1.6.23</muleApiVersion>
        <muleProfilingApiVersion>1.2.23</muleProfilingApiVersion>
        <muleMetadataModelVersion>1.6.24</muleMetadataModelVersion>
        <mule.classloader.model.version>3.8.5</mule.classloader.model.version>
        <muleOAuthClientVersion>2.1.23</muleOAuthClientVersion>

        <!--Services-->
        <muleSchedulerServiceVersion>1.6.23</muleSchedulerServiceVersion>
        <muleHttpServiceVersion>1.8.23</muleHttpServiceVersion>
        <muleOAuthServiceVersion>2.3.23</muleOAuthServiceVersion>
        <muleSoapServiceVersion>1.6.19</muleSoapServiceVersion>
        <weaveVersion>2.6.19</weaveVersion>

        <!-- Maven Plugins used in the mule-runtime-bom repo -->
        <maven.clean.plugin.version>3.3.2</maven.clean.plugin.version>
        <maven.install.plugin.version>3.1.2</maven.install.plugin.version>
        <maven.deploy.plugin.version>3.1.2</maven.deploy.plugin.version>
        <maven.site.plugin.version>3.12.1</maven.site.plugin.version>
        <maven.source.plugin.version>3.3.1</maven.source.plugin.version>
        <maven.javadoc.plugin.version>3.6.3</maven.javadoc.plugin.version>
        <maven.enforcer.plugin.version>3.5.0</maven.enforcer.plugin.version>
    </properties>

    <modules>
        <module>mule-javaee-runtime-bom</module>
        <module>mule-runtime-bom</module>
    </modules>

    <distributionManagement>
        <repository>
            <id>mule-releases</id>
            <name>Mule Release Repository</name>
            <url>https://repository-master.mulesoft.org/nexus/content/repositories/releases</url>
        </repository>
        <snapshotRepository>
            <id>mule-snapshots</id>
            <name>Mule Snapshot Repository</name>
            <url>https://repository-master.mulesoft.org/nexus/content/repositories/snapshots</url>
            <uniqueVersion>false</uniqueVersion>
        </snapshotRepository>
    </distributionManagement>

    <repositories>
        <repository>
            <id>mulesoft-snapshots</id>
            <url>https://repository-master.mulesoft.org/nexus/content/repositories/snapshots</url>
            <snapshots/>
        </repository>
        <repository>
            <id>mulesoft-releases</id>
            <url>https://repository-master.mulesoft.org/nexus/content/repositories/releases</url>
        </repository>
    </repositories>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>${maven.clean.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-install-plugin</artifactId>
                    <version>${maven.install.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>${maven.deploy.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-site-plugin</artifactId>
                    <version>${maven.site.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>${maven.source.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>${maven.javadoc.plugin.version}</version>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

    <profiles>
        <profile>
            <id>release</id>
            <build>
                <plugins>
                    <plugin>
                        <!-- The enforcer plugin execution is intended to run the rules in this mule-runtime-bom repo -->
                        <!-- The enforcer configuration intended to be inherited in other repos is present in the 'mule-plugin-mgmt-parent-pom' module -->
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-enforcer-plugin</artifactId>
                        <version>${maven.enforcer.plugin.version}</version>
                        <executions>
                            <execution>
                                <id>enforce-no-snapshots-in-deps</id>
                                <goals>
                                    <goal>enforce</goal>
                                </goals>
                                <configuration>
                                    <rules>
                                        <requireReleaseDeps>
                                            <message>No Snapshots Allowed in Deps!</message>
                                        </requireReleaseDeps>
                                        <requireReleaseVersion>
                                            <message>No Snapshots Allowed in Project Version!</message>
                                        </requireReleaseVersion>
                                        <requirePluginVersions>
                                            <message>Best Practice is to always define plugin versions!</message>
                                        </requirePluginVersions>
                                    </rules>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

</project>
