<?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>perftest/**/*</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-cli*</include>
				<include>*:commons-collections*</include>
				<include>*:commons-configuration*</include>
				<include>*:commons-httpclient*</include>
				<include>*:commons-io*</include>
				<include>*:commons-lang</include>
				<include>*:commons-lang3</include>
				<include>*:commons-logging*</include>
				<include>*:commons-math3*</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>*:jackson-core-asl*</include>
				<include>*:jackson-mapper-asl*</include>
				<include>*:janino*</include>
				<include>*:log4j*</include>
				<include>*:netty*</include>
				<include>*:protobuf-java*</include>
				<include>*:py4j*</include>
				<include>*:slf4j-api*</include>
				<include>*:slf4j-log4j*</include>
				<include>*:spark-core*</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>
