<?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>ozone-plugin</id>
    <formats>
        <format>tar.gz</format>
    </formats>
    <baseDirectory>${project.parent.name}-${project.version}-ozone-plugin</baseDirectory>
    <includeBaseDirectory>true</includeBaseDirectory>
    <moduleSets>
        <moduleSet>
            <useAllReactorProjects>true</useAllReactorProjects>
            <includes>
                <include>org.apache.ranger:ranger-ozone-plugin-shim</include>
                <include>org.apache.ranger:ranger-plugin-classloader</include>
            </includes>
            <binaries>
                <outputDirectory>lib/libext</outputDirectory>
                <includeDependencies>false</includeDependencies>
                <unpack>false</unpack>
                <directoryMode>755</directoryMode>
                <fileMode>644</fileMode>
            </binaries>
        </moduleSet>

        <moduleSet>
            <useAllReactorProjects>true</useAllReactorProjects>
            <includes>
                <include>org.apache.ranger:ranger-plugins-installer</include>
                <include>org.apache.ranger:credentialbuilder</include>
            </includes>
            <binaries>
                <outputDirectory>install/lib</outputDirectory>
                <includeDependencies>true</includeDependencies>
                <unpack>false</unpack>
                <includes>
		            <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
                    <include>commons-configuration:commons-configuration:jar:${commons.configuration1.version}</include>
                    <include>commons-cli:commons-cli</include>
                    <include>commons-collections:commons-collections</include>
                    <include>commons-io:commons-io:jar:${commons.io.version}</include>
                    <include>commons-lang:commons-lang</include>
                    <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
                    <include>com.google.guava:guava:jar:${google.guava.version}</include>
                    <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
                    <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
                    <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
                    <include>com.fasterxml.woodstox:woodstox-core:jar:${fasterxml.woodstox.version}</include>
                    <include>org.codehaus.woodstox:stax2-api:jar:${codehaus.woodstox.stax2api.version}</include>
                    <include>com.sun.jersey:jersey-core</include>
                    <include>com.sun.jersey:jersey-client</include>
                    <include>com.sun.jersey:jersey-bundle</include>
                    <include>org.apache.htrace:htrace-core4:jar:${htrace-core.version}</include>
                    <include>com.kstruct:gethostname4j</include>
                    <include>net.java.dev.jna:jna</include>
                    <include>net.java.dev.jna:jna-platform</include>
                </includes>
            </binaries>
        </moduleSet>

        <moduleSet>
            <useAllReactorProjects>true</useAllReactorProjects>
            <includes>
                <include>org.apache.ranger:ranger-plugins-audit</include>
                <include>org.apache.ranger:ranger-plugins-cred</include>
                <include>org.apache.ranger:ranger-plugins-common</include>
                <include>org.apache.ranger:ranger-ozone-plugin</include>
            </includes>
            <binaries>
                <outputDirectory>lib/libext/ranger-ozone-plugin-impl</outputDirectory>
                <includeDependencies>true</includeDependencies>
                <unpack>false</unpack>
                <directoryMode>755</directoryMode>
                <fileMode>644</fileMode>
                <includes>
		            <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
                    <include>commons-configuration:commons-configuration:jar:${commons.configuration1.version}</include>
                    <include>org.eclipse.jetty:jetty-client:jar:${jetty-client.version}</include>
                    <include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}</include>
                    <include>org.apache.httpcomponents:httpclient:jar:${httpcomponents.httpclient.version}</include>
                    <include>org.apache.httpcomponents:httpcore:jar:${httpcomponents.httpcore.version}</include>
		            <include>org.apache.zookeeper:zookeeper:jar:${zookeeper.version}</include>
		            <include>org.apache.zookeeper:zookeeper-jute:jar:${zookeeper.version}</include>
                    <include>org.noggit:noggit:jar:${noggit.version}</include>
                    <include>org.apache.solr:solr-solrj:jar:${solr.version}</include>
                    <include>com.fasterxml.woodstox:woodstox-core:jar:${fasterxml.woodstox.version}</include>
                    <include>org.codehaus.woodstox:stax2-api:jar:${codehaus.woodstox.stax2api.version}</include>
                    <include>com.sun.jersey:jersey-core</include>
                    <include>com.sun.jersey:jersey-client</include>
                    <include>com.sun.jersey:jersey-bundle</include>
		            <include>org.codehaus.jackson:jackson-core-asl</include>
                    <include>org.codehaus.jackson:jackson-jaxrs</include>
                    <include>org.codehaus.jackson:jackson-mapper-asl:jar:${codehaus.jackson.version}</include>
                    <include>org.codehaus.jackson:jackson-xc</include>
		            <include>com.sun.xml.bind:jaxb-impl</include>
                    <include>org.apache.htrace:htrace-core4:jar:${htrace-core.version}</include>
                    <include>commons-lang:commons-lang</include>
                    <include>com.kstruct:gethostname4j</include>
                    <include>net.java.dev.jna:jna</include>
                    <include>net.java.dev.jna:jna-platform</include>
                    <include>org.elasticsearch:elasticsearch</include>
                    <include>org.elasticsearch:elasticsearch-core</include>
                    <include>org.elasticsearch:elasticsearch-x-content</include>
                    <include>org.elasticsearch.client:elasticsearch-rest-client</include>
                    <include>org.elasticsearch.client:elasticsearch-rest-high-level-client</include>
                    <include>org.elasticsearch.plugin:rank-eval-client</include>
                    <include>org.elasticsearch.plugin:lang-mustache-client</include>
                    <include>org.apache.httpcomponents:httpcore-nio:jar:${httpcomponents.httpcore.version}</include>
                    <include>org.apache.httpcomponents:httpasyncclient:jar:${httpcomponents.httpasyncclient.version}</include>
                    <include>org.apache.lucene:lucene-core</include>
                    <include>joda-time:joda-time</include>
                    <include>com.carrotsearch:hppc</include>
                    <include>org.apache.hive:hive-storage-api:jar:${hive.storage-api.version}</include>
                    <include>org.apache.orc:orc-core:jar:${orc.version}</include>
                    <include>org.apache.orc:orc-shims:jar:${orc.version}</include>
                    <include>io.airlift:aircompressor:jar:${aircompressor.version}</include>
                </includes>
            </binaries>
        </moduleSet>
    </moduleSets>

    <fileSets>
        <fileSet>
            <outputDirectory>   install/conf.templates/enable</outputDirectory>
            <directory>../plugin-ozone/conf</directory>
            <excludes>
                <exclude>*.sh</exclude>
            </excludes>
            <fileMode>700</fileMode>
        </fileSet>
        <fileSet>
            <outputDirectory>install/conf.templates/disable</outputDirectory>
            <directory>../plugin-ozone/disable-conf</directory>
            <fileMode>700</fileMode>
        </fileSet>
        <fileSet>
            <outputDirectory>install/conf.templates/default</outputDirectory>
            <directory>../plugin-ozone/template</directory>
            <fileMode>700</fileMode>
        </fileSet>
        <fileSet>
            <outputDirectory></outputDirectory>
            <directory>${project.build.outputDirectory}</directory>
            <includes>
                <include>version</include>
            </includes>
            <fileMode>444</fileMode>
        </fileSet>
    </fileSets>
    <files>
        <file>
            <source>${project.parent.basedir}/agents-common/scripts/enable-agent.sh</source>
            <outputDirectory></outputDirectory>
            <destName>enable-ozone-plugin.sh</destName>
            <fileMode>755</fileMode>
        </file>
        <file>
            <source>${project.parent.basedir}/agents-common/scripts/enable-agent.sh</source>
            <outputDirectory></outputDirectory>
            <destName>disable-ozone-plugin.sh</destName>
            <fileMode>755</fileMode>
        </file>
        <file>
            <source>${project.parent.basedir}/plugin-ozone/scripts/install.properties</source>
            <outputDirectory></outputDirectory>
            <destName>install.properties</destName>
            <fileMode>755</fileMode>
        </file>
        <file>
            <source>${project.parent.basedir}/security-admin/scripts/ranger_credential_helper.py</source>
            <outputDirectory></outputDirectory>
            <fileMode>755</fileMode>
        </file>
    </files>
</assembly>
