<?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">

    <parent>
        <groupId>com.mulesoft.connectors</groupId>
        <artifactId>mule-connectivity-parent</artifactId>
        <version>3.3.1-RUNTIME.4.2.x</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>
    <name>HL7 Connector - Mule 4</name>
    <groupId>com.mulesoft.connectors</groupId>
    <artifactId>mule-hl7-extension</artifactId>
    <version>4.3.0-SNAPSHOT</version>
    <packaging>mule-extension</packaging>

    <properties>
        <project.schema.version>4.1.19</project.schema.version>
        <metadata-flatfile.version>1.3.0</metadata-flatfile.version>
        <jacoco.version>0.8.13</jacoco.version>
        <mtf.tools.version>1.2.0</mtf.tools.version>
        <licensePath>LICENSE.md</licensePath>
        <!-- runtime version to run -->
        <runtimeVersion>4.3.0</runtimeVersion>
        <runtimeProduct>MULE_EE</runtimeProduct>
        <sonar.coverage.jacoco.xmlReportPaths>target/site/jacoco/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths>
        <munit.extensions.maven.plugin.version>1.6.0</munit.extensions.maven.plugin.version>
        <munit.version>3.5.0</munit.version>
    </properties>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jdeps-plugin</artifactId>
                    <version>3.1.2</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>jdkinternals</goal> <!-- verify main classes -->
                                <goal>test-jdkinternals</goal> <!-- verify test classes -->
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <failOnWarning>true</failOnWarning>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.jacoco</groupId>
                    <artifactId>jacoco-maven-plugin</artifactId>
                    <version>${jacoco.version}</version>
                    <configuration>
                        <destFile>${session.executionRootDirectory}/target/jacoco-java.exec</destFile>
                        <excludes>
                            <exclude>**/*com/mulesoft/connectors/hl7/extension/internal/param/*</exclude>
                        </excludes>
                    </configuration>
                    <executions>
                        <execution>
                            <goals>
                                <goal>prepare-agent</goal>
                            </goals>
                        </execution>
                        <execution>
                            <id>merge</id>
                            <phase>verify</phase>
                            <goals>
                                <goal>merge</goal>
                            </goals>
                            <configuration>
                                <destFile>${session.executionRootDirectory}/target/jacoco.exec</destFile>
                                <fileSets>
                                    <fileSet>
                                        <directory>${project.build.directory}</directory>
                                        <includes>
                                            <include>*.exec</include>
                                        </includes>
                                    </fileSet>
                                </fileSets>
                            </configuration>
                        </execution>
                        <execution>
                            <id>report</id>
                            <goals>
                                <goal>report</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>com.mycila.maven-license-plugin</groupId>
                    <artifactId>maven-license-plugin</artifactId>
                    <version>1.8.0</version>
                    <configuration>
                        <header>LICENSE_HEADER.txt</header>
                        <excludes>
                            <exclude>target/**</exclude>
                            <exclude>**/.mule/*</exclude>
                            <exclude>**/.idea/*</exclude>
                            <exclude>**/.gitignore</exclude>
                            <exclude>**/*.txt</exclude>
                            <exclude>**/*.ftl</exclude>
                            <exclude>**/*.xml</exclude>
                            <exclude>**/*.properties</exclude>
                            <exclude>**/*.sample</exclude>
                            <exclude>**/*.md</exclude>
                            <exclude>**/build-number.txt</exclude>
                            <exclude>**/*.xsd</exclude>
                            <exclude>**/*.xls</exclude>
                            <exclude>**/*.html</exclude>
                            <exclude>**/resources/**</exclude>
                            <exclude>id_file</exclude>
                            <exclude>**/*.mflow</exclude>
                        </excludes>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>com.mulesoft.munit</groupId>
                    <artifactId>munit-extensions-maven-plugin</artifactId>
                    <version>${munit.extensions.maven.plugin.version}</version>
                    <executions>
                        <execution>
                            <id>test</id>
                            <phase>integration-test</phase>
                            <goals>
                                <goal>test</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <runtimeConfiguration>
                            <discoverRuntimes>
                                <minMuleVersion>${runtimeVersion}</minMuleVersion>
                                <includeSnapshots>false</includeSnapshots>
                                <product>EE</product>
                            </discoverRuntimes>
                        </runtimeConfiguration>
                        <argLines>
                            <argLine>
                                -javaagent:${settings.localRepository}/org/jacoco/org.jacoco.agent/${jacoco.version}/org.jacoco.agent-${jacoco.version}-runtime.jar=destfile=${session.executionRootDirectory}/target/jacoco-munit.exec
                            </argLine>
                        </argLines>
                    </configuration>
                    <dependencies>
                        <dependency>
                            <groupId>com.mulesoft.munit</groupId>
                            <artifactId>munit-runner</artifactId>
                            <version>${munit.version}</version>
                            <classifier>mule-plugin</classifier>
                        </dependency>
                        <dependency>
                            <groupId>com.mulesoft.munit</groupId>
                            <artifactId>munit-tools</artifactId>
                            <version>${munit.version}</version>
                            <classifier>mule-plugin</classifier>
                        </dependency>
                        <dependency>
                            <groupId>com.mulesoft.munit</groupId>
                            <artifactId>mtf-tools</artifactId>
                            <version>${mtf.tools.version}</version>
                            <classifier>mule-plugin</classifier>
                        </dependency>
                    </dependencies>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <version>${maven.enforcer.version}</version>
                <executions>
                    <execution>
                        <id>default-enforced-rules</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <banDistributionManagement/>
                                <requireNoRepositories>
                                    <allowedRepositories>
                                        <!-- This is a repository provided by this pom's parent. -->
                                        <allowedRepository>mule</allowedRepository>
                                        <allowedRepository>mule-releases</allowedRepository>
                                        <allowedRepository>mule-ci-snapshots</allowedRepository>
                                    </allowedRepositories>
                                    <allowedPluginRepositories>
                                        <!-- These are repositories provided by this pom's parent. -->
                                        <allowedPluginRepository>mulesoft-plugin-releases</allowedPluginRepository>
                                        <allowedPluginRepository>mulesoft-plugin-snapshots</allowedPluginRepository>
                                        <allowedPluginRepository>ci-releases</allowedPluginRepository>
                                    </allowedPluginRepositories>
                                </requireNoRepositories>
                            </rules>
                            <fail>true</fail>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <dependencies>
        <dependency>
            <groupId>org.mule.sdk</groupId>
            <artifactId>mule-sdk-api</artifactId>
            <version>0.7.0</version>
        </dependency>
        <dependency>
            <groupId>com.mulesoft.connectors</groupId>
            <artifactId>hl7-parser</artifactId>
            <version>${project.schema.version}</version>
        </dependency>
        <dependency>
            <groupId>com.mulesoft.connectors</groupId>
            <artifactId>hl7-schemas</artifactId>
            <version>${project.schema.version}</version>
        </dependency>

        <dependency>
            <groupId>org.mule.metadata.flatfile</groupId>
            <artifactId>schema-metadata</artifactId>
            <version>${metadata-flatfile.version}</version>
        </dependency>
        <dependency>
            <groupId>org.mule.connectors</groupId>
            <artifactId>mule-file-connector</artifactId>
            <version>1.5.4</version>
            <classifier>mule-plugin</classifier>
            <scope>test</scope>
        </dependency>
    </dependencies>
   
    <pluginRepositories>
        <pluginRepository>
            <id>mulesoft-plugin-releases</id>
            <name>MuleSoft Release Repository</name>
            <url>https://repository.mulesoft.org/releases/</url>
        </pluginRepository>
        <pluginRepository>
            <id>mulesoft-plugin-snapshots</id>
            <name>MuleSoft Snapshots Repository</name>
            <url>https://repository.mulesoft.org/snapshots/</url>
        </pluginRepository>
        <pluginRepository>
            <id>ci-releases</id>
            <name>Nexus CI Releases</name>
            <url>https://repository-master.mulesoft.org/nexus/content/repositories/ci-releases/</url>
        </pluginRepository>
    </pluginRepositories>

</project>
