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

    Copyright (c) 1997, 2018 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.

    This Source Code may also be made available under the following Secondary
    Licenses when the conditions for such availability set forth in the
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
    version 2 with the GNU Classpath Exception, which is available at
    https://www.gnu.org/software/classpath/license.html.

    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0

-->

<!--
    Describes how to create the zip file for the non-OSGi ACC bundle.

    Because of the way some other modules are organized, the ACC module's
    transitive closure of dependencies includes modules that it will never
    use at runtime.  This is the case, for example, because the published
    security API for programmatic login implements both the server-side and
    the client-side login methods in the same class.  That means that the ACC's
    dependence on the security module which defines the API would seem to
    create a further dependency on other, server-side-only modules.  This
    descriptor excludes such modules from the bundle.

-->
<assembly>
    <id>bundle</id>
    <formats>
        <format>zip</format>
    </formats>

    <dependencySets useProjectArtifact="true">
        <dependencySet>

            <!--
                N O T E
                The next mapping works for the current version of the assembly
                plug-in.  Future versions are described as using
                ${artifact.artifactId} and ${artifact.extension}.

                See the outputFileNameMapping topic right after this URL:

                http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html#class_dependencySet

            -->
            <outputFileNameMapping>
                ${artifactId}.${extension}
            </outputFileNameMapping>

            <excludes>
                <exclude>com.sun.xml.bind:jaxb</exclude> <!-- we don't need 2.1 of this; 2.0 is in the JRE -->
            </excludes>
        </dependencySet>
    </dependencySets>

    <fileSets>
        <fileSet>
            <includes>
                <include>**/target/${project.artifactId}-${standalone.classifier}.jar</include>
            </includes>
        </fileSet>
    </fileSets>
</assembly>
