<?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.sentry</groupId>
    <artifactId>sentry</artifactId>
    <version>2.3.0-SNAPSHOT</version>
  </parent>

  <artifactId>sentry-binding</artifactId>
  <name>Sentry Bindings</name>
  <packaging>pom</packaging>

  <modules>
    <module>sentry-binding-kafka</module>
    <module>sentry-binding-hive-common</module>
    <module>sentry-binding-solr</module>
    <module>sentry-binding-sqoop</module>
    <module>sentry-binding-hbase-indexer</module>
    <module>sentry-binding-hive-conf</module>
    <module>sentry-binding-hive-follower</module>
    <module>sentry-binding-hive</module>
  </modules>
</project>
