<!--

    Copyright (c) 2018, 2020 Oracle and/or its affiliates. All rights reserved.

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

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

-->

<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 persistence_1_0.xsd" version="1.0">
    <persistence-unit name="ddlGeneration" transaction-type="RESOURCE_LOCAL">
        <!-- This persistence unit is configured to use
        name="eclipselink.ddl-generation" value="drop-and-create-tables",
        any models that do not use a TableCreator class should be placed
        here -->
        <provider>
            org.eclipse.persistence.jpa.PersistenceProvider
        </provider>
        <mapping-file>META-INF/merge-inherited-superclasses.xml</mapping-file>
        <mapping-file>META-INF/merge-inherited-beers.xml</mapping-file>
        <mapping-file>META-INF/merge-inherited-consumer.xml</mapping-file>
        <mapping-file>META-INF/merge-inherited-certification.xml</mapping-file>
        <mapping-file>META-INF/ddl-generation-model.xml</mapping-file>
        <class>org.eclipse.persistence.testing.models.jpa.xml.merge.inherited.EmbeddedSerialNumber</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.weaving.impl.EquipmentDAO</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.weaving.impl.PortDAO</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.MapHolder</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.EntityMapKey</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.EntityMapValueWithBackPointer</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.EntityMapValue</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.MMEntityMapValue</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.Inventor</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.Patent</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.PatentInvestigator</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.Project</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.ProjectPK</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.PropertyRecord</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.PropertyInfo</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.Address</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.Zipcode</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.Employee</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.ContactInfo</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.PhoneNumber</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.PostAddress</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.PostAddressId</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.Foo</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.FooId</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.Bar</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.BarId</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.MappedSuperclassType</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.EntityType</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.EmbeddableType</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.City</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.CityId</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.Country</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.State</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.StateId</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.Zip</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.ZipArea</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.ZipAreaId</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.ZipId</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.Course</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.Material</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.Lobtest</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.LobtestPK</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.multitenant.Boss</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.multitenant.Capo</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.multitenant.Contract</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.multitenant.MafiaFamily</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.multitenant.Mafioso</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.multitenant.Soldier</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.multitenant.Underboss</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.Clientes</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.Operaciones</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.RoutingOrders</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.Address2</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.Sponsor</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.Master</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.DetailEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.ValueEntity</class>

        <properties>
            <property name="eclipselink.multitenant.tenants-share-cache" value="false"/>
            <property name="eclipselink.orm.throw.exceptions" value="true"/>
            <property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>
            <property name="eclipselink.create-ddl-jdbc-file-name" value="createDDL_ddlGeneration.jdbc"/>
            <property name="eclipselink.drop-ddl-jdbc-file-name" value="dropDDL_ddlGeneration.jdbc"/>
            <property name="eclipselink.ddl-generation.output-mode" value="both"/>
            <property name="eclipselink.orm.validate.schema" value="true"/>
        </properties>
    </persistence-unit>

    <persistence-unit name="ddlTablePerTenantGeneration" transaction-type="RESOURCE_LOCAL">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>

        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.multitenant.Candidate</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.multitenant.Mason</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.multitenant.Party</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.multitenant.Riding</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.multitenant.Supporter</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.multitenant.Trowel</class>

        <properties>
            <property name="eclipselink.session-name" value="DDLTablePerTenant"/>
            <property name="eclipselink.tenant-id" value="DDL"/>
            <property name="eclipselink.multitenant.tenants-share-emf" value="false"/>
            <property name="eclipselink.orm.throw.exceptions" value="true"/>
            <property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>
            <property name="eclipselink.create-ddl-jdbc-file-name" value="createDDL_ddlTablePerTenantGeneration.jdbc"/>
            <property name="eclipselink.drop-ddl-jdbc-file-name" value="dropDDL_ddlTablePerTenantGeneration.jdbc"/>
            <property name="eclipselink.ddl-generation.output-mode" value="both"/>
            <property name="eclipselink.orm.validate.schema" value="true"/>
        </properties>
    </persistence-unit>

    <persistence-unit name="ddlTablePerClass" transaction-type="RESOURCE_LOCAL">
        <!-- This persistence unit is configured to use
        name="eclipselink.ddl-generation" value="drop-and-create-tables",
        any models that do not use a TableCreator class should be placed
        here -->
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.tableperclass.Benefit</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.tableperclass.Car</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.tableperclass.Customer</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.tableperclass.GoldBenefit</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.tableperclass.GoldCustomer</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.tableperclass.LuxuryCar</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.tableperclass.SuperLuxuryCar</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.tableperclass.PlatinumBenefit</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.tableperclass.PlatinumCustomer</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.tableperclass.StandardBenefit</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.tableperclass.SUV</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.tableperclass.Team</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.tableperclass.Player</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.tableperclass.ProgrammingLanguage</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.tableperclass.BaseEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.tableperclass.CodeExample</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.tableperclass.DesignPattern</class>
        <properties>
            <property name="eclipselink.orm.throw.exceptions" value="true"/>
            <property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>
            <property name="eclipselink.create-ddl-jdbc-file-name" value="createDDL_ddlTablePerClass.jdbc"/>
            <property name="eclipselink.drop-ddl-jdbc-file-name" value="dropDDL_ddlTablePerClass.jdbc"/>
            <property name="eclipselink.ddl-generation.output-mode" value="both"/>
            <property name="eclipselink.orm.validate.schema" value="true"/>
            <!-- Since we don't exclude unlisted classes here, we will       -->
            <!-- eventually hit the multitenant entities which turn native   -->
            <!-- sql queries off by default, so we need to be explicit here  -->
            <!--  and turn them on                                           -->
            <property name="eclipselink.jdbc.allow-native-sql-queries" value="true"/>
        </properties>
    </persistence-unit>

    <persistence-unit name="ddlTableSuffix" transaction-type="RESOURCE_LOCAL">
        <!-- This persistence unit is configured to use
        name="eclipselink.ddl-generation" value="drop-and-create-tables",
        but creates invalid tables.  This PU is used to validate the DDL jdbc files created-->
        <provider>
            org.eclipse.persistence.jpa.PersistenceProvider
        </provider>
        <mapping-file>META-INF/ddl-create-table-suffix-model.xml</mapping-file>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.MapHolder</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.EntityMapKey</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.EntityMapValueWithBackPointer</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.EntityMapValue</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.MMEntityMapValue</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.Inventor</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.Patent</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.Many</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.One</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.PropertyRecord</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.PropertyInfo</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.Address</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.Zipcode</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.Employee</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.ContactInfo</class>
        <class>org.eclipse.persistence.testing.models.jpa.ddlgeneration.PhoneNumber</class>
        <properties>
            <property name="eclipselink.orm.throw.exceptions" value="true"/>
            <property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>
            <property name="eclipselink.create-ddl-jdbc-file-name" value="createDDL_ddlTableSuffix.jdbc"/>
            <property name="eclipselink.drop-ddl-jdbc-file-name" value="dropDDL_ddlTableSuffix.jdbc"/>
            <property name="eclipselink.ddl-generation.output-mode" value="sql-script"/>
            <property name="eclipselink.orm.validate.schema" value="true"/>
            <property name="eclipselink.ddl-generation.table-creation-suffix" value="propertyCreationSuffix"/>
            <!-- Since we don't exclude unlisted classes here, we will       -->
            <!-- eventually hit the multitenant entities which turn native   -->
            <!-- sql queries off by default, so we need to be explicit here  -->
            <!--  and turn them on                                           -->
            <property name="eclipselink.jdbc.allow-native-sql-queries" value="true"/>
        </properties>
    </persistence-unit>
</persistence>


