<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed 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. See accompanying LICENSE file.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-project</artifactId>
    <version>3.4.0-SNAPSHOT</version>
    <relativePath>../hadoop-project</relativePath>
  </parent>
  <artifactId>hadoop-client-modules</artifactId>
  <packaging>pom</packaging>
  <description>multi-module for Apache Hadoop client artifacts</description>
  <name>Apache Hadoop Client Modules</name>

  <modules>
    <!-- Left as an empty artifact w/dep for compat -->
    <module>hadoop-client</module>
    <!-- Should be used at compile scope for access to IA.Public classes -->
    <module>hadoop-client-api</module>
    <!-- Should be used at runtime scope for remaining classes necessary for hadoop-client-api to function -->
    <module>hadoop-client-runtime</module>
    <!-- Should be used at test scope for those that need access to mini cluster that works with above api and runtime -->
    <module>hadoop-client-minicluster</module>
    <!-- Checks invariants above -->
    <module>hadoop-client-check-invariants</module>
    <module>hadoop-client-check-test-invariants</module>
    <!-- Attempt to use the created libraries -->
    <module>hadoop-client-integration-tests</module>
  </modules>

</project>
