<?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.11.0</version>
        <relativePath/>
    </parent>
    <groupId>com.mulesoft.mule.distributions</groupId>
    <artifactId>mule-ee-distributions</artifactId>
    <version>4.11.0</version>
    <packaging>pom</packaging>
    <name>Mule Distributions</name>

    <modules>
        <module>bom</module>
        <module>services-all</module>
        <module>patches</module>
        <module>artifact-patches</module>
        <module>embedded</module>
        <module>mule-config-files</module>
        <module>standalone</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.14.0</muleHttpEeServiceVersion>
        <muleOAuthEeServiceVersion>1.8.0</muleOAuthEeServiceVersion>
        <muleBomVersion>4.11.0</muleBomVersion>
        <muleSoapApiVersion>4.8.3</muleSoapApiVersion>
        <muleExtensionsSoapVersion>1.8.3</muleExtensionsSoapVersion>
        <muleSoapServiceVersion>1.9.3</muleSoapServiceVersion>
        <muleIcBomVersion>1.1.0</muleIcBomVersion>

        <standaloneDistribution3xVersion>3.9.0</standaloneDistribution3xVersion>

        <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>
            <dependency>
                <groupId>org.mule</groupId>
                <artifactId>mule-tests-bom</artifactId>
                <version>${muleBomVersion}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.mulesoft.connectivity</groupId>
                <artifactId>mule-module-extensions-ic-bom</artifactId>
                <version>${muleIcBomVersion}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <dependency>
                <groupId>org.mule.runtime</groupId>
                <artifactId>mule-service-soap-api</artifactId>
                <version>${muleSoapApiVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.mule.runtime</groupId>
                <artifactId>mule-extensions-soap-api</artifactId>
                <version>${muleExtensionsSoapVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.mule.services</groupId>
                <artifactId>mule-service-soap</artifactId>
                <classifier>mule-service</classifier>
                <version>${muleSoapServiceVersion}</version>
            </dependency>

            <!-- test dependencies -->
            <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>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>
                        <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>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>
