<?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 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>dependencies-visor-console</id>

    <formats>
        <format>dir</format>
    </formats>

    <includeBaseDirectory>false</includeBaseDirectory>

    <moduleSets>
        <moduleSet>
            <includes>
                <include>org.apache.ignite:ignite-visor-console</include>
            </includes>
            <sources>
                <includeModuleDirectory>false</includeModuleDirectory>
                <fileSets>
                    <fileSet>
                        <directory>${basedir}</directory>
                        <outputDirectory>/</outputDirectory>
                        <includes>
                            <include>licenses/**</include>
                        </includes>
                    </fileSet>

                    <fileSet>
                        <directory>${basedir}/target/licenses</directory>
                        <outputDirectory>/licenses</outputDirectory>
                    </fileSet>

                    <fileSet>
                        <directory>target/libs</directory>
                        <outputDirectory>/visorcmd</outputDirectory>
                        <excludes>
                            <exclude>scala-*.jar</exclude>
                            <exclude>spring-*.jar</exclude>
                        </excludes>
                    </fileSet>

                    <fileSet>
                        <directory>target/libs</directory>
                        <outputDirectory>/visor-common</outputDirectory>
                        <includes>
                            <include>scala-*.jar</include>
                            <include>spring-*.jar</include>
                        </includes>
                    </fileSet>

                    <fileSet>
                        <directory>target</directory>
                        <outputDirectory>/visorcmd</outputDirectory>
                        <includes>
                            <include>*.jar</include>
                        </includes>
                        <excludes>
                            <exclude>*-tests.jar</exclude>
                            <exclude>*-javadoc.jar</exclude>
                            <exclude>*-sources.jar</exclude>
                        </excludes>
                    </fileSet>
                </fileSets>
            </sources>
        </moduleSet>

        <moduleSet>
            <includes>
                <include>org.apache.ignite:ignite-ssh</include>
                <include>org.apache.ignite:ignite-spring</include>
            </includes>
            <sources>
                <includeModuleDirectory>false</includeModuleDirectory>
                <fileSets>
                    <fileSet>
                        <directory>${basedir}</directory>
                        <outputDirectory>/</outputDirectory>
                        <includes>
                            <include>licenses/**</include>
                        </includes>
                    </fileSet>

                    <fileSet>
                        <directory>${basedir}/target/licenses</directory>
                        <outputDirectory>/licenses</outputDirectory>
                    </fileSet>

                    <fileSet>
                        <directory>target/libs</directory>
                        <outputDirectory>/visor-common</outputDirectory>
                        <excludes>
                            <exclude>spring-jdbc-*.jar</exclude>
                        </excludes>
                    </fileSet>

                    <fileSet>
                        <directory>target</directory>
                        <outputDirectory>/visor-common</outputDirectory>
                        <includes>
                            <include>*.jar</include>
                        </includes>
                        <excludes>
                            <exclude>*-tests.jar</exclude>
                            <exclude>*-javadoc.jar</exclude>
                            <exclude>*-sources.jar</exclude>
                        </excludes>
                    </fileSet>
                </fileSets>
            </sources>
        </moduleSet>
    </moduleSets>
</assembly>
