<?xml version="1.0"?>
<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">
<!--
/**
 * 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.
 */
-->
  <id>src</id>
  <formats>
    <format>tar.gz</format>
  </formats>
  <moduleSets>
    <moduleSet>
      <useAllReactorProjects>true</useAllReactorProjects>
      <includes>
        <include>org.apache.hbase.thirdparty:hbase-shaded-protobuf</include>
        <include>org.apache.hbase.thirdparty:hbase-shaded-netty</include>
        <include>org.apache.hbase.thirdparty:hbase-shaded-miscellaneous</include>
      </includes>
      <!-- Include all the sources in the top directory -->
      <sources>
        <excludeSubModuleDirectories>false</excludeSubModuleDirectories>
        <fileSets>
          <fileSet>
            <includes>
              <include>**</include>
            </includes>
            <!--Make sure this excludes is same as the hbase-hadoop2-compat
                 excludes below-->
            <excludes>
              <exclude>target/</exclude>
              <exclude>test/</exclude>
              <exclude>.classpath</exclude>
              <exclude>.project</exclude>
              <exclude>.settings/</exclude>
            </excludes>
          </fileSet>
        </fileSets>
      </sources>
    </moduleSet>
  </moduleSets>
  <fileSets>
    <fileSet>
      <directory>${project.basedir}/src</directory>
      <outputDirectory>src</outputDirectory>
      <fileMode>0644</fileMode>
      <directoryMode>0755</directoryMode>
    </fileSet>
    <fileSet>
      <directory>${project.basedir}</directory>
      <outputDirectory>.</outputDirectory>
      <includes>
        <include>pom.xml</include>
        <include>LICENSE.txt</include>
        <include>NOTICE.txt</include>
        <include>CHANGES.md</include>
        <include>RELEASENOTES.md</include>
        <include>README.txt</include>
      </includes>
      <fileMode>0644</fileMode>
    </fileSet>
  </fileSets>
</assembly>
