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

    <parent>
        <groupId>org.apache.nifi</groupId>
        <artifactId>nifi</artifactId>
        <version>1.13.2</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-kudu-bundle</module>
        <module>nifi-solr-bundle</module>
        <module>nifi-confluent-platform-bundle</module>
        <module>nifi-aws-bundle</module>
        <module>nifi-social-media-bundle</module>
        <module>nifi-enrich-bundle</module>
        <module>nifi-hl7-bundle</module>
        <module>nifi-ccda-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-media-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-lumberjack-bundle</module>
        <module>nifi-beats-bundle</module>
        <module>nifi-cassandra-bundle</module>
        <module>nifi-spring-bundle</module>
        <module>nifi-hive-bundle</module>
	<module>nifi-site-to-site-reporting-bundle</module>
        <module>nifi-mqtt-bundle</module>
        <module>nifi-evtx-bundle</module>
        <module>nifi-slack-bundle</module>
        <module>nifi-smb-bundle</module>
        <module>nifi-snmp-bundle</module>
        <module>nifi-datadog-bundle</module>
        <module>nifi-windows-event-log-bundle</module>
        <module>nifi-ignite-bundle</module>
        <module>nifi-rethinkdb-bundle</module>
        <module>nifi-influxdb-bundle</module>
        <module>nifi-graph-bundle</module>
        <module>nifi-email-bundle</module>
        <module>nifi-groovyx-bundle</module>
    	<module>nifi-ranger-bundle</module>
        <module>nifi-websocket-bundle</module>
        <module>nifi-tcp-bundle</module>
        <module>nifi-gcp-bundle</module>
        <module>nifi-registry-bundle</module>
        <module>nifi-stateful-analysis-bundle</module>
        <module>nifi-poi-bundle</module>
        <module>nifi-cdc</module>
        <module>nifi-cybersecurity-bundle</module>
        <module>nifi-parquet-bundle</module>
        <module>nifi-extension-utils</module>
        <module>nifi-redis-bundle</module>
        <module>nifi-metrics-reporting-bundle</module>
        <module>nifi-spark-bundle</module>
        <module>nifi-atlas-bundle</module>
        <module>nifi-druid-bundle</module>
        <module>nifi-jolt-record-bundle</module>
	<module>nifi-network-bundle</module>
        <module>nifi-prometheus-bundle</module>
        <module>nifi-easyrules-bundle</module>
        <module>nifi-sql-reporting-bundle</module>
	<module>nifi-rules-action-handler-bundle</module>
	<module>nifi-accumulo-bundle</module>
        <module>nifi-hazelcast-bundle</module>
    </modules>

    <build>
        <plugins>
            <!-- Makes buildRevision and buildBranch available to the NAR Plugin so they can be populated in the MANIFEST -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>buildnumber-maven-plugin</artifactId>
                <inherited>true</inherited>
                <executions>
                    <execution>
                        <phase>validate</phase>
                        <goals>
                            <goal>create</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <doCheck>false</doCheck>
                    <doUpdate>false</doUpdate>
                    <shortRevisionLength>7</shortRevisionLength>
                    <getRevisionOnlyOnce>true</getRevisionOnlyOnce>
                    <revisionOnScmFailure />
                    <buildNumberPropertyName>buildRevision</buildNumberPropertyName>
                    <scmBranchPropertyName>buildBranch</scmBranchPropertyName>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <!-- Specifies an empty buildRevision and buildBranch when building outside of a git repo -->
        <profile>
            <id>build-info-no-git</id>
            <activation>
                <activeByDefault>false</activeByDefault>
                <file>
                    <missing>../.git/HEAD</missing>
                </file>
            </activation>
            <properties>
                <buildRevision />
                <buildBranch />
            </properties>
        </profile>
        <profile>
            <id>include-grpc</id>
            <!-- This profile handles the inclusion of grpc artifacts. They are notoriously
            environment specific in terms of build such as not working in os/arch=ppc64le
            or in Centos6 due to requiring a newer version of GLIBC. -->
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <modules>
                <module>nifi-grpc-bundle</module>
            </modules>
        </profile>
    </profiles>

  <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-distributed-cache-client-service</artifactId>
                <version>1.13.2</version>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-distributed-cache-client-service-api</artifactId>
                <version>1.13.2</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-record-serialization-service-api</artifactId>
                <version>1.13.2</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-record</artifactId>
                <version>1.13.2</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-schema-registry-service-api</artifactId>
                <version>1.13.2</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-ssl-context-service-api</artifactId>
                <version>1.13.2</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-security-utils-api</artifactId>
                <version>1.13.2</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-load-distribution-service-api</artifactId>
                <version>1.13.2</version>
                <scope>provided</scope>
            </dependency>
             <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-http-context-map-api</artifactId>
                <version>1.13.2</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-lookup-service-api</artifactId>
                <version>1.13.2</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-kerberos-credentials-service-api</artifactId>
                <version>1.13.2</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-mongodb-client-service-api</artifactId>
                <version>1.13.2</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-record-sink-api</artifactId>
                <version>1.13.2</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-distributed-cache-protocol</artifactId>
                <version>1.13.2</version>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-distributed-cache-server</artifactId>
                <version>1.13.2</version>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-ssl-context-service</artifactId>
                <version>1.13.2</version>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-http-context-map</artifactId>
                <version>1.13.2</version>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-proxy-configuration-api</artifactId>
                <version>1.13.2</version>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-cassandra-services-api</artifactId>
                <version>1.13.2</version>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-volatile-provenance-repository</artifactId>
                <version>1.13.2</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-mock</artifactId>
                <version>1.13.2</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-mock-record-utils</artifactId>
                <version>1.13.2</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>1.13.2</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-framework-api</artifactId>
                <version>1.13.2</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-server-api</artifactId>
                <version>1.13.2</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-runtime</artifactId>
                <version>1.13.2</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-nar-utils</artifactId>
                <version>1.13.2</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-properties</artifactId>
                <version>1.13.2</version>
                <scope>provided</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>
