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

<!--
 Copyright (c) 2012-2019 Red Hat, Inc. and/or its affiliates.

 This program and the accompanying materials are made
 available under the terms of the Eclipse Public License 2.0
 which is available at https://www.eclipse.org/legal/epl-2.0/

 SPDX-License-Identifier: EPL-2.0
-->

<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>org.jboss</groupId>
        <artifactId>jboss-parent</artifactId>
        <version>53</version>
        <relativePath />
    </parent>

    <groupId>org.jberet</groupId>
    <artifactId>jberet-parent</artifactId>
    <version>3.2.0.Final</version>
    <packaging>pom</packaging>

    <name>jberet-parent</name>
    <description>Implementation of Jakarta Batch</description>
    <url>https://jberet.org</url>
    <organization>
        <name>JBeret</name>
        <url>https://jberet.org</url>
    </organization>
    <licenses>
        <license>
            <name>Eclipse Public License 2.0</name>
            <url>https://www.eclipse.org/legal/epl-2.0/</url>
            <distribution>repo</distribution>
        </license>
    </licenses>

    <mailingLists>
        <mailingList>
            <name>GitHub Discussions</name>
            <post>https://github.com/orgs/jberet/discussions</post>
        </mailingList>
    </mailingLists>

    <modules>
        <module>jberet-core</module>
        <module>jberet-se</module>
        <module>jberet-job-repositories</module>
        <module>jberet-se-bom</module>
        <module>jberet-manifest</module>
        <module>test-apps</module>
        <module>test-deployment</module>
    </modules>

    <scm>
        <connection>scm:git:git@github.com:jberet/jsr352.git</connection>
        <url>https://github.com/jberet/jsr352.git</url>
        <developerConnection>scm:git:git@github.com:jberet/jsr352.git</developerConnection>
      <tag>3.2.0.Final</tag>
  </scm>
    <issueManagement>
        <system>Jira</system>
        <url>https://issues.jboss.org/browse/JBERET</url>
    </issueManagement>

    <properties>
        <!-- Project Configuration -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <skipTests>false</skipTests>

        <!-- Core JBeret and JBoss Dependencies -->
        <version.org.jberet.support>3.0.0.Final</version.org.jberet.support>
        <version.org.jboss.apiviz>1.3.2.GA</version.org.jboss.apiviz>
        <version.org.jboss.logging.jboss-logging>3.6.3.Final</version.org.jboss.logging.jboss-logging>
        <version.org.jboss.logging.jboss-logging-tools>3.0.3.Final</version.org.jboss.logging.jboss-logging-tools>
        <version.org.jboss.marshalling>2.3.0</version.org.jboss.marshalling>

        <!-- Jakarta EE Core APIs -->
        <version.jakarta.batch-api>2.1.1</version.jakarta.batch-api>
        <version.jakarta.enterprise.cdi-api>4.1.0</version.jakarta.enterprise.cdi-api>
        <version.jakarta.inject-api>2.0.1.MR</version.jakarta.inject-api>
        <version.jakarta-transaction-api>2.0.1</version.jakarta-transaction-api>
        <version.jakarta.annotation-api>3.0.0</version.jakarta.annotation-api>
        <version.jakarta.xml.bind-api>4.0.5</version.jakarta.xml.bind-api>
        <version.jakarta.xml.ws-api>4.0.3</version.jakarta.xml.ws-api>
        <version.jakarta.ws.rs-api>3.1.0</version.jakarta.ws.rs-api>
        <version.jakarta.ejb-api>4.0.1</version.jakarta.ejb-api>

        <!-- CDI Implementation -->
        <version.org.jboss.weld.weld>5.1.7.Final</version.org.jboss.weld.weld>
        <version.org.jboss.weld.weld-se>5.1.7.Final</version.org.jboss.weld.weld-se>

        <!-- Utilities -->
        <version.com.google.guava>33.6.0-jre</version.com.google.guava>
        <version.org.mapstruct>1.6.3</version.org.mapstruct>

        <!-- Data Format and Processing Libraries -->
        <version.com.fasterxml.aalto-xml>1.4.0</version.com.fasterxml.aalto-xml>
        <version.org.codehaus.woodstox.stax2-api>4.3.0</version.org.codehaus.woodstox.stax2-api>

        <!-- Job Repository Implementations -->
        <version.com.h2database>2.4.240</version.com.h2database>
        <version.org.mongodb.mongo-java-driver>3.12.14</version.org.mongodb.mongo-java-driver>
        <version.org.infinispan>16.2.1</version.org.infinispan>
        <version.org.jgroups>5.5.6.Final</version.org.jgroups>

        <!-- Scripting Language Support -->
        <version.org.openjdk.nashorn>15.7</version.org.openjdk.nashorn>
        <version.org.apache.groovy>5.0.7</version.org.apache.groovy>
        <version.org.jruby.jruby>9.4.15.0</version.org.jruby.jruby>
        <version.org.python.jython>2.7.4</version.org.python.jython>
        <version.org.scala-lang.scala-dist>2.13.18</version.org.scala-lang.scala-dist>
        <version.com.caucho.resin-quercus>3.2.1</version.com.caucho.resin-quercus>

        <!-- JMS and Messaging -->
        <version.jakarta.jms-api>3.1.0</version.jakarta.jms-api>

        <!-- Validation -->
        <version.org.hibernate>6.0.2.Final</version.org.hibernate>

        <!-- Security -->
        <version.org.wildfly.security.elytron>2.9.2.Final</version.org.wildfly.security.elytron>

        <!-- Integration Frameworks -->
        <version.com.datastax.cassandra>4.17.0</version.com.datastax.cassandra>

        <!-- Testing -->
        <junit-jupiter.version>6.1.1</junit-jupiter.version>
        <version.org.jboss.logmanager>3.2.2.Final</version.org.jboss.logmanager>

        <!-- Maven Repository Configuration -->
        <!-- Protocol to use for communication with remote maven repositories.
             You can set to 'http' if you are using a maven proxy and 'https'
             interferes with that. Use 'https' for builds that will be released
             to non-snapshot public maven repos -->
        <maven.repository.protocol>https</maven.repository.protocol>
        <!-- The full remote maven repo URL; can be overridden via -D for special use cases -->
        <maven.repository.url>${maven.repository.protocol}://repository.jboss.org/nexus/repository/public/</maven.repository.url>

        <!-- Build Configuration -->
        <maven.test.redirectTestOutputToFile>true</maven.test.redirectTestOutputToFile>
        <redirectTestOutput>${maven.test.redirectTestOutputToFile}</redirectTestOutput>
        <modular.jdk.args />
        <surefire.system.args>${modular.jdk.args}</surefire.system.args>
        <test.java.home>${java.home}</test.java.home>
        <!-- Used to allow overriding the directory where reports are written. For example in CI, passing -Dtest.report.dir=java25
             to allow test reports to not overwrite each other.
         -->
        <test.report.dir />
        <surefire.reportsDirectory>${project.build.directory}/surefire-reports/${test.report.dir}</surefire.reportsDirectory>
        <failsafe.reportsDirectory>${project.build.directory}/failsafe-reports/${test.report.dir}</failsafe.reportsDirectory>

        <!-- Java Version Requirements -->
        <maven.compiler.release>17</maven.compiler.release>
        <jdk.min.version>${maven.compiler.release}</jdk.min.version>
        <insecure.repositories>WARN</insecure.repositories>

        <!-- maven-release-plugin configuration -->
        <autoVersionSubmodules>true</autoVersionSubmodules>
        <preparationGoals>clean install</preparationGoals>
        <preparationProfiles>jboss-release</preparationProfiles>
        <releaseProfiles>${preparationProfiles}</releaseProfiles>
        <signTag>true</signTag>
        <tagNameFormat>@{project.version}</tagNameFormat>
        <arguments>-DskipTests -DpushChanges=${pushChanges}</arguments>
        <pushChanges>false</pushChanges>
        <!-- Use the local directory when using perform -->
        <localCheckout>true</localCheckout>
        <!-- Nexus release properties -->
        <nexus.repository.release>jberet</nexus.repository.release>
        <nexus.staging.tag>jberet-${project.version}</nexus.staging.tag>
        <maven.deploy.skip>false</maven.deploy.skip>
        <nexus.skipPublishing>${maven.deploy.skip}</nexus.skipPublishing>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.jberet</groupId>
                <artifactId>jberet-support</artifactId>
                <version>${version.org.jberet.support}</version>
                <scope>runtime</scope>
            </dependency>
            <dependency>
                <groupId>jakarta.batch</groupId>
                <artifactId>jakarta.batch-api</artifactId>
                <version>${version.jakarta.batch-api}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>jakarta.inject</groupId>
                <artifactId>jakarta.inject-api</artifactId>
                <version>${version.jakarta.inject-api}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>jakarta.enterprise</groupId>
                <artifactId>jakarta.enterprise.cdi-api</artifactId>
                <version>${version.jakarta.enterprise.cdi-api}</version>
                <scope>provided</scope>
                <exclusions>
                    <exclusion>
                        <groupId>jakarta.inject</groupId>
                        <artifactId>jakarta.inject-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>jakarta.el</groupId>
                        <artifactId>jakarta.el-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>jakarta.interceptor</groupId>
                        <artifactId>jakarta.interceptor-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>jakarta.annotation</groupId>
                        <artifactId>jakarta.annotation-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.jboss.logging</groupId>
                <artifactId>jboss-logging</artifactId>
                <version>${version.org.jboss.logging.jboss-logging}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.jboss.logging</groupId>
                <artifactId>jboss-logging-annotations</artifactId>
                <version>${version.org.jboss.logging.jboss-logging-tools}</version>
                <!-- Only needed during build time for the annotation processor -->
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.jboss.marshalling</groupId>
                <artifactId>jboss-marshalling</artifactId>
                <version>${version.org.jboss.marshalling}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>jakarta.annotation</groupId>
                <artifactId>jakarta.annotation-api</artifactId>
                <version>${version.jakarta.annotation-api}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>jakarta.transaction</groupId>
                <artifactId>jakarta.transaction-api</artifactId>
                <version>${version.jakarta-transaction-api}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>jakarta.xml.bind</groupId>
                <artifactId>jakarta.xml.bind-api</artifactId>
                <version>${version.jakarta.xml.bind-api}</version>
                <scope>provided</scope>
            </dependency>
            <!-- Required for jberet-core tests -->
            <dependency>
                <groupId>jakarta.xml.ws</groupId>
                <artifactId>jakarta.xml.ws-api</artifactId>
                <version>${version.jakarta.xml.ws-api}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.jboss.weld</groupId>
                <artifactId>weld-core-impl</artifactId>
                <version>${version.org.jboss.weld.weld}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.jboss.weld.se</groupId>
                <artifactId>weld-se-core</artifactId>
                <version>${version.org.jboss.weld.weld-se}</version>
                <scope>provided</scope>
            </dependency>

            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-security-manager</artifactId>
                <version>${version.org.wildfly.security.elytron}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.wildfly.security</groupId>
                <artifactId>wildfly-elytron-security-manager-action</artifactId>
                <version>${version.org.wildfly.security.elytron}</version>
                <scope>provided</scope>
            </dependency>

            <!-- To generate code to copy JBeret model -->
            <dependency>
                <groupId>org.mapstruct</groupId>
                <artifactId>mapstruct</artifactId>
                <version>${version.org.mapstruct}</version>
                <scope>provided</scope>
            </dependency>

            <dependency>
                <groupId>com.h2database</groupId>
                <artifactId>h2</artifactId>
                <version>${version.com.h2database}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>${version.com.google.guava}</version>
                <scope>provided</scope>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.code.findbugs</groupId>
                        <artifactId>jsr305</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.checkerframework</groupId>
                        <artifactId>checker-qual</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.google.errorprone</groupId>
                        <artifactId>error_prone_annotations</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.google.j2objc</groupId>
                        <artifactId>j2objc-annotations</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>animal-sniffer-annotations</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.fasterxml</groupId>
                <artifactId>aalto-xml</artifactId>
                <version>${version.com.fasterxml.aalto-xml}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.codehaus.woodstox</groupId>
                <artifactId>stax2-api</artifactId>
                <version>${version.org.codehaus.woodstox.stax2-api}</version>
                <scope>provided</scope>
            </dependency>

            <!-- Infinispan Dependencies -->
            <dependency>
                <groupId>org.infinispan</groupId>
                <artifactId>infinispan-core</artifactId>
                <version>${version.org.infinispan}</version>
                <scope>provided</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.hamcrest</groupId>
                        <artifactId>hamcrest-core</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.jgroups</groupId>
                        <artifactId>jgroups</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.jboss.logging</groupId>
                        <artifactId>jboss-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.infinispan</groupId>
                <artifactId>infinispan-commons</artifactId>
                <version>${version.org.infinispan}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.jgroups</groupId>
                <artifactId>jgroups</artifactId>
                <version>${version.org.jgroups}</version>
                <scope>provided</scope>
            </dependency>

            <!-- MongoDB Dependencies -->
            <dependency>
                <groupId>org.mongodb</groupId>
                <artifactId>mongo-java-driver</artifactId>
                <version>${version.org.mongodb.mongo-java-driver}</version>
                <scope>provided</scope>
            </dependency>

            <!-- JMS reader & writer dependencies -->
            <dependency>
                <groupId>jakarta.jms</groupId>
                <artifactId>jakarta.jms-api</artifactId>
                <version>${version.jakarta.jms-api}</version>
                <scope>provided</scope>
            </dependency>

            <!-- Scripting testing dependency -->
            <dependency>
                <groupId>org.openjdk.nashorn</groupId>
                <artifactId>nashorn-core</artifactId>
                <version>${version.org.openjdk.nashorn}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.groovy</groupId>
                <artifactId>groovy-jsr223</artifactId>
                <version>${version.org.apache.groovy}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.groovy</groupId>
                <artifactId>groovy</artifactId>
                <version>${version.org.apache.groovy}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.jruby</groupId>
                <artifactId>jruby</artifactId>
                <version>${version.org.jruby.jruby}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.python</groupId>
                <artifactId>jython-standalone</artifactId>
                <version>${version.org.python.jython}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.scala-lang</groupId>
                <artifactId>scala-library</artifactId>
                <version>${version.org.scala-lang.scala-dist}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.scala-lang</groupId>
                <artifactId>scala-compiler</artifactId>
                <version>${version.org.scala-lang.scala-dist}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.scala-lang</groupId>
                <artifactId>scala-reflect</artifactId>
                <version>${version.org.scala-lang.scala-dist}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.caucho</groupId>
                <artifactId>resin-quercus</artifactId>
                <version>${version.com.caucho.resin-quercus}</version>
                <scope>test</scope>
            </dependency>

            <!-- rest-api dependencies -->
            <dependency>
                <groupId>jakarta.ws.rs</groupId>
                <artifactId>jakarta.ws.rs-api</artifactId>
                <version>${version.jakarta.ws.rs-api}</version>
                <scope>provided</scope>
            </dependency>

            <!-- jberet-support dependencies -->
            <dependency>
                <groupId>jakarta.ejb</groupId>
                <artifactId>jakarta.ejb-api</artifactId>
                <version>${version.jakarta.ejb-api}</version>
                <scope>provided</scope>
            </dependency>

            <!-- Cassandra dependencies -->
            <dependency>
                <groupId>com.datastax.oss</groupId>
                <artifactId>java-driver-core</artifactId>
                <version>${version.com.datastax.cassandra}</version>
                <scope>provided</scope>
            </dependency>

            <!-- For testing -->
            <dependency>
                <groupId>org.junit</groupId>
                <artifactId>junit-bom</artifactId>
                <version>${junit-jupiter.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.jboss.logmanager</groupId>
                <artifactId>jboss-logmanager</artifactId>
                <version>${version.org.jboss.logmanager}</version>
                <scope>test</scope>
            </dependency>

        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>jakarta.batch</groupId>
            <artifactId>jakarta.batch-api</artifactId>
        </dependency>
        <dependency>
            <groupId>jakarta.inject</groupId>
            <artifactId>jakarta.inject-api</artifactId>
        </dependency>
        <dependency>
            <groupId>jakarta.enterprise</groupId>
            <artifactId>jakarta.enterprise.cdi-api</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jboss.logging</groupId>
            <artifactId>jboss-logging-annotations</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jboss.logging</groupId>
            <artifactId>jboss-logging</artifactId>
        </dependency>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
        </dependency>
        <dependency>
            <groupId>org.wildfly.security</groupId>
            <artifactId>wildfly-elytron-security-manager</artifactId>
        </dependency>
        <dependency>
            <groupId>org.wildfly.security</groupId>
            <artifactId>wildfly-elytron-security-manager-action</artifactId>
        </dependency>
        <!-- Used to log test output -->
        <dependency>
            <groupId>org.jboss.logmanager</groupId>
            <artifactId>jboss-logmanager</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <repositories>
        <repository>
            <releases>
                <enabled>true</enabled>
                <updatePolicy>never</updatePolicy>
            </releases>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>never</updatePolicy>
            </snapshots>
            <id>jboss-public-repository-group</id>
            <name>JBoss Public Repository Group</name>
            <url>${maven.repository.url}</url>
            <layout>default</layout>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <id>jboss-public-repository-group</id>
            <name>JBoss Public Repository Group</name>
            <url>${maven.repository.url}</url>
        </pluginRepository>
    </pluginRepositories>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <configuration>
                        <jvm>${test.java.home}${file.separator}bin${file.separator}java</jvm>
                        <reportsDirectory>${surefire.reportsDirectory}</reportsDirectory>
                        <redirectTestOutputToFile>${redirectTestOutput}</redirectTestOutputToFile>
                        <argLine>${surefire.system.args}</argLine>
                        <systemPropertyVariables>
                            <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
                            <!-- Please note this is an undocumented and fragile property as it may not work in the future.
                                 However, for now it is all we have to find the root project directory. -->
                            <logging.configuration>file:///${maven.multiModuleProjectDirectory}/logging.properties</logging.configuration>
                            <client.log.dir>${project.build.directory}</client.log.dir>
                            <jberet.tmp.dir>${project.build.directory}</jberet.tmp.dir>
                        </systemPropertyVariables>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-failsafe-plugin</artifactId>
                    <executions>
                        <execution>
                            <goals>
                                <goal>integration-test</goal>
                                <goal>verify</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <jvm>${test.java.home}${file.separator}bin${file.separator}java</jvm>
                        <reportsDirectory>${failsafe.reportsDirectory}</reportsDirectory>
                        <redirectTestOutputToFile>${redirectTestOutput}</redirectTestOutputToFile>
                        <argLine>${surefire.system.args}</argLine>
                        <systemPropertyVariables>
                            <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
                            <!-- Please note this is an undocumented and fragile property as it may not work in the future.
                                 However, for now it is all we have to find the root project directory. -->
                            <logging.configuration>file:///${maven.multiModuleProjectDirectory}/logging.properties</logging.configuration>
                            <client.log.dir>${project.build.directory}</client.log.dir>
                            <jberet.tmp.dir>${project.build.directory}</jberet.tmp.dir>
                        </systemPropertyVariables>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <configuration>
                        <doclint>none</doclint>
                        <sourcepath>${project.build.sourceDirectory}</sourcepath>
                        <excludePackageNames>*._private.*</excludePackageNames>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>build-helper-maven-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>add-regex-properties</id>
                            <goals>
                                <goal>regex-properties</goal>
                            </goals>
                            <configuration>
                                <regexPropertySettings>
                                    <regexPropertySetting>
                                        <name>automatic.module.name</name>
                                        <value>${project.groupId}.${project.artifactId}</value>
                                        <regex>([a-z]+)\.\1-|-</regex>
                                        <replacement>$1\.</replacement>
                                        <failIfNoMatch>false</failIfNoMatch>
                                    </regexPropertySetting>
                                </regexPropertySettings>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </pluginManagement>

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <annotationProcessorPaths>
                        <path>
                            <groupId>org.jboss.logging</groupId>
                            <artifactId>jboss-logging-processor</artifactId>
                            <version>${version.org.jboss.logging.jboss-logging-tools}</version>
                        </path>
                        <path>
                            <groupId>org.mapstruct</groupId>
                            <artifactId>mapstruct-processor</artifactId>
                            <version>${version.org.mapstruct}</version>
                        </path>
                    </annotationProcessorPaths>
                    <!-- Only generate skeleton properties for INFO or higher -->
                    <compilerArgument>-Aorg.jboss.logging.tools.level=INFO</compilerArgument>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifestEntries>
                            <Automatic-Module-Name>${automatic.module.name}</Automatic-Module-Name>
                        </manifestEntries>
                    </archive>
                    <excludes>
                        <!-- Exclude i18n properties files -->
                        <exclude>**/*.i18n.properties</exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
