<!--

    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="@default@" transaction-type="@transaction-type@">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <@datasource-type@>@data-source-name@</@datasource-type@>
        <exclude-unlisted-classes>false</exclude-unlisted-classes>
        <properties>
            <property name="eclipselink.target-server" value="@server-platform@"/>
            <property name="eclipselink.target-database" value="@database-platform@"/>
            <property name="eclipselink.weaving" value="@server-weaving@"/>
            <property name="eclipselink.validate-existence" value="true"/>
            <property name="eclipselink.jdbc.allow-native-sql-queries" value="true"/>
        </properties>
    </persistence-unit>
    <persistence-unit name="MulitPU-1" transaction-type="@transaction-type@">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <@datasource-type@>@data-source-name@</@datasource-type@>
        <mapping-file>META-INF/case-sensitive-advanced-entity-mappings.xml</mapping-file>
        <exclude-unlisted-classes>false</exclude-unlisted-classes>
        <properties>
            <property name="eclipselink.target-server" value="@server-platform@"/>
            <property name="eclipselink.target-database" value="@database-platform@"/>
            <property name="eclipselink.weaving" value="@server-weaving@"/>
            <property name="eclipselink.validate-existence" value="true"/>
            <property name="eclipselink.jpa.uppercase-column-names" value="true"/>
            <property name="eclipselink.jdbc.allow-native-sql-queries" value="true"/>
        </properties>
    </persistence-unit>
    <persistence-unit name="MulitPU-2" transaction-type="@transaction-type@">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <@datasource-type@>@data-source-name@</@datasource-type@>
    </persistence-unit>
    <persistence-unit name="MulitPU-3" transaction-type="@transaction-type@">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <@datasource-type@>@data-source-name@</@datasource-type@>
    </persistence-unit>
    <persistence-unit name="MulitPU-4" transaction-type="@transaction-type@">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <@datasource-type@>@data-source-name@</@datasource-type@>
    </persistence-unit>
    <persistence-unit name="MulitPU-5" transaction-type="@transaction-type@">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <@datasource-type@>@data-source-name@</@datasource-type@>
    </persistence-unit>
</persistence>
