<?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-framework-bundle</artifactId>
        <version>1.9.0</version>
    </parent>
    <artifactId>nifi-framework</artifactId>
    <packaging>pom</packaging>
    <modules>
        <module>nifi-framework-core-api</module>
        <module>nifi-client-dto</module>
        <module>nifi-nar-utils</module>
        <module>nifi-runtime</module>
        <module>nifi-security</module>
        <module>nifi-site-to-site</module>
        <module>nifi-repository-models</module>
        <module>nifi-flowfile-repo-serialization</module>
        <module>nifi-framework-core</module>
        <module>nifi-framework-cluster-protocol</module>
        <module>nifi-framework-cluster</module>
        <module>nifi-framework-nar-utils</module>
        <module>nifi-framework-nar-loading-utils</module>
	<module>nifi-user-actions</module>
        <module>nifi-framework-authorization</module>
        <module>nifi-file-authorizer</module>
        <module>nifi-administration</module>
        <module>nifi-web</module>
        <module>nifi-resources</module>
        <module>nifi-documentation</module>
        <module>nifi-authorizer</module>
        <module>nifi-properties-loader</module>
        <module>nifi-standard-prioritizers</module>
        <module>nifi-mock-authorizer</module>
    </modules>
    <dependencies>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </dependency>
    </dependencies>
</project>
