<?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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.apache.nifi</groupId>
        <artifactId>nifi</artifactId>
        <version>0.6.0</version>
    </parent>
    <groupId>org.apache.nifi</groupId>
    <artifactId>nifi-nar-bundles</artifactId>
    <packaging>pom</packaging>
    <modules>
        <module>nifi-framework-bundle</module>
        <module>nifi-hadoop-bundle</module>
        <module>nifi-hadoop-libraries-bundle</module>
        <module>nifi-jetty-bundle</module>
        <module>nifi-provenance-repository-bundle</module>
        <module>nifi-standard-bundle</module>
        <module>nifi-standard-services</module>
        <module>nifi-update-attribute-bundle</module>
        <module>nifi-kafka-bundle</module>
        <module>nifi-kite-bundle</module>
        <module>nifi-solr-bundle</module>
        <module>nifi-aws-bundle</module>
        <module>nifi-social-media-bundle</module>
        <module>nifi-geo-bundle</module>
        <module>nifi-hl7-bundle</module>
        <module>nifi-language-translation-bundle</module>
        <module>nifi-mongodb-bundle</module>
        <module>nifi-flume-bundle</module>
        <module>nifi-hbase-bundle</module>
        <module>nifi-ambari-bundle</module>
        <module>nifi-image-bundle</module>
        <module>nifi-avro-bundle</module>
        <module>nifi-couchbase-bundle</module>
        <module>nifi-azure-bundle</module>
        <module>nifi-ldap-iaa-providers-bundle</module>
        <module>nifi-kerberos-iaa-providers-bundle</module>
        <module>nifi-riemann-bundle</module>
        <module>nifi-html-bundle</module>
        <module>nifi-scripting-bundle</module>
        <module>nifi-elasticsearch-bundle</module>
        <module>nifi-amqp-bundle</module>
	    <module>nifi-splunk-bundle</module>
        <module>nifi-jms-bundle</module>
        <module>nifi-cassandra-bundle</module>
        <module>nifi-spring-bundle</module>
    </modules>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-distributed-cache-client-service</artifactId>
                <version>0.6.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-distributed-cache-client-service-api</artifactId>
                <version>0.6.0</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-ssl-context-service-api</artifactId>
                <version>0.6.0</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-load-distribution-service-api</artifactId>
                <version>0.6.0</version>
                <scope>provided</scope>
            </dependency>
             <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-http-context-map-api</artifactId>
                <version>0.6.0</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-distributed-cache-protocol</artifactId>
                <version>0.6.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-distributed-cache-server</artifactId>
                <version>0.6.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-ssl-context-service</artifactId>
                <version>0.6.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-http-context-map</artifactId>
                <version>0.6.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-volatile-provenance-repository</artifactId>
                <version>0.6.0</version>
                <scope>test</scope>
            </dependency>
            <!-- The following dependencies are marked provided because they must be provided by the container.  Nars can assume they are there-->
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-api</artifactId>
                <version>0.6.0</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-runtime</artifactId>
                <version>0.6.0</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-nar-utils</artifactId>
                <version>0.6.0</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-properties</artifactId>
                <version>0.6.0</version>
                <scope>provided</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>
