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

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

    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

-->

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">

    <id>stage-distribution</id>
    <formats>
        <format>dir</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>

    <fileSets>

        <!-- nucleus-common -->
        <fileSet>
            <directory>${temp.dir}/nucleus-common</directory>
            <includes>
                <include>osgi/**</include>
                <include>config/**</include>
                <include>modules/**</include>
            </includes>
            <outputDirectory>${install.dir.name}</outputDirectory>
        </fileSet>
        <fileSet>
            <directory>${temp.dir}/nucleus-common/nucleus</directory>
            <excludes>
                <exclude>bin/**</exclude>
            </excludes>
            <outputDirectory>${install.dir.name}</outputDirectory>
        </fileSet>
        <fileSet>
            <directory>${temp.dir}/nucleus-common/nucleus</directory>
            <fileMode>755</fileMode>
            <includes>
                <include>bin/**</include>
            </includes>
            <outputDirectory>${install.dir.name}</outputDirectory>
        </fileSet>
        <fileSet>
            <directory>${temp.dir}/nucleus-common/nucleus</directory>
            <fileMode>755</fileMode>
            <includes>
                <include>nadmin*</include>
            </includes>
            <outputDirectory>${install.dir.name}/lib</outputDirectory>
        </fileSet>

        <!-- staging jars -->

        <fileSet>
            <directory>${temp.dir}</directory>
            <includes>
                <include>nucleus-domain.jar</include>
            </includes>
            <outputDirectory>${install.dir.name}/common/templates/gf</outputDirectory>
        </fileSet>

        <!-- lib/asadmin/ -->
        <fileSet>
            <directory>${temp.dir}</directory>
            <includes>
                <include>server-mgmt.jar</include>
                <include>osgi-cli-interactive.jar</include>
                <include>cluster-cli.jar</include>
            </includes>
            <outputDirectory>${install.dir.name}/lib/asadmin</outputDirectory>
        </fileSet>

        <!-- lib/monitor/ -->
        <fileSet>
            <directory>${temp.dir}</directory>
            <includes>
                <include>flashlight-agent.jar</include>
            </includes>
            <outputDirectory>${install.dir.name}/lib/monitor</outputDirectory>
        </fileSet>

        <!-- modules/lib -->
        <fileSet>
            <directory>${temp.dir}</directory>
            <includes>
                <include>grizzly-npn-api.jar</include>
            </includes>
            <outputDirectory>${install.dir.name}/lib</outputDirectory>
        </fileSet>

        <!-- felix -->
        <fileSet>
            <directory>${temp.dir}</directory>
            <includes>
                <include>felix.jar</include>
            </includes>
            <outputDirectory>${install.dir.name}/osgi/felix/bin</outputDirectory>
        </fileSet>
        <fileSet>
            <directory>${temp.dir}</directory>
            <includes>
                <include>org.apache.felix.*.jar</include>
                <include>org.osgi.util.function.jar</include>
                <include>org.osgi.util.promise.jar</include>
            </includes>
            <excludes>
                <exclude>org.apache.felix.bundlerepository.jar</exclude>
            </excludes>
            <outputDirectory>${install.dir.name}/modules/autostart</outputDirectory>
        </fileSet>

        <!-- staging modules -->
        <fileSet>
            <directory>${temp.dir}</directory>
            <includes>
                <include>*.jar</include>
            </includes>
            <excludes>
                <exclude>server-mgmt.jar</exclude>
                <exclude>osgi-cli-interactive.jar</exclude>
                <exclude>flashlight-agent.jar</exclude>
                <exclude>org.apache.felix.configadmin.jar</exclude>
                <exclude>org.apache.felix.fileinstall.jar</exclude>
                <exclude>org.apache.felix.gogo.command.jar</exclude>
                <exclude>org.apache.felix.gogo.runtime.jar</exclude>
                <exclude>org.apache.felix.gogo.shell.jar</exclude>
                <exclude>org.apache.felix.scr.jar</exclude>
                <exclude>org.osgi.util.function.jar</exclude>
                <exclude>org.osgi.util.promise.jar</exclude>
                <exclude>felix.jar</exclude>
                <exclude>nucleus-domain.jar</exclude>
                <exclude>grizzly-npn-api.jar</exclude>
            </excludes>
            <outputDirectory>${install.dir.name}/modules</outputDirectory>
        </fileSet>
    </fileSets>
</assembly>
