<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.mule.extensions</groupId>
        <artifactId>mule-ee-core-modules-parent</artifactId>
        <version>1.1.3</version>
        <relativePath></relativePath>
    </parent>
    <groupId>com.mulesoft.mule.modules</groupId>
    <artifactId>mule-compatibility-ee</artifactId>
    <version>1.4.0</version>
    <packaging>pom</packaging>
    <name>Mule Compatibility Libraries</name>

    <modules>
        <module>core</module>
        <module>modules</module>
        <module>tests</module>
        <module>distribution</module>
    </modules>

    <properties>
        <jacoco.version>0.8.2</jacoco.version>
        <maven.surefire.plugin.version>2.22.0</maven.surefire.plugin.version>
        <multithreadedtcVersion>1.01</multithreadedtcVersion>
        <allureJunitVersion>2.8.1</allureJunitVersion>

        <!-- TODO MULE-14667 Upgrade to reactor 3.2.0 -->
        <projectReactorVersion>3.2.0.M1-MULE-002</projectReactorVersion>
        <guava.version>25.1-jre</guava.version>
        <commonsIoVersion>2.6</commonsIoVersion>
        <commons.net.version>3.6</commons.net.version>

        <cxfVersion>2.7.19-MULE-006</cxfVersion>
        <javax.mail.version>1.6.2</javax.mail.version>
        <staxUtilsVersion>20080702</staxUtilsVersion>
        <wss4jVersion>1.6.19</wss4jVersion>
        <jodaTimeVersion>2.9.1</jodaTimeVersion>

        <notYetCommonsSslVersion>0.3.17</notYetCommonsSslVersion>
        <bouncycastleVersion>1.60</bouncycastleVersion>
        <openSamlVersion>2.6.4</openSamlVersion>

        <activemqVersion>5.15.1</activemqVersion>
        <bitronixTMVersion>2.1.8</bitronixTMVersion>
        <javaxJmsApiVersion>2.0.1</javaxJmsApiVersion>

        <springVersion>5.1.0.RELEASE</springVersion>
        <springSecurityVersion>5.1.0.RELEASE</springSecurityVersion>
        <aspectjVersion>1.9.2</aspectjVersion>

        <commonsHttpClientVersion>3.1-14-MULE-001</commonsHttpClientVersion>
        <jackson2Version>2.7.0</jackson2Version>
        <commonsDbUtilsVersion>1.7</commonsDbUtilsVersion>
        <xaPoolVersion>1.5.0</xaPoolVersion>
        <dom4.version>1.6.1</dom4.version>
        <jettyVersion>9.0.7.v20131107</jettyVersion>
        <javax.xml.ws.version>2.3.0</javax.xml.ws.version>
        <javax.jaxws-api.version>2.3.0</javax.jaxws-api.version>
        <javax.jws-api.version>1.1</javax.jws-api.version>
        <javax.annotation-api.version>1.2</javax.annotation-api.version>
        <javax.activation.version>1.1.1</javax.activation.version>
        <javax.xml.soap-api.version>1.4.0</javax.xml.soap-api.version>
        <cglibVersion>3.2.10</cglibVersion>

        <mule.api.version>1.1.5</mule.api.version>
        <mule.version>4.1.5</mule.version>
        <mule.tests.version>${mule.version}</mule.tests.version>
        <mule.sdk.version>1.1.6</mule.sdk.version>
        <mule.34migrator.version>0.5.1</mule.34migrator.version>

        <mule.weave.version>2.2.0</mule.weave.version>
        
        <muleJmsClientVersion>1.1.2</muleJmsClientVersion>

        <licenseYear>2018</licenseYear>

        <maven.build-helper.plugin.version>3.0.0</maven.build-helper.plugin.version>
    </properties>

    <profiles>
        <profile>
            <id>compatibility</id>
            <properties>
                <mule.34migrator.version>0.5.1</mule.34migrator.version>
            </properties>
        </profile>
    </profiles>

    <build>
        <plugins>
            <plugin>
                <groupId>net.revelc.code.formatter</groupId>
                <artifactId>formatter-maven-plugin</artifactId>
                <version>${javaFormatter.plugin.version}</version>
                <configuration>
                    <compilerCompliance>${javaVersion}</compilerCompliance>
                    <compilerSource>${javaVersion}</compilerSource>
                    <compilerTargetPlatform>${javaVersion}</compilerTargetPlatform>
                    <configFile>${basedir}/${formatterConfigPath}</configFile>
                    <configJsFile>${basedir}/${formatterConfigPath}</configJsFile>
                    <aggregator>false</aggregator>
                    <executionRoot>true</executionRoot>
                </configuration>
                <executions>
                    <execution>
                        <id>apply-format</id>
                        <phase>compile</phase>
                        <goals>
                            <goal>${formatterGoal}</goal>
                        </goals>
                        <configuration>
                            <skipFormatting>${skipVerifications}</skipFormatting>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>com.mycila</groupId>
                <artifactId>license-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>**/org/mule/compatibility/module/cxf/xml/stax/**</exclude>
                    </excludes>
                </configuration>
            </plugin>
            <plugin>
                <groupId>io.qameta.allure</groupId>
                <artifactId>allure-maven</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
                <configuration>
                    <skip>true</skip>
                    <skipDeploy>true</skipDeploy>
                </configuration>
            </plugin>
        </plugins>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>build-helper-maven-plugin</artifactId>
                    <version>${maven.build-helper.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>${maven.surefire.plugin.version}</version>
                    <configuration>
                        <argLine>-Dfile.encoding=UTF-8 -Xmx1024m -Xms256m
                            -javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${aspectjVersion}/aspectjweaver-${aspectjVersion}.jar
                            -javaagent:${settings.localRepository}/org/jacoco/org.jacoco.agent/${jacoco.version}/org.jacoco.agent-${jacoco.version}-runtime.jar=destfile='${session.executionRootDirectory}/target/jacoco.exec'</argLine>
                        <properties>
                            <property>
                                <name>listener</name>
                                <value>io.qameta.allure.junit4.AllureJunit4</value>
                            </property>
                        </properties>
                        <systemPropertyVariables>
                            <!-- Just propagate this variable due to surefire 
                                will not do this when forked vm for tests -->
                            <mule.freePortFinder.lockPath>${java.io.tmpdir}/mule/freePortFinder</mule.freePortFinder.lockPath>
                            <maven.projectVersion>${project.version}</maven.projectVersion>
                            <!-- Force MEL as expression language -->
                            <mule.test.mel.default>true</mule.test.mel.default>
                        </systemPropertyVariables>
                        <systemProperties>
                            <property>
                                <name>allure.results.directory</name>
                                <value>${project.build.directory}/allure-results</value>
                            </property>
                        </systemProperties>
                    </configuration>
                    <dependencies>
                        <dependency>
                            <groupId>org.aspectj</groupId>
                            <artifactId>aspectjweaver</artifactId>
                            <version>${aspectjVersion}</version>
                        </dependency>
                        <dependency>
                            <groupId>org.jacoco</groupId>
                            <artifactId>org.jacoco.agent</artifactId>
                            <version>${jacoco.version}</version>
                            <classifier>runtime</classifier>
                        </dependency>
                    </dependencies>
                </plugin>
                <plugin>
                    <groupId>io.qameta.allure</groupId>
                    <artifactId>allure-maven</artifactId>
                    <version>${allure.maven.plugin.version}</version>
                    <configuration>
                        <reportVersion>${allureReportVersion}</reportVersion>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

    <dependencies>
        <dependency>
            <groupId>com.mulesoft.mule.runtime</groupId>
            <artifactId>mule-core-ee</artifactId>
            <version>${mule.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.mule.tests</groupId>
            <artifactId>mule-tests-unit</artifactId>
            <version>${mule.tests.version}</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.mule.apache.commons-httpclient</groupId>
                <artifactId>commons-httpclient</artifactId>
                <version>${commonsHttpClientVersion}</version>
            </dependency>
            <dependency>
                <groupId>com.mulesoft.services</groupId>
                <artifactId>mule-service-weave-ee</artifactId>
                <version>${mule.weave.version}</version>
                <classifier>mule-service</classifier>
            </dependency>
            <dependency>
                <groupId>javax.jms</groupId>
                <artifactId>javax.jms-api</artifactId>
                <version>${javaxJmsApiVersion}</version>
                <scope>provided</scope>
            </dependency>
        
            <dependency>
                <groupId>com.mulesoft.tools</groupId>
                <artifactId>mule-migration-tool-target-modules</artifactId>
                <version>${mule.34migrator.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>commons-net</groupId>
                <artifactId>commons-net</artifactId>
                <version>${commons.net.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

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

    <repositories>
        <repository>
            <id>mulesoft-private</id>
            <name>Mulesoft internal repository</name>
            <url>https://repository.mulesoft.org/nexus/content/repositories/private/</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>mulesoft-private</id>
            <name>Mulesoft internal repository</name>
            <url>https://repository.mulesoft.org/nexus/content/repositories/private/</url>
        </pluginRepository>
    </pluginRepositories>
</project>
