<?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.eurodyn.qlack</groupId>
    <artifactId>Qlack</artifactId>
    <version>1.7.4</version>
    <relativePath>../pom.xml</relativePath>
  </parent>

  <groupId>com.eurodyn.qlack.fuse</groupId>
  <artifactId>QlackFuse</artifactId>
  <packaging>pom</packaging>
  <name>QlackFuse</name>

  <repositories>
    <repository>
      <id>java.net</id>
      <name>Java.Net Repository</name>
      <url>https://download.java.net/maven/2</url>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </repository>
    <repository>
      <id>jboss-nexus-repository</id>
      <name>JBoss Nexus Repository</name>
      <url>https://repository.jboss.org/nexus/content/groups/public-jboss</url>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </repository>
    <repository>
      <id>jboss</id>
      <name>JBoss</name>
      <url>https://maven.repository.redhat.com/ga/</url>
    </repository>
  </repositories>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.jboss.bom</groupId>
        <artifactId>jboss-eap-javaee8-with-tools</artifactId>
        <version>7.2.7.GA</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <properties>
    <maven.compiler.target>11</maven.compiler.target>
    <maven.compiler.source>11</maven.compiler.source>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <ejb.version>3.1</ejb.version>

    <jacoco-maven-plugin.version>0.8.5</jacoco-maven-plugin.version>
    <dependency-check-maven.version>5.3.2</dependency-check-maven.version>
    <sonar-maven-plugin.version>3.7.0.1746</sonar-maven-plugin.version>
    <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
    <maven-surefire-plugin.version>3.0.0-M4</maven-surefire-plugin.version>
    <maven-ejb-plugin.version>3.0.1</maven-ejb-plugin.version>
    <maven-dependency-plugin.version>3.1.2</maven-dependency-plugin.version>
    <hibernate3-maven-plugin.version>2.2</hibernate3-maven-plugin.version>
    <aspectj-maven-plugin.version>1.12.6</aspectj-maven-plugin.version>
    <aspectj.version>1.9.5</aspectj.version>
    <jakarta.xml.ws-api.version>2.3.3</jakarta.xml.ws-api.version>
    <jaxb-runtim3.version>2.3.2</jaxb-runtim3.version>
    <javax.ejb-api.version>3.2.2</javax.ejb-api.version>
    <javaee-api.version>8.0.1</javaee-api.version>
    <slf4j-api.version>1.7.30</slf4j-api.version>
    <poi.version>4.1.2</poi.version>
    <freemarker.version>2.3.30</freemarker.version>
    <quartz.version>2.3.2</quartz.version>
    <aspectj-maven-plugin.version>1.12.6</aspectj-maven-plugin.version>
    <aspectj.version>1.9.5</aspectj.version>
    <guice.version>4.2.3</guice.version>
    <struts2-core.version>2.3.33</struts2-core.version>
    <ejb3criteria.version>0.4</ejb3criteria.version>
    <mockito-junit-jupiter.version>3.3.3</mockito-junit-jupiter.version>

    <sonar.dependencyCheck.reportPath>${project.build.directory}/dependency-check-report.xml
    </sonar.dependencyCheck.reportPath>
    <sonar.dependencyCheck.htmlReportPath>${project.build.directory}/dependency-check-report.html
    </sonar.dependencyCheck.htmlReportPath>
    <sonar.projectKey>${project.groupId}:${project.artifactId}:git</sonar.projectKey>

    <sonar.coverage.exclusions>
      src/main/java/com/eurodyn/qlack/fuse/modules/**/model/*,
      src/main/java/com/eurodyn/qlack/fuse/modules/**/dto/*,
      src/main/java/com/eurodyn/qlack/fuse/modules/**/exception/*,
      src/main/java/com/eurodyn/qlack/fuse/modules/**/util/*,
      src/main/java/com/eurodyn/qlack/fuse/modules/scheduler/builder/*,
      src/main/java/com/eurodyn/qlack/fuse/modules/scheduler/job/*,
      src/main/java/com/eurodyn/qlack/fuse/modules/scheduler/job/trigger*
    </sonar.coverage.exclusions>
  </properties>

  <modules>
    <module>QlackFuse-Libs</module>
    <module>QlackFuse-Commons</module>
    <module>QlackFuse-Commons-dto</module>
    <module>QlackFuse-Jumpstart</module>
    <module>QlackFuse-Modules</module>
  </modules>

  <dependencies>
    <dependency>
      <groupId>org.jacoco</groupId>
      <artifactId>org.jacoco.agent</artifactId>
      <version>${jacoco-maven-plugin.version}</version>
      <classifier>runtime</classifier>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>${maven-compiler-plugin.version}</version>
      </plugin>
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>${jacoco-maven-plugin.version}</version>
        <executions>
          <execution>
            <id>default-instrument</id>
            <goals>
              <goal>instrument</goal>
            </goals>
          </execution>
          <execution>
            <id>default-restore-instrumented-classes</id>
            <goals>
              <goal>restore-instrumented-classes</goal>
            </goals>
          </execution>
          <execution>
            <id>default-report</id>
            <goals>
              <goal>report</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>${maven-surefire-plugin.version}</version>
        <configuration>
          <systemPropertyVariables>
            <jacoco-agent.destfile>${project.build.directory}/jacoco.exec</jacoco-agent.destfile>
          </systemPropertyVariables>
        </configuration>
      </plugin>
    </plugins>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.sonarsource.scanner.maven</groupId>
          <artifactId>sonar-maven-plugin</artifactId>
          <version>${sonar-maven-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.owasp</groupId>
          <artifactId>dependency-check-maven</artifactId>
          <version>${dependency-check-maven.version}</version>
          <configuration>
            <format>ALL</format>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>
