<?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.
-->
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
   version="2.0">
  
  <persistence-unit name="test-unit" transaction-type="RESOURCE_LOCAL">
    <description>Test persistence unit for the JPA Container and Context iTests</description>
    
    <non-jta-data-source>osgi:service/javax.sql.DataSource</non-jta-data-source>
    <properties>
        <!-- This is to avoid compile time enhancement which would conflict with hibernate -->
        <property name="openjpa.RuntimeUnenhancedClasses" value="supported"/>
    
        <!-- These properties are creating the database on the fly. We are using them to avoid the tests having
          to create a database  -->
        <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)"/>
        <property name="openjpa.jdbc.DBDictionary" value="derby"/>

        <property name="hibernate.dialect" value="org.hibernate.dialect.DerbyTenSevenDialect"/>
        <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
    </properties>
  </persistence-unit>

  <persistence-unit name="dsf-test-unit" transaction-type="RESOURCE_LOCAL">
    <description>Test persistence unit for the JPA Container DataSourceFactory iTests</description>
    <properties>
        <!-- These properties are creating the database on the fly. We are using them to avoid the tests having
          to create a database  -->
        <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.EmbeddedDriver"/>
        <property name="javax.persistence.jdbc.url" value="jdbc:derby:memory:TEST;create=true"/>
        <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)"/>
        <property name="openjpa.jdbc.DBDictionary" value="derby"/>
        <property name="hibernate.dialect" value="org.hibernate.dialect.DerbyTenSevenDialect"/>
        <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
    </properties>
  </persistence-unit>
  
  <persistence-unit name="dsf-xa-test-unit" transaction-type="JTA">
    <description>Test persistence unit for the JPA Container DataSourceFactory iTests</description>
    <properties>
     <!-- These properties are creating the database on the fly. We are using them to avoid the tests having
          to create a database  -->
        <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.EmbeddedDriver-pool-xa"/>
        <property name="javax.persistence.jdbc.url" value="jdbc:derby:memory:TEST;create=true"/>
        <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)"/>
        <property name="openjpa.jdbc.DBDictionary" value="derby"/>
        <property name="hibernate.dialect" value="org.hibernate.dialect.DerbyTenSevenDialect"/>
        <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
    </properties>
  </persistence-unit>
</persistence>
