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

    Copyright (c) 2019, 2025 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0 which is available at
    http://www.eclipse.org/legal/epl-2.0,
    or the Eclipse Distribution License v. 1.0 which is available at
    http://www.eclipse.org/org/documents/edl-v10.php.

    SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause

-->

<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"
         xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <modelVersion>4.0.0</modelVersion>

    <name>EclipseLink Parent</name>
    <description>Comprehensive and universal persistence framework for Java.</description>
    <groupId>org.eclipse.persistence</groupId>
    <artifactId>org.eclipse.persistence.parent</artifactId>
    <version>4.0.7</version>
    <packaging>pom</packaging>

    <parent>
        <groupId>org.eclipse.ee4j</groupId>
        <artifactId>project</artifactId>
        <version>1.0.9</version>
        <relativePath/>
    </parent>

    <scm>
        <connection>scm:git:https://github.com/eclipse-ee4j/eclipselink.git</connection>
        <url>https://github.com/eclipse-ee4j/eclipselink.git</url>
    </scm>

    <organization>
        <name>Eclipse.org - EclipseLink Project</name>
        <url>http://www.eclipse.org/eclipselink</url>
    </organization>

    <inceptionYear>2007</inceptionYear>
    <url>http://www.eclipse.org/eclipselink</url>

    <licenses>
        <license>
            <name>Eclipse Public License - v 2.0</name>
            <url>http://www.eclipse.org/legal/epl-2.0</url>
            <distribution>repo</distribution>
        </license>
        <license>
            <name>Eclipse Distribution License - v 1.0</name>
            <url>http://www.eclipse.org/org/documents/edl-v10.php</url>
            <distribution>repo</distribution>
        </license>
    </licenses>

    <issueManagement>
        <system>github</system>
        <url>https://github.com/eclipse-ee4j/eclipselink/issues</url>
    </issueManagement>

    <mailingLists>
        <mailingList>
            <name>EclipseLink user's mailing list</name>
            <post>eclipselink-users@eclipse.org</post>
            <subscribe>https://accounts.eclipse.org/mailing-list/eclipselink-users</subscribe>
            <unsubscribe>https://accounts.eclipse.org/mailing-list/eclipselink-users</unsubscribe>
            <archive>https://dev.eclipse.org/mhonarc/lists/eclipselink-users/</archive>
        </mailingList>
        <mailingList>
            <name>EclipseLink developer's mailing list</name>
            <post>eclipselink-dev@eclipse.org</post>
            <subscribe>https://accounts.eclipse.org/mailing-list/eclipselink-dev</subscribe>
            <unsubscribe>https://accounts.eclipse.org/mailing-list/eclipselink-dev</unsubscribe>
            <archive>https://dev.eclipse.org/mhonarc/lists/eclipselink-dev/</archive>
        </mailingList>
    </mailingLists>

    <repositories>
        <repository>
            <id>sonatype-nexus-staging</id>
            <name>Sonatype Nexus Staging</name>
            <url>${sonatypeOssDistMgmtStagingUrl}</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>

    <properties>
        <!-- Minimum required JDK version -->
        <maven.compiler.release>11</maven.compiler.release>
        <maven.compiler.testRelease>11</maven.compiler.testRelease>

        <!-- TOOL Properties -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <jdoc.doclint>all,-missing</jdoc.doclint>
        <!-- exclude big groups from the Xlint -->
        <comp.xlint>-Xlint:all,-serial</comp.xlint>
        <comp.xdoclint>-Xdoclint:all,-missing</comp.xdoclint>
        <comp.test.xlint>-Xlint:all,-rawtypes,-unchecked,-serial</comp.test.xlint>
        <warn.limit>250</warn.limit>

        <spotbugs.common>${project.build.directory}/spotbugs-exclude-common.xml</spotbugs.common>
        <spotbugs.exclude/>
        <spotbugs.skip>false</spotbugs.skip>
        <spotbugs.threshold>Normal</spotbugs.threshold>
        <spotbugs.version>4.9.3</spotbugs.version>
        <findsecbugs.version>1.11.0</findsecbugs.version>
        <dependency-check.failonerror>false</dependency-check.failonerror>

        <!-- PROJECT Properties -->
        <build.type>SNAPSHOT</build.type>
        <maven.build.timestamp.format>yyyyMMddHHmm</maven.build.timestamp.format>
        <build.qualifier>v${maven.build.timestamp}</build.qualifier>
        <sonatypeOssDistMgmtNexusUrl>https://jakarta.oss.sonatype.org/</sonatypeOssDistMgmtNexusUrl>
        <sonatypeOssDistMgmtStagingUrl>${sonatypeOssDistMgmtNexusUrl}content/repositories/staging/</sonatypeOssDistMgmtStagingUrl>

        <bundle.version>${release.version}.${build.qualifier}</bundle.version>
        <project.build.testReports.settings>test-report-settings/surefire-report.properties</project.build.testReports.settings>
        <project.build.testReports.subdirectory>test-reports</project.build.testReports.subdirectory>
        <project.build.testReports.summaryFile>test-summary</project.build.testReports.summaryFile>
        <project.build.licenceResourceDirectory>${project.build.directory}/license</project.build.licenceResourceDirectory>
        <project.build.javadocResourceDirectory>${project.build.directory}/javadoc-resources</project.build.javadocResourceDirectory>

        <!--Integration test sources/resources directory. Relative directory to ${project.basedir}
        !!!Can't start with / character!!!-->
        <integration.test.directory>src/it/</integration.test.directory>
        <integration.test.sources.directory>${integration.test.directory}/java/</integration.test.sources.directory>
        <integration.test.resources.directory>${integration.test.directory}/resources/</integration.test.resources.directory>
        <integration.test.skip.verify>false</integration.test.skip.verify>

        <!--Default location for JEE servers binaries-->
        <test.directory>${user.home}/.eclipselinktests</test.directory>
        <installation.url>https://github.com/wildfly/wildfly/releases/download/27.0.0.Final/wildfly-27.0.0.Final.zip</installation.url>
        <installation.checksum.md5>56e2dd6f54e65603ada5659a06ad782b</installation.checksum.md5>

        <!--Test DB property file names-->
        <test.mysql.properties.file>el-test.mysql.properties</test.mysql.properties.file>
        <test.mariadb.properties.file>el-test.mariadb.properties</test.mariadb.properties.file>
        <test.oracle.properties.file>el-test.oracle.properties</test.oracle.properties.file>
        <test.mongodb.properties.file>el-test.mongodb.properties</test.mongodb.properties.file>
        <test.derby.properties.file>el-test.derby.properties</test.derby.properties.file>
        <test.db2.properties.file>el-test.db2.properties</test.db2.properties.file>
        <test.mssql.properties.file>el-test.mssql.properties</test.mssql.properties.file>
        <test.pgsql.properties.file>el-test.pgsql.properties</test.pgsql.properties.file>

        <!--Default test DB is Derby-->
        <test.properties.file>${user.home}/${test.derby.properties.file}</test.properties.file>
        <test.properties.fileName>${test.derby.properties.file}</test.properties.fileName>
        <test.properties.default.directory>${project.build.directory}/test-default-properties</test.properties.default.directory>
        <test.report.properties.default.directory>${project.build.directory}/test-report-properties</test.report.properties.default.directory>
        <test.database>derby</test.database>
        <!--false: to start In-Memory database, true: not start (MySQL, Oracle)-->
        <test.skip.in-memory.db>false</test.skip.in-memory.db>

        <!--Test JEE server property file names-->
        <testjee.glassfish.properties.file>el-testjee.glassfish.properties</testjee.glassfish.properties.file>
        <testjee.weblogic.properties.file>el-testjee.weblogic.properties</testjee.weblogic.properties.file>
        <testjee.wildfly.properties.file>el-testjee.wildfly.properties</testjee.wildfly.properties.file>
        <!--Default test JEE Server is WildFly-->
        <testjee.properties.file>${user.home}/${testjee.wildfly.properties.file}</testjee.properties.file>
        <testjee.properties.fileName>${testjee.wildfly.properties.file}</testjee.properties.fileName>

        <!--Default DB driver used for testing-->
        <db.driver.groupId>org.apache.derby</db.driver.groupId>
        <db.driver.artifactId>derbyclient</db.driver.artifactId>
        <db.driver.version>${derby.version}</db.driver.version>

        <!--Default JEE client used for EJB remote call (testing)-->
        <jee.client.groupId>org.wildfly</jee.client.groupId>
        <jee.client.artifactId>wildfly-ejb-client-bom</jee.client.artifactId>
        <jee.client.version>${wildfly.version}</jee.client.version>
        <jee.client.type>pom</jee.client.type>

        <skip.glassfish.configuration>true</skip.glassfish.configuration>

        <!--These properties are used in MOXy and SDO tests only-->
        <test.xml.platform>org.eclipse.persistence.platform.xml.jaxp.JAXPPlatform</test.xml.platform>
        <test.xml.parser>org.eclipse.persistence.platform.xml.jaxp.JAXPParser</test.xml.parser>

        <!--Documentation properties-->
        <docs.status>DRAFT</docs.status>

        <!--Javadoc properties-->
        <javadoc.prefixTitle>EclipseLink ${release.version}</javadoc.prefixTitle>
        <javadoc.postfixTitle>API Reference</javadoc.postfixTitle>

        <!--Eclipse Dependencies version-->
        <eclipselink.asm.version>9.8.0</eclipselink.asm.version>
        <asm.version>9.8</asm.version>
        <activation-api.version>2.1.3</activation-api.version>
        <angus-activation.version>2.0.2</angus-activation.version>
        <annotation.version>2.1.1</annotation.version>
        <cdi.version>4.0.1</cdi.version>
        <ejb.version>4.0.1</ejb.version>
        <el-api.version>5.0.1</el-api.version>
        <el.version>5.0.0-M1</el.version>
        <glassfish.version>7.0.5</glassfish.version>
        <jaxwsrt.version>4.0.3</jaxwsrt.version>
        <jaxb.version>4.0.5</jaxb.version>
        <jaxb.api.version>4.0.2</jaxb.api.version>
        <soap.api.version>3.0.2</soap.api.version>
        <helidon.version>4.2.3</helidon.version>
        <jersey.version>3.1.7</jersey.version>
        <jms.version>3.1.0</jms.version>
        <json.version>2.1.3</json.version>
        <jpa.api.version>3.1.0</jpa.api.version>
        <mail-api.version>2.1.3</mail-api.version>
        <angus-mail.version>2.0.3</angus-mail.version>
        <oracle.ddlparser.version>3.0.1</oracle.ddlparser.version>
        <org.glassfish.corba.version>4.2.5</org.glassfish.corba.version>
        <parsson.version>1.1.7</parsson.version>
        <resource.version>2.1.0</resource.version>
        <servlet.version>6.1.0</servlet.version>
        <transaction.version>2.0.1</transaction.version>
        <validation.version>3.0.2</validation.version>
        <ws-api.version>4.0.2</ws-api.version>
        <ws-rs.version>3.1.0</ws-rs.version>

        <!--Third-Party Dependencies version-->
        <!-- CQ #23046 -->
        <apache.felix.framework.version>7.0.5</apache.felix.framework.version>
        <!-- CQ #21133 -->
        <ant.version>1.10.15</ant.version>
        <aspectj.version>1.9.19</aspectj.version>
        <commonj.sdo.version>2.1.1</commonj.sdo.version>
        <derby.version>10.15.2.0</derby.version>
        <db2.version>12.1.0.0</db2.version>
        <!-- CQ #21134, 21135, 21136, 21137 -->
        <exam.version>4.13.4</exam.version>
        <hamcrest.version>1.3</hamcrest.version>
        <!-- CQ #23048 -->
        <hibernate.version>8.0.1.Final</hibernate.version>
        <checkstyle.version>10.25.0</checkstyle.version>
        <!-- CQ #23049 -->
        <jgroups.version>5.3.18.Final</jgroups.version>
        <jmh.version>1.37</jmh.version>
        <junit.version>4.13.2</junit.version>
        <!-- CQ #24079 -->
        <mongodb.version>3.12.14</mongodb.version>
        <mysql.version>9.2.0</mysql.version>
        <mariadb.version>3.5.3</mariadb.version>
        <mssql.version>12.10.0.jre11</mssql.version>
        <pgsql.version>42.7.7</pgsql.version>
        <!-- CQ #21139, 21140 -->
        <logback.version>1.5.18</logback.version>
        <oracle.jdbc.version>23.8.0.25.04</oracle.jdbc.version>
        <!-- CQ #2437 -->
        <oracle.aqapi.version>23.7.0.0</oracle.aqapi.version>
        <oracle.observability.version>23.3.0.23.09</oracle.observability.version>
        <oracle.fmw.version>12.2.1-2-0</oracle.fmw.version>
        <!-- CQ #21141 -->
        <oracle.nosql.version>18.3.10</oracle.nosql.version>
        <!-- CQ #24195 -->
        <oracle.nosql.sdk.version>5.4.17</oracle.nosql.sdk.version>
        <!-- CQ #21142 -->
        <osgi.version>6.0.0</osgi.version>
        <!-- CQ #21143 -->
        <slf4j.version>2.0.12</slf4j.version>
        <!-- CQ #23051, 23052, 23053, 53054, 53055 -->
        <springframework.version>6.2.7</springframework.version>
        <springboot.version>3.5.0</springboot.version>
        <!-- CQ #23233 -->
        <weld-se.version>5.1.0.Final</weld-se.version>
        <weblogic.version>12.2.1-3</weblogic.version>
        <wildfly.version>27.0.0.Final</wildfly.version>
        <wsdl4j.version>1.6.3</wsdl4j.version>

        <!--Documentation Dependencies version-->
        <asciidoctorj.version>3.0.0</asciidoctorj.version>
        <asciidoctorj.pdf.version>2.3.19</asciidoctorj.pdf.version>
        <asciidoctorj.epub.version>2.2.0</asciidoctorj.epub.version>
        <jruby.version>10.0.0.1</jruby.version>
        <!--JRuby - this version works with asciidoctorj-pdf-->
        <!--        <jruby.version>9.4.7.0</jruby.version>-->
