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

    <moduleSets>
        <moduleSet>
            <useAllReactorProjects>true</useAllReactorProjects>
            <includes>
                <include>org.apache.ranger:ranger-kms</include>
            </includes>
            <binaries>
                <outputDirectory>ews/webapp/lib</outputDirectory>
                <includeDependencies>true</includeDependencies>
                <unpack>false</unpack>
                <includes>
                    <include>org.apache.hadoop:hadoop-common:jar:${hadoop.version}</include>
                    <include>org.apache.hadoop:hadoop-auth:jar:${hadoop.version}</include>
                    <include>org.eclipse.persistence:eclipselink</include>
                    <include>org.eclipse.persistence:javax.persistence</include>
                    <include>com.googlecode.log4jdbc:log4jdbc</include>
                    <include>log4j:log4j</include>
                    <include>org.slf4j:slf4j-api</include>
                    <include>org.slf4j:slf4j-log4j12</include>
                    <include>com.codahale.metrics:metrics-core</include>
                    <include>org.slf4j:jul-to-slf4j</include>
                    <include>commons-logging:commons-logging</include>
                    <include>com.google.guava:guava</include>
                    <include>com.sun.jersey:jersey-core</include>
                    <include>com.sun.jersey:jersey-server</include>
                    <include>javax.servlet:servlet-api</include>
                    <include>org.mortbay.jetty:jetty</include>
                    <include>org.mortbay.jetty:jetty-util</include>
                    <include>commons-collections:commons-collections</include>
                    <include>commons-lang:commons-lang</include>
                    <include>org.apache.zookeeper:zookeeper:jar:${zookeeper.version}</include>
                    <include>org.apache.curator:curator-framework</include>
                    <include>org.apache.curator:curator-client</include>
                    <include>org.apache.curator:curator-test</include>
                    <include>asm:asm-all</include>
                    <include>com.sun.jersey:jersey-bundle</include>
                    <include>org.apache.httpcomponents:httpclient</include>
                    <include>javax.activation:activation</include>
                    <include>org.apache.directory.server:apacheds-i18n</include>
                    <include>org.apache.directory.server:apacheds-kerberos-codec</include>
                    <include>org.apache.directory.api:api-asn1-api</include>
                    <include>org.apache.directory.api:api-i18n</include>
                    <include>org.apache.directory.api:api-util</include>
                    <include>org.apache.avro:avro</include>
                    <include>commons-beanutils:commons-beanutils</include>
                    <include>commons-cli:commons-cli</include>
                    <include>commons-codec:commons-codec:jar:${commons.codec.version}</include>
                    <include>org.apache.commons:commons-compress:jar:${commons.compress.version}</include>
                    <include>org.apache.commons:commons-configuration2</include>
                    <include>commons-digester:commons-digester</include>
                    <include>commons-io:commons-io</include>
                    <include>org.apache.commons:commons-math3</include>
                    <include>commons-net:commons-net:jar:${commons.net.version}</include>
                    <include>org.apache.curator:curator-recipes</include>
                    <include>com.google.code.gson:gson</include>
                    <include>org.apache.hadoop:hadoop-annotations</include>
                    <include>org.apache.htrace:htrace-core4</include>
                    <include>org.apache.httpcomponents:httpcore</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>javax.xml.bind:jaxb-api</include>
                    <include>com.sun.xml.bind:jaxb-impl</include>
                    <include>com.sun.jersey:jersey-json</include>
                    <include>org.codehaus.jettison:jettison</include>
                    <include>jline:jline</include>
                    <include>com.jcraft:jsch</include>
                    <include>com.google.code.findbugs:jsr305</include>
                    <include>io.netty:netty</include>
                    <include>com.thoughtworks.paranamer:paranamer</include>
                    <include>org.xerial.snappy:snappy-java</include>
                    <include>xmlenc:xmlenc</include>
                    <include>org.tukaani:xz</include>
                    <include>org.apache.httpcomponents:httpmime:jar:${httpcomponents.httpmime.version}</include>
                    <include>org.apache.httpcomponents:httpclient:jar:${kms.httpcomponents.httpclient.version}</include>
                    <include>org.noggit:noggit:jar:${noggit.version}</include>
                    <include>com.google.protobuf:protobuf-java:jar:${protobuf-java.version}</include>
                    <include>org.apache.hadoop:hadoop-hdfs:jar:${hadoop.version}</include>
                    <include>org.apache.htrace:htrace-core4:jar:${htrace-core.version}</include>
                    <include>org.codehaus.woodstox:stax2-api</include>
                    <include>com.fasterxml.woodstox:woodstox-core</include>
                    <include>com.fasterxml.jackson.core:jackson-core</include>
                    <include>com.fasterxml.jackson.core:jackson-annotations</include>
                    <include>com.fasterxml.jackson.core:jackson-databind</include>
                    <include>com.microsoft.azure:azure:jar:${com.microsoft.azure.version}</include>
                    <include>com.microsoft.azure:azure-keyvault:jar:${com.microsoft.azure.azure-keyvault.version}</include>
                    <include>com.microsoft.azure:azure-mgmt-keyvault:jar:${com.microsoft.azure.azure-mgmt-keyvault.version}</include>
                    <include>com.microsoft.rest:client-runtime:jar:${com.microsoft.rest.client-runtime.version}</include>
                    <include>com.microsoft.azure:azure-client-runtime:jar:${com.microsoft.azure.azure-client-runtime.version}</include>
                    <include>com.microsoft.azure:adal4j:jar:${com.microsoft.azure.adal4j.version}</include>
                    <include>io.reactivex:rxjava:jar:${io.reactivex.rxjava.version}</include>
                    <include>com.squareup.okhttp3:okhttp</include>
                    <include>com.squareup.okio:okio</include>
                    <include>com.squareup.retrofit2:retrofit</include>
                    <include>com.squareup.retrofit2:adapter-rxjava</include>
                    <include>com.squareup.okhttp3:okhttp-urlconnection</include>
                    <include>com.fasterxml.jackson.datatype:jackson-datatype-joda</include>
                    <include>joda-time:okhttp-urlconnection</include>
                    <include>joda-time:joda-time</include>
                    <include>com.nimbusds:oauth2-oidc-sdk</include>
                    <include>net.minidev:json-smart</include>
                    <include>net.minidev:asm:jar:${net.minidev.asm.version}</include>
                    <include>javax.mail:javax.mail-api</include>
                    <include>com.sun.mail:javax.mail</include>
                    <include>com.nimbusds:nimbus-jose-jwt</include>
                    <include>org.apache.commons:commons-lang3</include>
                    <include>com.microsoft.azure:azure-keyvault-webkey</include>
                    <include>org.bouncycastle:bcprov-jdk15on</include>
                    <include>org.bouncycastle:bcpkix-jdk15on</include>
                    <include>com.microsoft.azure:azure-mgmt-resources</include>
                    <include>com.microsoft.azure:azure-client-authentication</include>
                    <include>com.microsoft.azure:azure-mgmt-graph-rbac</include>
                    <include>com.microsoft.azure:azure-mgmt-storage</include>
                    <include>com.microsoft.azure:azure-mgmt-compute</include>
                    <include>com.microsoft.azure:azure-mgmt-network</include>
                    <include>com.microsoft.azure:azure-mgmt-batch</include>
                    <include>com.microsoft.azure:azure-mgmt-batchai</include>
                    <include>com.microsoft.azure:azure-mgmt-trafficmanager</include>
                    <include>com.microsoft.azure:azure-mgmt-redis</include>
                    <include>com.microsoft.azure:azure-mgmt-cdn</include>
                    <include>com.microsoft.azure:azure-mgmt-dns</include>
                    <include>com.microsoft.azure:azure-mgmt-appservice</include>
                    <include>com.microsoft.azure:azure-mgmt-sql</include>
                    <include>com.microsoft.azure:azure-mgmt-servicebus</include>
                    <include>com.microsoft.azure:azure-mgmt-containerinstance</include>
                    <include>com.microsoft.azure:azure-mgmt-containerregistry</include>
                    <include>com.microsoft.azure:azure-mgmt-containerservice</include>
                    <include>com.microsoft.azure:azure-mgmt-cosmosdb</include>
                    <include>com.microsoft.azure:azure-mgmt-search</include>
                    <include>com.microsoft.azure:azure-mgmt-locks</include>
                    <include>com.microsoft.azure:azure-mgmt-msi</include>
                    <include>com.microsoft.azure:azure-mgmt-monitor</include>
                    <include>com.microsoft.azure:azure-mgmt-eventhub</include>
                    <include>com.microsoft.azure:azure-mgmt-eventhub</include>
                    <include>com.microsoft.azure:azure-keyvault-cryptography</include>
                </includes>
            </binaries>
        </moduleSet>

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

        <moduleSet>
            <useAllReactorProjects>true</useAllReactorProjects>
            <includes>
                <include>org.apache.ranger:embeddedwebserver</include>
            </includes>
            <binaries>
                <outputDirectory>ews/webapp/WEB-INF/classes/lib</outputDirectory>
                <includeDependencies>true</includeDependencies>
                <unpack>false</unpack>
                <directoryMode>755</directoryMode>
                <fileMode>644</fileMode>
                <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>com.google.protobuf:protobuf-java:jar:${protobuf-java.version}</include>
                    <include>org.apache.hadoop:hadoop-hdfs:jar:${hadoop.version}</include>
                    <include>org.apache.htrace:htrace-core4:jar:${htrace-core.version}</include>
                    <include>org.apache.solr:solr-solrj</include>
                    <include>org.apache.ranger:ranger-plugins-common</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:credentialbuilder</include>
                    <include>org.apache.commons:commons-compress:jar:${commons.compress.version}</include>
                    <include>org.apache.commons:commons-lang3</include>
                </includes>
            </binaries>
        </moduleSet>

        <moduleSet>
            <useAllReactorProjects>true</useAllReactorProjects>
            <includes>
                <include>org.apache.ranger:jisql</include>
            </includes>
            <binaries>
                <outputDirectory>jisql/lib</outputDirectory>
                <includeDependencies>true</includeDependencies>
                <unpack>false</unpack>
                <directoryMode>755</directoryMode>
                <fileMode>644</fileMode>
                <includes>
                    <include>net.sf.jopt-simple:jopt-simple</include>
                </includes>
            </binaries>
        </moduleSet>

        <!-- Plugin -->
        <moduleSet>
            <useAllReactorProjects>true</useAllReactorProjects>
            <includes>
                <include>org.apache.ranger:ranger-kms-plugin-shim</include>
                <include>org.apache.ranger:ranger-plugin-classloader</include>
                <include>org.apache.ranger:credentialbuilder</include>
            </includes>
            <binaries>
                <outputDirectory>ews/webapp/WEB-INF/classes/lib</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-audit</include>
                <include>org.apache.ranger:ranger-plugins-cred</include>
                <include>org.apache.ranger:ranger-plugins-common</include>
                <include>org.apache.ranger:ranger-kms-plugin</include>
            </includes>
            <binaries>
                <outputDirectory>ews/webapp/WEB-INF/classes/lib/ranger-kms-plugin-impl</outputDirectory>
                <includeDependencies>true</includeDependencies>
                <unpack>false</unpack>
                <directoryMode>755</directoryMode>
                <fileMode>644</fileMode>
                <dependencySets>
                    <dependencySet>
                        <outputDirectory>ews/webapp/WEB-INF/classes/lib/ranger-kms-plugin-impl</outputDirectory>
                        <unpack>false</unpack>
                        <includes>
                            <include>org.apache.commons:commons-configuration2:jar:${commons.configuration.version}</include>
                            <include>com.google.code.gson:gson</include>
                            <include>org.eclipse.persistence:eclipselink</include>
                            <include>org.eclipse.persistence:javax.persistence</include>
                            <include>commons-collections:commons-collections</include>
                            <include>commons-logging:commons-logging:jar:${commons.logging.version}</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.apache.zookeeper:zookeeper:jar:${zookeeper.version}</include>
                            <include>org.apache.solr:solr-solrj</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.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>
                    </dependencySet>
                    <dependencySet>
                        <outputDirectory>install/lib</outputDirectory>
                        <unpack>false</unpack>
                        <directoryMode>755</directoryMode>
                        <fileMode>644</fileMode>
                        <includes>
                            <include>commons-cli:commons-cli</include>
                            <include>commons-collections:commons-collections</include>
                            <include>org.apache.commons:commons-configuration2: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>
                            <include>org.codehaus.woodstox:stax2-api</include>
                            <include>com.fasterxml.woodstox:woodstox-core</include>
                        </includes>
                    </dependencySet>
                </dependencySets>
            </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>false</includeDependencies>
                <unpack>false</unpack>
            </binaries>
        </moduleSet>
        <!-- End Plugin -->

        <moduleSet>
            <useAllReactorProjects>true</useAllReactorProjects>
            <includes>
                <include>org.apache.ranger:credentialbuilder</include>
            </includes>
            <binaries>
                <outputDirectory>cred/lib</outputDirectory>
                <includeDependencies>true</includeDependencies>
                <unpack>false</unpack>
                <directoryMode>755</directoryMode>
                <fileMode>644</fileMode>
                <includes>
                    <include>commons-cli:commons-cli</include>
                    <include>commons-collections:commons-collections</include>
                    <include>org.apache.commons:commons-configuration2</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-core4</include>
                    <include>org.codehaus.woodstox:stax2-api</include>
                    <include>com.fasterxml.woodstox:woodstox-core</include>
                    <include>org.apache.commons:commons-compress:jar:${commons.compress.version}</include>
                    <include>org.apache.commons:commons-lang3</include>
                </includes>
            </binaries>
        </moduleSet>
    </moduleSets>

    <fileSets>
        <!-- <fileSet>
            <outputDirectory>/ews/webapp/WEB-INF/classes/conf.dist</outputDirectory>
            <directory>${project.parent.basedir}/kms/config/webserver</directory>
            <fileMode>700</fileMode>
        </fileSet> -->
        <fileSet>
            <outputDirectory>db</outputDirectory>
            <directoryMode>755</directoryMode>
            <directory>${project.parent.basedir}/kms/scripts/db</directory>
            <fileMode>544</fileMode>
        </fileSet>
        <fileSet>
            <outputDirectory></outputDirectory>
            <directory>${project.parent.basedir}/kms/scripts</directory>
            <includes>
                <include>dba_script.py</include>
                <include>db_setup.py</include>
                <include>update_property.py</include>
                <include>ranger-kms-initd</include>
                <include>ranger-kms</include>
                <include>setup.sh</include>
                <include>importJCEKSKeys.sh</include>
                <include>exportKeysToJCEKS.sh</include>
                <include>HSMMK2DB.sh</include>
                <include>DBMK2HSM.sh</include>
                <include>VerifyIsDBMasterkeyCorrect.sh</include>
                <include>VerifyIsHSMMasterkeyCorrect.sh</include>
                <include>DBMKTOKEYSECURE.sh</include>
                <include>DBMKTOAZUREKEYVAULT.sh</include>
                <include>KEYSECUREMKTOKMSDB.sh</include>
            </includes>
            <fileMode>544</fileMode>
        </fileSet>
        <fileSet>
            <outputDirectory></outputDirectory>
            <directory>${project.parent.basedir}/kms/scripts</directory>
            <includes>
                <include>install.properties</include>
            </includes>
            <fileMode>700</fileMode>
        </fileSet>
        <fileSet>
            <outputDirectory>ews/webapp/WEB-INF/classes/conf.dist</outputDirectory>
            <directoryMode>0700</directoryMode>
            <directory>${project.parent.basedir}/kms/config/kms-webapp</directory>
            <fileMode>0700</fileMode>
        </fileSet>
        <fileSet>
            <outputDirectory>ews/webapp/WEB-INF/classes/conf.dist</outputDirectory>
            <directoryMode>0700</directoryMode>
            <directory>${project.parent.basedir}/kms/config/webserver</directory>
            <fileMode>0700</fileMode>
        </fileSet>
        <!-- Plugin -->
        <!-- conf.templates for enable -->
        <fileSet>
            <outputDirectory>install/conf.templates/enable</outputDirectory>
            <directory>${project.parent.basedir}/plugin-kms/conf</directory>
            <excludes>
                <exclude>*.sh</exclude>
            </excludes>
            <fileMode>700</fileMode>
        </fileSet>
        <fileSet>
            <outputDirectory>install/conf.templates/disable</outputDirectory>
            <directory>${project.parent.basedir}/plugin-kms/disable-conf</directory>
            <fileMode>700</fileMode>
        </fileSet>
        <fileSet>
            <outputDirectory>install/conf.templates/default</outputDirectory>
            <directory>${project.parent.basedir}/plugin-kms/template</directory>
            <fileMode>700</fileMode>
        </fileSet>
        <!-- version file -->
        <fileSet>
            <outputDirectory></outputDirectory>
            <directory>${project.build.directory}</directory>
            <includes>
                <include>version</include>
            </includes>
            <fileMode>444</fileMode>
        </fileSet>
    </fileSets>
    <files>
        <file>
            <source>${project.parent.basedir}/plugin-kms/scripts/enable-kms-plugin.sh</source>
            <outputDirectory></outputDirectory>
            <destName>enable-kms-plugin.sh</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>
