<?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>kafka-plugin</id>
	<formats>
		<format>tar.gz</format>
		<format>zip</format>
	</formats>
	<baseDirectory>${project.name}-${project.version}-kafka-plugin
	</baseDirectory>
	<includeBaseDirectory>true</includeBaseDirectory>
	<moduleSets>
		<moduleSet>
	     <binaries>
	        <includeDependencies>false</includeDependencies>
	        <unpack>false</unpack>
		    <directoryMode>755</directoryMode>
		    <fileMode>644</fileMode>
	  	    <outputDirectory>/lib</outputDirectory>
	     </binaries>
	     <includes>
		  <include>org.apache.ranger:ranger-kafka-plugin-shim</include>
		  <include>org.apache.ranger:ranger-plugin-classloader</include>
	      </includes>
	    </moduleSet>
   	 
		<moduleSet>
			<binaries>
				<includeDependencies>true</includeDependencies>
				<unpack>false</unpack>
				<directoryMode>755</directoryMode>
				<fileMode>644</fileMode>
				<dependencySets>
					<dependencySet>
						<outputDirectory>lib/ranger-kafka-plugin-impl</outputDirectory>
						<unpack>false</unpack>
						<includes>
							<include>commons-configuration:commons-configuration:jar:${commons.configuration.version}
							</include>
							<include>org.apache.hadoop:hadoop-common:jar:${hadoop-common.version}
							</include>
							<include>org.apache.hadoop:hadoop-common-plus:jar:${hadoop-common.version}
							</include>
							<include>org.apache.hadoop:hadoop-auth:jar:${hadoop-common.version}
							</include>
							<include>org.apache.hadoop:hadoop-hdfs:jar:${hadoop.version}</include>
							<include>com.google.code.gson:gson</include>
							<include>org.eclipse.persistence:eclipselink</include>
							<include>org.eclipse.persistence:javax.persistence</include>
							<include>commons-collections:commons-collections</include>
							<include>com.sun.jersey:jersey-bundle</include>
							<include>commons-logging:commons-logging:jar:${commons.logging.version}
							</include>
							<include>commons-lang:commons-lang</include>
							<include>commons-io:commons-io</include>
							<include>com.google.guava:guava:jar:${google.guava.version}</include>
							<include>org.apache.httpcomponents:httpclient:jar:${httpcomponent.httpclient.version}
							</include>
							<include>org.apache.httpcomponents:httpcore:jar:${httpcomponent.httpcore.version}
							</include>
							<include>org.apache.httpcomponents:httpmime:jar:${httpcomponent.httpmime.version}
							</include>
							<include>org.noggit:noggit:jar:${noggit.version}</include>
							<include>org.codehaus.jackson:jackson-core-asl</include>
							<include>org.codehaus.jackson:jackson-jaxrs</include>
							<include>org.codehaus.jackson:jackson-mapper-asl</include>
							<include>org.codehaus.jackson:jackson-xc</include>
						</includes>
					</dependencySet>
					<dependencySet>
						<outputDirectory>/install/lib</outputDirectory>
						<unpack>false</unpack>
						<directoryMode>755</directoryMode>
						<fileMode>644</fileMode>
						<includes>
							<include>commons-cli:commons-cli</include>
							<include>commons-collections:commons-collections</include>
							<include>commons-configuration:commons-configuration: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</include>
							<include>com.google.guava:guava:jar:${google.guava.version}</include>
							<include>org.hamcrest:hamcrest-all</include>
							<include>junit:junit</include>
							<include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
							<include>org.apache.hadoop:hadoop-common:jar:${hadoop-common.version}
							</include>
							<include>org.apache.hadoop:hadoop-auth:jar:${hadoop-common.version}
							</include>
							<include>org.apache.ranger:ranger-plugins-cred
							</include>
							<include>org.apache.ranger:credentialbuilder</include>
						</includes>
					</dependencySet>
				</dependencySets>
				<outputDirectory>lib/ranger-kafka-plugin-impl</outputDirectory>
			</binaries>
			<includes>
				<include>org.apache.ranger:ranger-kafka-plugin</include>
				<include>org.apache.ranger:ranger_solrj</include>
				<include>org.apache.ranger:ranger-plugins-audit</include>
				<include>org.apache.ranger:ranger-plugins-cred</include>
				<include>org.apache.ranger:ranger-plugins-common</include>
			</includes>
		</moduleSet>
		<moduleSet>
			<binaries>
				<includeDependencies>false</includeDependencies>
				<outputDirectory>/install/lib</outputDirectory>
				<unpack>false</unpack>
			</binaries>
			<includes>
				<include>org.apache.ranger:ranger-plugins-installer
				</include>
				<include>org.apache.ranger:credentialbuilder</include>
			</includes>
		</moduleSet>
	</moduleSets>
	<fileSets>
		<!-- conf.templates for enable -->
		<fileSet>
			<outputDirectory>/install/conf.templates/enable</outputDirectory>
			<directory>plugin-kafka/conf</directory>
			<fileMode>700</fileMode>
		</fileSet>
		<fileSet>
			<outputDirectory>/install/conf.templates/disable</outputDirectory>
			<directory>plugin-kafka/disable-conf</directory>
			<fileMode>700</fileMode>
		</fileSet>
		<fileSet>
			<outputDirectory>/install/conf.templates/default</outputDirectory>
			<directory>plugin-kafka/template</directory>
			<fileMode>700</fileMode>
		</fileSet>
		<!-- version file -->
		<fileSet>
			<outputDirectory>/</outputDirectory>
			<directory>${project.build.outputDirectory}</directory>
			<includes>
				<include>version</include>
			</includes>
			<fileMode>444</fileMode>
		</fileSet>
	</fileSets>
	<!-- enable/disable script for Plugin -->
	<files>
		<file>
			<source>agents-common/scripts/enable-agent.sh</source>
			<outputDirectory>/</outputDirectory>
			<destName>enable-kafka-plugin.sh</destName>
			<fileMode>755</fileMode>
		</file>
		<file>
			<source>agents-common/scripts/enable-agent.sh</source>
			<outputDirectory>/</outputDirectory>
			<destName>disable-kafka-plugin.sh</destName>
			<fileMode>755</fileMode>
		</file>
		<file>
			<source>security-admin/scripts/ranger_credential_helper.py</source>
			<outputDirectory>/</outputDirectory>
			<fileMode>755</fileMode>
		</file>
		<file>
			<source>security-admin/scripts/ranger_credential_helper.py</source>
			<outputDirectory>/</outputDirectory>
			<fileMode>755</fileMode>
		</file>
		<file>
			<source>plugin-kafka/scripts/install.properties</source>
			<outputDirectory>/</outputDirectory>
			<destName>install.properties</destName>
			<fileMode>755</fileMode>
		</file>
		<file>
			<source>plugin-kafka/scripts/kafka-plugin-install.properties</source>
			<outputDirectory>/</outputDirectory>
			<destName>kafka-plugin-install.properties</destName>
			<fileMode>755</fileMode>
		</file>
	</files>
</assembly>