<!--        <jruby.version>9.4.0.0</jruby.version>-->
    </properties>

    <!-- Default modules set and added to by all profiles -->
    <modules>
        <module>jpa/org.eclipse.persistence.jpa.jpql</module>

        <module>foundation/org.eclipse.persistence.core</module>
        <module>foundation/org.eclipse.persistence.core.test.framework</module>
        <module>foundation/org.eclipse.persistence.json</module>
        <module>foundation/org.eclipse.persistence.pgsql</module>

        <module>jpa/org.eclipse.persistence.jpa</module>
        <module>jpa/org.eclipse.persistence.jpa.test.framework</module>
        <module>jpa/org.eclipse.persistence.jpa.modelgen</module>
        <module>jpa/org.eclipse.persistence.jpars</module>
        <module>jpa/org.eclipse.persistence.jpars.server</module>

        <module>foundation/org.eclipse.persistence.corba</module>
        <module>foundation/org.eclipse.persistence.extension</module>
        <module>foundation/org.eclipse.persistence.nosql</module>

        <module>moxy/org.eclipse.persistence.moxy</module>
        <module>moxy/org.eclipse.persistence.moxy.utils.xjc</module>

        <module>dbws/org.eclipse.persistence.dbws</module>

        <module>sdo/org.eclipse.persistence.sdo</module>

        <!--Utility modules-->
        <module>utils/org.eclipse.persistence.dbws.builder</module>
        <module>utils/eclipselink.utils.rename</module>

        <!--Oracle Extensions-->
        <module>foundation/org.eclipse.persistence.oracle</module>
        <module>foundation/org.eclipse.persistence.oracle.nosql</module>

        <!--EclipseLink Bundles-->
        <module>bundles</module>
    </modules>

    <dependencyManagement>
        <dependencies>
            <!-- our artifacts TODO: this belongs to BOM pom-->
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.parent</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.asm</artifactId>
                <version>${eclipselink.asm.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.asm</artifactId>
                <version>${eclipselink.asm.version}</version>
                <classifier>sources</classifier>
            </dependency>

            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.corba</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.corba</artifactId>
                <version>${project.version}</version>
                <classifier>sources</classifier>
            </dependency>

            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.core</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.core</artifactId>
                <version>${project.version}</version>
                <classifier>sources</classifier>
            </dependency>

            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.dbws</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.dbws</artifactId>
                <version>${project.version}</version>
                <classifier>sources</classifier>
            </dependency>

            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.dbws.builder</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.dbws.builder</artifactId>
                <version>${project.version}</version>
                <classifier>sources</classifier>
            </dependency>

            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.extension</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.extension</artifactId>
                <version>${project.version}</version>
                <classifier>sources</classifier>
            </dependency>

            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.jpa</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.jpa</artifactId>
                <version>${project.version}</version>
                <classifier>sources</classifier>
            </dependency>

            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.jpa.jpql</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.jpa.jpql</artifactId>
                <version>${project.version}</version>
                <classifier>sources</classifier>
            </dependency>

            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId>
                <version>${project.version}</version>
                <classifier>sources</classifier>
            </dependency>

            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.jpars.server</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.jpars.server</artifactId>
                <version>${project.version}</version>
                <classifier>sources</classifier>
            </dependency>

            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.jpars</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.jpars</artifactId>
                <version>${project.version}</version>
                <classifier>sources</classifier>
            </dependency>

            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.json</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.json</artifactId>
                <version>${project.version}</version>
                <classifier>sources</classifier>
            </dependency>

            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.moxy</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.moxy</artifactId>
                <version>${project.version}</version>
                <classifier>sources</classifier>
            </dependency>

            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.moxy.utils.xjc</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.moxy.utils.xjc</artifactId>
                <version>${project.version}</version>
                <classifier>sources</classifier>
            </dependency>

            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.nosql</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.nosql</artifactId>
                <version>${project.version}</version>
                <classifier>sources</classifier>
            </dependency>

            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.oracle</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.oracle</artifactId>
                <version>${project.version}</version>
                <classifier>sources</classifier>
            </dependency>

            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.oracle.nosql</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.oracle.nosql</artifactId>
                <version>${project.version}</version>
                <classifier>sources</classifier>
            </dependency>

            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.oracle.spatial</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.oracle.spatial</artifactId>
                <version>${project.version}</version>
                <classifier>sources</classifier>
            </dependency>

            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.pgsql</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.pgsql</artifactId>
                <version>${project.version}</version>
                <classifier>sources</classifier>
            </dependency>

            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.sdo</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.sdo</artifactId>
                <version>${project.version}</version>
                <classifier>sources</classifier>
            </dependency>

            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>eclipselink</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>eclipselink</artifactId>
                <version>${project.version}</version>
                <classifier>sources</classifier>
            </dependency>

            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.utils.rename</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.utils.rename</artifactId>
                <version>${project.version}</version>
                <classifier>sources</classifier>
            </dependency>

            <!-- our TEST artifacts TODO: this belongs to BOM pom-->
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.core.test.framework</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.core.test.framework</artifactId>
                <version>${project.version}</version>
                <classifier>sources</classifier>
            </dependency>

            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.jpa.test.framework</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.jpa.test.framework</artifactId>
                <version>${project.version}</version>
                <classifier>sources</classifier>
            </dependency>

            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.core</artifactId>
                <version>${project.version}</version>
                <type>test-jar</type>
            </dependency>
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.core.test</artifactId>
                <version>${project.version}</version>
                <type>test-jar</type>
            </dependency>
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.jpa.test</artifactId>
                <version>${project.version}</version>
                <type>test-jar</type>
            </dependency>
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.nosql</artifactId>
                <version>${project.version}</version>
                <type>test-jar</type>
            </dependency>

            <!--API/Implementation dependencies-->
            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm</artifactId>
                <version>${asm.version}</version>
            </dependency>
            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm-commons</artifactId>
                <version>${asm.version}</version>
            </dependency>
            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm-tree</artifactId>
                <version>${asm.version}</version>
            </dependency>
            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm-util</artifactId>
                <version>${asm.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.activation</groupId>
                <artifactId>jakarta.activation-api</artifactId>
                <version>${activation-api.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.angus</groupId>
                <artifactId>angus-activation</artifactId>
                <version>${angus-activation.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.mail</groupId>
                <artifactId>jakarta.mail-api</artifactId>
                <version>${mail-api.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.angus</groupId>
                <artifactId>angus-mail</artifactId>
                <version>${angus-mail.version}</version>
            </dependency>
            <dependency>
                <groupId>com.sun.xml.bind</groupId>
                <artifactId>jaxb-core</artifactId>
                <version>${jaxb.version}</version>
            </dependency>
            <dependency>
                <groupId>com.sun.xml.bind</groupId>
                <artifactId>jaxb-impl</artifactId>
                <version>${jaxb.version}</version>
            </dependency>
            <dependency>
                <groupId>com.sun.xml.bind</groupId>
                <artifactId>jaxb-xjc</artifactId>
                <version>${jaxb.version}</version>
            </dependency>
            <dependency>
                <groupId>com.sun.xml.ws</groupId>
                <artifactId>jaxws-rt</artifactId>
                <version>${jaxwsrt.version}</version>
            </dependency>
            <dependency>
                <groupId>com.sun.xml.ws</groupId>
                <artifactId>jaxws-eclipselink-plugin</artifactId>
                <version>${jaxwsrt.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.annotation</groupId>
                <artifactId>jakarta.annotation-api</artifactId>
                <version>${annotation.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.ejb</groupId>
                <artifactId>jakarta.ejb-api</artifactId>
                <version>${ejb.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.enterprise</groupId>
                <artifactId>jakarta.enterprise.cdi-api</artifactId>
                <version>${cdi.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.jms</groupId>
                <artifactId>jakarta.jms-api</artifactId>
                <version>${jms.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.json</groupId>
                <artifactId>jakarta.json-api</artifactId>
                <version>${json.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.persistence</groupId>
                <artifactId>jakarta.persistence-api</artifactId>
                <version>${jpa.api.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.resource</groupId>
                <artifactId>jakarta.resource-api</artifactId>
                <version>${resource.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.servlet</groupId>
                <artifactId>jakarta.servlet-api</artifactId>
                <version>${servlet.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.transaction</groupId>
                <artifactId>jakarta.transaction-api</artifactId>
                <version>${transaction.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.validation</groupId>
                <artifactId>jakarta.validation-api</artifactId>
                <version>${validation.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.xml.bind</groupId>
                <artifactId>jakarta.xml.bind-api</artifactId>
                <version>${jaxb.api.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>*</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>jakarta.xml.bind</groupId>
                <artifactId>jakarta.xml.bind-api</artifactId>
                <version>${jaxb.api.version}</version>
                <classifier>sources</classifier>
            </dependency>
            <dependency>
                <groupId>jakarta.xml.soap</groupId>
                <artifactId>jakarta.xml.soap-api</artifactId>
                <version>${soap.api.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>*</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>jakarta.xml.ws</groupId>
                <artifactId>jakarta.xml.ws-api</artifactId>
                <version>${ws-api.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>*</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>jakarta.ws.rs</groupId>
                <artifactId>jakarta.ws.rs-api</artifactId>
                <version>${ws-rs.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.ant</groupId>
                <artifactId>ant</artifactId>
                <version>${ant.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.felix</groupId>
                <artifactId>org.apache.felix.framework</artifactId>
                <version>${apache.felix.framework.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>commonj.sdo</artifactId>
                <version>${commonj.sdo.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>commonj.sdo</artifactId>
                <version>${commonj.sdo.version}</version>
                <classifier>sources</classifier>
            </dependency>
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.oracleddlparser</artifactId>
                <version>${oracle.ddlparser.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.oracleddlparser</artifactId>
                <version>${oracle.ddlparser.version}</version>
                <classifier>sources</classifier>
            </dependency>
            <dependency>
                <groupId>org.eclipse.parsson</groupId>
                <artifactId>parsson</artifactId>
                <version>${parsson.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.corba</groupId>
                <artifactId>glassfish-corba-omgapi</artifactId>
                <version>${org.glassfish.corba.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.corba</groupId>
                <artifactId>glassfish-corba-orb</artifactId>
                <version>${org.glassfish.corba.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jgroups</groupId>
                <artifactId>jgroups</artifactId>
                <version>${jgroups.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>wsdl4j</groupId>
                <artifactId>wsdl4j</artifactId>
                <version>${wsdl4j.version}</version>
            </dependency>
            <!--NoSQL DBs-->
            <!--Mongo DB-->
            <dependency>
                <groupId>org.mongodb</groupId>
                <artifactId>mongo-java-driver</artifactId>
                <version>${mongodb.version}</version>
            </dependency>
            <!--Oracle proprietary dependencies-->
            <!--Oracle NoSQL DB-->
            <dependency>
                <groupId>com.oracle.kv</groupId>
                <artifactId>oracle-nosql-client</artifactId>
                <version>${oracle.nosql.version}</version>
            </dependency>
            <!--Oracle NoSQL SDK Driver-->
            <dependency>
                <groupId>com.oracle.nosql.sdk</groupId>
                <artifactId>nosqldriver</artifactId>
                <version>${oracle.nosql.sdk.version}</version>
            </dependency>
            <!-- All files as a Oracle JDBC driver CQ #21154 -->
            <dependency>
                <groupId>com.oracle.database.jdbc</groupId>
                <artifactId>ojdbc-bom</artifactId>
                <version>${oracle.jdbc.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--TODO resolve dependency later
                                <dependency>
                                    <groupId>com.oracle.spatial</groupId>
                                    <artifactId>sdoapi</artifactId>
                                    <version>${oracle.version}</version>
                                </dependency>
            -->
            <dependency>
                <groupId>com.oracle.database.messaging</groupId>
                <artifactId>aqapi-jakarta</artifactId>
                <version>${oracle.aqapi.version}</version>
            </dependency>
            <dependency>
                <groupId>com.oracle.database.observability</groupId>
                <artifactId>dms</artifactId>
                <version>${oracle.observability.version}</version>
            </dependency>
            <!--Test dependencies-->
            <!--Test framework-->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
            </dependency>
            <!--APIs and other libs used in test classes-->
            <dependency>
                <groupId>org.aspectj</groupId>
                <artifactId>aspectjrt</artifactId>
                <version>${aspectj.version}</version>
            </dependency>
            <dependency>
                <groupId>org.aspectj</groupId>
                <artifactId>aspectjweaver</artifactId>
                <version>${aspectj.version}</version>
            </dependency>
            <dependency>
                <groupId>io.helidon.microprofile.bundles</groupId>
                <artifactId>helidon-microprofile</artifactId>
                <version>${helidon.version}</version>
            </dependency>
            <dependency>
                <groupId>io.helidon.jersey</groupId>
                <artifactId>helidon-jersey-client</artifactId>
                <version>${helidon.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.el</groupId>
                <artifactId>jakarta.el-api</artifactId>
                <version>${el-api.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.weld.se</groupId>
                <artifactId>weld-se-core</artifactId>
                <version>${weld-se.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish</groupId>
                <artifactId>jakarta.el</artifactId>
                <version>${el.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jersey.core</groupId>
                <artifactId>jersey-client</artifactId>
                <version>${jersey.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jersey.core</groupId>
                <artifactId>jersey-common</artifactId>
                <version>${jersey.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.main.appclient</groupId>
                <artifactId>gf-client</artifactId>
                <version>${glassfish.version}</version>
            </dependency>
            <dependency>
                <groupId>org.openjdk.jmh</groupId>
                <artifactId>jmh-core</artifactId>
                <version>${jmh.version}</version>
            </dependency>
            <dependency>
                <groupId>org.openjdk.jmh</groupId>
                <artifactId>jmh-generator-annprocess</artifactId>
                <version>${jmh.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>${springframework.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-instrument</artifactId>
                <version>${springframework.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-orm</artifactId>
                <version>${springframework.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-test</artifactId>
                <version>${springframework.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-tx</artifactId>
                <version>${springframework.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-jpa</artifactId>
                <version>${springboot.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <version>${springboot.version}</version>
            </dependency>
            <!--JDBC drivers-->
            <dependency>
                <groupId>com.mysql</groupId>
                <artifactId>mysql-connector-j</artifactId>
                <version>${mysql.version}</version>
            </dependency>
            <dependency>
                <groupId>org.mariadb.jdbc</groupId>
                <artifactId>mariadb-java-client</artifactId>
                <version>${mariadb.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.derby</groupId>
                <artifactId>derbyclient</artifactId>
                <version>${derby.version}</version>
            </dependency>
            <dependency>
                <groupId>com.ibm.db2</groupId>
                <artifactId>jcc</artifactId>
                <version>${db2.version}</version>
            </dependency>
            <dependency>
                <groupId>com.microsoft.sqlserver</groupId>
                <artifactId>mssql-jdbc</artifactId>
                <version>${mssql.version}</version>
            </dependency>
            <dependency>
                <groupId>org.postgresql</groupId>
                <artifactId>postgresql</artifactId>
                <version>${pgsql.version}</version>
            </dependency>
            <!--For Oracle DB driver see Oracle proprietary dependencies part. It's not limited to tests only-->
            <!-- Hibernate validator and it's dependencies -->
            <dependency>
                <groupId>org.hibernate.validator</groupId>
                <artifactId>hibernate-validator</artifactId>
                <version>${hibernate.version}</version>
            </dependency>
            <!--PaxExam -->
            <dependency>
                <groupId>org.ops4j.pax.exam</groupId>
                <artifactId>pax-exam</artifactId>
                <version>${exam.version}</version>
            </dependency>
            <dependency>
                <groupId>org.ops4j.pax.exam</groupId>
                <artifactId>pax-exam-container-forked</artifactId>
                <version>${exam.version}</version>
            </dependency>
            <dependency>
                <groupId>org.ops4j.pax.exam</groupId>
                <artifactId>pax-exam-junit4</artifactId>
                <version>${exam.version}</version>
            </dependency>
            <dependency>
                <groupId>org.ops4j.pax.exam</groupId>
                <artifactId>pax-exam-link-mvn</artifactId>
                <version>${exam.version}</version>
            </dependency>
            <!--Test Logging, required by Pax and extension module-->
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-core</artifactId>
                <version>${logback.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>${logback.version}</version>
            </dependency>
            <!--Test OSGi core-->
            <dependency>
                <groupId>org.osgi</groupId>
                <artifactId>org.osgi.core</artifactId>
                <version>${osgi.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>com.coderplus.maven.plugins</groupId>
                    <artifactId>copy-rename-maven-plugin</artifactId>
                    <version>1.0.1</version>
                </plugin>
                <plugin>
                    <groupId>com.googlecode.maven-download-plugin</groupId>
                    <artifactId>download-maven-plugin</artifactId>
                    <version>1.13.0</version>
                </plugin>
                <plugin>
                    <groupId>com.sun.wts.tools.ant</groupId>
                    <artifactId>package-rename-task</artifactId>
                    <version>1.6.0</version>
                </plugin>
                <plugin>
                    <groupId>de.empulse.eclipselink</groupId>
                    <artifactId>staticweave-maven-plugin</artifactId>
                    <version>1.0.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>maven-bundle-plugin</artifactId>
                    <version>5.1.9</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <version>3.1.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>3.7.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>3.5.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.14.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>3.8.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>3.1.4</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-enforcer-plugin</artifactId>
                    <version>3.5.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-failsafe-plugin</artifactId>
                    <version>3.5.3</version>
                    <configuration>
                        <useModulePath>false</useModulePath>
                        <forkNode implementation="org.apache.maven.plugin.surefire.extensions.SurefireForkNodeFactory"/>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-install-plugin</artifactId>
                    <version>3.1.4</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>3.4.2</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>3.11.2</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>3.3.1</version>
                    <configuration>
                        <nonFilteredFileExtensions>
                            <nonFilteredFileExtension>gar</nonFilteredFileExtension>
                        </nonFilteredFileExtensions>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-site-plugin</artifactId>
                    <version>4.0.0-M16</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>3.3.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>3.5.3</version>
                    <configuration>
                        <useModulePath>false</useModulePath>
                        <forkNode implementation="org.apache.maven.plugin.surefire.extensions.SurefireForkNodeFactory"/>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-report-plugin</artifactId>
                    <version>3.5.3</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>3.4.0</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.cargo</groupId>
                    <artifactId>cargo-maven3-plugin</artifactId>
                    <version>1.10.20</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.gmaven</groupId>
                    <artifactId>groovy-maven-plugin</artifactId>
                    <version>2.1.1</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>aspectj-maven-plugin</artifactId>
                    <version>1.15.0</version>
                    <dependencies>
                        <dependency>
                            <groupId>org.aspectj</groupId>
                            <artifactId>aspectjrt</artifactId>
                            <version>${aspectj.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>org.aspectj</groupId>
                            <artifactId>aspectjweaver</artifactId>
                            <version>${aspectj.version}</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>build-helper-maven-plugin</artifactId>
                    <version>3.6.1</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>buildnumber-maven-plugin</artifactId>
                    <version>3.2.1</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <version>3.5.1</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>sql-maven-plugin</artifactId>
                    <version>3.0.0</version>
                    <dependencies>
                        <dependency>
                            <groupId>${db.driver.groupId}</groupId>
                            <artifactId>${db.driver.artifactId}</artifactId>
                            <version>${db.driver.version}</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>xml-maven-plugin</artifactId>
                    <version>1.1.0</version>
                </plugin>
                <!--This plugin (g:org.kuali.maven.plugins) is used instead typical org.codehaus.mojo:properties-maven-plugin:1.0.0
                    due bug: "Circular property definition" if expression like this is used in the Maven pom
                    "<server.testrunner.prefix>${modelname}/${modelname}_ejb/</server.testrunner.prefix>"
                    -->
                <plugin>
                    <groupId>org.kuali.maven.plugins</groupId>
                    <artifactId>properties-maven-plugin</artifactId>
                    <version>2.0.1</version>
                </plugin>
                <plugin>
                    <groupId>org.reficio</groupId>
                    <artifactId>p2-maven-plugin</artifactId>
                    <version>2.1.0</version>
                </plugin>
                <plugin>
                    <!-- see https://github.com/eclipse-ee4j/eclipselink-build-support -->
                    <groupId>org.eclipse.persistence</groupId>
                    <artifactId>eclipselink-testbuild-plugin</artifactId>
                    <version>1.1.2</version>
                </plugin>
                <plugin>
                    <groupId>org.carlspring.maven</groupId>
                    <artifactId>derby-maven-plugin</artifactId>
                    <version>1.10</version>
                    <dependencies>
                        <dependency>
                            <groupId>org.apache.derby</groupId>
                            <artifactId>derby</artifactId>
                            <version>${derby.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>org.apache.derby</groupId>
                            <artifactId>derbyclient</artifactId>
                            <version>${derby.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>org.apache.derby</groupId>
                            <artifactId>derbynet</artifactId>
                            <version>${derby.version}</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <plugin>
                    <groupId>com.github.joelittlejohn.embedmongo</groupId>
                    <artifactId>embedmongo-maven-plugin</artifactId>
                    <version>0.4.2</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <version>3.6.0</version>
                    <dependencies>
                        <dependency>
                            <groupId>com.puppycrawl.tools</groupId>
                            <artifactId>checkstyle</artifactId>
                            <version>${checkstyle.version}</version>
                        </dependency>
                    </dependencies>
                    <configuration>
                        <checkstyleRules>
                            <module name="Checker">
                                <module name="FileTabCharacter">
                                    <property name="eachLine" value="true" />
                                </module>
                            </module>
                        </checkstyleRules>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>com.github.spotbugs</groupId>
                    <artifactId>spotbugs-maven-plugin</artifactId>
                    <version>4.9.3.0</version>
                    <dependencies>
                        <dependency>
                            <groupId>com.github.spotbugs</groupId>
                            <artifactId>spotbugs</artifactId>
                            <version>${spotbugs.version}</version>
                        </dependency>
                    </dependencies>
                    <configuration>
                        <skip>${spotbugs.skip}</skip>
                        <threshold>${spotbugs.threshold}</threshold>
                        <excludeFilterFile>${spotbugs.common},${spotbugs.exclude}</excludeFilterFile>
                        <plugins>
                            <plugin>
                                <groupId>com.h3xstream.findsecbugs</groupId>
                                <artifactId>findsecbugs-plugin</artifactId>
                                <version>${findsecbugs.version}</version>
                            </plugin>
                        </plugins>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.owasp</groupId>
                    <artifactId>dependency-check-maven</artifactId>
                    <version>12.1.2</version>
                    <configuration>
<!--                        <failBuildOnCVSS>7</failBuildOnCVSS>-->
                        <assemblyAnalyzerEnabled>false</assemblyAnalyzerEnabled>
                        <failOnError>${dependency-check.failonerror}</failOnError>
                        <formats>
                            <format>HTML</format>
                            <format>CSV</format>
                        </formats>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.asciidoctor</groupId>
                    <artifactId>asciidoctor-maven-plugin</artifactId>
                    <version>3.2.0</version>
                    <dependencies>
                        <dependency>
                            <groupId>org.jruby</groupId>
                            <artifactId>jruby-complete</artifactId>
                            <version>${jruby.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>org.asciidoctor</groupId>
                            <artifactId>asciidoctorj</artifactId>
                            <version>${asciidoctorj.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>org.asciidoctor</groupId>
                            <artifactId>asciidoctorj-pdf</artifactId>
                            <version>${asciidoctorj.pdf.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>org.asciidoctor</groupId>
                            <artifactId>asciidoctorj-epub3</artifactId>
                            <version>${asciidoctorj.epub.version}</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <plugin>
                    <groupId>org.wildfly.plugins</groupId>
                    <artifactId>wildfly-maven-plugin</artifactId>
                    <version>5.1.3.Final</version>
                </plugin>
            </plugins>
        </pluginManagement>

        <plugins>
            <!--Minimal JDK version-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <release>${maven.compiler.release}</release>
                    <testRelease>${maven.compiler.testRelease}</testRelease>
                    <showWarnings>true</showWarnings>
                    <showDeprecation>true</showDeprecation>
                </configuration>
                <executions>
                    <execution>
                        <id>default-compile</id>
                        <configuration>
                            <compilerArgs combine.children="append">
                                <arg>${comp.xlint}</arg>
                                <arg>${comp.xdoclint}</arg>
                                <arg>-Xmaxwarns</arg>
                                <arg>${warn.limit}</arg>
                                <arg>-Xmaxerrs</arg>
                                <arg>${warn.limit}</arg>
                            </compilerArgs>
                        </configuration>
                    </execution>
                    <execution>
                        <id>default-testCompile</id>
                        <configuration>
                            <compilerArgs combine.children="append">
                                <arg>${comp.test.xlint}</arg>
                                <arg>${comp.xdoclint}</arg>
                                <arg>-Xmaxwarns</arg>
                                <arg>${warn.limit}</arg>
                                <arg>-Xmaxerrs</arg>
                                <arg>${warn.limit}</arg>
                            </compilerArgs>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <executions>
                    <execution>
                        <id>build-resources</id>
                        <phase>initialize</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                        <inherited>false</inherited>
                        <configuration>
                            <descriptors>
                                <descriptor>src/main/assembly/common-license.xml</descriptor>
                                <descriptor>src/main/assembly/common-javadoc.xml</descriptor>
                                <descriptor>src/main/assembly/test-defaults.xml</descriptor>
                                <descriptor>src/main/assembly/test-report.xml</descriptor>
                                <descriptor>src/main/assembly/spotbugs-filter.xml</descriptor>
                            </descriptors>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>unpack-legal-resource</id>
                        <phase>generate-resources</phase>
                        <goals>
                            <goal>unpack</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>${project.groupId}</groupId>
                                    <artifactId>org.eclipse.persistence.parent</artifactId>
                                    <version>${project.version}</version>
                                    <classifier>common-license</classifier>
                                    <type>zip</type>
                                    <outputDirectory>${project.build.licenceResourceDirectory}</outputDirectory>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                    <execution>
                        <id>unpack-test-properties</id>
                        <phase>initialize</phase>
                        <goals>
                            <goal>unpack</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>${project.groupId}</groupId>
                                    <artifactId>org.eclipse.persistence.parent</artifactId>
                                    <version>${project.version}</version>
                                    <classifier>test-defaults</classifier>
                                    <type>zip</type>
                                    <outputDirectory>${test.properties.default.directory}</outputDirectory>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                    <execution>
                        <id>unpack-test-report-properties</id>
                        <phase>initialize</phase>
                        <goals>
                            <goal>unpack</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>${project.groupId}</groupId>
                                    <artifactId>org.eclipse.persistence.parent</artifactId>
                                    <version>${project.version}</version>
                                    <classifier>test-report</classifier>
                                    <type>zip</type>
                                    <outputDirectory>${test.report.properties.default.directory}</outputDirectory>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                    <execution>
                        <id>unpack-spotbugs-filter</id>
                        <phase>initialize</phase>
                        <goals>
                            <goal>unpack</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>${project.groupId}</groupId>
                                    <artifactId>org.eclipse.persistence.parent</artifactId>
                                    <version>${project.version}</version>
                                    <classifier>spotbugs-filter</classifier>
                                    <type>zip</type>
                                    <outputDirectory>${project.build.directory}</outputDirectory>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                    <execution>
                        <id>unpack-javadoc-resources</id>
                        <phase>initialize</phase>
                        <goals>
                            <goal>unpack</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>org.eclipse.persistence</groupId>
                                    <artifactId>org.eclipse.persistence.parent</artifactId>
                                    <version>${project.version}</version>
                                    <classifier>javadoc-resources</classifier>
                                    <type>zip</type>
                                    <outputDirectory>${project.build.javadocResourceDirectory}</outputDirectory>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>release.version-property</id>
                        <goals>
                            <goal>regex-property</goal>
                        </goals>
                        <configuration>
                            <name>release.version</name>
                            <value>${project.version}</value>
                            <regex>-SNAPSHOT</regex>
                            <replacement></replacement>
                            <failIfNoMatch>false</failIfNoMatch>
                        </configuration>
                    </execution>
                    <execution>
                        <id>add-integration-test-sources</id>
                        <!--<phase>generate-resources</phase>-->
                        <goals>
                            <goal>add-test-source</goal>
                        </goals>
                        <configuration>
                            <sources>
                                <source>${integration.test.sources.directory}</source>
                            </sources>
                        </configuration>
                    </execution>
                    <execution>
                        <id>add-integration-test-resources</id>
                        <!--<phase>generate-resources</phase>-->
                        <goals>
                            <goal>add-test-resource</goal>
                        </goals>
                        <configuration>
                            <resources>
                                <resource>
                                    <directory>${integration.test.resources.directory}</directory>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                    <execution>
                        <id>add-legal-resource</id>
                        <!--<phase>generate-resources</phase>-->
                        <goals>
                            <goal>add-resource</goal>
                        </goals>
                        <configuration>
                            <resources>
                                <resource>
                                    <directory>${project.build.licenceResourceDirectory}/md</directory>
                                    <includes>*</includes>
                                    <targetPath>META-INF</targetPath>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <!--Load maven test properties from file-->
            <plugin>
                <!--This plugin (g:org.kuali.maven.plugins) is used instead typical org.codehaus.mojo:properties-maven-plugin:1.0.0
                    due bug: "Circular property definition" if expression like this is used in the Maven pom
                    "<server.testrunner.prefix>${modelname}/${modelname}_ejb/</server.testrunner.prefix>"
                    -->
                <groupId>org.kuali.maven.plugins</groupId>
                <artifactId>properties-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>read-db-jee-properties</id>
                        <phase>initialize</phase>
                        <goals>
                            <goal>read-project-properties</goal>
                        </goals>
                        <configuration>
                            <locations>
                                <location>${test.properties.file}</location>
                                <location>${testjee.properties.file}</location>
                            </locations>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <!--Generate OSGi bundle/manifest-->
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <configuration>
                    <niceManifest>true</niceManifest>
                    <instructions>
                        <_noextraheaders>true</_noextraheaders>
                        <_noimportjava>true</_noimportjava>
                        <HK2-Bundle-Name>${project.groupId}:${project.artifactId}</HK2-Bundle-Name>
                        <Bundle-Version>${bundle.version}</Bundle-Version>
                    </instructions>
                </configuration>
                <executions>
                    <execution>
                        <id>bundle-manifest</id>
                        <goals>
                            <goal>manifest</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!--Enforce certain Maven version-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <executions>
                    <execution>
                        <id>enforce-maven</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <requireJavaVersion>
                                    <version>[11,)</version>
                                </requireJavaVersion>
                                <requireMavenVersion>
                                    <version>[3.8.5,)</version>
                                </requireMavenVersion>
                            </rules>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <!--Create jar file with classes and manifest with OSGi entries-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <executions>
                    <execution>
                        <id>default-jar</id>
                        <configuration>
                            <archive>
                                <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
                            </archive>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <!--Create jar file with source files and manifest with OSGi entries-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>jar-no-fork</goal>
                        </goals>
                        <configuration>
                            <archive>
                                <manifestEntries>
                                    <Bundle-ManifestVersion>2</Bundle-ManifestVersion>
                                    <Bundle-Name>${project.name} Source</Bundle-Name>
                                    <Bundle-SymbolicName>${project.artifactId}.source</Bundle-SymbolicName>
                                    <Bundle-Vendor>${project.organization.name}</Bundle-Vendor>
                                    <Bundle-Version>${bundle.version}</Bundle-Version>
                                    <Eclipse-SourceBundle>${project.artifactId};version="${bundle.version}"</Eclipse-SourceBundle>
                                </manifestEntries>
                            </archive>
                        </configuration>
                    </execution>
                    <execution>
                        <id>attach-test-sources</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>test-jar-no-fork</goal>
                        </goals>
                        <configuration>
                            <archive>
                                <manifestEntries>
                                    <Bundle-ManifestVersion>2</Bundle-ManifestVersion>
                                    <Bundle-Name>${project.name} Test Source</Bundle-Name>
                                    <Bundle-SymbolicName>${project.artifactId}.test.source</Bundle-SymbolicName>
                                    <Bundle-Vendor>${project.organization.name}</Bundle-Vendor>
                                    <Bundle-Version>${bundle.version}</Bundle-Version>
                                    <Eclipse-SourceBundle>${project.artifactId};version="${bundle.version}"</Eclipse-SourceBundle>
                                </manifestEntries>
                            </archive>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>sql-maven-plugin</artifactId>
                <!-- common configuration shared by all executions -->
                <configuration>
                    <driver>${db.driver}</driver>
                    <url>${db.url}</url>
                    <username>${db.user}</username>
                    <password>${db.pwd}</password>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.carlspring.maven</groupId>
                <artifactId>derby-maven-plugin</artifactId>
                <configuration>
                    <derbyHome>${project.build.directory}/derby</derbyHome>
                    <username>${db.user}</username>
                    <password>${db.pwd}</password>
                    <driver>${db.driver}</driver>
                    <connectionURL>${db.url}</connectionURL>
                    <!--Log SQL statements.-->
                    <!--<debugStatements>true</debugStatements>-->
                    <skip>${test.skip.in-memory.db}</skip>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-report-plugin</artifactId>
                <configuration>
                    <linkXRef>false</linkXRef>
                </configuration>
                <executions>
                    <execution>
                        <id>generate-surefire-html-report</id>
                        <phase>test</phase>
                        <goals>
                            <goal>report-only</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/surefire-reports</outputDirectory>
                        </configuration>
                    </execution>
                    <execution>
                        <id>generate-failsafe-html-report</id>
                        <phase>post-integration-test</phase>
                        <goals>
                            <goal>failsafe-report-only</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/failsafe-reports</outputDirectory>
                        </configuration>
                    </execution>
                    <execution>
                        <id>generate-test-summary-html-report</id>
                        <phase>post-integration-test</phase>
                        <goals>
                            <goal>failsafe-report-only</goal>
                        </goals>
                        <configuration>
                            <reportsDirectories>
                                <reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory>
                                <reportsDirectory>${project.build.directory}/failsafe-reports</reportsDirectory>
                            </reportsDirectories>
                            <outputDirectory>${project.build.directory}/${project.build.testReports.subdirectory}</outputDirectory>
                            <outputName>${project.build.testReports.summaryFile}</outputName>
                            <customBundle>${test.report.properties.default.directory}/surefire-report.properties</customBundle>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <configuration>
                    <additionalOptions combine.children="append">
                        <additionalOption>-Xmaxwarns</additionalOption>
                        <additionalOption>${warn.limit}</additionalOption>
                        <additionalOption>-Xmaxerrs</additionalOption>
                        <additionalOption>${warn.limit}</additionalOption>
                    </additionalOptions>
                    <minmemory>2G</minmemory>
                    <release>${maven.compiler.release}</release>
                    <doclint>${jdoc.doclint}</doclint>
                    <quiet>true</quiet>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <executions>
                    <execution>
                        <id>checkstyle</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <id>spring-modules</id>
            <activation>
                <jdk>[17,)</jdk>
            </activation>
            <modules>
                <!--JPA Spring test module-->
                <module>jpa/eclipselink.jpa.spring.test</module>
                <!--JPA Spring Boot test module-->
                <module>jpa/eclipselink.jpa.springboot.test</module>
            </modules>
        </profile>
        <!--Testing database profiles-->
        <!--TODO simplify properties part db.driver.XXXX to load it from file-->
        <profile>
            <id>derby</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <test.properties.file>${user.home}/${test.derby.properties.file}</test.properties.file>
                <test.properties.fileName>${test.derby.properties.file}</test.properties.fileName>
                <test.database>derby</test.database>
                <!--Used by sql-maven-plugin-->
                <db.driver.groupId>org.apache.derby</db.driver.groupId>
                <db.driver.artifactId>derbyclient</db.driver.artifactId>
                <db.driver.version>${derby.version}</db.driver.version>
            </properties>
        </profile>
        <profile>
            <id>db2</id>
            <properties>
                <test.properties.file>${user.home}/${test.db2.properties.file}</test.properties.file>
                <test.properties.fileName>${test.db2.properties.file}</test.properties.fileName>
                <!--Used by sql-maven-plugin-->
                <db.driver.groupId>com.ibm.db2</db.driver.groupId>
                <db.driver.artifactId>jcc</db.driver.artifactId>
                <db.driver.version>${db2.version}</db.driver.version>
                <test.skip.in-memory.db>true</test.skip.in-memory.db>
            </properties>
        </profile>
        <profile>
            <id>mysql</id>
            <properties>
                <test.properties.file>${user.home}/${test.mysql.properties.file}</test.properties.file>
                <test.properties.fileName>${test.mysql.properties.file}</test.properties.fileName>
                <!--Used by sql-maven-plugin-->
                <db.driver.groupId>com.mysql</db.driver.groupId>
                <db.driver.artifactId>mysql-connector-j</db.driver.artifactId>
                <db.driver.version>${mysql.version}</db.driver.version>
                <test.skip.in-memory.db>true</test.skip.in-memory.db>
            </properties>
        </profile>
        <profile>
            <id>mariadb</id>
            <properties>
                <test.properties.file>${user.home}/${test.mariadb.properties.file}</test.properties.file>
                <test.properties.fileName>${test.mariadb.properties.file}</test.properties.fileName>
                <!--Used by sql-maven-plugin-->
                <db.driver.groupId>org.mariadb.jdbc</db.driver.groupId>
                <db.driver.artifactId>mariadb-java-client</db.driver.artifactId>
                <db.driver.version>${mariadb.version}</db.driver.version>
                <test.skip.in-memory.db>true</test.skip.in-memory.db>
            </properties>
        </profile>
        <profile>
            <id>mssql</id>
            <properties>
                <test.properties.file>${user.home}/${test.mssql.properties.file}</test.properties.file>
                <test.properties.fileName>${test.mssql.properties.file}</test.properties.fileName>
                <!--Used by sql-maven-plugin-->
                <db.driver.groupId>com.microsoft.sqlserver</db.driver.groupId>
                <db.driver.artifactId>mssql-jdbc</db.driver.artifactId>
                <db.driver.version>${mssql.version}</db.driver.version>
                <test.skip.in-memory.db>true</test.skip.in-memory.db>
            </properties>
        </profile>
        <profile>
            <id>pgsql</id>
            <properties>
                <test.properties.file>${user.home}/${test.pgsql.properties.file}</test.properties.file>
                <test.properties.fileName>${test.pgsql.properties.file}</test.properties.fileName>
                <!--Used by sql-maven-plugin-->
                <db.driver.groupId>org.postgresql</db.driver.groupId>
                <db.driver.artifactId>postgresql</db.driver.artifactId>
                <db.driver.version>${pgsql.version}</db.driver.version>
                <test.skip.in-memory.db>true</test.skip.in-memory.db>
            </properties>
        </profile>
        <profile>
            <id>oracle</id>
            <properties>
                <test.properties.file>${user.home}/${test.oracle.properties.file}</test.properties.file>
                <test.properties.fileName>${test.oracle.properties.file}</test.properties.fileName>
                <!--Used by sql-maven-plugin-->
                <db.driver.groupId>com.oracle.database.jdbc</db.driver.groupId>
                <db.driver.artifactId>ojdbc11</db.driver.artifactId>
                <db.driver.version>${oracle.jdbc.version}</db.driver.version>
                <test.skip.in-memory.db>true</test.skip.in-memory.db>
            </properties>
        </profile>
        <!--TODO simplify properties part jee.client.XXXX to load it from file-->
        <!--Testing JEE server profiles WildFly, GlassFish, Weblogic-->
        <profile>
            <id>wildfly</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <testjee.properties.file>${user.home}/${testjee.wildfly.properties.file}</testjee.properties.file>
                <testjee.properties.fileName>${testjee.wildfly.properties.file}</testjee.properties.fileName>
                <jee.client.groupId>org.wildfly</jee.client.groupId>
                <jee.client.artifactId>wildfly-ejb-client-bom</jee.client.artifactId>
                <jee.client.version>${wildfly.version}</jee.client.version>
                <jee.client.type>pom</jee.client.type>
                <!--Download properties-->
                <installation.url>https://github.com/wildfly/wildfly/releases/download/27.0.0.Final/wildfly-27.0.0.Final.zip</installation.url>
                <installation.checksum.md5>56e2dd6f54e65603ada5659a06ad782b</installation.checksum.md5>
            </properties>
        </profile>
        <profile>
            <id>glassfish</id>
            <properties>
                <testjee.properties.file>${user.home}/${testjee.glassfish.properties.file}</testjee.properties.file>
                <testjee.properties.fileName>${testjee.glassfish.properties.file}</testjee.properties.fileName>
                <jee.client.groupId>org.glassfish.main.appclient</jee.client.groupId>
                <jee.client.artifactId>gf-client</jee.client.artifactId>
                <jee.client.version>${glassfish.version}</jee.client.version>
                <jee.client.type>jar</jee.client.type>
                <skip.glassfish.configuration>false</skip.glassfish.configuration>
                <!--Download properties-->
                <installation.url>https://repo1.maven.org/maven2/org/glassfish/main/distributions/glassfish/5.1.0/glassfish-5.1.0.zip</installation.url>
                <installation.checksum.md5>2ed2d211fd56e270f3daf8e2b5e01e30</installation.checksum.md5>
            </properties>
        </profile>
        <profile>
            <id>weblogic</id>
            <properties>
                <testjee.properties.file>${user.home}/${testjee.weblogic.properties.file}</testjee.properties.file>
                <testjee.properties.fileName>${testjee.weblogic.properties.file}</testjee.properties.fileName>
                <jee.client.groupId>com.oracle.weblogic</jee.client.groupId>
                <jee.client.artifactId>wlthint3client</jee.client.artifactId>
                <jee.client.version>${weblogic.version}</jee.client.version>
                <jee.client.type>jar</jee.client.type>
            </properties>
        </profile>
        <!--Activate perfomance tests module-->
        <profile>
            <id>test-performance</id>
            <modules>
                <!--Performance Tests module module-->
                <module>performance/eclipselink.perf.test</module>
            </modules>
        </profile>
        <!--INTERNAL - Test properties fallback. Expects, that mvn command is executed from project root directory.-->
        <profile>
            <id>test-properties-fallback</id>
            <activation>
                <file>
                    <missing>${test.properties.file}</missing>
                </file>
            </activation>
            <properties>
                <test.properties.file>${test.properties.default.directory}/${test.properties.fileName}</test.properties.file>
            </properties>
        </profile>
        <profile>
            <id>test-jee-properties-fallback</id>
            <activation>
                <file>
                    <missing>${testjee.properties.file}</missing>
                </file>
            </activation>
            <properties>
                <testjee.properties.file>${test.properties.default.directory}/${testjee.properties.fileName}</testjee.properties.file>
            </properties>
        </profile>
        <!--INTERNAL - Don't start In-Memory DB in case of -DskipTests switch-->
        <profile>
            <id>test-skip-check</id>
            <activation>
                <property>
                    <name>skipTests</name>
                    <value>true</value>
                </property>
            </activation>
            <properties>
                <test.skip.in-memory.db>true</test.skip.in-memory.db>
            </properties>
        </profile>
        <profile>
            <id>coding-standards</id>
            <properties>
                <copyright.exclude>etc/copyright-exclude</copyright.exclude>
                <copyright.ignoreyear>false</copyright.ignoreyear>
                <copyright.scmonly>true</copyright.scmonly>
                <copyright.template>etc/copyright.txt</copyright.template>
                <copyright.update>false</copyright.update>
            </properties>
            <build>
                <pluginManagement>
                    <plugins>
                        <plugin>
                            <groupId>org.glassfish.copyright</groupId>
                            <artifactId>glassfish-copyright-maven-plugin</artifactId>
                            <version>2.4</version>
                            <configuration>
                                <templateFile>${copyright.template}</templateFile>
                                <excludeFile>${copyright.exclude}</excludeFile>
                                <!-- skip files not under SCM-->
                                <scmOnly>${copyright.scmonly}</scmOnly>
                                <!-- for use with repair -->
                                <update>${copyright.update}</update>
                                <!-- check that year is correct -->
                                <ignoreYear>${copyright.ignoreyear}</ignoreYear>
                            </configuration>
                        </plugin>
                    </plugins>
                </pluginManagement>
                <plugins>
                    <plugin>
                        <groupId>org.glassfish.copyright</groupId>
                        <artifactId>glassfish-copyright-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>cp-check</id>
                                <goals>
                                    <!-- Note: this takes ~2 hours -->
                                    <goal>copyright</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>spotbugs</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>com.github.spotbugs</groupId>
                        <artifactId>spotbugs-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <phase>verify</phase>
                                <goals>
                                    <goal>spotbugs</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>dependency-check</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.owasp</groupId>
                        <artifactId>dependency-check-maven</artifactId>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>aggregate</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>coverage</id>
            <build>
                <pluginManagement>
                    <plugins>
                        <plugin>
                            <groupId>org.jacoco</groupId>
                            <artifactId>jacoco-maven-plugin</artifactId>
                            <version>0.8.13</version>
                        </plugin>
                    </plugins>
                </pluginManagement>
                <plugins>
                    <plugin>
                        <groupId>org.jacoco</groupId>
                        <artifactId>jacoco-maven-plugin</artifactId>
                        <configuration>
                            <append>true</append>
                            <dumpOnExit>true</dumpOnExit>
                            <classDumpDir>${project.build.outputDirectory}</classDumpDir>
                        </configuration>
                        <executions>
                            <execution>
                                <id>jacoco-prepare-agent</id>
                                <phase>process-test-resources</phase>
                                <goals>
                                    <goal>prepare-agent</goal>
                                </goals>
                            </execution>
                            <execution>
                                <id>jacoco-default-report</id>
                                <goals>
                                    <goal>report</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>no-deploy</id>
            <activation>
                <property>
                    <name>!deploy</name>
                </property>
            </activation>
            <modules>
                <!--Helper parent pom for server side test modules-->
                <module>testing/server</module>
                <module>testing/server-oracle</module>
                <module>foundation/eclipselink.core.test</module>
                <module>sdo/eclipselink.sdo.test.server</module>

                <!--JPA test modules-->
                <!--JPA test module (JSE, JEE tests)-->
                <module>jpa/eclipselink.jpa.test</module>
                <!--JPA JSE test module-->
                <module>jpa/eclipselink.jpa.test.jse</module>
                <!--JPA Helidon test module-->
                <module>jpa/eclipselink.jpa.helidon.test</module>
                <!--JPA WDF test module-->
                <module>jpa/eclipselink.jpa.wdf.test</module>

                <!-- Oracle DB specific tests -->
                <module>foundation/org.eclipse.persistence.oracle.test</module>
                <!--DBWS Oracle Test module module-->
                <module>dbws/eclipselink.dbws.test.oracle</module>
                <!--DBWS Builder Oracle Test modules-->
                <module>utils/eclipselink.dbws.builder.test.oracle</module>
                <module>utils/eclipselink.dbws.builder.test.oracle.server</module>

                <module>utils/eclipselink.utils.sigcompare</module>

                <!-- testapps -->
                <module>jpa/eclipselink.jpa.testapps</module>
                <module>jpa/eclipselink.jpa.testapps.nosql</module>
                <module>jpa/eclipselink.jpa.testapps.oracle</module>
            </modules>
        </profile>
        <profile>
            <id>extra-tests</id>
            <modules>
                <!--JPA JAXRS test module-->
                <!--TODO FIXIT Doesn't work well. -->
                <module>jpa/eclipselink.jaxrs.test</module>
                <!--JPA JPA-RS test module-->
                <!--TODO FIXIT Doesn't work well. -->
                <module>jpa/eclipselink.jpars.test</module>
            </modules>
        </profile>
        <profile>
            <id>docs</id>
            <modules>
                <!--Parent documentation module-->
                <module>docs</module>
            </modules>
        </profile>
        <profile>
            <id>license_check</id>
            <pluginRepositories>
                <pluginRepository>
                    <id>dash-licenses-snapshots</id>
                    <url>https://repo.eclipse.org/content/repositories/dash-licenses-snapshots/</url>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </pluginRepository>
            </pluginRepositories>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.eclipse.dash</groupId>
                        <artifactId>license-tool-plugin</artifactId>
                        <version>0.0.1-SNAPSHOT</version>
                        <executions>
                            <execution>
                                <id>license-check</id>
                                <goals>
                                    <goal>license-check</goal>
                                </goals>
                                <configuration>
                                    <failWhenReviewNeeded>true</failWhenReviewNeeded>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>license-check</id>
            <pluginRepositories>
                <pluginRepository>
                    <!-- org.eclipse.dash:license-tool-plugin is nor final nor in central yet -->
                    <id>dash-licenses-snapshots</id>
                    <url>https://repo.eclipse.org/content/repositories/dash-licenses-snapshots/</url>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </pluginRepository>
            </pluginRepositories>
            <build>
                <pluginManagement>
                    <plugins>
                        <plugin>
                            <groupId>org.eclipse.dash</groupId>
                            <artifactId>license-tool-plugin</artifactId>
                            <version>0.0.1-SNAPSHOT</version>
                        </plugin>
                    </plugins>
                </pluginManagement>
                <plugins>
                    <plugin>
                        <groupId>org.eclipse.dash</groupId>
                        <artifactId>license-tool-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>license-check</id>
                                <phase>validate</phase>
                                <goals>
                                    <goal>license-check</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>
