<?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-lang</include>
				<include>*:commons-lang3</include>
				<include>*:commons-logging*</include>
				<include>*:commons-math3*</include>
				<include>*:commons-text*</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>*:jackson-mapper*</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>*:spark-core*</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>
