<?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>org.apache.hadoop:hadoop-ozone:jar:${ozone.version}</include>
                    <include>org.apache.hadoop:hadoop-hdds:jar:${ozone.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</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>
                </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>
