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

    Copyright (c) 2019, 2021 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>eclipselink-plugins.zip</id>
    <formats>
        <format>zip</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <dependencySets>
        <!--License files-->
        <dependencySet>
            <useProjectArtifact>false</useProjectArtifact>
            <scope>provided</scope>
            <outputDirectory>.</outputDirectory>
            <includes>
                <include>${project.groupId}:org.eclipse.persistence.parent:zip:common-license</include>
            </includes>
            <unpack>true</unpack>
            <unpackOptions>
                <includes>
                    <include>*.html</include>
                </includes>
            </unpackOptions>
        </dependencySet>
        <dependencySet>
            <outputFileNameMapping>${artifact.artifactId}_${release.version}.${build.qualifier}.${artifact.extension}</outputFileNameMapping>
            <includes>
                <include>org.eclipse.persistence:*:*:*:${project.version}</include>
            </includes>
            <excludes>
                <exclude>org.eclipse.persistence:*:*:tests</exclude>
                <exclude>org.eclipse.persistence:org.eclipse.persistence.asm:*</exclude>
                <exclude>org.eclipse.persistence:org.eclipse.persistence.oracleddlparser:*</exclude>
                <exclude>org.eclipse.persistence:commonj.sdo:*</exclude>
            </excludes>
            <scope>test</scope>
        </dependencySet>
        <dependencySet>
            <outputFileNameMapping>${artifact.artifactId}_${artifact.version}.${artifact.extension}</outputFileNameMapping>
            <includes>
                <include>org.eclipse.persistence:org.eclipse.persistence.asm:*</include>
                <include>org.eclipse.persistence:org.eclipse.persistence.oracleddlparser:*</include>
                <include>org.eclipse.persistence:commonj.sdo:*</include>
            </includes>
        </dependencySet>
        <dependencySet>
            <outputFileNameMapping>${artifact.artifactId}.${artifact.extension}</outputFileNameMapping>
            <excludes>
                <exclude>com.sun:tools</exclude>
                <exclude>junit:*</exclude>
                <exclude>org.apache.ant:*</exclude>
                <exclude>org.eclipse.persistence:*</exclude>
                <exclude>org.hamcrest:*</exclude>
                <exclude>org.ow2.asm:*</exclude>
                <!--Test scope-->
                <exclude>org.codehaus.mojo:*</exclude>
                <exclude>biz.aQute.bnd:*</exclude>
                <exclude>com.sun.xml.fastinfoset:*</exclude>
                <exclude>com.sun.istack:*</exclude>
                <exclude>com.fasterxml:*</exclude>
                <exclude>org.glassfish.grizzly:*</exclude>
                <exclude>org.glassfish.ha:*</exclude>
                <exclude>org.hibernate.validator:*</exclude>
                <exclude>org.ops4j.base:*</exclude>
                <exclude>org.ops4j.pax.exam:*</exclude>
                <exclude>org.ops4j.pax.swissbox:*</exclude>
                <exclude>org.ops4j.pax.url:*</exclude>
            </excludes>
            <scope>test</scope>
        </dependencySet>
        <dependencySet>
            <outputFileNameMapping>jakarta.inject.jar</outputFileNameMapping>
            <includes>
                <include>jakarta.inject:jakarta.inject</include>
            </includes>
            <scope>test</scope>
        </dependencySet>
    </dependencySets>
</assembly>
