<?xml version="1.0" encoding="UTF-8"?>
<!--

    Copyright (c) 2019 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

-->

<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
    <id>${item}_ejb</id>
    <formats>
        <format>jar</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <componentDescriptors>
        <!--Extra component must be first. Sometimes it copies persistence.xml from special directory.
        Maven assembly plugin doesn't overwrite files in the output.-->
        <componentDescriptor>${integration.test.directory}/assembly/${item.extra-model}.xml</componentDescriptor>
        <componentDescriptor>${integration.test.directory}/assembly/common-server.xml</componentDescriptor>
        <componentDescriptor>${integration.test.directory}/assembly/common.xml</componentDescriptor>
        <componentDescriptor>${integration.test.directory}/assembly/${item}.xml</componentDescriptor>
    </componentDescriptors>
    <dependencySets>
        <dependencySet>
            <outputDirectory>.</outputDirectory>
            <includes>
                <!--Required by EL JPA Test FW-->
                <include>junit:junit</include>
            </includes>
            <scope>test</scope>
            <unpack>true</unpack>
        </dependencySet>
        <dependencySet>
            <outputDirectory>.</outputDirectory>
            <includes>
                <include>org.eclipse.persistence:org.eclipse.persistence.core.test.framework</include>
            </includes>
            <scope>test</scope>
            <unpack>true</unpack>
            <unpackOptions>
                <includes>
                    <include>org/eclipse/persistence/testing/framework/**/*.class</include>
                    <include>org/eclipse/persistence/testing/tests/performance/emulateddb/**</include>
                    <include>org/eclipse/persistence/tools/**</include>
                    <include>org/eclipse/persistence/testing/tests/TestRunModel*</include>
                </includes>
            </unpackOptions>
        </dependencySet>
        <dependencySet>
            <outputDirectory>.</outputDirectory>
            <includes>
                <include>org.eclipse.persistence:org.eclipse.persistence.jpa.test.framework</include>
            </includes>
            <scope>test</scope>
            <unpack>true</unpack>
            <unpackOptions>
                <includes>
                    <include>org/eclipse/persistence/testing/framework/junit/*.class</include>
                    <include>org/eclipse/persistence/testing/framework/server/*.class</include>
                </includes>
                <excludes>
                    <exclude>**/TestRunner?Bean.class</exclude>
                    <!--TODO JPA21 see antbuild.xml:948-->
                    <exclude>**/TestRunner6Bean.*</exclude>
                </excludes>
            </unpackOptions>
        </dependencySet>
    </dependencySets>
    <fileSets>
        <fileSet>
            <directory>${project.build.testOutputDirectory}</directory>
            <outputDirectory>.</outputDirectory>
            <includes>
                <include>org/eclipse/persistence/testing/framework/server/TestRunnerBean.class</include>
                <include>org/eclipse/persistence/testing/tests/jpa/${packageName}/**/*.class</include>
            </includes>
        </fileSet>
    </fileSets>
</assembly>