<?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.
  -->

<component xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/component/1.1.2"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/component/1.1.2
           http://maven.apache.org/xsd/component-1.1.2.xsd">
    <files>
        <!-- Copy CPP files. -->
        <file>
            <source>modules/platforms/cpp/project/vs/ignite.slnrel</source>
            <outputDirectory>/platforms/cpp/project/vs</outputDirectory>
            <destName>ignite.sln</destName>
        </file>

        <file>
            <source>modules/platforms/cpp/project/vs/ignite_x86.slnrel</source>
            <outputDirectory>/platforms/cpp/project/vs</outputDirectory>
            <destName>ignite_x86.sln</destName>
        </file>

        <!-- Other files. -->
        <file>
            <source>assembly/LICENSE_FABRIC</source>
            <destName>LICENSE</destName>
            <outputDirectory>/</outputDirectory>
        </file>

        <file>
            <source>assembly/NOTICE_FABRIC</source>
            <destName>NOTICE</destName>
            <outputDirectory>/</outputDirectory>
        </file>

        <file>
            <source>examples/schema-import/pom-standalone.xml</source>
            <outputDirectory>/examples/schema-import</outputDirectory>
            <destName>pom.xml</destName>
        </file>
    </files>

    <fileSets>
        <!-- Move platforms readme. -->
        <fileSet>
            <directory>modules/platforms</directory>
            <outputDirectory>/platforms</outputDirectory>
            <includes>
                <include>README.txt</include>
            </includes>
        </fileSet>

        <!-- Move .Net readme. -->
        <fileSet>
            <directory>modules/platforms/dotnet</directory>
            <outputDirectory>/platforms/dotnet</outputDirectory>
            <includes>
                <include>README.txt</include>
            </includes>
        </fileSet>

        <!-- Move .Net binaries. -->
        <fileSet>
            <directory>modules/platforms/dotnet/bin</directory>
            <outputDirectory>/platforms/dotnet/bin</outputDirectory>
        </fileSet>

        <!-- Move .Net docs. -->
        <fileSet>
            <directory>modules/clients/target/dotnetdoc/html</directory>
            <outputDirectory>/platforms/dotnet/docs</outputDirectory>
        </fileSet>

        <!-- Move .Net examples. -->
        <fileSet>
            <directory>modules/platforms/dotnet/examples</directory>
            <outputDirectory>/platforms/dotnet/examples</outputDirectory>
        </fileSet>

        <!-- Move .Net licenses. -->
        <fileSet>
            <directory>modules/platforms/licenses</directory>
            <outputDirectory>/platforms/dotnet/licenses</outputDirectory>
        </fileSet>

        <!-- Move CPP readme. -->
        <fileSet>
            <directory>modules/platforms/cpp</directory>
            <outputDirectory>/platforms/cpp</outputDirectory>
            <includes>
                <include>README.txt</include>
                <include>DEVNOTES.txt</include>
            </includes>
        </fileSet>

        <!-- Move CPP "common" module. -->
        <fileSet>
            <directory>modules/platforms/cpp/common</directory>
            <outputDirectory>/platforms/cpp/common</outputDirectory>
        </fileSet>

        <!-- Move CPP "core" module. -->
        <fileSet>
            <directory>modules/platforms/cpp/core</directory>
            <outputDirectory>/platforms/cpp/core</outputDirectory>
        </fileSet>

        <!-- Move CPP "ignite" module. -->
        <fileSet>
            <directory>modules/platforms/cpp/ignite</directory>
            <outputDirectory>/platforms/cpp/ignite</outputDirectory>
        </fileSet>

        <!-- Move CPP examples. -->
        <fileSet>
            <directory>modules/platforms/cpp/examples</directory>
            <outputDirectory>/platforms/cpp/examples</outputDirectory>
        </fileSet>

        <!-- Move CPP licenses. -->
        <fileSet>
            <directory>modules/platforms/licenses</directory>
            <outputDirectory>/platforms/cpp/licenses</outputDirectory>
        </fileSet>

        <!-- Move CPP docs. -->
        <fileSet>
            <directory>modules/clients/target/cppdoc/html</directory>
            <outputDirectory>/platforms/cpp/docs</outputDirectory>
        </fileSet>

        <!-- Other files. -->
        <fileSet>
            <directory>bin</directory>
            <outputDirectory>/bin</outputDirectory>
            <includes>
                <include>igniterouter.bat</include>
            </includes>
        </fileSet>

        <fileSet>
            <directory>bin</directory>
            <outputDirectory>/bin</outputDirectory>
            <fileMode>0755</fileMode>
            <includes>
                <include>igniterouter.sh</include>
            </includes>
        </fileSet>

        <fileSet>
            <directory>config/router</directory>
            <outputDirectory>/config/router</outputDirectory>
        </fileSet>

        <fileSet>
            <directory>examples</directory>
            <outputDirectory>/examples</outputDirectory>
            <includes>
                <include>rest/**</include>
                <include>memcached/**</include>
                <include>schema-import/src/**</include>
                <include>schema-import/bin/**</include>
                <include>schema-import/README.txt</include>
            </includes>
        </fileSet>

        <fileSet>
            <directory>target/javadoc/core</directory>
            <outputDirectory>/docs/javadoc</outputDirectory>
        </fileSet>

        <fileSet>
            <directory>modules/scalar/target/site/scaladocs</directory>
            <outputDirectory>/docs/scaladoc/scalar</outputDirectory>
        </fileSet>

        <fileSet>
            <directory>examples</directory>
            <outputDirectory>/examples</outputDirectory>
            <includes>
                <include>config/**</include>
                <include>src/**</include>
            </includes>
            <excludes>
                <exclude>**/package.html</exclude>
                <exclude>src/test/**</exclude>
            </excludes>
        </fileSet>

        <fileSet>
            <directory>assembly/libs</directory>
            <outputDirectory>/libs</outputDirectory>
        </fileSet>
    </fileSets>
</component>
