<!--

    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_2_0.xsd" version="2.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.validate-existence" value="true"/>
            <property name="eclipselink.weaving" value="@server-weaving@"/>
        </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/cacheable-entity-mappings.xml</mapping-file>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableFalseDetail</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableFalseDetailWithBackPointer</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableFalseEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableForceProtectedEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableProtectedEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableRelationshipsEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableTrueDerivedIDEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableTrueEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableTrueMappedSuperclass</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.ChildCacheableFalseEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.ForceProtectedEntityWithComposite</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.ProtectedEmbeddable</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.ProtectedRelationshipsEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.SharedEmbeddable</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.SubCacheableFalseEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.SubCacheableNoneEntity</class>
        <exclude-unlisted-classes>true</exclude-unlisted-classes>
        <shared-cache-mode>ALL</shared-cache-mode>
        <properties>
            <property name="eclipselink.target-server" value="@server-platform@"/>
            <property name="eclipselink.target-database" value="@database-platform@"/>
            <property name="eclipselink.validate-existence" value="true"/>
            <property name="eclipselink.weaving" value="@server-weaving@"/>
        </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@>
        <mapping-file>META-INF/cacheable-entity-mappings.xml</mapping-file>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableFalseDetail</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableFalseDetailWithBackPointer</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableFalseEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableForceProtectedEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableProtectedEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableRelationshipsEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableTrueDerivedIDEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableTrueEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableTrueMappedSuperclass</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.ChildCacheableFalseEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.ForceProtectedEntityWithComposite</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.ProtectedEmbeddable</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.ProtectedRelationshipsEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.SharedEmbeddable</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.SubCacheableFalseEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.SubCacheableNoneEntity</class>
        <exclude-unlisted-classes>true</exclude-unlisted-classes>
        <shared-cache-mode>NONE</shared-cache-mode>
        <properties>
            <property name="eclipselink.target-server" value="@server-platform@"/>
            <property name="eclipselink.target-database" value="@database-platform@"/>
            <property name="eclipselink.validate-existence" value="true"/>
            <property name="eclipselink.weaving" value="@server-weaving@"/>
        </properties>
    </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@>
        <mapping-file>META-INF/cacheable-entity-mappings.xml</mapping-file>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableFalseDetail</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableFalseDetailWithBackPointer</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableFalseEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableForceProtectedEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableProtectedEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableRelationshipsEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableTrueDerivedIDEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableTrueEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableTrueMappedSuperclass</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.ChildCacheableFalseEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.ForceProtectedEntityWithComposite</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.ProtectedEmbeddable</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.ProtectedRelationshipsEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.SharedEmbeddable</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.SubCacheableFalseEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.SubCacheableNoneEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.ProductTrue</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.ProductFalse</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.ProductHardwareTrue</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.ProductHardwareFalse</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.ProductSoftwareTrue</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.ProductSoftwareFalse</class>
        <exclude-unlisted-classes>true</exclude-unlisted-classes>
        <shared-cache-mode>ENABLE_SELECTIVE</shared-cache-mode>
        <properties>
            <property name="eclipselink.target-server" value="@server-platform@"/>
            <property name="eclipselink.target-database" value="@database-platform@"/>
            <property name="eclipselink.validate-existence" value="true"/>
            <property name="eclipselink.weaving" value="@server-weaving@"/>
        </properties>
    </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@>
        <mapping-file>META-INF/cacheable-entity-mappings.xml</mapping-file>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableFalseDetail</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableFalseDetailWithBackPointer</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableFalseEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableForceProtectedEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableProtectedEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableRelationshipsEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableTrueDerivedIDEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableTrueEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableTrueMappedSuperclass</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.ChildCacheableFalseEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.ForceProtectedEntityWithComposite</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.ProtectedEmbeddable</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.ProtectedRelationshipsEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.SharedEmbeddable</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.SubCacheableFalseEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.SubCacheableNoneEntity</class>
        <exclude-unlisted-classes>true</exclude-unlisted-classes>
        <shared-cache-mode>DISABLE_SELECTIVE</shared-cache-mode>
        <properties>
            <property name="eclipselink.target-server" value="@server-platform@"/>
            <property name="eclipselink.target-database" value="@database-platform@"/>
            <property name="eclipselink.validate-existence" value="true"/>
            <property name="eclipselink.weaving" value="@server-weaving@"/>
        </properties>
    </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@>
        <mapping-file>META-INF/cacheable-entity-mappings.xml</mapping-file>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableFalseDetail</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableFalseDetailWithBackPointer</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableFalseEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableForceProtectedEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableProtectedEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableRelationshipsEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableTrueDerivedIDEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableTrueEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.CacheableTrueMappedSuperclass</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.ChildCacheableFalseEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.ForceProtectedEntityWithComposite</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.ProtectedEmbeddable</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.ProtectedRelationshipsEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.SharedEmbeddable</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.SubCacheableFalseEntity</class>
        <class>org.eclipse.persistence.testing.models.jpa.cacheable.SubCacheableNoneEntity</class>
        <exclude-unlisted-classes>true</exclude-unlisted-classes>
        <shared-cache-mode>UNSPECIFIED</shared-cache-mode>
        <properties>
            <property name="eclipselink.target-server" value="@server-platform@"/>
            <property name="eclipselink.target-database" value="@database-platform@"/>
            <property name="eclipselink.validate-existence" value="true"/>
            <property name="eclipselink.weaving" value="@server-weaving@"/>
        </properties>
    </persistence-unit>
</persistence>
