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

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.

-->
<assembly>
    <id>all-bin</id>
    <formats>
        <format>dir</format>
        <format>zip</format>
    </formats>
    <baseDirectory>apache-iotdb-${project.version}-all-bin</baseDirectory>
    <dependencySets>
        <dependencySet>
            <includes>
                <include>*:iotdb-server:zip:*</include>
                <include>*:iotdb-cli:zip:*</include>
                <include>*:iotdb-cluster:zip:*</include>
            </includes>
            <outputDirectory>${file.separator}</outputDirectory>
            <outputFileNameMapping>${artifact.artifactId}.${artifact.extension}</outputFileNameMapping>
            <unpack>true</unpack>
        </dependencySet>
        <dependencySet>
            <includes>
                <include>*:iotdb-grafana:war:*</include>
            </includes>
            <outputDirectory>tools/grafana/</outputDirectory>
            <outputFileNameMapping>${artifact.artifactId}.${artifact.extension}</outputFileNameMapping>
            <unpack>false</unpack>
        </dependencySet>
    </dependencySets>
    <fileSets>
        <!--        <fileSet>-->
        <!--            <outputDirectory>conf</outputDirectory>-->
        <!--            <directory>${maven.multiModuleProjectDirectory}/server/src/assembly/resources/conf</directory>-->
        <!--        </fileSet>-->
        <fileSet>
            <outputDirectory>sbin</outputDirectory>
            <directory>${maven.multiModuleProjectDirectory}/server/src/assembly/resources/sbin</directory>
            <fileMode>0755</fileMode>
        </fileSet>
        <fileSet>
            <outputDirectory>tools</outputDirectory>
            <directory>${maven.multiModuleProjectDirectory}/server/src/assembly/resources/tools</directory>
            <fileMode>0755</fileMode>
        </fileSet>
        <fileSet>
            <outputDirectory>sbin</outputDirectory>
            <directory>${maven.multiModuleProjectDirectory}/cli/src/assembly/resources/sbin</directory>
            <fileMode>0755</fileMode>
        </fileSet>
        <fileSet>
            <outputDirectory>tools</outputDirectory>
            <directory>${maven.multiModuleProjectDirectory}/cli/src/assembly/resources/tools</directory>
            <fileMode>0755</fileMode>
        </fileSet>
        <!--        <fileSet>-->
        <!--            <outputDirectory>conf</outputDirectory>-->
        <!--            <directory>${maven.multiModuleProjectDirectory}/cluster/src/assembly/resources/conf</directory>-->
        <!--        </fileSet>-->
        <fileSet>
            <outputDirectory>sbin</outputDirectory>
            <directory>${maven.multiModuleProjectDirectory}/cluster/src/assembly/resources/sbin</directory>
            <fileMode>0755</fileMode>
        </fileSet>
        <fileSet>
            <directory>${maven.multiModuleProjectDirectory}/docs</directory>
            <outputDirectory>docs</outputDirectory>
        </fileSet>
    </fileSets>
    <files>
        <file>
            <source>${maven.multiModuleProjectDirectory}/grafana/src/main/resources/application.properties</source>
            <destName>tools/grafana/application.properties</destName>
        </file>
        <file>
            <source>${maven.multiModuleProjectDirectory}/server/src/assembly/resources/conf/iotdb-env.sh</source>
            <destName>conf/iotdb-env.sh</destName>
            <fileMode>0755</fileMode>
        </file>
    </files>
    <componentDescriptors>
        <componentDescriptor>common-files.xml</componentDescriptor>
    </componentDescriptors>
</assembly>
