<?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:${hive.thrift.version}</include>
              <include>org.apache.thrift:libthrift:jar:${hive.thrift.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.htrace:htrace-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/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-configuration:commons-configuration</include>
                    <include>commons-lang:commons-lang</include>
		    <include>commons-io:commons-io</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-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-core</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>

  </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>
