<?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>
        <format>zip</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</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:ranger-plugins-cred</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>
                        </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>
                </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>
