<?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>
    <fileSets>
        <fileSet>
            <directory>${project.build.testOutputDirectory}</directory>
            <outputDirectory>.</outputDirectory>
            <includes>
                <include>org/eclipse/persistence/testing/framework/server/TestRunnerBean.class</include>
            </includes>
        </fileSet>
    </fileSets>
    <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>
        <dependencySet>
            <outputDirectory>.</outputDirectory>
            <includes>
                <include>org.eclipse.persistence:org.eclipse.persistence.jpa.test:test-jar</include>
            </includes>
            <scope>test</scope>
            <unpack>true</unpack>
            <unpackOptions>
                <includes>
                    <include>org/eclipse/persistence/testing/tests/jpa/${packageName}/**/*.class</include>
                </includes>
            </unpackOptions>
        </dependencySet>
    </dependencySets>
</assembly>