<!--
 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 xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
    <id>bin</id>
    <formats>
        <format>tar.gz</format>
        <format>zip</format>
    </formats>

    <!-- put deps in the lib folder -->
    <dependencySets>
        <dependencySet>
            <useProjectArtifact>false</useProjectArtifact>
            <outputDirectory>lib</outputDirectory>
            <unpack>false</unpack>
        </dependencySet>
    </dependencySets>

    <fileSets>
        <!--
            $STORM_HOME/bin
        -->
        <fileSet>
            <directory>${project.basedir}/../../bin</directory>
            <outputDirectory>bin</outputDirectory>
            <includes>
                <include>storm*</include>
                <include>flight.bash</include>
            </includes>
            <fileMode>0755</fileMode>
        </fileSet>
        <!--
            Allow for variable substitution for cache busting in HTML files and script.js
            See storm-dist/binary/pom.xml for custom variables that will be substituted in.

            The source files should have a ${variable to be replaced} wherever
            maven assembly plugin should inject a value.
        -->
        <fileSet>
            <directory>${project.basedir}/../../storm-core/src/ui/public</directory>
            <outputDirectory>public</outputDirectory>
            <includes>
                <include>*.html</include>
                <include>js/script.js</include>
            </includes>
            <excludes/>
            <filtered>true</filtered>
        </fileSet>
        <!--
            Include rest of public/ directory, without any filtering
        -->
        <fileSet>
            <directory>${project.basedir}/../../storm-core/src/ui/public</directory>
            <outputDirectory>public</outputDirectory>
            <includes>
                <include>*/**</include>
            </includes>
            <excludes>
                <exclude>*.html</exclude>
                <exclude>js/script.js</exclude>
            </excludes>
        </fileSet>
        <!-- EXAMPLES -->
        <fileSet>
            <directory>${project.basedir}/../../examples</directory>
            <outputDirectory>examples</outputDirectory>
            <excludes>
                <exclude>**/target/**</exclude>
                <exclude>**/dependency-reduced-pom.xml</exclude>
                <exclude>**/*.iml</exclude>
            </excludes>
        </fileSet>
        <fileSet>
          <directory>${project.basedir}/../../storm-core/target/native/target/usr/local/bin/</directory>
          <includes>
            <include>worker-launcher</include>
          </includes>
          <outputDirectory>bin</outputDirectory>
        </fileSet>
        <!-- EXTERNAL -->
        <!-- only include the README file -->
        <fileSet>
            <directory>${project.basedir}/../../external/storm-kafka</directory>
            <outputDirectory>external/storm-kafka</outputDirectory>
            <includes>
                <include>README.*</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>${project.basedir}/../../external/storm-kinesis</directory>
            <outputDirectory>external/storm-kinesis</outputDirectory>
            <includes>
                <include>README.*</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>${project.basedir}/../../external/storm-hdfs</directory>
            <outputDirectory>external/storm-hdfs</outputDirectory>
            <includes>
                <include>README.*</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>${project.basedir}/../../external/storm-hbase</directory>
            <outputDirectory>external/storm-hbase</outputDirectory>
            <includes>
                <include>README.*</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>${project.basedir}/../../external/storm-jdbc</directory>
            <outputDirectory>external/storm-jdbc</outputDirectory>
            <includes>
                <include>README.*</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>${project.basedir}/../../external/storm-hive</directory>
            <outputDirectory>external/storm-hive</outputDirectory>
            <includes>
                <include>README.*</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>${project.basedir}/../../external/storm-eventhubs</directory>
            <outputDirectory>external/storm-eventhubs</outputDirectory>
            <includes>
                <include>README.*</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>${project.basedir}/../../external/storm-elasticsearch</directory>
            <outputDirectory>external/storm-elasticsearch</outputDirectory>
            <includes>
                <include>README.*</include>
            </includes>
        </fileSet>

        <fileSet>
            <directory>${project.basedir}/../../external/flux</directory>
            <outputDirectory>external/flux</outputDirectory>
            <includes>
                <include>README.*</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>${project.basedir}/../../external/storm-redis</directory>
            <outputDirectory>external/storm-redis</outputDirectory>
            <includes>
                <include>README.*</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>${project.basedir}/../../external/storm-solr</directory>
            <outputDirectory>external/storm-solr</outputDirectory>
            <includes>
                <include>README.*</include>
            </includes>
        </fileSet>
        <!-- Storm SQL -->
        <fileSet>
            <directory>${project.basedir}/../../external/sql/storm-sql-core/target/app-assembler/repo</directory>
            <outputDirectory>external/sql/storm-sql-core</outputDirectory>
            <includes>
                <include>*jar</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>${project.basedir}/../../external/sql/storm-sql-external/storm-sql-kafka/target</directory>
            <outputDirectory>external/sql/storm-sql-external/storm-sql-kafka</outputDirectory>
            <includes>
                <include>storm*jar</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>${project.basedir}/../../external/sql/storm-sql-external/storm-sql-redis/target</directory>
            <outputDirectory>external/sql/storm-sql-external/storm-sql-redis</outputDirectory>
            <includes>
                <include>storm*jar</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>${project.basedir}/../../external/sql/storm-sql-external/storm-sql-mongodb/target</directory>
            <outputDirectory>external/sql/storm-sql-external/storm-sql-mongodb</outputDirectory>
            <includes>
                <include>storm*jar</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>${project.basedir}/../../external/sql/storm-sql-external/storm-sql-hdfs/target</directory>
            <outputDirectory>external/sql/storm-sql-external/storm-sql-hdfs</outputDirectory>
            <includes>
                <include>storm*jar</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>${project.basedir}/../../external/sql/storm-sql-runtime/target/app-assembler/repo</directory>
            <outputDirectory>external/sql/storm-sql-runtime</outputDirectory>
            <includes>
                <include>*jar</include>
            </includes>
        </fileSet>

        <fileSet>
            <directory>${project.basedir}/../../external/sql</directory>
            <outputDirectory>external/sql</outputDirectory>
            <includes>
                <include>README.*</include>
            </includes>
        </fileSet>
        <!-- END Storm SQL -->
        <fileSet>
            <directory>${project.basedir}/../../external/storm-mqtt</directory>
            <outputDirectory>external/storm-mqtt</outputDirectory>
            <includes>
                <include>README.*</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>${project.basedir}/../../external/storm-mongodb</directory>
            <outputDirectory>external/storm-mongodb</outputDirectory>
            <includes>
                <include>README.*</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>${project.basedir}/../../external/storm-kafka-client</directory>
            <outputDirectory>external/storm-kafka-client</outputDirectory>
            <includes>
                <include>README.*</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>${project.basedir}/../../external/storm-opentsdb</directory>
            <outputDirectory>external/storm-opentsdb</outputDirectory>
            <includes>
                <include>README.*</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>${project.basedir}/../../external/storm-druid</directory>
            <outputDirectory>external/storm-druid</outputDirectory>
            <includes>
                <include>README.*</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>${project.basedir}/../../external/storm-submit-tools/target</directory>
            <outputDirectory>external/storm-submit-tools</outputDirectory>
            <includes>
                <include>storm*jar</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>${project.basedir}/../../external/storm-jms</directory>
            <outputDirectory>external/storm-jms</outputDirectory>
            <includes>
                <include>README.*</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>${project.basedir}/../../external/storm-pmml</directory>
            <outputDirectory>external/storm-pmml</outputDirectory>
            <includes>
                <include>README.*</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>${project.basedir}/../../examples/storm-pmml-examples/src/main/resources</directory>
            <outputDirectory>examples/storm-pmml-examples</outputDirectory>
            <includes>
                <include>Audit.50.csv</include>
                <include>KNIME_PMML_4.1_Examples_single_audit_logreg.xml</include>
                <include>README.md</include>
            </includes>
        </fileSet>

        <!-- $STORM_HOME/extlib -->
        <fileSet>
            <directory></directory>
            <outputDirectory>extlib</outputDirectory>
            <includes>
                <include></include>
            </includes>
        </fileSet>
        <!-- $STORM_HOME/extlib-daemon, for daemons only -->
        <fileSet>
            <directory></directory>
            <outputDirectory>extlib-daemon</outputDirectory>
            <includes>
                <include></include>
            </includes>
        </fileSet>
        <!-- $STORM_HOME/toollib -->
        <fileSet>
            <directory>${project.basedir}/../../external/storm-kafka-monitor/target</directory>
            <outputDirectory>toollib</outputDirectory>
            <includes>
                <include>storm-kafka-monitor-${project.version}.jar</include>
            </includes>
        </fileSet>
    </fileSets>

    <files>
        <!--
            $STORM_HOME/conf
        -->
        <file>
            <source>${project.basedir}/../../conf/storm.yaml.example</source>
            <outputDirectory>/conf</outputDirectory>
            <destName>storm.yaml</destName>
            <fileMode>0644</fileMode>
        </file>
        <file>
            <source>${project.basedir}/../../conf/storm_env.ini</source>
            <outputDirectory>/conf</outputDirectory>
            <destName>storm_env.ini</destName>
            <fileMode>0644</fileMode>
        </file>
        <file>
            <source>${project.basedir}/../../conf/storm-env.sh</source>
            <outputDirectory>/conf</outputDirectory>
            <destName>storm-env.sh</destName>
            <fileMode>0755</fileMode>
        </file>
        <file>
            <source>${project.basedir}/../../conf/storm-env.ps1</source>
            <outputDirectory>/conf</outputDirectory>
            <destName>storm-env.ps1</destName>
            <fileMode>0755</fileMode>
        </file>
        <file>
            <source>${project.basedir}/../../VERSION</source>
            <outputDirectory>/</outputDirectory>
            <destName>RELEASE</destName>
            <filtered>true</filtered>
        </file>
        <!-- TODO this should be a generated file from "target" -->
        <file>
            <source>${project.basedir}/../../log4j2/cluster.xml</source>
            <outputDirectory>/log4j2</outputDirectory>
            <fileMode>0644</fileMode>
        </file>

        <file>
            <source>${project.basedir}/../../log4j2/worker.xml</source>
            <outputDirectory>/log4j2</outputDirectory>
            <fileMode>0644</fileMode>
        </file>

        <file>
            <source>${project.basedir}/LICENSE</source>
            <outputDirectory>/</outputDirectory>
        </file>

        <file>
            <source>${project.basedir}/NOTICE</source>
            <outputDirectory>/</outputDirectory>
        </file>
        <file>
            <source>${project.basedir}/../../README.markdown</source>
            <outputDirectory>/</outputDirectory>
        </file>
        <file>
            <source>${project.basedir}/../../SECURITY.md</source>
            <outputDirectory>/</outputDirectory>
        </file>
    </files>
</assembly>
