<?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>elasticsearch-plugin</id>
  <formats>
    <format>tar.gz</format>
    <format>zip</format>
  </formats>
  <baseDirectory>${project.parent.name}-${project.version}-elasticsearch-plugin</baseDirectory>
  <includeBaseDirectory>true</includeBaseDirectory>
  <moduleSets>
    <moduleSet>
      <useAllReactorProjects>true</useAllReactorProjects>
      <includes>
        <include>org.apache.ranger:ranger-elasticsearch-plugin-shim</include>
        <include>org.apache.ranger:ranger-plugin-classloader</include>
      </includes>
      <binaries>
        <outputDirectory>lib/ranger-elasticsearch-plugin</outputDirectory>
        <includeDependencies>false</includeDependencies>
        <unpack>false</unpack>
        <directoryMode>755</directoryMode>
        <fileMode>644</fileMode>
        <includes>
          <include>commons-collections:commons-collections</include>
          <include>commons-lang:commons-lang</include>
          <include>org.slf4j:slf4j-api</include>
          <include>org.slf4j:slf4j-log4j12</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-elasticsearch-plugin</include>
      </includes>
      <binaries>
        <outputDirectory>lib/ranger-elasticsearch-plugin/ranger-elasticsearch-plugin-impl</outputDirectory>
        <includeDependencies>false</includeDependencies>
        <unpack>false</unpack>
        <directoryMode>755</directoryMode>
        <fileMode>644</fileMode>
        <includes>
          <include>commons-configuration:commons-configuration:jar:${commons.configuration.version}</include>
          <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
          <include>org.apache.hadoop:hadoop-common-plus:jar:${hadoop.version}</include>
          <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.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>com.sun.jersey:jersey-bundle</include>
          <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
          <include>commons-io:commons-io</include>
          <include>com.google.guava:guava:jar:${google.guava.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.httpcomponents:httpmime:jar:${httpcomponents.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>
          <include>org.apache.solr:solr-solrj</include>
          <include>commons-codec:commons-codec</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>
      </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-elasticsearch-plugin</include>
      </includes>
      <binaries>
        <outputDirectory>install/lib</outputDirectory>
        <includeDependencies>false</includeDependencies>
        <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: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.ranger:ranger-plugins-cred</include>
          <include>org.apache.ranger:credentialbuilder</include>
        </includes>
      </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>
      </binaries>
    </moduleSet>
  </moduleSets>
  <fileSets>
    <!-- conf.templates for enable -->
    <fileSet>
      <outputDirectory>/install/conf.templates/enable</outputDirectory>
      <directory>${project.parent.basedir}/plugin-elasticsearch/conf</directory>
      <excludes>
        <exclude>*.sh</exclude>
      </excludes>
      <fileMode>700</fileMode>
    </fileSet>
    <fileSet>
      <outputDirectory>/install/conf.templates/disable</outputDirectory>
      <directory>${project.parent.basedir}/plugin-elasticsearch/disable-conf</directory>
      <fileMode>700</fileMode>
    </fileSet>
    <fileSet>
      <outputDirectory>/install/conf.templates/default</outputDirectory>
      <directory>${project.parent.basedir}/plugin-elasticsearch/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>${project.parent.basedir}/agents-common/scripts/enable-agent.sh</source>
      <outputDirectory>/</outputDirectory>
      <destName>enable-elasticsearch-plugin.sh</destName>
      <fileMode>755</fileMode>
    </file>
    <file>
      <source>${project.parent.basedir}/agents-common/scripts/enable-agent.sh</source>
      <outputDirectory>/</outputDirectory>
      <destName>disable-elasticsearch-plugin.sh</destName>
      <fileMode>755</fileMode>
    </file>
    <file>
      <source>${project.parent.basedir}/plugin-elasticsearch/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>
    <file>
      <source>${project.parent.basedir}/ranger-elasticsearch-plugin-shim/conf/plugin-descriptor.properties</source>
      <outputDirectory>/lib/ranger-elasticsearch-plugin</outputDirectory>
      <fileMode>755</fileMode>
      <filtered>true</filtered>
    </file>
    <file>
      <source>${project.parent.basedir}/ranger-elasticsearch-plugin-shim/conf/plugin-security.policy</source>
      <outputDirectory>/lib/ranger-elasticsearch-plugin</outputDirectory>
      <fileMode>755</fileMode>
    </file>
  </files>
</assembly>
