<?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.name}-${project.version}-kms</baseDirectory>
    <includeBaseDirectory>true</includeBaseDirectory>

    <moduleSets>
        <moduleSet>
            <binaries>
                <includeDependencies>false</includeDependencies>
                <unpack>false</unpack>
                <outputDirectory>/ews/webapp/lib</outputDirectory>
                <dependencySets>
                    <dependencySet>
                        <outputDirectory>/ews/webapp/lib</outputDirectory>
                        <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</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</include>
                            <include>org.apache.commons:commons-compress</include>
                            <include>commons-configuration:commons-configuration</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</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-core</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-core:jar:${htrace-core.version}</include>
                        </includes>
                    </dependencySet>
                </dependencySets>
            </binaries>
            <includes>
                <include>org.apache.ranger:ranger-kms</include>
            </includes>
        </moduleSet>

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

        <moduleSet>
            <binaries>
                <includeDependencies>false</includeDependencies>
                <outputDirectory>/ews/webapp/WEB-INF/classes/lib</outputDirectory>
                <unpack>false</unpack>
                <directoryMode>755</directoryMode>
                <fileMode>644</fileMode>
                <dependencySets>
                    <dependencySet>
                        <outputDirectory>/ews/webapp/WEB-INF/classes/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>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-core:jar:${htrace-core.version}</include>
                            <include>org.apache.solr:solr-solrj</include>
                            <include>org.apache.ranger:ranger-plugins-common</include>
                        </includes>
                        <unpack>false</unpack>
                    </dependencySet>
                </dependencySets>
            </binaries>
            <includes>
                <include>org.apache.ranger:embeddedwebserver</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>
        <!-- Plugin -->
        <moduleSet>
            <binaries>
                <includeDependencies>false</includeDependencies>
                <unpack>false</unpack>
                <directoryMode>755</directoryMode>
                <fileMode>644</fileMode>
                <outputDirectory>/ews/webapp/WEB-INF/classes/lib</outputDirectory>
            </binaries>
            <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>
        </moduleSet>
        <moduleSet>
            <binaries>
                <includeDependencies>false</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>commons-configuration:commons-configuration:jar:${commons.pool.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:${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>
                        </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>commons-configuration:commons-configuration:jar:${commons.pool.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:${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>
                    </dependencySet>
                </dependencySets>
                <outputDirectory>/ews/webapp/WEB-INF/classes/lib/ranger-kms-plugin-impl</outputDirectory>
            </binaries>
            <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>
        </moduleSet>
        <moduleSet>
            <binaries>
                <includeDependencies>false</includeDependencies>
                <outputDirectory>/install/lib</outputDirectory>
                <unpack>false</unpack>
            </binaries>
            <includes>
                <include>org.apache.ranger:ranger-plugins-installer</include>
                <include>org.apache.ranger:credentialbuilder</include>
            </includes>
        </moduleSet>
        <!-- End Plugin -->
        <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>
    </moduleSets>

    <fileSets>
        <!-- <fileSet>
            <outputDirectory>/ews/webapp/WEB-INF/classes/conf.dist</outputDirectory>
            <directory>kms/config/webserver</directory>
            <fileMode>700</fileMode>
        </fileSet> -->
        <fileSet>
            <outputDirectory>/db</outputDirectory>
            <directoryMode>755</directoryMode>
            <directory>kms/scripts/db</directory>
            <fileMode>544</fileMode>
        </fileSet>
        <fileSet>
            <outputDirectory>/</outputDirectory>
            <directory>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>install.properties</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>
            </includes>
            <fileMode>544</fileMode>
        </fileSet>
        <fileSet>
            <outputDirectory>/ews/webapp/WEB-INF/classes/conf.dist</outputDirectory>
            <directoryMode>0700</directoryMode>
            <directory>kms/config/kms-webapp</directory>
            <fileMode>0700</fileMode>
        </fileSet>
        <fileSet>
            <outputDirectory>/ews/webapp/WEB-INF/classes/conf.dist</outputDirectory>
            <directoryMode>0700</directoryMode>
            <directory>kms/config/webserver</directory>
            <fileMode>0700</fileMode>
        </fileSet>
        <!-- Plugin -->
        <!-- conf.templates for enable -->
        <fileSet>
            <outputDirectory>/install/conf.templates/enable</outputDirectory>
            <directory>plugin-kms/conf</directory>
            <excludes>
                <exclude>*.sh</exclude>
            </excludes>
            <fileMode>700</fileMode>
        </fileSet>
        <fileSet>
            <outputDirectory>/install/conf.templates/disable</outputDirectory>
            <directory>plugin-kms/disable-conf</directory>
            <fileMode>700</fileMode>
        </fileSet>
        <fileSet>
            <outputDirectory>/install/conf.templates/default</outputDirectory>
            <directory>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>plugin-kms/scripts/enable-kms-plugin.sh</source>
            <outputDirectory>/</outputDirectory>
            <destName>enable-kms-plugin.sh</destName>
            <fileMode>755</fileMode>
        </file>
        <file>
            <source>security-admin/scripts/ranger_credential_helper.py</source>
            <outputDirectory>/</outputDirectory>
            <fileMode>755</fileMode>
        </file>
    </files>
</assembly>
