<?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.
-->
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.apache</groupId>
    <artifactId>sqoop</artifactId>
    <version>2.0.0-SNAPSHOT</version>
  </parent>

  <groupId>org.apache.sqoop</groupId>
  <artifactId>connector</artifactId>
  <name>Sqoop Connectors</name>
  <packaging>pom</packaging>

  <modules>
    <module>connector-sdk</module>
    <module>connector-sdk-hadoop</module>
    <module>connector-generic-jdbc</module>
    <module>connector-hdfs</module>
    <module>connector-kite</module>
    <module>connector-kafka</module>
    <module>connector-ftp</module>
    <module>connector-sftp</module>
    <module>connector-oracle-jdbc</module>
    <!-- Uncomment and finish connectors after sqoop framework will become stable
    <module>connector-mysql-jdbc</module>
    <module>connector-mysql-fastpath</module>
    -->
  </modules>

</project>
