<?xml version="1.0" encoding="UTF-8"?>
<!--

    (c) 2003-2017 MuleSoft, Inc. This software is protected under international copyright law. All use of this software
    is subject to MuleSoft's Master Subscription Agreement (or other Terms of Service) separately entered into between
    you and MuleSoft. If such an agreement is not in place, you may not use the software.

-->
<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>com.mulesoft.connectors</groupId>
    <artifactId>mule-connectivity-parent</artifactId>
    <version>3.3.0-RUNTIME.4.1.x</version>
  </parent>

  <name>RosettaNet Connector</name>
  <artifactId>mule-rosettanet-connector</artifactId>
  <version>2.2.0-SNAPSHOT</version>
  <packaging>mule-extension</packaging>

  <properties>
    <category>Premium</category>
    <licensePath>LICENSE.md</licensePath>
    <woodstox.version>5.4.0</woodstox.version>
    <sync.utils.version>1.1.0</sync.utils.version>
    <munit.extensions.maven.plugin.version>1.6.0</munit.extensions.maven.plugin.version>
    <munit.version>3.5.0</munit.version>
    <mtf.tools.version>1.2.0</mtf.tools.version>
    <!-- runtime version to run -->
    <runtimeVersion>4.3.0</runtimeVersion>
    <runtimeProduct>MULE_EE</runtimeProduct>
    <sonar.coverage.exclusions>
      **/*com/mulesoft/connectors/rosettanet/extension/api/*,
      **/*com/mulesoft/connectors/rosettanet/extension/api/data/*,
      **/*com/mulesoft/connectors/rosettanet/extension/internal/config/pip/*,
      **/*com/mulesoft/connectors/rosettanet/extension/internal/extension/*
      **/*com/mulesoft/connectors/rosettanet/extension/internal/extension/internal/exception/*
    </sonar.coverage.exclusions>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.mule.sdk</groupId>
      <artifactId>mule-sdk-api</artifactId>
      <version>0.7.0</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>
    <dependency>
      <groupId>org.mule.connectors</groupId>
      <artifactId>mule-http-connector</artifactId>
      <version>1.1.2</version>
      <classifier>mule-plugin</classifier>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.mule.services</groupId>
      <artifactId>mule-service-scheduler</artifactId>
      <version>1.1.5</version>
      <scope>provided</scope>
      <classifier>mule-service</classifier>
    </dependency>
    <dependency>
      <groupId>org.mule.services</groupId>
      <artifactId>mule-service-http</artifactId>
      <version>1.1.2</version>
      <scope>provided</scope>
      <classifier>mule-service</classifier>
    </dependency>
    <dependency>
      <groupId>org.mule.connectors</groupId>
      <artifactId>mule-objectstore-connector</artifactId>
      <version>1.2.4</version>
      <classifier>mule-plugin</classifier>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.mulesoft.connectors</groupId>
      <artifactId>mule4-b2b-commons-sync</artifactId>
      <version>${sync.utils.version}</version>
    </dependency>
    <dependency>
      <groupId>com.mulesoft.connectors</groupId>
      <artifactId>mule4-rosettanet-support</artifactId>
      <version>${sync.utils.version}</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.woodstox</groupId>
      <artifactId>woodstox-core</artifactId>
      <version>${woodstox.version}</version>
    </dependency>
    <!-- javax.xml.bind was removed on Java 11 and need to add as dependencies -->
    <dependency>
      <groupId>javax.xml.bind</groupId>
      <artifactId>jaxb-api</artifactId>
      <version>2.3.1</version>
    </dependency>
    <dependency>
      <groupId>com.sun.xml.bind</groupId>
      <artifactId>jaxb-impl</artifactId>
      <version>2.3.4</version>
    </dependency>
    <!-- End javax.xml.bind dependencies -->
  </dependencies>

  <build>
    <pluginManagement>
      <plugins>
        <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/rosettanet/extension/api/*</exclude>
              <exclude>**/*com/mulesoft/connectors/rosettanet/extension/api/data/*</exclude>
              <exclude>**/*com/mulesoft/connectors/rosettanet/extension/internal/config/pip/*</exclude>
              <exclude>**/*com/mulesoft/connectors/rosettanet/extension/internal/extension/*</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>
      </plugins>
    </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.jvnet.jaxb2.maven2</groupId>
        <artifactId>maven-jaxb2-plugin</artifactId>
        <version>0.14.0</version>
        <executions>
          <execution>
            <id>process-xsd</id>
            <goals>
              <goal>generate</goal>
            </goals>
            <phase>generate-sources</phase>
            <configuration>
              <schemaDirectory>src/main/resources/schemas</schemaDirectory>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>3.0.2</version>
        <executions>
          <execution>
            <id>connector-analyze</id>
            <phase>prepare-package</phase>
            <goals>
              <goal>analyze-only</goal>
            </goals>
            <configuration>
              <ignoredDependencies>
                <ignoredDependency>org.mule.*</ignoredDependency>
              </ignoredDependencies>
              <failOnWarning>true</failOnWarning>
              <ignoredUsedUndeclaredDependencies>
                <ignoredUsedUndeclaredDependency>*</ignoredUsedUndeclaredDependency>
              </ignoredUsedUndeclaredDependencies>
              <ignoredUnusedDeclaredDependencies>
                <ignoredUnusedDeclaredDependency>*</ignoredUnusedDeclaredDependency>
              </ignoredUnusedDeclaredDependencies>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <!-- munit plugins -->
      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <version>${mavenResourcesVersion}</version>
        <executions>
          <execution>
            <id>copy-munit-resources</id>
            <phase>process-test-resources</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>${basedir}/target/test-mule/munit</outputDirectory>
              <resources>
                <resource>
                  <directory>src/test/munit</directory>
                  <filtering>true</filtering>
                </resource>
              </resources>
              <nonFilteredFileExtensions>
                <nonFilteredFileExtension>lic</nonFilteredFileExtension>
                <nonFilteredFileExtension>key</nonFilteredFileExtension>
                <nonFilteredFileExtension>jks</nonFilteredFileExtension>
                <nonFilteredFileExtension>bin</nonFilteredFileExtension>
              </nonFilteredFileExtensions>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>com.mulesoft.munit</groupId>
        <artifactId>munit-extensions-maven-plugin</artifactId>
        <version>${munit.extensions.maven.plugin.version}</version>
        <configuration>
          <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>
          <runtimeConfiguration>
            <discoverRuntimes>
              <minMuleVersion>${runtimeVersion}</minMuleVersion>
              <includeSnapshots>false</includeSnapshots>
              <product>EE</product>
            </discoverRuntimes>
          </runtimeConfiguration>
        </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>
      <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>

  <repositories>
    <repository>
      <id>mule-releases</id>
      <name>Nexus Public Releases</name>
      <url>https://repository-master.mulesoft.org/nexus/content/repositories/releases/</url>
    </repository>
  </repositories>

  <scm>
    <connection>scm:git:git://github.com:mulesoft/mule4-rosettanet-connector.git</connection>
    <developerConnection>scm:git:git@github.com:mulesoft/mule4-rosettanet-connector.git</developerConnection>
    <url>https://github.com/mulesoft/mule4-rosettanet-connector</url>
    <tag>HEAD</tag>
  </scm>

  <pluginRepositories>
    <pluginRepository>
      <id>ci-releases</id>
      <name>Nexus CI Releases</name>
      <url>https://repository-master.mulesoft.org/nexus/content/repositories/ci-releases/</url>
    </pluginRepository>
    <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>
  </pluginRepositories>

</project>
