<?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>hadoop-sink</id>
  <formats>
    <format>dir</format>
    <format>zip</format>
  </formats>
  <includeBaseDirectory>false</includeBaseDirectory>
  <fileSets>
    <fileSet>
      <directory>${hadoop-sink.dir}/src/main/conf</directory>
      <outputDirectory>hadoop-sink/conf</outputDirectory>
    </fileSet>
    <fileSet>
      <directory>${flume-sink.dir}/src/main/conf</directory>
      <outputDirectory>hadoop-sink/conf</outputDirectory>
    </fileSet>
    <fileSet>
      <directory>${storm-sink.dir}/src/main/conf</directory>
      <outputDirectory>hadoop-sink/conf</outputDirectory>
    </fileSet>
    <fileSet>
      <directory>${storm-sink-legacy.dir}/src/main/conf</directory>
      <outputDirectory>hadoop-sink/conf</outputDirectory>
    </fileSet>
    <fileSet>
      <directory>${kafka-sink.dir}/target/lib</directory>
      <outputDirectory>hadoop-sink/lib</outputDirectory>
    </fileSet>
  </fileSets>

  <files>
    <file>
      <source>${hadoop-sink.dir}/target/ambari-metrics-hadoop-sink-with-common-${project.version}.jar</source>
      <outputDirectory>hadoop-sink</outputDirectory>
    </file>
    <file>
      <source>${flume-sink.dir}/target/ambari-metrics-flume-sink-with-common-${project.version}.jar</source>
      <outputDirectory>hadoop-sink</outputDirectory>
    </file>
    <file>
      <source>${storm-sink.dir}/target/ambari-metrics-storm-sink-with-common-${project.version}.jar</source>
      <outputDirectory>hadoop-sink</outputDirectory>
    </file>
    <file>
      <source>${storm-sink-legacy.dir}/target/ambari-metrics-storm-sink-legacy-with-common-${project.version}.jar</source>
      <outputDirectory>hadoop-sink</outputDirectory>
    </file>
    <file>
      <source>${kafka-sink.dir}/target/ambari-metrics-kafka-sink-with-common-${project.version}.jar</source>
      <outputDirectory>hadoop-sink</outputDirectory>
    </file>
  </files>




</assembly>
