<?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/ASSEMBLY/2.0.0"
		  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		  xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
	<!-- Assembly file for the binary tgz and zip SystemDS artifacts. -->
	<!-- The binary artifacts can be used for both standalone and cluster deployments using Spark and Hadoop. -->
	<id>bin</id>

	<formats>
		<format>tgz</format>
		<format>zip</format>
	</formats>

	<includeBaseDirectory>true</includeBaseDirectory>
	<baseDirectory>${artifactId}-${version}-bin</baseDirectory>

	<fileSets>
		<fileSet>
			<directory>${basedir}/scripts</directory>
			<excludes>
				<exclude>algorithms/obsolete/*</exclude>
				<exclude>algorithms/obsolete</exclude>
				<exclude>monitoring/.angular/**</exclude>
				<exclude>monitoring/node_modules/**</exclude>
				<exclude>**/obsolete/**</exclude>
				<exclude>tutorials/**</exclude>
				<exclude>perftest/**</exclude>
				<exclude>perftestDeprecated/*</exclude>
				<exclude>perftestDeprecated</exclude>
				<exclude>staging/**/*</exclude>
				<exclude>staging</exclude>
			</excludes>
			<outputDirectory>scripts</outputDirectory>
		</fileSet>
		<fileSet>
			<directory>${basedir}/src/test/config/hadoop_bin_windows/bin</directory>
			<includes>
				<include>*.*</include>
			</includes>
			<outputDirectory>./lib/hadoop/bin</outputDirectory>
		</fileSet>

		<!--  Make scripts executable. -->
		<fileSet>
			<directory>${basedir}/bin</directory>
			<includes>
				<include>systemds</include>
			</includes>
				<outputDirectory>bin</outputDirectory>
			<fileMode>0755</fileMode>
		</fileSet>

		<fileSet>
			<directory>${basedir}/src/assembly/bin</directory>
			<includes>
				<include>LICENSE</include>
				<include>NOTICE</include>
				<include>README.md</include>
			</includes>
			<outputDirectory>.</outputDirectory>
		</fileSet>
	</fileSets>

	<!-- Include all the libraries needed to run in standalone mode. -->
	<dependencySets>
		<dependencySet>
			<includes>
				<include>*:${artifactId}*</include>
				<include>*:avro*</include>
				<include>*:commons-beanutils*</include>
				<include>*:commons-cli*</include>
				<include>*:commons-collections*</include>
				<include>*:commons-configuration*</include>
				<include>*:commons-compress*</include>
				<include>*:commons-compiler*</include>
				<include>*:commons-io*</include>
				<include>*:commons-lang3</include>
				<include>*:commons-logging*</include>
				<include>*:commons-math3*</include>
				<include>*:commons-text*</include>
				<include>*:fastdoubleparser*</include>
				<include>*:guava*</include>
				<include>*:hadoop-auth*</include>
				<include>*:hadoop-client*</include>
				<include>*:hadoop-common*</include>
				<include>*:hadoop-hdfs*</include>
				<include>*:hadoop-mapreduce-client*</include>
				<include>*:hadoop-yarn*</include>
				<include>*:hadoop-shaded-guava*</include>
				<include>*:jackson-core*</include>
				<include>*:janino*</include>
				<include>*:log4j*</include>
				<include>*:netty*</include>
				<include>*:protobuf-java*</include>
				<include>*:py4j*</include>
				<include>*:re2j*</include>
				<include>*:reload4j*</include>
				<include>*:slf4j-api*</include>
				<include>*:slf4j-reload4j*</include>
				<include>*:spark-core*</include>
				<include>*:spark-common-utils*</include>
				<include>*:stax2-api*</include>
				<include>*:woodstox*</include>
			</includes>
			<outputDirectory>./lib</outputDirectory>
			<scope>compile</scope>
		</dependencySet>
	</dependencySets>

	<files>
		<file>
			<source>target/${artifactId}-${project.version}-extra.jar</source>
			<outputDirectory>./lib/</outputDirectory>
		</file>
		<file>
			<source>target/${artifactId}-${project.version}.jar</source>
			<outputDirectory>.</outputDirectory>
		</file>
		<file>
			<source>${basedir}/conf/log4j.properties.template</source>
			<outputDirectory>./conf/</outputDirectory>
			<destName>log4j.properties</destName>
		</file>
		<file>
			<source>${basedir}/conf/SystemDS-config.xml.template</source>
			<outputDirectory>./conf/</outputDirectory>
			<destName>SystemDS-config.xml</destName>
		</file>
	</files>
</assembly>
