<?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</groupId>
    <artifactId>kie-parent</artifactId>
    <version>7.74.1.Final</version>
    <!-- relativePath causes out-of-date problems on hudson secondary nodes -->
    <!--<relativePath>../droolsjbpm-build-bootstrap/pom.xml</relativePath>-->
  </parent>

  <groupId>org.drools</groupId>
  <artifactId>drools</artifactId>
  <packaging>pom</packaging>

  <name>Drools Multiproject</name>
  <description>
    Drools Expert is the rule engine and Drools Fusion does complex event processing (CEP).
  </description>

  <properties>
    <surefire.forkCount>1</surefire.forkCount>
    <alphanetworkCompilerEnabled>false</alphanetworkCompilerEnabled>
  </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/drools.git</connection>
    <developerConnection>scm:git:git@github.com:kiegroup/drools.git</developerConnection>
    <url>https://github.com/kiegroup/drools</url>
  </scm>

  <modules>
    <module>kie-memory-compiler</module>
    <module>drools-core-reflective</module>
    <module>drools-core-dynamic</module>
    <module>kie-test-util</module>
    <module>drools-core</module>
    <module>drools-ecj</module>
    <module>drools-compiler</module>
    <module>drools-mvel</module>
    <module>drools-legacy-test-util</module>
    <module>drools-serialization-protobuf</module>
    <module>drools-beliefs</module>
    <module>drools-traits</module>
    <module>drools-ruleunit</module>
    <module>drools-cdi</module>
    <module>drools-verifier</module>
    <module>drools-persistence</module>
    <module>drools-templates</module>
    <module>drools-decisiontables</module>
    <module>drools-examples</module>
    <module>kie-ci</module>
    <module>kie-ci-osgi</module>
    <module>drools-model</module>
    <module>kie-dmn</module>
    <module>kie-pmml</module>
    <module>kie-pmml-trusty</module>
    <module>drools-scorecards</module>
    <module>drools-examples-api</module>
    <module>drools-examples-cdi</module>
    <module>drools-workbench-models</module>
    <module>drools-test-coverage</module>
    <module>drools-scenario-simulation</module>
    <module>drools-metric</module>
    <module>drools-alphanetwork-compiler</module>
    <module>drools-engine</module>
    <module>drools-engine-classic</module>
    <module>drools-impact-analysis</module>
    <module>drools-retediagram</module>
  </modules>

  <dependencyManagement>
    <!-- Important: Do not add any additional dependency versions here!
         The dependency management should only import drools-bom and kie-third-party-bom to get the proper versions
         it needs. Any additional 3rd party dependency versions need to go directly into kie-third-party-bom. -->
    <dependencies>
      <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-bom</artifactId>
        <version>${version.org.kie}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.kie.soup</groupId>
        <artifactId>kie-soup-bom</artifactId>
        <version>${version.org.kie}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <configuration>
            <forkCount>${surefire.forkCount}</forkCount>
            <reuseForks>true</reuseForks>
            <runOrder>hourly</runOrder>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

  <profiles>
    <profile>
      <id>fullProfile</id>
      <activation>
        <property>
          <name>full</name>
        </property>
      </activation>
      <modules>
        <module>drools-distribution</module>
      </modules>
    </profile>

    <profile>
      <id>run-code-coverage</id>
      <properties>
        <jacoco.excludes>*Lexer</jacoco.excludes>

        <!-- jacoco.exec.file is defined in kie-parent -->
        <!--suppress UnresolvedMavenProperty -->
        <jacoco.agent.line>-javaagent:${settings.localRepository}/org/jacoco/org.jacoco.agent/${version.jacoco.plugin}/org.jacoco.agent-${version.jacoco.plugin}-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>
              <artifactId>maven-surefire-plugin</artifactId>
              <configuration>
                <argLine>${surefire.argLine}</argLine>
              </configuration>
              <dependencies>
                <dependency>
                  <groupId>org.jacoco</groupId>
                  <artifactId>org.jacoco.agent</artifactId>
                  <version>${version.jacoco.plugin}</version>
                  <classifier>runtime</classifier>
                </dependency>
              </dependencies>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>
    <profile><!-- this profile is defined here in order to be available from the root of the drools repository and maven reactor build -->
      <id>rewrite</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.openrewrite.maven</groupId>
            <artifactId>rewrite-maven-plugin</artifactId>
            <version>4.23.0</version>
            <configuration>
              <activeRecipes>
                <recipe>org.drools.rewrite.PrintStackTraceToLogError</recipe>
              </activeRecipes>
              <configLocation>${maven.multiModuleProjectDirectory}/.openrewrite/rewrite.yml</configLocation>
              <!-- see https://rewriteoss.slack.com/archives/C01A843MWG5/p1654176555223819 https://github.com/openrewrite/rewrite/issues/1596#issuecomment-1113645648 -->
              <exclusions> 
                <exclude>*/src/test/**</exclude>
              </exclusions>
            </configuration>
            <dependencies>
              <dependency>
                <groupId>org.openrewrite.recipe</groupId>
                <artifactId>rewrite-logging-frameworks</artifactId>
                <version>1.8.0</version>
              </dependency>
            </dependencies>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

</project>
