<?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>org.kie.kogito</groupId>
    <artifactId>kogito-bom-parent</artifactId>
    <version>0.5.1</version>
  </parent>

  <artifactId>kogito-runtimes</artifactId>
  <packaging>pom</packaging>

  <name>Kogito Runtimes</name>
  <description>Kogito Runtimes</description>

  <properties>
    <!--
      JaCoCo coverage data file location. Using a single file for appending in the project's root directory makes it
      possible to measure cross-module test coverage -->
    <!--suppress UnresolvedMavenProperty -->
    <jacoco.exec.file>${maven.multiModuleProjectDirectory}/target/jacoco.exec</jacoco.exec.file>
  </properties>

  <repositories>
    <!-- Bootstrap repository to locate the parent pom when the parent pom
      has not been build locally. -->
    <repository>
      <id>jboss-public-repository-group</id>
      <name>JBoss Public Repository Group</name>
      <url>https://repository.jboss.org/nexus/content/groups/public/</url>
      <layout>default</layout>
      <releases>
        <enabled>true</enabled>
        <updatePolicy>never</updatePolicy>
      </releases>
      <snapshots>
        <enabled>true</enabled>
        <updatePolicy>daily</updatePolicy>
      </snapshots>
    </repository>
  </repositories>

  <scm>
    <connection>scm:git:https://github.com/kiegroup/kogito-runtimes.git</connection>
    <developerConnection>scm:git:git@github.com:kiegroup/kogito-runtimes.git</developerConnection>
    <url>https://github.com/kiegroup/kogito-runtimes</url>
  </scm>

  <modules>
    <module>api</module>
    <module>drools</module>
    <module>jbpm</module>
    <module>addons</module>
    <module>kogito-maven-plugin</module>
    <module>kogito-codegen</module>
    <module>archetypes</module>
    <module>data-index</module>
  </modules>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.kie.kogito</groupId>
        <artifactId>kogito-deps-bom</artifactId>
        <version>${version.org.kie.kogito}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.kie.kogito</groupId>
        <artifactId>kogito-bom</artifactId>
        <version>${version.org.kie.kogito}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <profiles>
    <profile>
      <id>run-code-coverage</id>
      <properties>
        <jacoco.excludes>*Lexer:org.kie.kogito.codegen.data.*</jacoco.excludes>
        <jacoco.agent.line>-javaagent:${settings.localRepository}/org/jacoco/org.jacoco.agent/${version.org.jacoco.agent}/org.jacoco.agent-${version.org.jacoco.agent}-runtime.jar=destfile=${jacoco.exec.file},append=true,excludes=${jacoco.excludes}</jacoco.agent.line>
        <surefire.argLine>
          -Dfile.encoding=${project.build.sourceEncoding}
          ${jacoco.agent.line}
        </surefire.argLine>
      </properties>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>org.codehaus.cargo</groupId>
              <artifactId>cargo-maven2-plugin</artifactId>
              <configuration>
                <configuration>
                  <properties>
                    <cargo.start.jvmargs>${jacoco.agent.line}</cargo.start.jvmargs>
                  </properties>
                </configuration>
              </configuration>
            </plugin>
            <plugin>
              <artifactId>maven-surefire-plugin</artifactId>
              <configuration>
                <argLine>${surefire.argLine}</argLine>
              </configuration>
              <dependencies>
                <dependency>
                  <groupId>org.jacoco</groupId>
                  <artifactId>org.jacoco.agent</artifactId>
                  <version>${version.org.jacoco.agent}</version>
                  <classifier>runtime</classifier>
                </dependency>
              </dependencies>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>

    <profile>
      <id>sonarcloud-analysis</id>
      <properties>
        <sonar.jacoco.reportPaths>${jacoco.exec.file}</sonar.jacoco.reportPaths>
        <sonar.host.url>https://sonarcloud.io</sonar.host.url>
        <sonar.organization>kiegroup</sonar.organization>
        <!--suppress UnresolvedMavenProperty -->
        <sonar.login>${env.SONARCLOUD_TOKEN}</sonar.login>
      </properties>
      <build>
        <plugins>
          <plugin>
            <groupId>org.sonarsource.scanner.maven</groupId>
            <artifactId>sonar-maven-plugin</artifactId>
            <executions>
              <execution>
                <goals>
                  <goal>sonar</goal>
                </goals>
                <phase>generate-resources</phase>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <activation>
        <property>
          <name>env.CHANGE_ID</name>
        </property>
      </activation>
      <id>sonarcloud-analysis-pull-request</id>
      <properties>
        <sonar.pullrequest.provider>GitHub</sonar.pullrequest.provider>
        <!--suppress UnresolvedMavenProperty -->
        <sonar.pullrequest.branch>${env.CHANGE_BRANCH}</sonar.pullrequest.branch>
        <!--suppress UnresolvedMavenProperty -->
        <sonar.pullrequest.key>${env.CHANGE_ID}</sonar.pullrequest.key>
        <!--suppress UnresolvedMavenProperty -->
        <sonar.pullrequest.base>${env.CHANGE_TARGET}</sonar.pullrequest.base>
        <!--suppress UnresolvedMavenProperty -->
        <sonar.pullrequest.github.repository>${env.CHANGE_URL}</sonar.pullrequest.github.repository>
      </properties>
    </profile>
  </profiles>
</project>
