<?xml version="1.0"?>

<!--
  ~ 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 xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.1 http://maven.apache.org/xsd/assembly-1.1.1.xsd">
  <id>collector</id>
  <formats>
    <format>dir</format>
    <format>tar.gz</format>
  </formats>

  <fileSets>
    <fileSet>
      <directory>${collector.dir}/target/embedded/${hbase.folder}</directory>
      <outputDirectory>hbase</outputDirectory>
    </fileSet>
    <fileSet>
      <directory>${collector.dir}/conf/unix</directory>
      <outputDirectory>bin</outputDirectory>
      <includes>
        <include>ambari-metrics-collector</include>
      </includes>
    </fileSet>
    <fileSet>
      <directory>${collector.dir}/conf/unix</directory>
      <outputDirectory>conf</outputDirectory>
      <includes>
        <include>ams-env.sh</include>
        <include>ams-site.xml</include>
        <include>hbase-site.xml</include>
        <include>log4j.properties</include>
        <include>metrics_whitelist</include>
        <include>amshbase_metrics_whitelist</include>
      </includes>
    </fileSet>
    <fileSet>
      <directory>${collector.dir}/target/lib</directory>
      <outputDirectory>lib</outputDirectory>
    </fileSet>
    <fileSet>
      <directory>${project.build.directory}/embedded/${hadoop.folder}/lib/native</directory>
      <outputDirectory>hbase/lib/hadoop-native</outputDirectory>
    </fileSet>
  </fileSets>

  <dependencySets>
    <dependencySet>
      <fileMode>755</fileMode>
      <unpack>false</unpack>
      <outputDirectory>hbase/lib</outputDirectory>
      <useProjectArtifact>false</useProjectArtifact>
      <includes>
        <include>org.antlr:antlr*</include>
        <include>org.apache.phoenix:phoenix-core</include>
      </includes>
    </dependencySet>
    <dependencySet>
      <fileMode>755</fileMode>
      <unpack>false</unpack>
      <outputDirectory>lib</outputDirectory>
      <useProjectArtifact>false</useProjectArtifact>
      <includes>
        <include>org.apache.ambari:ambari-metrics-timelineservice</include>
      </includes>
    </dependencySet>
  </dependencySets>

</assembly>
