<?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.openjpa</groupId>
        <artifactId>openjpa-parent</artifactId>
        <version>2.2.2</version>
    </parent>

    <groupId>org.apache.openjpa</groupId>
    <artifactId>openjpa-persistence-locking</artifactId>
    <packaging>jar</packaging>
    <name>OpenJPA Persistence Locking Tests</name>
    <description>OpenJPA Persistence Locking Tests</description>

    <properties>
        <!-- have to use a larger waitTimeout to avoid lockmgr test failures -->
        <derby.locks.waitTimeout>60</derby.locks.waitTimeout>
        <derby.locks.deadlockTimeout>5</derby.locks.deadlockTimeout>
        <!-- set this =** on cmdline to skip all tests -->
        <surefire.excludes.locking />
    </properties>

    <profiles>
        <!-- Profile for testing with test-dynamic-enhancer -->
        <profile>
            <id>test-dynamic-enhancer</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <build.enhance>false</build.enhance>
                <openjpa.dynamicEnhance>true</openjpa.dynamicEnhance>
                <surefire.jvm.args>-Dopenjpa.RuntimeUnenhancedClasses=unsupported ${test.jvm.arguments}</surefire.jvm.args>
            </properties>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <configuration>
                            <includes>
                                <include>org/apache/openjpa/persistence/enhance/DynamicEnhancementSuite.java</include>
                            </includes>
                            <excludes>
                                <exclude>${surefire.excludes.locking}</exclude>
                            </excludes>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <!-- Profile for testing with HSQL DB -->
        <profile>
            <id>test-hsqldb</id>
            <activation>
                <property>
                    <name>test-hsqldb</name>
                </property>
            </activation>
            <dependencies>
                <dependency>
                    <groupId>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:openjpa20-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.version}</version>
                    <scope>test</scope>
                </dependency>
            </dependencies>
            <properties>
                <connection.driver.name>com.mysql.jdbc.Driver</connection.driver.name>
                <connection.url>${openjpa.mysql.url}</connection.url>
                <connection.username>${openjpa.mysql.username}</connection.username>
                <connection.password>${openjpa.mysql.password}</connection.password>
                <!-- DBCP overrides for MySQL testing -->
                <dbcp.maxIdle>0</dbcp.maxIdle>
                <dbcp.minIdle>0</dbcp.minIdle>
                <jdbc.DBDictionary />
            </properties>
        </profile>

        <!-- Profile for testing with PostgreSQL DB -->
        <profile>
            <id>test-postgresql</id>
            <activation>
                <property>
                    <name>test-postgresql</name>
                </property>
            </activation>
            <dependencies>
                <dependency>
                    <groupId>postgresql</groupId>
                    <artifactId>postgresql</artifactId>
                    <version>${postgresql.version}</version>
                    <scope>test</scope>
                </dependency>
            </dependencies>
            <properties>
                <connection.driver.name>org.postgresql.Driver</connection.driver.name>
                <connection.url>${openjpa.postgresql.url}</connection.url>
                <connection.username>${openjpa.postgresql.username}</connection.username>
                <connection.password>${openjpa.postgresql.password}</connection.password>
                <jdbc.DBDictionary />
            </properties>
        </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>${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 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>${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>${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>${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 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>${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-dbcp 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>
                <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 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 -->
        <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</oracle.groupid>
                <oracle.artifactid>jdbc-driver</oracle.artifactid>
                <oracle.version>10g</oracle.version>
                <connection.driver.name>oracle.jdbc.driver.OracleDriver</connection.driver.name>
                <connection.url>${openjpa.oracle.url}</connection.url>
                <connection.username>${openjpa.oracle.username}</connection.username>
                <connection.password>${openjpa.oracle.password}</connection.password>
                <jdbc.DBDictionary />
            </properties>
            <repositories>
                <repository>
                    <id>oracle.repository</id>
                    <name>Oracle Repository</name>
                    <url>${oracle.maven.repo}</url>
                    <layout>default</layout>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                    <releases>
                        <enabled>true</enabled>
                        <checksumPolicy>ignore</checksumPolicy>
                    </releases>
                </repository>
            </repositories>
        </profile>
    </profiles>

    <dependencies>
        <dependency>
            <groupId>org.apache.openjpa</groupId>
            <artifactId>openjpa-persistence-jdbc</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.openjpa</groupId>
            <artifactId>openjpa-persistence-jdbc</artifactId>
            <version>${project.version}</version>
            <type>test-jar</type>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>jakarta-regexp</groupId>
            <artifactId>jakarta-regexp</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <!-- disable creating javadoc for this module -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>

            <!-- Extract the common test support files from o-p-j-tests.jar -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>unpack</id>
                        <phase>test-compile</phase>
                        <goals>
                            <goal>unpack</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>org.apache.openjpa</groupId>
                                    <artifactId>openjpa-persistence-jdbc</artifactId>
                                    <version>${project.version}</version>
                                    <type>test-jar</type>
                                    <outputDirectory>${project.build.testOutputDirectory}</outputDirectory>
                                    <includes>org/apache/openjpa/persistence/test/*.class</includes>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-antrun-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>process-test-classes</phase>
                        <configuration>
                            <tasks>
                                <ant antfile="src/test/ant/enhancer.xml" target="enhance" inheritRefs="true">
                                    <property name="maven.test.skip" value="${maven.test.skip}" />
                                    <property name="test" value="${test}" />
                                    <property name="outdir" value="${project.build.outputDirectory}" />
                                    <property name="project.build.testOutputDirectory" value="${project.build.testOutputDirectory}" />
                                    <property name="openjpa.Log" value="${openjpa.Log}" />
                                    <property name="build.enhance" value="${build.enhance}" />
                                </ant>
                            </tasks>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <argLine>${surefire.jvm.args}</argLine>
                    <excludes>
                        <!--
                            exclude classes that end with 'Test'; these are not test cases per OpenJPA standards
                        -->
                        <exclude>org/apache/openjpa/**/*Test.java</exclude>
                        <exclude>${surefire.excludes.locking}</exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
