<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.flowlogix</groupId>
    <artifactId>payara-pom</artifactId>
    <version>124</version>
  </parent>
  <artifactId>flowlogix</artifactId>
  <version>11.4.1</version>
  <packaging>pom</packaging>
  <name>Flow Logix Root</name>
  <description>Flow Logix Jakarta EE Components Root POM</description>
  <url>https://docs.flowlogix.com</url>
  <inceptionYear>2011</inceptionYear>
  <scm>
    <connection>scm:git:git://github.com:flowlogix/flowlogix.git</connection>
    <developerConnection>scm:git:git@github.com:flowlogix/flowlogix.git</developerConnection>
    <tag>Version-11.4.1</tag>
    <url>https://github.com/flowlogix/flowlogix</url>
  </scm>
  <properties>
    <maven.compiler.release>17</maven.compiler.release>
    <checkstyle.suppressionsLocation>${maven.multiModuleProjectDirectory}/src/checkstyle/suppressions.xml</checkstyle.suppressionsLocation>
    <release.profiles>${release.profile},javadoc-release</release.profiles>
    <javadoc.title>${project.name}</javadoc.title>
    <javadoc.snippet.path>${snippet.path}:${maven.multiModuleProjectDirectory}/jee-examples/src/main/java</javadoc.snippet.path>
    <payara.start.disable>true</payara.start.disable>
    <japicmp.skip>false</japicmp.skip>
    <japicmp.old.version.pattern>\d+</japicmp.old.version.pattern>
    <depchain.version>122</depchain.version>
  </properties>
  <dependencies>
    <dependency>
      <groupId>jakarta.platform</groupId>
      <artifactId>jakarta.jakartaee-api</artifactId>
      <version>${jakarta.ee.version}</version>
      <scope>provided</scope>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.omnifaces</groupId>
      <artifactId>omnifaces</artifactId>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-lang3</artifactId>
    </dependency>
    <dependency>
      <groupId>com.flowlogix.depchain</groupId>
      <artifactId>unit-test</artifactId>
      <version>${depchain.version}</version>
      <type>pom</type>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-jdk14</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <configuration>
            <annotationProcessorPaths>
              <annotationProcessorPath>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
              </annotationProcessorPath>
              <annotationProcessorPath>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId>
              </annotationProcessorPath>
            </annotationProcessorPaths>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-failsafe-plugin</artifactId>
          <configuration>
            <systemPropertyVariables>
              <webdriver.chrome.binary>${drone.chrome.binary}</webdriver.chrome.binary>
              <webdriver.firefox.binary>${drone.firefox.binary}</webdriver.firefox.binary>
            </systemPropertyVariables>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-javadoc-plugin</artifactId>
          <configuration>
            <overview>${project.build.sourceDirectory}/overview.html</overview>
            <doctitle>${javadoc.title}</doctitle>
            <bottom>Copyright © ${project.inceptionYear}-2026 Flow Logix, Inc. All Rights Reserved.</bottom>
            <excludePackageNames>*.internal</excludePackageNames>
            <links>
              <link>https://omnifaces.org/docs/javadoc/current</link>
              <link>https://javadoc.io/doc/org.primefaces/primefaces/latest</link>
            </links>
          </configuration>
        </plugin>
        <plugin>
          <groupId>io.github.git-commit-id</groupId>
          <artifactId>git-commit-id-maven-plugin</artifactId>
          <version>10.0.0</version>
          <configuration>
            <useNativeGit>false</useNativeGit>
            <dotGitDirectory>${maven.multiModuleProjectDirectory}/.git</dotGitDirectory>
            <failOnNoGitDirectory>false</failOnNoGitDirectory>
            <abbrevLength>7</abbrevLength>
            <gitDescribe>
              <skip>true</skip>
            </gitDescribe>
            <generateGitPropertiesFile>true</generateGitPropertiesFile>
            <generateGitPropertiesFilename>${project.build.outputDirectory}/git.properties</generateGitPropertiesFilename>
            <includeOnlyProperties>
              <includeOnlyProperty>^git.build.(time|version)$</includeOnlyProperty>
              <includeOnlyProperty>^git.commit.id.(abbrev|full)$</includeOnlyProperty>
            </includeOnlyProperties>
            <commitIdGenerationMode>full</commitIdGenerationMode>
            <dateFormatTimeZone>UTC</dateFormatTimeZone>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <artifactId>maven-jar-plugin</artifactId>
        <executions>
          <execution>
            <id>test-jar</id>
            <goals>
              <goal>test-jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.codehaus.gmavenplus</groupId>
        <artifactId>gmavenplus-plugin</artifactId>
        <version>5.0.0</version>
        <executions>
          <execution>
            <id>testGroups</id>
            <phase>initialize</phase>
            <goals>
              <goal>execute</goal>
            </goals>
            <configuration>
              <scripts>
                <script>${maven.multiModuleProjectDirectory}/setTestGroupProperties.groovy</script>
              </scripts>
            </configuration>
          </execution>
        </executions>
        <dependencies>
          <dependency>
            <groupId>org.apache.groovy</groupId>
            <artifactId>groovy-all</artifactId>
            <version>5.0.6</version>
            <type>pom</type>
            <scope>runtime</scope>
          </dependency>
        </dependencies>
      </plugin>
      <plugin>
        <groupId>com.soebes.maven.plugins</groupId>
        <artifactId>echo-maven-plugin</artifactId>
        <version>0.5.0</version>
        <executions>
          <execution>
            <id>echo test groups</id>
            <phase>initialize</phase>
            <goals>
              <goal>echo</goal>
            </goals>
            <configuration>
              <echos>
                <echo>Test Groups (Tags): ${groups}</echo>
              </echos>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <configuration>
          <includes>
            <include>com/flowlogix/**</include>
          </includes>
          <excludes>
            <exclude>com/flowlogix/*Test</exclude>
            <exclude>com/flowlogix/*Test$*</exclude>
            <exclude>com/flowlogix/*IT</exclude>
            <exclude>com/flowlogix/*IT$*</exclude>
            <exclude>com/flowlogix/examples/**</exclude>
            <exclude>com/flowlogix/demo/**</exclude>
            <exclude>com/flowlogix/logcapture/**</exclude>
            <exclude>com/flowlogix/testcontainers/**</exclude>
          </excludes>
        </configuration>
      </plugin>
      <plugin>
        <groupId>com.github.siom79.japicmp</groupId>
        <artifactId>japicmp-maven-plugin</artifactId>
        <configuration>
          <parameter>
            <oldVersionPattern>${japicmp.old.version.pattern}</oldVersionPattern>
          </parameter>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <profiles>
    <profile>
      <id>build-jee-examples</id>
      <activation>
        <property>
          <name>!skip-jee-examples</name>
        </property>
      </activation>
      <modules>
        <module>jee-examples</module>
      </modules>
    </profile>
    <profile>
      <id>stress-test</id>
      <properties>
        <test_groups>StressTest</test_groups>
      </properties>
    </profile>
    <profile>
      <id>ui-test</id>
      <properties>
        <test_groups>UserInterface</test_groups>
      </properties>
    </profile>
    <profile>
      <id>all-tests</id>
      <properties>
        <test_groups>any()</test_groups>
      </properties>
    </profile>
    <profile>
      <id>javadoc-release</id>
      <properties>
        <javadoc.title>${project.name} ${project.version}</javadoc.title>
      </properties>
    </profile>
  </profiles>
</project>