org.eclipse.persistence.project
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.project</artifactId>
<version>5.0.0</version>
</dependency><?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2026 Contributors to the Eclipse Foundation. All rights reserved.
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>
<parent>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.tests.bom</artifactId>
<version>5.0.0</version>
<relativePath>boms/tests/pom.xml</relativePath>
</parent>
<artifactId>org.eclipse.persistence.project</artifactId>
<version>5.0.0</version>
<packaging>pom</packaging>
<name>EclipseLink Project</name>
<description>Comprehensive and universal persistence framework for Java.</description>
<properties>
<!-- Minimum required JDK version -->
<maven.compiler.release>17</maven.compiler.release>
<maven.compiler.testRelease>17</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>
<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>
<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.h2.properties.file>el-test.h2.properties</test.h2.properties.file>
<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>
<checkstyle.version>13.3.0</checkstyle.version>
<spotbugs.version>4.9.8</spotbugs.version>
<findsecbugs.version>1.14.0</findsecbugs.version>
<!--Documentation Dependencies version-->
<asciidoctorj.version>3.0.1</asciidoctorj.version>
<asciidoctorj.pdf.version>2.3.23</asciidoctorj.pdf.version>
<asciidoctorj.epub.version>2.2.0</asciidoctorj.epub.version>
<jruby.version>10.0.4.0</jruby.version>
<!--Server tests-->
<weblogic.version>12.2.1-3</weblogic.version>
<wildfly.version>27.0.0.Final</wildfly.version>
</properties>
<!-- Default modules set and added to by all profiles -->
<modules>
<module>boms/parent</module>
<module>boms/bom</module>
<module>boms/dependencies</module>
<module>boms/tests</module>
<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>
<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>6.0.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>3.2.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.15.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.10.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.6.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>3.5.5</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-jar-plugin</artifactId>
<version>3.5.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.12.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.5.0</version>
<configuration>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>gar</nonFilteredFileExtension>
<nonFilteredFileExtension>war</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.4.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.5.5</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.5</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.5.1</version>
</plugin>
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven3-plugin</artifactId>
<version>1.10.26</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.16.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>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjtools</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.3.0</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.6.3</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.2.1</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>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.8.2</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.2.0</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.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>0.10.0</version>
</plugin>
<plugin>
<groupId>org.wildfly.plugins</groupId>
<artifactId>wildfly-maven-plugin</artifactId>
<version>5.1.5.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>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.project</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>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.project</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>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.project</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>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.project</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.project</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>
<phase>validate</phase>
<id>parse-project-version</id>
<goals>
<goal>parse-version</goal>
</goals>
</execution>
<execution>
<phase>validate</phase>
<id>set-current-date</id>
<goals>
<goal>timestamp-property</goal>
</goals>
<configuration>
<locale>en_US</locale>
<name>release.date</name>
<pattern>MMMM dd, YYYY</pattern>
</configuration>
</execution>
<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>
<skipAddTestSourceIfMissing>true</skipAddTestSourceIfMissing>
<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>
<skipAddTestResourceIfMissing>true</skipAddTestResourceIfMissing>
<resources>
<resource>
<directory>${integration.test.resources.directory}</directory>
<filtering>true</filtering>
</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>
<resource>
<directory>${project.build.licenceResourceDirectory}/plugins</directory>
<includes>*</includes>
<targetPath>.</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>
<noWarningProjectTypes>
<noWarningProjectType>pom</noWarningProjectType>
</noWarningProjectTypes>
<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>
<Extension-Name>${project.artifactId}</Extension-Name>
<Specification-Version>${release.version}</Specification-Version>
<Implementation-Version>${bundle.version}</Implementation-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>[17,)</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>
<!--For JDK<21 use Derby 10.16.1.1 as default 10.17.x support >JDK 21-->
<profile>
<id>derby-version</id>
<activation>
<jdk>[,21)</jdk>
</activation>
<properties>
<derby.version>10.16.1.1</derby.version>
</properties>
</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>db2-start</id>
<build>
<plugins>
<!-- Docker Maven Plugin
Note, macOS may need to set DOCKER_HOST via e.g.
DOCKER_HOST=unix:///Users/$(whoami)/.docker/run/docker.sock
-->
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>3.2.0</version>
<inherited>false</inherited>
<executions>
<execution>
<id>gen-db2-init</id>
<phase>initialize</phase>
<configuration>
<target>
<mkdir dir="${project.build.directory}/db2-init" />
<echo file="${project.build.directory}/db2-init/init.sql"><![CDATA[
CONNECT TO ${db.name};
CREATE USER TEMPORARY TABLESPACE USR_TMP_4K PAGESIZE 4K MANAGED BY AUTOMATIC STORAGE BUFFERPOOL IBMDEFAULTBP;
CONNECT RESET;
TERMINATE;
]]></echo>
<echo file="${project.build.directory}/db2-init/init-db2.sh"><![CDATA[
#!/usr/bin/env bash
set -euo pipefail
: "${DB2INSTANCE:?DB2INSTANCE not set}"
: "${DBNAME:?DBNAME not set}"
su - "$DB2INSTANCE" -c "db2 -tvsf /opt/db2-init/init.sql"
]]></echo>
<chmod file="${project.build.directory}/db2-init/init-db2.sh" perm="755" />
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.48.1</version>
<inherited>false</inherited>
<configuration>
<!-- Declare the named volume "db2data" so we can create/remove it -->
<volumes>
<volume>
<name>db2data</name>
<driver>local</driver>
</volume>
</volumes>
<images>
<image>
<alias>db2</alias>
<name>icr.io/db2_community/db2</name>
<run>
<!-- Give the container a fixed name (like name db2server) -->
<containerNamePattern>db2server</containerNamePattern>
<hostname>db2host</hostname>
<ports>
<port>50000:${db.port}</port>
</ports>
<platform>linux/amd64</platform>
<env>
<LICENSE>accept</LICENSE>
<DB2INSTANCE>${db.user}</DB2INSTANCE>
<DB2INST1_PASSWORD>${db.pwd}</DB2INST1_PASSWORD>
<DBNAME>${db.name}</DBNAME>
</env>
<privileged>true</privileged>
<volumes>
<bind>
<volume>db2data:/database</volume>
<volume>${project.build.directory}/db2-init:/opt/db2-init:ro</volume>
</bind>
</volumes>
<!--
Wait for DB2 to be ready before proceeding
Note: this can take quite some time. On a M1 Pro:
DOCKER> [icr.io/db2_community/db2:latest] "db2": Waited on log out 'Setup has completed' 302450 ms
-->
<wait>
<log>Setup has completed</log>
<time>300000</time> <!-- 5 minutes timeout -->
<exec>
<postStart>bash /opt/db2-init/init-db2.sh</postStart>
<breakOnError>true</breakOnError>
</exec>
</wait>
<!-- Container is started detached by the plugin (no TTY needed). -->
</run>
</image>
</images>
</configuration>
<executions>
<!-- Force stop and remove specific container by name -->
<execution>
<id>force-remove-db2server</id>
<phase>initialize</phase>
<goals>
<goal>stop</goal>
<goal>remove</goal>
</goals>
<configuration>
<verbose>true</verbose>
<!-- Target specific container name -->
<containerNamePattern>db2server</containerNamePattern>
<!-- Force removal -->
<removeVolumes>false</removeVolumes>
</configuration>
</execution>
<!-- Stop and remove any existing db2server container first -->
<execution>
<id>cleanup-old-container</id>
<phase>initialize</phase>
<goals>
<goal>stop</goal>
<goal>remove</goal>
</goals>
<configuration>
<verbose>true</verbose>
<!-- Remove all containers for this image -->
<allContainers>true</allContainers>
<removeVolumes>true</removeVolumes>
</configuration>
</execution>
<!-- docker volume rm db2data (ignore error if it didn't exist) -->
<execution>
<id>cleanup-old-volume</id>
<phase>initialize</phase>
<goals>
<goal>volume-remove</goal>
</goals>
<configuration>
<verbose>true</verbose>
</configuration>
</execution>
<!-- docker volume create db2data -->
<execution>
<id>create-db2-volume</id>
<phase>initialize</phase>
<goals>
<goal>volume-create</goal>
</goals>
</execution>
<!-- docker run ... -->
<execution>
<id>start-db2</id>
<phase>pre-integration-test</phase>
<goals>
<goal>start</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>h2</id>
<properties>
<test.properties.file>${user.home}/${test.h2.properties.file}</test.properties.file>
<test.properties.fileName>${test.h2.properties.file}</test.properties.fileName>
<!--Used by sql-maven-plugin-->
<db.driver.groupId>com.h2database</db.driver.groupId>
<db.driver.artifactId>h2</db.driver.artifactId>
<db.driver.version>${h2.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>mysql-start</id>
<build>
<plugins>
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.48.1</version>
<inherited>false</inherited>
<configuration>
<images>
<image>
<alias>mysql</alias>
<name>mysql:8.0.43</name>
<run>
<containerNamePattern>mysqlserver</containerNamePattern>
<env>
<MYSQL_ROOT_PASSWORD>${db.pwd}</MYSQL_ROOT_PASSWORD>
<MYSQL_DATABASE>ecltests</MYSQL_DATABASE>
</env>
<ports>
<port>3306:3306</port>
</ports>
<cmd>
<exec>
<arg>--log-bin-trust-function-creators=1</arg>
</exec>
</cmd>
<!-- Wait until MySQL is really up -->
<wait>
<log><![CDATA[port: 3306 MySQL Community Server - GPL]]></log>
<time>600000</time>
</wait>
</run>
</image>
</images>
</configuration>
<executions>
<execution>
<id>start-mysql</id>
<phase>pre-integration-test</phase>
<goals>
<goal>start</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</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.14</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/org.eclipse.persistence.oxm.test</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 Spring test module-->
<module>jpa/eclipselink.jpa.spring.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>
</profiles>
</project>