<?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>admin</id> 
  <formats>
     <format>tar.gz</format>
     <format>zip</format>
  </formats>
  <baseDirectory>${project.name}-${project.version}-admin</baseDirectory>
  <includeBaseDirectory>true</includeBaseDirectory>
  <moduleSets>

    <moduleSet>
     <binaries>
        <includeDependencies>false</includeDependencies>
        <unpack>true</unpack>
        <outputDirectory>/ews/webapp</outputDirectory>
     </binaries>
     <includes>
		<include>org.apache.ranger:security-admin-web</include>
     </includes>
    </moduleSet>

    <moduleSet>
     <binaries>
        <includeDependencies>false</includeDependencies>
        <unpack>false</unpack>
        <outputDirectory>/ews/ranger_jaas</outputDirectory>
     </binaries>
     <includes>
		<include>org.apache.ranger:unixauthclient</include>
     </includes>
    </moduleSet>

    <moduleSet>
     <binaries>
        <includeDependencies>false</includeDependencies>
        <outputDirectory>/ews/webapp/WEB-INF/classes/ranger-plugins/hdfs</outputDirectory>
        <unpack>false</unpack>
        <directoryMode>755</directoryMode>
        <fileMode>644</fileMode>
     </binaries>
     <includes>
       <include>org.apache.ranger:ranger-hdfs-plugin</include>
     </includes>
    </moduleSet>

    <moduleSet>
     <binaries>
        <includeDependencies>true</includeDependencies>
        <outputDirectory>/ews/webapp/WEB-INF/classes/ranger-plugins/hive</outputDirectory>
        <unpack>false</unpack>
        <directoryMode>755</directoryMode>
        <fileMode>644</fileMode>
        <dependencySets>
          <dependencySet>
            <includes>
              <include>org.apache.hive:hive-common:jar:${hive.version}</include>
              <include>org.apache.hive:hive-service:jar:${hive.version}</include>
              <include>org.apache.hive:hive-exec:jar:${hive.version}</include>
              <include>org.apache.hive:hive-jdbc:jar:${hive.version}</include>
              <include>org.apache.hive:hive-metastore:jar:${hive.version}</include>
              <include>org.apache.thrift:libfb303:jar:${libfb303.version}</include>
              <include>org.apache.thrift:libthrift:jar:${libthrift.version}</include>
            </includes>
          </dependencySet>
        </dependencySets>
     </binaries>
     <includes>
       <include>org.apache.ranger:ranger-hive-plugin</include>
     </includes>
    </moduleSet>


    <moduleSet>
     <binaries>
        <includeDependencies>true</includeDependencies>
        <outputDirectory>/ews/webapp/WEB-INF/classes/ranger-plugins/hbase</outputDirectory>
        <unpack>false</unpack>
        <directoryMode>755</directoryMode>
        <fileMode>644</fileMode>
        <dependencySets>
          <dependencySet>
            <includes>
              <include>org.apache.hbase:hbase-common:jar:${hbase.version}</include>
              <include>org.apache.hbase:hbase-client:jar:${hbase.version}</include>
              <include>org.apache.hbase:hbase-protocol:jar:${hbase.version}</include>
              <include>org.apache.hbase:hbase-server:jar:${hbase.version}</include>
              <include>org.apache.hbase:hbase-protocol-shaded:jar:${hbase.version}</include>
              <include>org.apache.hbase.thirdparty:hbase-shaded-protobuf:jar:${hbase-shaded-protobuf}</include>
              <include>org.apache.hbase.thirdparty:hbase-shaded-netty:jar:${hbase-shaded-netty}</include>
              <include>org.apache.hbase.thirdparty:hbase-shaded-miscellaneous:jar:${hbase-shaded-miscellaneous}</include>
              <include>org.apache.htrace:htrace-core4:jar:${htrace-core.version}</include>
              <include>io.dropwizard.metrics:metrics-core</include>
            </includes>
          </dependencySet>
        </dependencySets>
     </binaries>
     <includes>
       <include>org.apache.ranger:ranger-hbase-plugin</include>
     </includes>
    </moduleSet>

    <moduleSet>
     <binaries>
        <includeDependencies>true</includeDependencies>
        <outputDirectory>/ews/webapp/WEB-INF/classes/ranger-plugins/knox</outputDirectory>
        <unpack>false</unpack>
        <directoryMode>755</directoryMode>
        <fileMode>644</fileMode>
        <dependencySets>
          <dependencySet>
            <includes>
              <include>commons-lang:commons-lang:jar:${commons.lang.version}</include>
              <include>commons-collections:commons-collections:jar:${commons.collections.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>
            </includes>
          </dependencySet>
        </dependencySets>
     </binaries>
     <includes>
       <include>org.apache.ranger:ranger-knox-plugin</include>
     </includes>
    </moduleSet>

    <moduleSet>
     <binaries>
        <includeDependencies>true</includeDependencies>
        <outputDirectory>/ews/webapp/WEB-INF/classes/ranger-plugins/storm</outputDirectory>
        <unpack>false</unpack>
        <directoryMode>755</directoryMode>
        <fileMode>644</fileMode>
        <dependencySets>
          <dependencySet>
            <includes>
              <include>org.apache.storm:storm-core:jar:0.9.2-incubating</include>
            </includes>
          </dependencySet>
        </dependencySets>
     </binaries>
     <includes>
       <include>org.apache.ranger:ranger-storm-plugin</include>
     </includes>
    </moduleSet>

    <moduleSet>
     <binaries>
        <includeDependencies>true</includeDependencies>
        <outputDirectory>/ews/webapp/WEB-INF/classes/ranger-plugins/yarn</outputDirectory>
        <unpack>false</unpack>
        <directoryMode>755</directoryMode>
        <fileMode>644</fileMode>
        <dependencySets>
          <dependencySet>
            <includes>
              <include>org.apache.hadoop:hadoop-yarn-api:jar:${hadoop.version}</include>
              <include>org.apache.hadoop:hadoop-yarn-common:jar:${hadoop.version}</include>
            </includes>
          </dependencySet>
        </dependencySets>
     </binaries>
     <includes>
       <include>org.apache.ranger:ranger-yarn-plugin</include>
     </includes>
    </moduleSet>
    <moduleSet>
          <binaries>
              <includeDependencies>true</includeDependencies>
              <outputDirectory>/ews/webapp/WEB-INF/classes/ranger-plugins/ozone</outputDirectory>
              <unpack>false</unpack>
              <directoryMode>755</directoryMode>
              <fileMode>644</fileMode>
              <dependencySets>
                  <dependencySet>
                      <includes>
			  <include>org.apache.hadoop:hadoop-ozone-common:jar:${ozone.version}</include>
                          <include>org.apache.hadoop:hadoop-ozone-client:jar:${ozone.version}</include>
                          <include>org.apache.hadoop:hadoop-hdds-common:jar:${ozone.version}</include>
                          <include>org.apache.hadoop:hadoop-hdds-client:jar:${ozone.version}</include>
                          <include>org.apache.commons:commons-compress:jar:1.4.1</include>
                          <include>commons-net:commons-net:jar:${commons.net.version}</include>
                          <include>com.google.guava:guava</include>
                          <include>io.jaegertracing:jaeger-core:jar:0.33.1</include>
                          <include>io.opentracing:opentracing-api:jar:0.31.0</include>
                          <include>io.opentracing:opentracing-noop:jar:0.31.0</include>
                          <include>io.opentracing:opentracing-util:jar:0.31.0</include>
                          <include>io.opentracing.contrib:opentracing-tracerresolver:jar:0.1.5</include>
                          <include>com.google.protobuf:protobuf-java</include>
                          <include>org.apache.ratis:ratis-common:jar:0.2.0</include>
                          <include>org.apache.ratis:ratis-thirdparty-misc:jar:0.2.0</include>
                      </includes>
                  </dependencySet>
              </dependencySets>
          </binaries>
          <includes>
              <include>org.apache.ranger:ranger-ozone-plugin</include>
          </includes>
      </moduleSet>

    <moduleSet>
     <binaries>
        <includeDependencies>true</includeDependencies>
        <outputDirectory>/ews/webapp/WEB-INF/classes/ranger-plugins/kms</outputDirectory>
        <unpack>false</unpack>
        <directoryMode>755</directoryMode>
        <fileMode>644</fileMode>
     </binaries>
     <includes>
       <include>org.apache.ranger:ranger-kms-plugin</include>
     </includes>
    </moduleSet>

    <moduleSet>
     <binaries>
        <includeDependencies>false</includeDependencies>
        <outputDirectory>/ews/lib</outputDirectory>
        <unpack>false</unpack>
        <directoryMode>755</directoryMode>
        <fileMode>644</fileMode>
        <dependencySets>
            <dependencySet>
                <outputDirectory>/ews/lib</outputDirectory>
                <includes>
                    <include>org.apache.tomcat.embed:tomcat-embed*</include>
                    <include>org.apache.tomcat:tomcat-annotations-api*</include>
                    <include>org.eclipse.jdt.core.compiler:ecj:jar:P20140317-1600</include>
                    <include>log4j:log4j</include>
		    		<include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
		    		<include>org.apache.ranger:ranger-plugins-common</include>                    
		   			<include>org.slf4j:slf4j-api</include>
                    <include>org.apache.hadoop:hadoop-common</include>
                    <include>commons-logging:commons-logging</include>
                    <include>com.sun.jersey.contribs:jersey-multipart</include>
                    <include>com.google.guava:guava</include>
                    <include>commons-collections:commons-collections</include>
                    <include>commons-lang:commons-lang</include>
		    		<include>commons-io:commons-io</include>
		    		 <include>org.apache.solr:solr-solrj</include>
                    <include>org.apache.httpcomponents:httpclient</include>
                    <include>org.apache.httpcomponents:httpcore</include>
                    <include>org.noggit:noggit</include>
                    <include>org.apache.zookeeper:zookeeper:jar:${zookeeper.version}</include>
                    <include>org.apache.httpcomponents:httpmime</include>
                    <include>commons-codec:commons-codec</include>
                    <include>org.apache.htrace:htrace-core4:jar:${htrace-core.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>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</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>
                    <include>org.apache.ranger:ranger-plugins-cred</include>
                </includes>
                <unpack>false</unpack>
            </dependencySet>
        </dependencySets>
     </binaries>
     <includes>
	    <include>org.apache.ranger:embeddedwebserver</include>
     </includes>
    </moduleSet>

    <moduleSet>
     <binaries>
        <includeDependencies>false</includeDependencies>
        <outputDirectory>/cred/lib</outputDirectory>
        <unpack>false</unpack>
        <directoryMode>755</directoryMode>
        <fileMode>644</fileMode>
        <dependencySets>
            <dependencySet>
                <outputDirectory>/cred/lib</outputDirectory>
                <unpack>false</unpack>
   				<includes>
                    <include>commons-cli:commons-cli</include>
                    <include>commons-collections:commons-collections</include>
                    <include>commons-configuration:commons-configuration</include>
                    <include>commons-io:commons-io:jar:${commons.io.version}</include>
                    <include>commons-lang:commons-lang</include>
                    <include>commons-lang3:commons-lang3</include>
                    <include>commons-logging:commons-logging</include>
                    <include>com.google.guava:guava</include>
                    <include>org.slf4j:slf4j-api</include>
                    <include>org.apache.hadoop:hadoop-common</include>
                    <include>org.apache.hadoop:hadoop-auth</include>
              		<include>org.apache.htrace:htrace-core4:jar:${htrace-core.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>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
				</includes>
            </dependencySet>
        </dependencySets>
     </binaries>
     <includes>
	    <include>org.apache.ranger:credentialbuilder</include>
     </includes>
    </moduleSet>
<moduleSet>
     <binaries>
        <includeDependencies>false</includeDependencies>
        <outputDirectory>/jisql/lib</outputDirectory>
        <unpack>false</unpack>
        <directoryMode>755</directoryMode>
        <fileMode>644</fileMode>
        <dependencySets>
            <dependencySet>
                <outputDirectory>/jisql/lib</outputDirectory>
                <unpack>false</unpack>
				<includes>
                    <include>net.sf.jopt-simple:jopt-simple</include>
				</includes>
            </dependencySet>
        </dependencySets>
     </binaries>
     <includes>
	    <include>org.apache.ranger:jisql</include>
     </includes>
    </moduleSet>
    
    	     <moduleSet>
     			<binaries>
        			<includeDependencies>true</includeDependencies>
        			<outputDirectory>/ews/webapp/WEB-INF/classes/ranger-plugins/kafka</outputDirectory>
        			<unpack>false</unpack>
        			<directoryMode>755</directoryMode>
        			<fileMode>644</fileMode>
     			</binaries>
     			<includes>
       				<include>org.apache.ranger:ranger-kafka-plugin</include>
     			</includes>
    		</moduleSet>
    		
    		<moduleSet>
     			<binaries>
        			<includeDependencies>true</includeDependencies>
        			<outputDirectory>/ews/webapp/WEB-INF/classes/ranger-plugins/solr</outputDirectory>
        			<unpack>false</unpack>
        			<directoryMode>755</directoryMode>
        			<fileMode>644</fileMode>
     			</binaries>
     			<includes>
       				<include>org.apache.ranger:ranger-solr-plugin</include>
     			</includes>
    		</moduleSet>

      <moduleSet>
          <binaries>
              <includeDependencies>true</includeDependencies>
              <outputDirectory>/ews/webapp/WEB-INF/classes/ranger-plugins/nifi</outputDirectory>
              <unpack>false</unpack>
              <directoryMode>755</directoryMode>
              <fileMode>644</fileMode>
          </binaries>
          <includes>
              <include>org.apache.ranger:ranger-nifi-plugin</include>
          </includes>
      </moduleSet>

      <moduleSet>
          <binaries>
              <includeDependencies>true</includeDependencies>
              <outputDirectory>/ews/webapp/WEB-INF/classes/ranger-plugins/nifi-registry</outputDirectory>
              <unpack>false</unpack>
              <directoryMode>755</directoryMode>
              <fileMode>644</fileMode>
          </binaries>
          <includes>
              <include>org.apache.ranger:ranger-nifi-registry-plugin</include>
          </includes>
      </moduleSet>

      <moduleSet>
          <binaries>
              <includeDependencies>true</includeDependencies>
              <outputDirectory>/ews/webapp/WEB-INF/classes/ranger-plugins/atlas</outputDirectory>
              <unpack>false</unpack>
              <directoryMode>755</directoryMode>
              <fileMode>644</fileMode>
          <dependencySets>
              <dependencySet>
                  <includes>
                      <include>org.apache.atlas:atlas-intg:jar:${atlas.version}</include>
                  </includes>
              </dependencySet>
          </dependencySets>
          </binaries>
          <includes>
              <include>org.apache.ranger:ranger-atlas-plugin</include>
          </includes>
      </moduleSet>

      <moduleSet>
          <binaries>
              <includeDependencies>true</includeDependencies>
              <outputDirectory>/ews/webapp/WEB-INF/classes/ranger-plugins/sqoop</outputDirectory>
              <unpack>false</unpack>
              <directoryMode>755</directoryMode>
              <fileMode>644</fileMode>
          </binaries>
          <includes>
              <include>org.apache.ranger:ranger-sqoop-plugin</include>
          </includes>
      </moduleSet>

      <moduleSet>
          <binaries>
              <includeDependencies>true</includeDependencies>
              <outputDirectory>/ews/webapp/WEB-INF/classes/ranger-plugins/kylin</outputDirectory>
              <unpack>false</unpack>
              <directoryMode>755</directoryMode>
              <fileMode>644</fileMode>
          </binaries>
          <includes>
              <include>org.apache.ranger:ranger-kylin-plugin</include>
          </includes>
      </moduleSet>

      <moduleSet>
          <binaries>
              <includeDependencies>true</includeDependencies>
              <outputDirectory>/ews/webapp/WEB-INF/classes/ranger-plugins/elasticsearch</outputDirectory>
              <unpack>false</unpack>
              <directoryMode>755</directoryMode>
              <fileMode>644</fileMode>
          </binaries>
          <includes>
              <include>org.apache.ranger:ranger-elasticsearch-plugin</include>
          </includes>
      </moduleSet>
      <moduleSet>
          <binaries>
              <includeDependencies>true</includeDependencies>
              <outputDirectory>/ews/webapp/WEB-INF/classes/ranger-plugins/presto</outputDirectory>
              <unpack>false</unpack>
              <directoryMode>755</directoryMode>
              <fileMode>644</fileMode>
              <dependencySets>
                  <dependencySet>
                      <includes>
                          <include>io.prestosql:presto-spi:jar:${presto.version}</include>
                          <include>io.prestosql:presto-jdbc:jar:${presto.version}</include>
                      </includes>
                  </dependencySet>
              </dependencySets>
          </binaries>
          <includes>
              <include>org.apache.ranger:ranger-presto-plugin</include>
          </includes>
      </moduleSet>

  </moduleSets>

  <fileSets>
	<fileSet>
		<outputDirectory>/ews</outputDirectory>
		<directory>embeddedwebserver/scripts</directory>
		<fileMode>544</fileMode>
	</fileSet>
	<fileSet>
		<outputDirectory>/ews/webapp/WEB-INF/classes/conf.dist</outputDirectory>
		<directory>embeddedwebserver/conf</directory>
		<fileMode>700</fileMode>
	</fileSet>
	<fileSet>
		<outputDirectory>/db</outputDirectory>
		<directory>security-admin/db</directory>
		<fileMode>544</fileMode>
	</fileSet>

	<fileSet>
		<outputDirectory>/contrib</outputDirectory>
		<directory>security-admin/contrib</directory>
		<fileMode>544</fileMode>
	</fileSet>

	<fileSet>
		<outputDirectory>/</outputDirectory>
		<directory>security-admin/scripts</directory>
		<includes>
			<include>install.properties</include>
		</includes>
		<fileMode>700</fileMode>
	</fileSet>
	<fileSet>
		<outputDirectory>/</outputDirectory>
		<directory>security-admin/scripts</directory>
		<includes>
			<include>setup.sh</include>
			<include>setup_authentication.sh</include>
			<include>set_globals.sh</include>
			<include>db_setup.py</include>
			<include>dba_script.py</include>
			<include>restrict_permissions.py</include>
			<include>upgrade_admin.py</include>
			<include>upgrade.sh</include>
			<include>update_property.py</include>
			<include>ranger_credential_helper.py</include>
			<include>deleteUserGroupUtil.py</include>
			<include>changepasswordutil.py</include>
                <include>changeusernameutil.py</include>
                <include>rolebasedusersearchutil.py</include>
		</includes>
		<fileMode>544</fileMode>
	</fileSet>
	<fileSet>
		<outputDirectory>/templates-upgrade</outputDirectory>
		<directory>security-admin/scripts</directory>
		<includes>
			<include>install.properties</include>
			<include>ranger-admin-site-template.xml</include>
		</includes>
	</fileSet>
	<fileSet>
		<outputDirectory>/</outputDirectory>
		<directory>security-admin</directory>
		<includes>
			<include>3rd_party_licenses.txt</include>
			<include>3rd_party_licenses_text.txt</include>
		</includes>
		<fileMode>444</fileMode>
	</fileSet>
	<fileSet>
		<outputDirectory>/</outputDirectory>
		<directory>${project.build.directory}</directory>
		<includes>
			<include>version</include>
		</includes>
		<fileMode>444</fileMode>
	</fileSet>
   <fileSet>
        <directory>security-admin/src/bin</directory>
        <outputDirectory>bin</outputDirectory>
        <fileMode>0755</fileMode>
        <directoryMode>0755</directoryMode>
    </fileSet>
  </fileSets>
</assembly>
