<?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>
  <id>tagsync</id>
  <formats>
     <format>tar.gz</format>
	 <format>zip</format>
  </formats>
  <baseDirectory>${project.name}-${project.version}-tagsync</baseDirectory>
  <includeBaseDirectory>true</includeBaseDirectory>
  <moduleSets>
    <moduleSet>
     <binaries>
        <includeDependencies>false</includeDependencies>
        <unpack>false</unpack>
	    <directoryMode>755</directoryMode>
	    <fileMode>644</fileMode>
  		<dependencySets>
   			<dependencySet>
     			<outputDirectory>/lib</outputDirectory>
				<includes>
					<include>com.101tec:zkclient</include>
					<include>com.google.code.gson:gson:jar:${gson.version}</include>
					<include>com.google.guava:guava:jar:${google.guava.version}</include>
					<include>com.sun.jersey:jersey-bundle:jar:${jersey-bundle.version}</include>
					<include>com.sun.jersey.contribs:jersey-multipart:jar:${sun-jersey-bundle.version}</include>
					<include>org.apache.atlas:atlas-notification:jar:${atlas.version}</include>
					<include>org.apache.atlas:atlas-intg:jar:${atlas.version}</include>
					<include>org.apache.atlas:atlas-client-v1:jar:${atlas.version}</include>
					<include>org.apache.atlas:atlas-client-v2:jar:${atlas.version}</include>
					<include>org.apache.atlas:atlas-client-common:jar:${atlas.version}</include>
					<include>org.apache.atlas:atlas-common:jar:${atlas.version}</include>
					<include>org.apache.hadoop:hadoop-auth</include>
					<include>org.apache.hadoop:hadoop-common</include>
					<include>org.apache.commons:commons-compress</include>
					<include>org.apache.kafka:kafka_${scala.binary.version}:jar:${kafka.version}</include>
					<include>org.apache.kafka:kafka-clients:jar:${kafka.version}</include>
					<include>org.apache.ranger:credentialbuilder</include>
					<include>org.apache.ranger:ranger-plugins-cred</include>
					<include>org.apache.ranger:ranger-plugins-common</include>
					<include>org.apache.ranger:ranger-util</include>
					<include>org.apache.zookeeper:zookeeper:jar:${zookeeper.version}</include>
					<include>com.fasterxml.jackson.core:jackson-annotations:jar:${atlas.jackson.version}</include>
					<include>com.fasterxml.jackson.core:jackson-core:jar:${atlas.jackson.version}</include>
					<include>com.fasterxml.jackson.core:jackson-databind:jar:${atlas.jackson.databind.version}</include>
					<include>com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:jar:${atlas.jackson.version}</include>
					<include>com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:jar:${atlas.jackson.version}</include>
					<include>com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:${atlas.jackson.version}</include>
					<include>org.codehaus.jackson:jackson-core-asl:jar:${codehaus.jackson.version}</include>
					<include>org.codehaus.jackson:jackson-mapper-asl:jar:${codehaus.jackson.version}</include>
					<include>org.codehaus.jackson:jackson-jaxrs:jar:${codehaus.jackson.version}</include>
					<include>org.codehaus.jettison:jettison:jar:${jettison.version}</include>
					<include>org.scala-lang:scala-library:jar:${scala.version}</include>
					<include>org.slf4j:slf4j-api</include>
					<include>aopalliance:aopalliance:jar:${aopalliance.version}</include>
					<include>commons-cli:commons-cli:jar:${commons.cli.version}</include>
					<include>commons-codec:commons-codec:jar:${commons.codec.version}</include>
					<include>commons-collections:commons-collections:jar:${commons.collections.version}</include>
                    <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
					<include>commons-io:commons-io:jar:${commons.io.version}</include>
					<include>commons-lang:commons-lang:jar:${commons.lang.version}</include>
					<include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
					<include>javax.inject:javax.inject:jar:${javax-inject.version}</include>
					<include>joda-time:joda-time:jar:${joda-time.version}</include>
					<include>log4j:log4j:jar:${log4j.version}</include>
					<include>org.codehaus.woodstox:stax2-api</include>
					<include>com.fasterxml.woodstox:woodstox-core</include>
					<include>org.apache.htrace:htrace-core4</include>
					<include>com.kstruct:gethostname4j:jar:${kstruct.gethostname4j.version}</include>
					<include>net.java.dev.jna:jna:jar:${jna.version}</include>
					<include>net.java.dev.jna:jna-platform:jar:${jna-platform.version}</include>
				</includes>
				<unpack>false</unpack>
  			</dependencySet>
  		</dependencySets>
        <outputDirectory>/dist</outputDirectory>
     </binaries>
     <includes>
		<include>org.apache.ranger:ranger-tagsync</include>
     </includes>
    </moduleSet>
  </moduleSets>
  <fileSets>
	<fileSet>
	    	<directoryMode>755</directoryMode>
	    	<fileMode>644</fileMode>
		<outputDirectory>/conf.dist</outputDirectory>
		<directory>tagsync/conf.dist</directory>
	</fileSet>
	<fileSet>
	    	<directoryMode>755</directoryMode>
	    	<fileMode>644</fileMode>
		<outputDirectory>/conf.dist/etc/ranger/data</outputDirectory>
		<directory>tagsync/src/main/resources/etc/ranger/data</directory>
	</fileSet>
	<fileSet>
	    	<directoryMode>755</directoryMode>
		<fileMode>544</fileMode>
		<outputDirectory>/</outputDirectory>
		<directory>tagsync/scripts</directory>
		<excludes>
			<exclude>ranger-tagsync.sh</exclude>
		</excludes>
	</fileSet>
	<fileSet>
		<directoryMode>755</directoryMode>
		<fileMode>444</fileMode>
		<outputDirectory>/templates</outputDirectory>
		<directory>tagsync/conf/templates</directory>
	</fileSet>
        <fileSet>
	    	<directoryMode>755</directoryMode>
                <outputDirectory>/</outputDirectory>
                <directory>${project.build.directory}</directory>
                <includes>
                        <include>version</include>
                </includes>
		<fileMode>444</fileMode>
        </fileSet>
  </fileSets>
  <files>
      <file>
		<source>tagsync/scripts/ranger-tagsync.sh</source>
		<outputDirectory>/</outputDirectory>
		<destName>ranger-tagsync</destName>
		<fileMode>755</fileMode>
      </file>
   </files>
</assembly>
