openjpa/pom.xml

2395 lines
106 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<!--
Maven release plugin requires the project tag to be on a single line.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
<version>29</version>
</parent>
<groupId>org.apache.openjpa</groupId>
<artifactId>openjpa-parent</artifactId>
<packaging>pom</packaging>
<name>OpenJPA Parent POM</name>
<description>Apache OpenJPA implementation of Jakarta JPA 3.1</description>
<version>4.0.0-SNAPSHOT</version>
<properties>
<java.class.version>11</java.class.version>
<java.testclass.version>11</java.testclass.version>
<doclint>none</doclint>
<openjpa.version>${project.version}</openjpa.version>
<openjpa.Log>DefaultLevel=INFO</openjpa.Log>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<checkstyle.suppressions.location>openjpa-project${file.separator}suppressions.xml</checkstyle.suppressions.location>
<site.deploy.url>scp://people.apache.org/home/${site.deploy.user.name}/public_html/openjpa/${project.version}/staging-site</site.deploy.url>
<!-- the test settings can be overridden my specific profiles -->
<test.jvm.maxheapsize>1024m</test.jvm.maxheapsize>
<test.jvm.arguments>-Xmx${test.jvm.maxheapsize} -XX:+HeapDumpOnOutOfMemoryError</test.jvm.arguments>
<surefire.jvm.args>${test.jvm.arguments}</surefire.jvm.args>
<!-- Setting for openjpa.DynamicEnhancementAgent usage -->
<openjpa.DynamicEnhancementAgent>false</openjpa.DynamicEnhancementAgent>
<!-- Commons DBCP settings passed in as openjpa.ConnectionProperties -->
<dbcp.maxTotal>10</dbcp.maxTotal>
<dbcp.maxIdle>5</dbcp.maxIdle>
<dbcp.minIdle>2</dbcp.minIdle>
<dbcp.maxWait>10000</dbcp.maxWait>
<dbcp.args>MaxTotal=${dbcp.maxTotal},MaxIdle=${dbcp.maxIdle},MinIdle=${dbcp.minIdle},MaxWait=${dbcp.maxWait}</dbcp.args>
<derby.locks.waitTimeout>10</derby.locks.waitTimeout>
<derby.locks.deadlockTimeout>5</derby.locks.deadlockTimeout>
<!-- Testcase @AllowFailure options: ignore = silently skip test,
log = execute test and log results but don't fail the test,
anything else allows the test to execute normally
-->
<tests.openjpa.allowfailure>ignore</tests.openjpa.allowfailure>
<!-- By default we use DBCP2 via AutoDriverDataSource -->
<tests.openjpa.driverDataSource>dbcp</tests.openjpa.driverDataSource>
<!--turn on sources.jar generation by setting to verify and true -->
<createSource>none</createSource>
<createSources>false</createSources>
<!-- common JDBC driver versions -->
<derby.version>10.15.2.0</derby.version>
<hsqldb.version>2.5.1</hsqldb.version>
<mysql.connector.version>5.1.49</mysql.connector.version>
<mariadb.connector.version>2.7.2</mariadb.connector.version>
<postgresql.connector.version>42.5.1</postgresql.connector.version>
<mssql.connector.version>11.2.1.jre8</mssql.connector.version>
<!-- other common versions -->
<kubernetes-client.version>6.2.0</kubernetes-client.version>
<slf4j.version>1.7.23</slf4j.version>
<!-- Compile Java source/target class level -->
<compile.class.source>${java.class.version}</compile.class.source>
<compile.class.target>${java.class.version}</compile.class.target>
<compile.testclass.source>${java.testclass.version}</compile.testclass.source>
<compile.testclass.target>${java.testclass.version}</compile.testclass.target>
<maven.javadoc.version>3.0.1</maven.javadoc.version>
<javadoc.additionalparam />
<maven.surefire.version>3.0.0-M7</maven.surefire.version>
<xbean.version>4.20</xbean.version>
<bval.version>3.0.0-SNAPSHOT</bval.version>
<log4j2.version>2.19.0</log4j2.version>
<ant.version>1.10.12</ant.version>
<jmock.version>2.9.0</jmock.version>
<dbcp2.version>2.8.0</dbcp2.version>
<pool2.version>2.9.0</pool2.version>
<jakarta.annotation-api.version>2.1.1</jakarta.annotation-api.version>
<jakarta.persistence-api.version>3.0.0</jakarta.persistence-api.version>
<jakarta.transaction-api.version>2.0.1</jakarta.transaction-api.version>
<jakarta.validation-api.version>3.0.2</jakarta.validation-api.version>
<jakarta.jms-api.version>3.1.0</jakarta.jms-api.version>
</properties>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<organization>
<name>Apache Software Foundation</name>
<url>http://www.apache.org</url>
</organization>
<url>http://openjpa.apache.org</url>
<issueManagement>
<system>jira</system>
<url>https://issues.apache.org/jira/browse/OPENJPA</url>
</issueManagement>
<ciManagement>
<system>Jenkins</system>
<url>https://builds.apache.org/job/OpenJPA-trunk-deploy/</url>
</ciManagement>
<inceptionYear>2006</inceptionYear>
<mailingLists>
<mailingList>
<name>OpenJPA Developer List</name>
<subscribe>dev-subscribe@openjpa.apache.org</subscribe>
<unsubscribe>dev-unsubscribe@openjpa.apache.org</unsubscribe>
<post>dev@openjpa.apache.org</post>
<archive>https://lists.apache.org/list.html?dev@openjpa.apache.org</archive>
</mailingList>
<mailingList>
<name>OpenJPA Users List</name>
<subscribe>users-subscribe@openjpa.apache.org</subscribe>
<unsubscribe>users-unsubscribe@openjpa.apache.org</unsubscribe>
<post>users@openjpa.apache.org</post>
<archive>https://lists.apache.org/list.html?users@openjpa.apache.org</archive>
</mailingList>
<mailingList>
<name>OpenJPA Commits List</name>
<subscribe>commits-subscribe@openjpa.apache.org</subscribe>
<unsubscribe>commits-unsubscribe@openjpa.apache.org</unsubscribe>
<post>commits@openjpa.apache.org</post>
<archive>https://lists.apache.org/list.html?commits@openjpa.apache.org</archive>
</mailingList>
</mailingLists>
<distributionManagement>
<site>
<id>people.apache.org</id>
<url>${site.deploy.url}</url>
</site>
</distributionManagement>
<scm>
<connection>scm:git:https://gitbox.apache.org/repos/asf/openjpa.git</connection>
<developerConnection>scm:git:https://gitbox.apache.org/repos/asf/openjpa.git</developerConnection>
<url>https://gitbox.apache.org/repos/asf/openjpa.git</url>
<tag>HEAD</tag>
</scm>
<modules>
<module>openjpa-lib</module>
<module>openjpa-kernel</module>
<module>openjpa-jdbc</module>
<module>openjpa-persistence</module>
<module>openjpa-persistence-jdbc</module>
<module>openjpa-persistence-locking</module>
<module>openjpa-xmlstore</module>
<module>openjpa-slice</module>
<module>openjpa-jest</module>
<module>openjpa-kubernetes</module>
<module>openjpa</module>
<module>openjpa-project</module>
<module>openjpa-examples</module>
<module>openjpa-integration</module>
<module>openjpa-all</module>
<module>openjpa-tools</module>
<module>openjpa-features</module>
<module>openjpa-junit5</module>
</modules>
<profiles>
<!-- ================ -->
<!-- Build Profiles -->
<!-- ================ -->
<!-- Override some release settings inherited from apache-7.pom -->
<profile>
<id>apache-release</id>
<activation>
<property>
<name>performRelease</name>
</property>
</activation>
<properties>
<!--turn on sources.jar generation -->
<createSource>verify</createSource>
<createSources>true</createSources>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<executions>
<execution>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
<configuration>
<excludeSubProjects>false</excludeSubProjects>
<numUnapprovedLicenses>0</numUnapprovedLicenses>
<excludes>
<!-- comments are usupported in services files -->
<exclude>**/jakarta.persistencespi.PersistenceProvider</exclude>
<exclude>**/javax.annotation.processing.Processor</exclude>
<!-- comments are usupported by our rsrc parser -->
<exclude>**/*.rsrc</exclude>
<!-- comments are usupported in these files -->
<exclude>**/org.apache.openjpa.revision.properties</exclude>
<exclude>scripts/*.list</exclude>
<exclude>scripts/*.options</exclude>
<exclude>scripts/*.dict</exclude>
<!-- generated content -->
<exclude>**/.*/**</exclude>
<exclude>**/target/**/*</exclude>
<exclude>**/dependency-reduced-pom.xml</exclude>
<exclude>**/*.log</exclude>
<exclude>**/maven-eclipse.xml</exclude>
<exclude>**/rat.txt</exclude>
<exclude>release.properties</exclude>
<exclude>DEPENDENCIES</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>sign-release</id>
<activation>
<property>
<name>sign-release</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.6</version>
</plugin>
</plugins>
</build>
</profile>
<!--
Generate the documentation using the YDoc UML generation plugin.
Assumes you have the YDoc libraries locally, as well as a valid
YDoc license file. Example usage for building the docs:
mvn process-classes -Pydoc-profile,javadoc-profile -Dydoc.home=${HOME}/.m2/privaterepos/ydoc/ydoc-2.2_04-jdk1.5 -Dydoc.license=${HOME}/.m2/privaterepos/ydoc/ydoc.license
-->
<profile>
<id>ydoc-profile</id>
<properties>
<javadoc.additionalparam>
-generic
-umlautogen
-tag param
-tag return
-tag see
-ytag y.uml
-license ${ydoc.license}
-filter ydoc.filters.ExcludeFilter
-filterpath ${ydoc.home}/lib/ydoc.jar
-doclet ydoc.doclets.YStandard
-docletpath ${ydoc.home}/lib/ydoc.jar${path.separator}${ydoc.home}/lib/class2svg.jar${path.separator}${ydoc.home}/resources
${ydoc.params}
</javadoc.additionalparam>
</properties>
</profile>
<profile>
<!--
Javadoc profile. Docs can be built by running:
mvn process-classes -Dtest=false -Pjavadoc-profile
-->
<id>javadoc-profile</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven.javadoc.version}</version>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
<additionalparam>
${javadoc.additionalparam} -Xdoclint:none
</additionalparam>
<subpackages>org.apache.openjpa</subpackages>
<verbose>false</verbose>
<maxmemory>1024m</maxmemory>
<links>
<link>https://download.oracle.com/javase/8/docs/api/</link>
<link>https://download.oracle.com/javaee/8/api/</link>
</links>
</configuration>
<executions>
<execution>
<id>attach-javadoc</id>
<phase>package</phase>
<goals>
<goal>aggregate-jar</goal>
</goals>
</execution>
<execution>
<phase>process-classes</phase>
<goals>
<goal>aggregate</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<activation>
<property>
<name>builddocs</name>
<value>true</value>
</property>
</activation>
</profile>
<!-- =============== -->
<!-- Test Profiles -->
<!-- =============== -->
<profile>
<id>debug</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<test.jvm.arguments>-Xmx${test.jvm.maxheapsize} -agentlib:jdwp=transport=dt_socket,server=y,address=8000</test.jvm.arguments>
</properties>
</profile>
<profile>
<id>enable-security</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<test.env>-Dtest.basedir=${basedir}/..</test.env>
<policy.file>${basedir}/../openjpa-persistence-jdbc/src/test/resources/j2.security.test.policy</policy.file>
<surefire.jvm.args>-Djava.security.manager -Djava.security.policy=${policy.file} ${test.env} ${test.jvm.arguments}</surefire.jvm.args>
</properties>
</profile>
<profile>
<id>test-dynamic-enhancer</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<test.env>-Dtest.basedir=${basedir}/..</test.env>
<policy.file>${basedir}/../openjpa-persistence-jdbc/src/test/resources/j2.security.test.policy</policy.file>
<surefire.jvm.args>-Djava.security.manager -Djava.security.policy=${policy.file} ${test.env} ${test.jvm.arguments}</surefire.jvm.args>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven.surefire.version}</version>
<configuration>
<argLine>${surefire.jvm.args}</argLine>
<includes>
<include />
</includes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- =================== -->
<!-- Database Profiles -->
<!-- =================== -->
<!-- Default profile for testing with an embedded Apache Derby DB -->
<profile>
<!--
Optionally, you can override the following properties:
-Dderby.version=10.2.2.0
-->
<id>test-derby</id>
<activation>
<activeByDefault>true</activeByDefault>
<property>
<name>test-derby</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derbytools</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<connection.driver.name>org.apache.derby.jdbc.EmbeddedDriver</connection.driver.name>
<connection.url>jdbc:derby:target/database/openjpa-derby-database;create=true</connection.url>
<connection.username />
<connection.password />
<!-- Tests are much faster without shutting derby down at the end of each test. -->
<jdbc.DBDictionary>ShutdownOnClose=false</jdbc.DBDictionary>
<!-- TCK specific properties -->
<tck.db.name>derby</tck.db.name>
</properties>
</profile>
<!-- profile for testing with an embedded h2 DB -->
<profile>
<id>test-h2</id>
<activation>
<property>
<name>test-h2</name>
</property>
</activation>
<properties>
<h2.version>1.4.200</h2.version>
<connection.driver.name>org.h2.Driver</connection.driver.name>
<connection.url>jdbc:h2:./target/database/openjpa-h2-database</connection.url>
<connection.username />
<connection.password />
<!-- TCK specific properties -->
<tck.db.name>h2mem</tck.db.name>
</properties>
<dependencies>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>${h2.version}</version>
</dependency>
</dependencies>
</profile>
<!-- profile for testing with an embedded h2 2.x DB -->
<profile>
<id>test-h2-2</id>
<activation>
<property>
<name>test-h2-2</name>
</property>
</activation>
<properties>
<h2.version>2.1.214</h2.version>
<connection.driver.name>org.h2.Driver</connection.driver.name>
<connection.url>jdbc:h2:./target/database/openjpa-h2-database;MODE=STRICT</connection.url>
<connection.username />
<connection.password />
<!-- TCK specific properties -->
<tck.db.name>h2mem</tck.db.name>
</properties>
<dependencies>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>${h2.version}</version>
</dependency>
</dependencies>
</profile>
<!-- Profile for testing with an In-Memory Apache Derby DB -->
<profile>
<!--
Optionally, you can override the following properties:
-Dderby.version=10.5.3.0_1
-->
<id>test-derbymem</id>
<activation>
<property>
<name>test-derbymem</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<version>${derby.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derbytools</artifactId>
<version>${derby.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<connection.driver.name>org.apache.derby.jdbc.EmbeddedDriver</connection.driver.name>
<connection.url>jdbc:derby:memory:openjpa-derby-inmem-database;create=true</connection.url>
<connection.username />
<connection.password />
<!-- Tests are much faster without shutting derby down at the end of each test. -->
<jdbc.DBDictionary>ShutdownOnClose=false</jdbc.DBDictionary>
</properties>
</profile>
<!-- Profile for testing with Apache Derby DB network server -->
<profile>
<!--
Example Derby Network Server profile.
You must manually start a Derby network server instance and
also set the following properties:
-Dopenjpa.derbynet.url=jdbc:derby://<HOST>:<PORT>/<DBNAME>;\
create=true
Optionally, you can override the following properties:
-Dopenjpa.derbynet.driver=org.apache.derby.jdbc.ClientXADataSource
-Dopenjpa.derbynet.username=
-Dopenjpa.derbynet.password=
-Dderby.version=10.2.2.0
-->
<id>test-derbynet</id>
<activation>
<property>
<name>test-derbynet</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derbyclient</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<openjpa.derbynet.url>jdbc:derby://localhost:1527/openjpa20;create=true;traceDirectory=target;traceFile=derby.log</openjpa.derbynet.url>
<openjpa.derbynet.driver>org.apache.derby.jdbc.ClientDriver</openjpa.derbynet.driver>
<!-- Note: commons-dbcp2 requires dummy values for uid/pwd -->
<openjpa.derbynet.username>uid</openjpa.derbynet.username>
<openjpa.derbynet.password>pwd</openjpa.derbynet.password>
<connection.driver.name>${openjpa.derbynet.driver}</connection.driver.name>
<connection.url>${openjpa.derbynet.url}</connection.url>
<connection.username>${openjpa.derbynet.username}</connection.username>
<connection.password>${openjpa.derbynet.password}</connection.password>
<jdbc.DBDictionary />
</properties>
</profile>
<!-- Profile for testing with HSQL DB -->
<profile>
<id>test-hsqldb</id>
<activation>
<property>
<name>test-hsqldb</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>${hsqldb.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<connection.driver.name>org.hsqldb.jdbcDriver</connection.driver.name>
<!--<connection.url>jdbc:hsqldb:target/database/openjpa-hsqldb-database;create=true</connection.url>-->
<connection.url>jdbc:hsqldb:mem:openjpa22-hsqldb-database</connection.url>
<connection.username>sa</connection.username>
<connection.password />
<jdbc.DBDictionary />
</properties>
</profile>
<!-- Profile for testing with MySQL DB -->
<profile>
<id>test-mysql</id>
<activation>
<property>
<name>test-mysql</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.connector.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<connection.driver.name>com.mysql.jdbc.Driver</connection.driver.name>
<!--<connection.url>jdbc:mysql://localhost/OPENJPA</connection.url>-->
<connection.url>${openjpa.mysql.url}</connection.url>
<connection.username>${openjpa.mysql.username}</connection.username>
<connection.password>${openjpa.mysql.password}</connection.password>
<jdbc.DBDictionary />
<!-- DBCP overrides for MySQL testing -->
<dbcp.maxIdle>5</dbcp.maxIdle>
<dbcp.minIdle>0</dbcp.minIdle>
</properties>
</profile>
<!-- Profile for testing with MySQL DB -->
<profile>
<id>test-mysql-docker</id>
<activation>
<property>
<name>test-mysql-docker</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.connector.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<connection.driver.name>com.mysql.jdbc.Driver</connection.driver.name>
<!-- default settings for local docker -->
<docker.external.mysql.port>3306</docker.external.mysql.port>
<openjpa.mysql.dbname>openjpatst</openjpa.mysql.dbname>
<openjpa.mysql.url>jdbc:mysql://localhost:${docker.external.mysql.port}/${openjpa.mysql.dbname}?useSSL=false</openjpa.mysql.url>
<openjpa.mysql.username>openjpatst</openjpa.mysql.username>
<openjpa.mysql.password>openjpatst</openjpa.mysql.password>
<!--<connection.url>jdbc:mysql://localhost/OPENJPA</connection.url>-->
<connection.url>${openjpa.mysql.url}</connection.url>
<connection.username>${openjpa.mysql.username}</connection.username>
<connection.password>${openjpa.mysql.password}</connection.password>
<jdbc.DBDictionary />
<!-- DBCP overrides for MySQL testing -->
<dbcp.maxIdle>5</dbcp.maxIdle>
<dbcp.minIdle>0</dbcp.minIdle>
<mysql.server.version>5.7</mysql.server.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<configuration>
<images>
<image>
<name>mysql/mysql-server:${mysql.server.version}</name>
<run>
<env>
<MYSQL_DATABASE>${openjpa.mysql.dbname}</MYSQL_DATABASE>
<MYSQL_USER>${connection.username}</MYSQL_USER>
<MYSQL_PASSWORD>${connection.password}</MYSQL_PASSWORD>
</env>
<ports>
<port>${docker.external.mysql.port}:3306</port>
</ports>
</run>
</image>
</images>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- Profile for testing with MariaDB DB -->
<profile>
<id>test-mariadb</id>
<activation>
<property>
<name>test-mariadb</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<version>${mariadb.connector.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<connection.driver.name>org.mariadb.jdbc.Driver</connection.driver.name>
<!--<connection.url>jdbc:mysql://localhost/OPENJPA</connection.url>-->
<connection.url>${openjpa.mariadb.url}</connection.url>
<connection.username>${openjpa.mariadb.username}</connection.username>
<connection.password>${openjpa.mariadb.password}</connection.password>
<jdbc.DBDictionary />
<!-- DBCP overrides for MariaDB testing -->
<dbcp.maxIdle>5</dbcp.maxIdle>
<dbcp.minIdle>0</dbcp.minIdle>
</properties>
</profile>
<!-- Profile for testing with MariaDB DB on Docker-->
<profile>
<id>test-mariadb-docker</id>
<activation>
<property>
<name>test-mariadb-docker</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<version>${mariadb.connector.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<connection.driver.name>org.mariadb.jdbc.Driver</connection.driver.name>
<!-- default settings for local docker -->
<docker.external.mariadb.port>3306</docker.external.mariadb.port>
<openjpa.mariadb.dbname>openjpatst</openjpa.mariadb.dbname>
<openjpa.mariadb.url>jdbc:mariadb://localhost:${docker.external.mariadb.port}/${openjpa.mariadb.dbname}</openjpa.mariadb.url>
<openjpa.mariadb.username>root</openjpa.mariadb.username>
<openjpa.mariadb.password>openjpatst</openjpa.mariadb.password>
<!--<connection.url>jdbc:mariadb://localhost/OPENJPA</connection.url>-->
<connection.url>${openjpa.mariadb.url}</connection.url>
<connection.username>${openjpa.mariadb.username}</connection.username>
<connection.password>${openjpa.mariadb.password}</connection.password>
<jdbc.DBDictionary />
<!-- DBCP overrides for mariadb testing -->
<dbcp.maxIdle>5</dbcp.maxIdle>
<dbcp.minIdle>0</dbcp.minIdle>
<mariadb.server.version>10.5</mariadb.server.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<configuration>
<images>
<image>
<name>mariadb/server:${mariadb.server.version}</name>
<run>
<env>
<!-- mariadb still uses the old mysql env variables -->
<MYSQL_DATABASE>${openjpa.mariadb.dbname}</MYSQL_DATABASE>
<MYSQL_ROOT_PASSWORD>${connection.password}</MYSQL_ROOT_PASSWORD>
<!-- seems to get ignored -->
<MYSQL_USER>${connection.username}</MYSQL_USER>
</env>
<ports>
<port>${docker.external.mariadb.port}:3306</port>
</ports>
</run>
</image>
</images>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- Profile for testing with PostgreSQL DB -->
<profile>
<id>test-postgresql</id>
<activation>
<property>
<name>test-postgresql</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>${postgresql.connector.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<connection.driver.name>org.postgresql.Driver</connection.driver.name>
<!--<connection.url>jdbc:postgresql://localhost/openjpa</connection.url>-->
<connection.url>${openjpa.postgresql.url}</connection.url>
<connection.username>${openjpa.postgresql.username}</connection.username>
<connection.password>${openjpa.postgresql.password}</connection.password>
<jdbc.DBDictionary />
<!-- DBCP overrides -->
<dbcp.maxIdle>5</dbcp.maxIdle>
<dbcp.minIdle>0</dbcp.minIdle>
<dbcp.maxTotal>20</dbcp.maxTotal>
</properties>
</profile>
<!-- Profile for testing with PostgreSQL DB via Docker -->
<profile>
<id>test-postgresql-docker</id>
<activation>
<property>
<name>test-postgresql-docker</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>${postgresql.connector.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<connection.driver.name>org.postgresql.Driver</connection.driver.name>
<!-- default settings for local docker -->
<docker.external.postgresql.port>5432</docker.external.postgresql.port>
<openjpa.postgresql.dbname>openjpatst</openjpa.postgresql.dbname>
<openjpa.postgresql.username>postgres</openjpa.postgresql.username>
<openjpa.postgresql.password>postgres</openjpa.postgresql.password>
<openjpa.postgresql.url>jdbc:postgresql://localhost:${docker.external.postgresql.port}/${openjpa.postgresql.dbname}</openjpa.postgresql.url>
<!--<connection.url>jdbc:postgresql://localhost/openjpa</connection.url>-->
<connection.url>${openjpa.postgresql.url}</connection.url>
<connection.username>${openjpa.postgresql.username}</connection.username>
<connection.password>${openjpa.postgresql.password}</connection.password>
<jdbc.DBDictionary />
<!-- DBCP overrides -->
<dbcp.maxIdle>20</dbcp.maxIdle>
<dbcp.minIdle>0</dbcp.minIdle>
<dbcp.maxTotal>20</dbcp.maxTotal>
<postgresql.server.version>11</postgresql.server.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<configuration>
<images>
<image>
<name>postgres:${postgresql.server.version}</name>
<run>
<env>
<PGDATA>/pg</PGDATA>
<POSTGRES_DB>${openjpa.postgresql.dbname}</POSTGRES_DB>
<POSTGRES_USER>${connection.username}</POSTGRES_USER>
<POSTGRES_PASSWORD>${connection.password}</POSTGRES_PASSWORD>
</env>
<ports>
<port>${docker.external.postgresql.port}:5432</port>
</ports>
</run>
</image>
</images>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- Profile for testing with SQLServer DB using MS JDBC driver -->
<profile>
<!--
Example MS SQL profile. You can use this profile if you:
1) have the MS SQL artifacts installed in a local repo and
supply the URL:
-Dmssql.maven.repo=http://my.local.repo
2) have a copy of the MS SQL JDBC driver from:
http://msdn.microsoft.com/en-us/data/aa937724.aspx
and run the following commands :
mvn install:install-file -Dfile=${path to sqljdbc.jar} \
-DgroupId=com.microsoft.sqlserver \
-DartifactId=sqljdbc \
-Dversion=2.0 \
-Dpackaging=jar
You must also set the following properties:
-Dopenjpa.mssql.url=jdbc:sqlserver://<HOST>:<PORT>;\
DataBaseName=<DBNAME>
-Dopenjpa.mssql.username=<mssql_uid>
-Dopenjpa.mssql.password=<mssql_pwd>
Optionally, you can override the default groupId and version
by also supplying the following properties:
-Dmssql.groupid=com.microsoft.sqlserver
-Dmssql.version=2.0
If you are using Java SE 6 or later, you will need to use:
-Dmssql.artifactid=sqljdbc4
-->
<id>test-mssql</id>
<activation>
<property>
<name>test-mssql</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>${mssql.groupid}</groupId>
<artifactId>${mssql.artifactid}</artifactId>
<version>${mssql.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<mssql.maven.repo>http://not.real.repository</mssql.maven.repo>
<mssql.groupid>com.microsoft.sqlserver</mssql.groupid>
<mssql.artifactid>sqljdbc</mssql.artifactid>
<mssql.version>2.0</mssql.version>
<connection.driver.name>com.microsoft.sqlserver.jdbc.SQLServerDriver</connection.driver.name>
<!--<connection.url>jdbc:sqlserver://localhost/OPENJPA</connection.url>-->
<connection.url>${openjpa.mssql.url}</connection.url>
<connection.username>${openjpa.mssql.username}</connection.username>
<connection.password>${openjpa.mssql.password}</connection.password>
<jdbc.DBDictionary />
</properties>
<repositories>
<repository>
<id>mssql.repository</id>
<name>MSSQL Repository</name>
<url>${mssql.maven.repo}</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
<checksumPolicy>ignore</checksumPolicy>
</releases>
</repository>
</repositories>
</profile>
<!-- Profile for testing with Microsoft SQLServer DB via Docker -->
<profile>
<id>test-mssql-docker</id>
<activation>
<property>
<name>test-mssql-docker</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>${mssql.connector.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<connection.driver.name>com.microsoft.sqlserver.jdbc.SQLServerDriver</connection.driver.name>
<!-- default settings for local docker -->
<docker.external.mssql.port>1433</docker.external.mssql.port>
<openjpa.mssql.dbname>openjpatst</openjpa.mssql.dbname>
<openjpa.mssql.username>SA</openjpa.mssql.username>
<openjpa.mssql.password>OpenJP8tst</openjpa.mssql.password>
<!--
* sendTimeAsDatetime=false is important to make SQLServer understand java.sql.Time parameters.
* Alternatively you can set the SQLServerDictionary parameter sendTimeAsString=true
-->
<openjpa.mssql.url>jdbc:sqlserver://localhost:${docker.external.mssql.port};sendTimeAsDatetime=false</openjpa.mssql.url>
<!--<connection.url>jdbc:postgresql://localhost/openjpa</connection.url>-->
<connection.url>${openjpa.mssql.url}</connection.url>
<connection.username>${openjpa.mssql.username}</connection.username>
<connection.password>${openjpa.mssql.password}</connection.password>
<jdbc.DBDictionary />
<!-- DBCP overrides -->
<dbcp.maxIdle>20</dbcp.maxIdle>
<dbcp.minIdle>0</dbcp.minIdle>
<dbcp.maxTotal>20</dbcp.maxTotal>
<mssql.server.version>2017-CU12-ubuntu</mssql.server.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<configuration>
<images>
<image>
<name>mcr.microsoft.com/mssql/server:${mssql.server.version}</name>
<run>
<env>
<!-- For more info on the EULA see https://go.microsoft.com/fwlink/?LinkId=746388 -->
<ACCEPT_EULA>Y</ACCEPT_EULA>
<SA_PASSWORD>${connection.password}</SA_PASSWORD>
</env>
<ports>
<port>${docker.external.mssql.port}:1433</port>
</ports>
</run>
</image>
</images>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- Profile for testing with SQLServer DB using the jTDS driver -->
<profile>
<id>test-sqlserver</id>
<activation>
<property>
<name>test-sqlserver</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>net.sourceforge.jtds</groupId>
<artifactId>jtds</artifactId>
<version>${jtds.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<jtds.version>1.2</jtds.version>
<connection.driver.name>net.sourceforge.jtds.jdbc.Driver</connection.driver.name>
<!--<connection.url>jdbc:jtds:sqlserver://localhost:1433/OPENJPA</connection.url>-->
<connection.url>${openjpa.sqlserver.url}</connection.url>
<connection.username>${openjpa.sqlserver.username}</connection.username>
<connection.password>${openjpa.sqlserver.password}</connection.password>
<jdbc.DBDictionary />
</properties>
</profile>
<!-- Profile for testing with Sybase DB using the jTDS driver -->
<profile>
<id>test-sybase</id>
<activation>
<property>
<name>test-sybase</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>net.sourceforge.jtds</groupId>
<artifactId>jtds</artifactId>
<version>${jtds.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<jtds.version>1.2</jtds.version>
<connection.driver.name>net.sourceforge.jtds.jdbc.Driver</connection.driver.name>
<!--<connection.url>jdbc:jtds:sybase://localhost/OPENJPA</connection.url>-->
<connection.url>${openjpa.sybase.url}</connection.url>
<connection.username>${openjpa.sybase.username}</connection.username>
<connection.password>${openjpa.sybase.password}</connection.password>
<jdbc.DBDictionary />
</properties>
</profile>
<!-- Profile for testing with Sybase DB using the jConnect driver -->
<profile>
<id>test-sybase-jconnect</id>
<dependencies>
<dependency>
<groupId>${jconnect.groupId}</groupId>
<artifactId>${jconnect.artifactId}</artifactId>
<version>${jconnect.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<connection.driver.name>com.sybase.jdbc3.jdbc.SybDriver</connection.driver.name>
<!--<connection.url>jdbc:sybase:Tds:localhost:7100/OPENJPA</connection.url>-->
<connection.url>${openjpa.sybase.url}</connection.url>
<connection.username>${openjpa.sybase.username}</connection.username>
<connection.password>${openjpa.sybase.password}</connection.password>
<jdbc.DBDictionary />
</properties>
</profile>
<!-- Profile for testing with Ingres DB -->
<profile>
<id>test-ingres</id>
<activation>
<property>
<name>test-ingres</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>com.ingres.jdbc</groupId>
<artifactId>iijdbc</artifactId>
<version>${ingres.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<ingres.version>9.2-3.4.8</ingres.version>
<connection.driver.name>com.ingres.jdbc.IngresDriver</connection.driver.name>
<!--<connection.url>jdbc:ingres://localhost/OPENJPA</connection.url>-->
<connection.url>${openjpa.ingres.url}</connection.url>
<connection.username>${openjpa.ingres.username}</connection.username>
<connection.password>${openjpa.ingres.password}</connection.password>
<jdbc.DBDictionary />
</properties>
</profile>
<!-- Profile for testing with HerdDB -->
<profile>
<id>test-herddb-docker</id>
<activation>
<property>
<name>test-herddb-docker</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>org.herddb</groupId>
<artifactId>herddb-jdbc</artifactId>
<version>0.22.0</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<connection.driver.name>herddb.jdbc.Driver</connection.driver.name>
<tests.openjpa.driverDataSource>simple</tests.openjpa.driverDataSource>
<connection.url>jdbc:herddb:localhost:7000</connection.url>
<connection.username>sa</connection.username>
<connection.password>hdb</connection.password>
<jdbc.DBDictionary />
<!-- DBCP overrides for testing -->
<dbcp.maxIdle>5</dbcp.maxIdle>
<dbcp.minIdle>1</dbcp.minIdle>
</properties>
<build>
<plugins>
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<configuration>
<images>
<image>
<name>herddb/herddb:latest</name>
<run>
<ports>
<port>7000:7000</port>
</ports>
</run>
</image>
</images>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- Profile for testing with a custom DB using a system jar -->
<!--
For example, to test with Oracle, you might run:
mvn test -Dtest=TestPersistence -Ptest-custom \
-Dopenjpa.custom.driverjar=$(pwd)/drivers/jdbc-oracle-10_2_0_1_0.jar \
-Dopenjpa.custom.driverclass=oracle.jdbc.driver.OracleDriver \
-Dopenjpa.custom.url=jdbc:oracle:thin:@HOST:PORT:DBNAME \
-Dopenjpa.custom.username=USERNAME \
-Dopenjpa.custom.password=PASSWORD
-->
<profile>
<id>test-custom</id>
<activation>
<property>
<name>test-custom</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>openjpa.customdriver</groupId>
<artifactId>openjpa.customdriver</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${openjpa.custom.driverjar}</systemPath>
</dependency>
</dependencies>
<properties>
<connection.driver.name>${openjpa.custom.driverclass}</connection.driver.name>
<connection.url>${openjpa.custom.url}</connection.url>
<connection.username>${openjpa.custom.username}</connection.username>
<connection.password>${openjpa.custom.password}</connection.password>
<jdbc.DBDictionary />
</properties>
</profile>
<!-- Profile for testing with a custom DB using two system jars.
Some databases (DB2) use more than one jar for their JDBC provider.
Functionally this is identical to the previous profile, with a
second system dependency added.
-->
<!--
For example, to test with DB2, you might run:
mvn test -Dtest=TestPersistence -Ptest-custom2 \
-Dopenjpa.custom.driverjar1=$(pwd)/drivers/db2jcc.jar \
-Dopenjpa.custom.driverjar2=$(pwd)/drviers/db2jcc_license_cu.jar \
-Dopenjpa.custom.driverclass=com.ibm.db2.jcc.DB2Driver \
-Dopenjpa.custom.url=jdbc:db2://HOST:PORT/DBNAME \
-Dopenjpa.custom.username=USERNAME \
-Dopenjpa.custom.password=PASSWORD
-->
<profile>
<id>test-custom2</id>
<activation>
<property>
<name>test-custom2</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>openjpa.customdriver1</groupId>
<artifactId>openjpa.customdriver1</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${openjpa.custom.driverjar1}</systemPath>
</dependency>
<dependency>
<groupId>openjpa.customdriver2</groupId>
<artifactId>openjpa.customdriver2</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${openjpa.custom.driverjar2}</systemPath>
</dependency>
</dependencies>
<properties>
<connection.driver.name>${openjpa.custom.driverclass}</connection.driver.name>
<connection.url>${openjpa.custom.url}</connection.url>
<connection.username>${openjpa.custom.username}</connection.username>
<connection.password>${openjpa.custom.password}</connection.password>
<jdbc.DBDictionary />
</properties>
</profile>
<!--
The test-custom2 profile does not work very well when used with a
continuous build system. As a convenience I've added profiles for
some of the proprietary databases to make testing easier.
-->
<profile>
<!--
Example db2 profile. You can use this profile if you:
1) have the DB2 artifacts installed in a local repo and supply
the URL:
-Ddb2.maven.repo=http://my.local.repo
2) have a copy of the DB2 JCC driver and run the following
commands :
mvn install:install-file -Dfile=${path to db2jcc.jar} \
-DgroupId=com.ibm.db2 \
-DartifactId=jcc-driver \
-Dversion=9.5 \
-Dpackaging=jar
mvn install:install-file -Dfile=${path to db2jcc_license.jar} \
-DgroupId=com.ibm.db2 \
-DartifactId=jcc-license \
-Dversion=9.5 \
-Dpackaging=jar
You must also set the following properties:
-Dopenjpa.db2.url=jdbc:db2://<HOST>:<PORT>/<DBNAME>
-Dopenjpa.db2.username=<db2_uid>
-Dopenjpa.db2.password=<db2_pwd>
Optionally, you can override the default DB2 groupId,
artifactIds and version by also supplying the following
properties:
-Ddb2.groupid=com.ibm.db2
-Dids.driver.artifactid=jcc-driver
-Dids.license.artifactid=jcc-license
-Ddb2.version=9.5
-->
<id>test-db2-jcc</id>
<activation>
<property>
<name>test-db2-jcc</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>${db2.groupid}</groupId>
<artifactId>${db2.driver.artifactid}</artifactId>
<version>${db2.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>${db2.groupid}</groupId>
<artifactId>${db2.license.artifactid}</artifactId>
<version>${db2.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<db2.maven.repo>http://not.a.real.repository</db2.maven.repo>
<db2.groupid>com.ibm.db2</db2.groupid>
<db2.driver.artifactid>jcc-driver</db2.driver.artifactid>
<db2.license.artifactid>jcc-license</db2.license.artifactid>
<db2.version>9.5</db2.version>
<connection.driver.name>com.ibm.db2.jcc.DB2Driver</connection.driver.name>
<!--<connection.url>jdbc:db2://localhost/openjpa</connection.url>-->
<connection.url>${openjpa.db2.url}</connection.url>
<connection.username>${openjpa.db2.username}</connection.username>
<connection.password>${openjpa.db2.password}</connection.password>
<jdbc.DBDictionary />
</properties>
<repositories>
<repository>
<id>db2.repository</id>
<name>DB2 Repository</name>
<url>${db2.maven.repo}</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
<checksumPolicy>ignore</checksumPolicy>
</releases>
</repository>
</repositories>
</profile>
<!-- Profile for testing Apache Derby with the DB2 JCC driver -->
<profile>
<id>test-derbyjcc</id>
<activation>
<property>
<name>test-derbyjcc</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>${db2.groupid}</groupId>
<artifactId>${db2.driver.artifactid}</artifactId>
<version>${db2.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>${db2.groupid}</groupId>
<artifactId>${db2.license.artifactid}</artifactId>
<version>${db2.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<db2.maven.repo>http://not.a.real.repository</db2.maven.repo>
<db2.groupid>com.ibm.db2</db2.groupid>
<db2.driver.artifactid>jcc-driver</db2.driver.artifactid>
<db2.license.artifactid>jcc-license</db2.license.artifactid>
<db2.version>9.5</db2.version>
<!--
Note: DB must be created before using this profile,
which can be done by running:
mvn test -Dtest=<testcase> -Ptest-derbynet
-->
<openjpa.derbyjcc.url>jdbc:db2://localhost:1527/openjpa20</openjpa.derbyjcc.url>
<!-- Note: commons-dbcp2 requires dummy values for uid/pwd -->
<openjpa.derbyjcc.username>uid</openjpa.derbyjcc.username>
<openjpa.derbyjcc.password>pwd</openjpa.derbyjcc.password>
<connection.driver.name>com.ibm.db2.jcc.DB2Driver</connection.driver.name>
<connection.url>${openjpa.derbyjcc.url}</connection.url>
<connection.username>${openjpa.derbyjcc.username}</connection.username>
<connection.password>${openjpa.derbyjcc.password}</connection.password>
</properties>
<repositories>
<repository>
<id>db2.repository</id>
<name>DB2 Repository</name>
<url>${db2.maven.repo}</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
<checksumPolicy>ignore</checksumPolicy>
</releases>
</repository>
</repositories>
</profile>
<!-- Profile for testing Informix with the DB2 JCC driver -->
<profile>
<!--
Example Informix JCC profile. You can use this profile if you:
1a) have the DB2 JCC artifacts installed in a local repo and
supply the URL:
-Dids.maven.repo=http://my.local.repo
1b) or have a copy of the DB2 JCC driver and run the commands
listed above in the test-db2-jcc profile.
2) have the DRDA service enabled on the IDS server, which
is usually port 9089
You must also set the following properties:
-Dopenjpa.ids.url=jdbc:ids://<HOST>:<PORT>/<DBNAME>
-Dopenjpa.ids.username=<ids_uid>
-Dopenjpa.ids.password=<ids_pwd>
Optionally, you can override the default DB2 JCC groupId,
artifactIds and version by also supplying the following
properties:
-Dids.groupid=com.ibm.db2
-Dids.driver.artifactid=jcc-driver
-Dids.license.artifactid=jcc-license
-Dids.version=9.5
-->
<id>test-ids-jcc</id>
<activation>
<property>
<name>test-ids-jcc</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>${ids.groupid}</groupId>
<artifactId>${ids.driver.artifactid}</artifactId>
<version>${ids.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>${ids.groupid}</groupId>
<artifactId>${ids.license.artifactid}</artifactId>
<version>${ids.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<ids.maven.repo>http://not.a.real.repository</ids.maven.repo>
<ids.groupid>com.ibm.db2</ids.groupid>
<ids.driver.artifactid>jcc-driver</ids.driver.artifactid>
<ids.license.artifactid>jcc-license</ids.license.artifactid>
<ids.version>9.5</ids.version>
<connection.driver.name>com.ibm.db2.jcc.DB2Driver</connection.driver.name>
<connection.url>${openjpa.ids.url}</connection.url>
<connection.username>${openjpa.ids.username}</connection.username>
<connection.password>${openjpa.ids.password}</connection.password>
<jdbc.DBDictionary />
</properties>
<repositories>
<repository>
<id>ids.repository</id>
<name>Informix Repository</name>
<url>${ids.maven.repo}</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
<checksumPolicy>ignore</checksumPolicy>
</releases>
</repository>
</repositories>
</profile>
<!-- Profile for testing Informix with the Informix JDBC Driver -->
<profile>
<!--
Example Informix profile. You can use this profile if you:
1) have the Informix JDBC artifacts installed in a local repo and
supply the URL:
-Dids.maven.repo=http://my.local.repo
2) have a copy of the Informix driver and run the following
commands :
mvn install:install-file -Dfile=${path to ifxjdbc.jar} \
-DgroupId=com.informix \
-DartifactId=informix-driver \
-Dversion=3.70 \
-Dpackaging=jar
You must also set the following properties:
-Dopenjpa.ids.url=jdbc:informix-sqli://<HOST>:<PORT>:informixserver=<INFORMIXSERVER>;database=<DBNAME>
-Dopenjpa.ids.username=<ids_uid>
-Dopenjpa.ids.password=<ids_pwd>
Optionally, you can override the default Informix groupId,
artifactIds and version by also supplying the following
properties:
-Dids.groupid=com.informix
-Dids.driver.artifactid=informix-driver
-Dids.version=3.70
-->
<id>test-ids-informix</id>
<activation>
<property>
<name>test-ids-informix</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>${ids.groupid}</groupId>
<artifactId>${ids.driver.artifactid}</artifactId>
<version>${ids.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<ids.maven.repo>http://not.a.real.repository</ids.maven.repo>
<ids.groupid>com.informix</ids.groupid>
<ids.driver.artifactid>informix-driver</ids.driver.artifactid>
<ids.version>3.70</ids.version>
<connection.driver.name>com.informix.jdbc.IfxDriver</connection.driver.name>
<connection.url>${openjpa.ids.url}</connection.url>
<connection.username>${openjpa.ids.username}</connection.username>
<connection.password>${openjpa.ids.password}</connection.password>
<jdbc.DBDictionary />
</properties>
<repositories>
<repository>
<id>ids.repository</id>
<name>Informix Repository</name>
<url>${ids.maven.repo}</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
<checksumPolicy>ignore</checksumPolicy>
</releases>
</repository>
</repositories>
</profile>
<!--
Profile for testing with Oracle DB against a Docker image
Attention: This might requiere a manual download of the Oracle JDBC driver.
This driver (ojdbc6.jar) can be downloaded at the Oracle homepage.
Then determine which version you got
$> unzip -p ojdbc6.jar META-INF/MANIFEST.MF
This will contain something like
"Implementation-Version: 11.2.0.4.0"
Use this version to install the JDBC driver into your local Maven repository
with
$> mvn install:file ...
By default we use a ojdbc6 version hosted at Atlassian.
For this to work we also need to add a repository section.
We only use it for the ojdbc driver though.
-->
<profile>
<id>test-oracle-docker</id>
<activation>
<property>
<name>test-oracle-docker</name>
</property>
</activation>
<properties>
<oracle.groupid>com.oracle.ojdbc</oracle.groupid>
<oracle.artifactid>ojdbc8</oracle.artifactid>
<oracle.version>19.3.0.0</oracle.version>
<oracle.server.version>latest</oracle.server.version>
<docker.external.oracle.port>1521</docker.external.oracle.port>
<connection.driver.name>oracle.jdbc.driver.OracleDriver</connection.driver.name>
<openjpa.oracle.database>openjpatst</openjpa.oracle.database>
<openjpa.oracle.username>openjpatst</openjpa.oracle.username>
<openjpa.oracle.password>openjpatst</openjpa.oracle.password>
<openjpa.oracle.SID>xe</openjpa.oracle.SID>
<openjpa.oracle.url>jdbc:oracle:thin:@localhost:${docker.external.oracle.port}:${openjpa.oracle.SID}</openjpa.oracle.url>
<connection.url>${openjpa.oracle.url}</connection.url>
<connection.username>${openjpa.oracle.username}</connection.username>
<connection.password>${openjpa.oracle.password}</connection.password>
<jdbc.DBDictionary />
<!-- DBCP overrides -->
<dbcp.maxIdle>20</dbcp.maxIdle>
<dbcp.minIdle>0</dbcp.minIdle>
<dbcp.maxTotal>20</dbcp.maxTotal>
</properties>
<dependencies>
<dependency>
<groupId>${oracle.groupid}</groupId>
<artifactId>${oracle.artifactid}</artifactId>
<version>${oracle.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<configuration>
<images>
<image>
<!--<name>oracledb19c/oracle.19.3.0-ee:oracle19.3.0-ee</name>-->
<name>oracleinanutshell/oracle-xe-11g</name>
<!--<name>pvargacl/oracle-xe-18.4.0:latest</name>-->
<run>
<volumes>
<bind>
<volume>${project.basedir}/src/test/sql/oracle-docker:/docker-entrypoint-initdb.d/</volume>
</bind>
</volumes>
<ports>
<port>${docker.external.oracle.port}:1521</port>
</ports>
</run>
</image>
</images>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- Profile for testing with Oracle DB -->
<profile>
<!--
Example oracle profile. You can use this profile if you:
1) have the Oracle artifacts installed in a local repo and
supply the URL:
-Doracle.maven.repo=http://my.local.repo
2) have a copy of the Oracle driver and run the following
command:
mvn install:install-file -Dfile=${path to ojdbc.jar} \
-DgroupId=com.oracle \
-DartifactId=jdbc-driver \
-Dversion=10g \
-Dpackaging=jar
You must also set the following properties:
-Dopenjpa.oracle.url
-Dopenjpa.oracle.username
-Dopenjpa.oracle.password
Optionally, you can override the default Oracle groupId and
version by also supplying the following properties:
-Doracle.groupid=com.oracle
-Doracle.version=10g
-->
<id>test-oracle</id>
<activation>
<property>
<name>test-oracle</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>${oracle.groupid}</groupId>
<artifactId>${oracle.artifactid}</artifactId>
<version>${oracle.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<oracle.maven.repo>http://not.a.real.repository</oracle.maven.repo>
<oracle.groupid>com.oracle.ojdbc</oracle.groupid>
<oracle.artifactid>ojdbc8</oracle.artifactid>
<oracle.version>19.3.0.0</oracle.version>
<connection.driver.name>oracle.jdbc.driver.OracleDriver</connection.driver.name>
<!--<connection.url>jdbc:oracle:thin:@localhost:1521:OPENJPA</connection.url>-->
<connection.url>${openjpa.oracle.url}</connection.url>
<connection.username>${openjpa.oracle.username}</connection.username>
<connection.password>${openjpa.oracle.password}</connection.password>
<jdbc.DBDictionary />
</properties>
</profile>
<!-- Profile for testing IBM SolidDB -->
<profile>
<id>test-soliddb</id>
<activation>
<property>
<name>test-soliddb</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>${soliddb.groupid}</groupId>
<artifactId>${soliddb.driver.artifactid}</artifactId>
<version>${soliddb.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<soliddb.maven.repo>http://not.a.real.repository</soliddb.maven.repo>
<soliddb.groupid>com.ibm.soliddb</soliddb.groupid>
<soliddb.driver.artifactid>soliddb</soliddb.driver.artifactid>
<soliddb.version>6.5</soliddb.version>
<connection.driver.name>solid.jdbc.SolidDriver</connection.driver.name>
<!--<connection.url>jdbc:solid://localhost:2315</connection.url>-->
<connection.url>${openjpa.soliddb.url}</connection.url>
<connection.username>${openjpa.soliddb.username}</connection.username>
<connection.password>${openjpa.soliddb.password}</connection.password>
<jdbc.DBDictionary />
</properties>
<repositories>
<repository>
<id>soliddb.repository</id>
<name>SolidDB Repository</name>
<url>${soliddb.maven.repo}</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
<checksumPolicy>ignore</checksumPolicy>
</releases>
</repository>
</repositories>
</profile>
</profiles>
<!-- default versions for dependencies that child modules may include -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>${pool2.version}</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>net.sourceforge.serp</groupId>
<artifactId>serp</artifactId>
<version>1.15.1</version>
<exclusions>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>jakarta.persistence</groupId>
<artifactId>jakarta.persistence-api</artifactId>
<version>${jakarta.persistence-api.version}</version>
</dependency>
<dependency>
<groupId>jakarta.annotation</groupId>
<artifactId>jakarta.annotation-api</artifactId>
<version>${jakarta.annotation-api.version}</version>
</dependency>
<dependency>
<groupId>jakarta.validation</groupId>
<artifactId>jakarta.validation-api</artifactId>
<version>${jakarta.validation-api.version}</version>
</dependency>
<dependency>
<groupId>jakarta.transaction</groupId>
<artifactId>jakarta.transaction-api</artifactId>
<version>${jakarta.transaction-api.version}</version>
</dependency>
<dependency>
<groupId>jakarta.jms</groupId>
<artifactId>jakarta.jms-api</artifactId>
<version>${jakarta.jms-api.version}</version>
</dependency>
<dependency>
<groupId>org.apache.bval</groupId>
<artifactId>org.apache.bval.bundle</artifactId>
<version>${bval.version}</version>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<version>${derby.version}</version>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derbytools</artifactId>
<version>${derby.version}</version>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derbyclient</artifactId>
<version>${derby.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.connector.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<version>${dbcp2.version}</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>${hsqldb.version}</version>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>${postgresql.connector.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta-regexp</groupId>
<artifactId>jakarta-regexp</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${log4j2.version}</version>
</dependency>
<dependency>
<!-- for compiling against log4j-1.2.x we use the compat layer from log4j2 -->
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-1.2-api</artifactId>
<version>${log4j2.version}</version>
</dependency>
<dependency>
<groupId>io.fabric8</groupId>
<artifactId>kubernetes-client</artifactId>
<version>${kubernetes-client.version}</version>
</dependency>
<dependency>
<groupId>io.fabric8</groupId>
<artifactId>kubernetes-server-mock</artifactId>
<version>${kubernetes-client.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>${ant.version}</version>
</dependency>
<dependency>
<groupId>org.jmock</groupId>
<artifactId>jmock</artifactId>
<version>${jmock.version}</version>
</dependency>
<dependency>
<groupId>org.jmock</groupId>
<artifactId>jmock-junit4</artifactId>
<version>${jmock.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
</dependency>
<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>annotations</artifactId>
<version>3.0.1</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<defaultGoal>install</defaultGoal>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
<testResources>
<testResource>
<directory>src/test/resources</directory>
</testResource>
</testResources>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>${compile.class.source}</source>
<target>${compile.class.target}</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.3.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven.javadoc.version}</version>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
<additionalparam>
${javadoc.additionalparam} -Xdoclint:none
</additionalparam>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven.surefire.version}</version>
<configuration>
<argLine>${surefire.jvm.args}</argLine>
<redirectTestOutputToFile>true</redirectTestOutputToFile>
<trimStackTrace>false</trimStackTrace>
<useSystemClassLoader>true</useSystemClassLoader>
<excludes>
<!-- exclude classes that include a $; inner classes
are not test cases per OpenJPA standards -->
<exclude>org/apache/openjpa/**/*$*.class</exclude>
</excludes>
<systemProperties>
<property>
<name>openjpa.Log</name>
<value>${openjpa.Log}</value>
</property>
<property>
<name>openjpa.DynamicEnhancementAgent</name>
<value>${openjpa.DynamicEnhancementAgent}</value>
</property>
<property>
<name>openjpa.ConnectionDriverName</name>
<value>${connection.driver.name}</value>
</property>
<property>
<name>openjpa.ConnectionURL</name>
<value>${connection.url}</value>
</property>
<property>
<name>openjpa.ConnectionUserName</name>
<value>${connection.username}</value>
</property>
<property>
<name>openjpa.ConnectionPassword</name>
<value>${connection.password}</value>
</property>
<property>
<name>openjpa.jdbc.DBDictionary</name>
<value>${jdbc.DBDictionary}</value>
</property>
<property>
<name>derby.stream.error.file</name>
<value>target/derby.log</value>
</property>
<property>
<name>derby.locks.deadlockTimeout</name>
<value>${derby.locks.deadlockTimeout}</value>
</property>
<property>
<name>derby.locks.waitTimeout</name>
<value>${derby.locks.waitTimeout}</value>
</property>
<property>
<name>openjpa.ConnectionProperties</name>
<value>${dbcp.args}</value>
</property>
<property>
<name>tests.openjpa.allowfailure</name>
<value>${tests.openjpa.allowfailure}</value>
</property>
<property>
<name>openjpa.jdbc.DriverDataSource</name>
<value>${tests.openjpa.driverDataSource}</value>
</property>
</systemProperties>
</configuration>
</plugin>
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.36.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>${maven.surefire.version}</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>3.0.5</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.4</version>
<configuration>
<getRevisionOnlyOnce>true</getRevisionOnlyOnce>
<revisionOnScmFailure>offline</revisionOnScmFailure>
<useLastCommittedRevision>true</useLastCommittedRevision>
<timestampFormat>{0,date,long} at {0,time,short}</timestampFormat>
</configuration>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<version>0.12</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.3</version>
<configuration>
<useReleaseProfile>false</useReleaseProfile>
<tagNameFormat>@{project.version}</tagNameFormat>
<!--
The openbooks example contains a build.xml which tries to add ~/.m2/repository/../openjpa-all-nnn.jar
to the classpath. But since the maven-release-plugin by default only prepares with 'clean verify'
the jar doesn't end in the local m2 repo. It will only be in the opanjpa-all/target folder.
For now I forced an 'install', but we should ultimately just fix the openbooks example.
-->
<preparationGoals>clean install</preparationGoals>
<goals>deploy</goals>
<arguments>-Papache-release,docbook-profile,test-derby,bval</arguments>
<autoVersionSubmodules>true</autoVersionSubmodules>
<!-- special config for git -->
<pushChanges>false</pushChanges>
<localCheckout>true</localCheckout>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<dependencies>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant-jsch</artifactId>
<version>1.10.9</version>
</dependency>
<dependency>
<groupId>ant-contrib</groupId>
<artifactId>ant-contrib</artifactId>
<version>1.0b3</version>
<!-- tries to pull in older ant-1.5.jar -->
<exclusions>
<exclusion>
<groupId>ant</groupId>
<artifactId>ant</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>taglist-maven-plugin</artifactId>
<version>2.4</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.1.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>default-jar</id>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
<manifestEntries>
<Implementation-Build>${buildNumber}</Implementation-Build>
<Implementation-Date>${timestamp}</Implementation-Date>
</manifestEntries>
</archive>
</configuration>
</execution>
<execution>
<id>attach-tests</id>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>4.0.0</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Implementation-Title>${project.name}</Implementation-Title>
<Implementation-Version>${project.version}</Implementation-Version>
<Bundle-DocURL>${project.url}</Bundle-DocURL>
</instructions>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.karaf.tooling</groupId>
<artifactId>karaf-maven-plugin</artifactId>
<version>4.2.1</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.0.0</version>
</plugin>
<plugin>
<groupId>org.apache.openjpa</groupId>
<artifactId>openjpa-maven-plugin</artifactId>
<version>${project.version}</version>
</plugin>
<plugin>
<groupId>com.agilejava.docbkx</groupId>
<artifactId>docbkx-maven-plugin</artifactId>
<version>2.0.17</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>test-source-compile</id>
<phase>process-test-sources</phase>
<goals>
<goal>testCompile</goal>
</goals>
<configuration>
<source>${compile.testclass.source}</source>
<target>${compile.testclass.target}</target>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<executions>
<execution>
<phase>process-sources</phase>
<goals>
<goal>checkstyle</goal>
</goals>
<configuration>
<failsOnError>true</failsOnError>
<consoleOutput>true</consoleOutput>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
<excludes>**/*_.java</excludes>
<logViolationsToConsole>true</logViolationsToConsole>
<checkstyleRules>
<module name="Checker">
<module name="NewlineAtEndOfFile">
<property name="lineSeparator" value="lf" />
</module>
<module name="LineLength">
<property name="max" value="150" />
</module>
<module name="TreeWalker">
<module name="RegexpSinglelineJava">
<property name="format" value="System\.(out|err)\.print(ln)?\(" />
<property name="ignoreComments" value="true" />
</module>
<module name="SuppressionCommentFilter">
<property name="offCommentFormat" value="// START - ALLOW PRINT STATEMENTS" />
<property name="onCommentFormat" value="// STOP - ALLOW PRINT STATEMENTS" />
</module>
</module>
<!-- File location is specified in root pom.xml via ${checkstyle.suppressions.location} -->
<module name="SuppressionFilter">
<property name="file" value="${checkstyle.suppressions.location}" />
<property name="optional" value="true" />
</module>
</module>
</checkstyleRules>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.0.0-M3</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireMavenVersion>
<version>[3.3.9,)</version>
</requireMavenVersion>
<requireJavaVersion>
<version>[1.8,)</version>
</requireJavaVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<executions>
<execution>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
<configuration>
<excludeSubProjects>false</excludeSubProjects>
<numUnapprovedLicenses>0</numUnapprovedLicenses>
<excludes>
<!-- generated content -->
<exclude>**/.*/**</exclude>
<exclude>**/target/**/*</exclude>
</excludes>
<includes>
<!-- only check common source files -->
<include>**/src/**/*.bat</include>
<include>**/src/**/*.css</include>
<include>**/src/**/*.html</include>
<include>**/src/**/*.java</include>
<include>**/src/**/*.js</include>
<include>**/src/**/*.jsp</include>
<include>**/src/**/*.properties</include>
<include>**/src/**/*.sh</include>
<include>**/src/**/*.txt</include>
<include>**/src/**/*.vm</include>
<include>**/src/**/*.xml</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.0.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven.javadoc.version}</version>
<configuration>
<show>package</show>
<quiet>true</quiet>
<source>${java.class.version}</source>
<links>
<link>https://download.oracle.com/javase/8/docs/api/</link>
<link>https://download.oracle.com/javaee/8/api/</link>
</links>
</configuration>
<reportSets>
<reportSet>
<reports>
<report>javadoc</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
</project>