<?xml version="1.0"?>
<!--
  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-nar-bundles</artifactId>
        <version>1.11.3-SNAPSHOT</version>
    </parent>
    <artifactId>nifi-update-attribute-bundle</artifactId>
    <packaging>pom</packaging>
    <modules>
        <module>nifi-update-attribute-model</module>
        <module>nifi-update-attribute-processor</module>
        <module>nifi-update-attribute-ui</module>
        <module>nifi-update-attribute-nar</module>
    </modules>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-update-attribute-model</artifactId>
                <version>1.11.3-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-update-attribute-processor</artifactId>
                <version>1.11.3-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-update-attribute-ui</artifactId>
                <type>war</type>
                <version>1.11.3-SNAPSHOT</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>
