<?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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.mulesoft.mule.runtime</groupId>
        <artifactId>mule</artifactId>
        <version>4.7.4</version>
        <relativePath></relativePath>
    </parent>
    <groupId>com.mulesoft.mule.distributions</groupId>
    <artifactId>mule-ee-distributions</artifactId>
    <version>4.7.4</version>
    <packaging>pom</packaging>
    <name>Mule Distributions</name>

    <modules>
        <module>bom</module>
        <module>services-all</module>
        <module>patches</module>
        <module>embedded</module>
        <module>mule-config-files</module>
        <module>standalone</module>
        <module>cumulative-patch</module>
        <module>deployment-listener-plugin</module>
        <module>tests</module>
        <module>support-tools</module>
        <module>container-descriptor-handler</module>
        <module>wrapperless-arguments-resolver</module>
        <module>single-app-mode</module>
    </modules>

    <properties>
        <muleHttpEeServiceVersion>1.10.4</muleHttpEeServiceVersion>
        <muleOAuthEeServiceVersion>1.4.4</muleOAuthEeServiceVersion>
        <muleBomVersion>4.7.4</muleBomVersion>

        <activeMqVersion>5.15.15</activeMqVersion>
        <byteman.version>4.0.21</byteman.version>
        <commonsDbcpVersion>2.11.0</commonsDbcpVersion>
        <commonsCsvVersion>1.6</commonsCsvVersion>
        <db2DriverVersion>3.63.123</db2DriverVersion>
        <db2Version>3.63.123</db2Version>
        <greenmailVersion>1.5.0</greenmailVersion>
        <jsonUnitVersion>1.18.0</jsonUnitVersion>
        <msSqlServerDriverVersion>4.0</msSqlServerDriverVersion>
        <mssqlVersion>4.0</mssqlVersion>
        <muleCompatibilityModuleDistroTestVersion>1.3.4</muleCompatibilityModuleDistroTestVersion>
        <mysqlDriverVersion>8.1.0</mysqlDriverVersion>
        <mysqlVersion>5.1.33</mysqlVersion>
        <oracleDriverVersion>12.2.0.1</oracleDriverVersion>
        <oracle7DriverVersion>12.1.0.1</oracle7DriverVersion>
        <postgresDriverVersion>9.4.1208</postgresDriverVersion>
        <restAssuredVersion>5.3.2</restAssuredVersion>
        <standaloneDistribution3xVersion>3.9.0</standaloneDistribution3xVersion>
        <ztZipVersion>1.11</ztZipVersion>

        <mulesoftLicenseVersion>1.4.0</mulesoftLicenseVersion>
        <licensePath>LICENSE_HEADER.txt</licensePath>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.mule</groupId>
                <artifactId>mule-ee-runtime-bom</artifactId>
                <version>${muleBomVersion}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!-- test dependencies -->
            <dependency>
                <groupId>io.rest-assured</groupId>
                <artifactId>rest-assured</artifactId>
                <version>${restAssuredVersion}</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.httpcomponents</groupId>
                        <artifactId>httpclient</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.activemq</groupId>
                <artifactId>activemq-client</artifactId>
                <version>${activeMqVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.byteman</groupId>
                <artifactId>byteman</artifactId>
                <version>${byteman.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-csv</artifactId>
                <version>${commonsCsvVersion}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>net.javacrumbs.json-unit</groupId>
                <artifactId>json-unit</artifactId>
                <version>${jsonUnitVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.zeroturnaround</groupId>
                <artifactId>zt-zip</artifactId>
                <version>${ztZipVersion}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.groovy</groupId>
                <artifactId>groovy</artifactId>
                <version>${groovyVersionBuild}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.groovy</groupId>
                <artifactId>groovy-jsr223</artifactId>
                <version>${groovyVersionBuild}</version>
            </dependency>

            <!--JDBC Drivers-->
            <dependency>
                <groupId>org.apache.derby</groupId>
                <artifactId>derbyclient</artifactId>
                <version>${derbyVersion}</version>
            </dependency>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${mysqlVersion}</version>
            </dependency>
            <dependency>
                <groupId>com.mysql</groupId>
                <artifactId>mysql-connector-j</artifactId>
                <version>${mysqlDriverVersion}</version>
            </dependency>
            <dependency>
                <groupId>com.microsoft.sqlserver</groupId>
                <artifactId>mssql-jdbc</artifactId>
                <version>${mssqlVersion}</version>
            </dependency>
            <dependency>
                <groupId>com.oracle</groupId>
                <artifactId>ojdbc7</artifactId>
                <version>${oracle7DriverVersion}</version>
            </dependency>
            <dependency>
                <groupId>com.oracle</groupId>
                <artifactId>ojdbc8</artifactId>
                <version>${oracleDriverVersion}</version>
            </dependency>
            <dependency>
                <groupId>com.ibm.jdbc</groupId>
                <artifactId>db2jcc</artifactId>
                <version>${db2DriverVersion}</version>
            </dependency>
            <dependency>
                <groupId>com.microsoft.jdbc</groupId>
                <artifactId>sqljdbc4</artifactId>
                <version>${msSqlServerDriverVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.postgresql</groupId>
                <artifactId>postgresql</artifactId>
                <version>${postgresDriverVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-dbcp2</artifactId>
                <version>${commonsDbcpVersion}</version>
            </dependency>

            <dependency>
                <groupId>com.icegreen</groupId>
                <artifactId>greenmail</artifactId>
                <version>${greenmailVersion}</version>
            </dependency>

            <dependency>
                <groupId>com.mulesoft.muleesb.distributions</groupId>
                <artifactId>mule-ee-distribution-standalone</artifactId>
                <type>zip</type>
                <version>${standaloneDistribution3xVersion}</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>*</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.mulesoft.mule.modules</groupId>
                <artifactId>mule-compatibility-module</artifactId>
                <version>${muleCompatibilityModuleDistroTestVersion}</version>
                <classifier>mule-plugin</classifier>
            </dependency>
            <dependency>
                <groupId>org.mule.tests.plugin</groupId>
                <artifactId>mule-tests-component-plugin</artifactId>
                <version>${muleTestsComponentPlugin}</version>
                <classifier>mule-plugin</classifier>
            </dependency>
        </dependencies>

    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-deploy-plugin</artifactId>
            </plugin>
            <plugin>
                <artifactId>maven-install-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
    <profiles>
        <profile>
            <id>release-dry-run</id>
            <properties>
                <skipNoSnapshotsEnforcerPluginRule>false</skipNoSnapshotsEnforcerPluginRule>
            </properties>
            <build>
                <plugins>
                    <plugin>
                        <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>
                                            <excludes>
                                                <exclude>com.mulesoft.mule.services:mule-service-http-ee</exclude>

                                                <exclude>org.mule.modules:mule-module-cors-kernel</exclude>

                                                <exclude>org.mule.weave:*</exclude>
                                                <exclude>org.mule.services:mule-service-weave</exclude>
                                                <exclude>com.mulesoft.services:mule-service-weave-ee</exclude>
                                                <exclude>org.mule.runtime:mule-dwb-api</exclude>

                                                <exclude>org.mule.tools.maven:mule-classloader-model</exclude>

                                                <exclude>com.mulesoft.munit:*</exclude>

                                                <exclude>com.mulesoft.anypoint:api-gateway-api</exclude>
                                                <exclude>com.mulesoft.anypoint:mule-module-api-deployment</exclude>
                                                <exclude>com.mulesoft.anypoint:api-gateway-client</exclude>
                                                <exclude>com.mulesoft.anypoint:api-gateway-core</exclude>
                                                <exclude>com.mulesoft.anypoint:api-gateway-contract-service-api</exclude>
                                                <exclude>com.mulesoft.anypoint:mule-module-policies</exclude>
                                                <exclude>com.mulesoft.anypoint:mule-module-hdp</exclude>
                                                <exclude>com.mulesoft.anypoint:mule-module-autodiscovery</exclude>
                                                <exclude>com.mulesoft.anypoint:api-gateway-contract-service</exclude>
                                                <exclude>com.mulesoft.anypoint:mule-module-analytics-gw</exclude>
                                                <exclude>com.mulesoft.anypoint:api-gateway-events-collector-service</exclude>
                                                <exclude>com.mulesoft.mule.distributions:api-gateway-bom-impl</exclude>
                                                <exclude>com.mulesoft.mule.distributions:api-gateway-bom-api</exclude>

                                                <exclude>com.mulesoft.services:mule-service-weave-ee</exclude>
                                            </excludes>
                                        </requireReleaseDeps>
                                        <requireReleaseVersion>
                                            <message>No Snapshots Allowed in Project Version!</message>
                                        </requireReleaseVersion>
                                        <requirePluginVersions>
                                            <message>Best Practice is to always define plugin versions!</message>
                                            <unCheckedPluginList>
                                                org.apache.maven.plugins:maven-clean-plugin,
                                                org.apache.maven.plugins:maven-help-plugin
                                            </unCheckedPluginList>
                                        </requirePluginVersions>
                                    </rules>
                                    <skip>${skipNoSnapshotsEnforcerPluginRule}</skip>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>
