<?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-toolkit</artifactId>
        <version>1.19.1</version>
    </parent>
    <artifactId>nifi-toolkit-assembly</artifactId>
    <packaging>pom</packaging>
    <description>This is the assembly for the Apache NiFi Toolkit</description>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.rat</groupId>
                <artifactId>apache-rat-plugin</artifactId>
                <configuration>
                    <excludes combine.children="append">
                        <exclude>src/main/resources/conf/config-client.json</exclude>
                        <exclude>src/main/resources/conf/config-server.json</exclude>
                        <exclude>docker/tests/tls-toolkit.sh</exclude>
                        <exclude>docker/tests/exit-codes.sh</exclude>
                    </excludes>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <finalName>nifi-toolkit-${project.version}</finalName>
                </configuration>
                <executions>
                    <execution>
                        <id>make shared resource</id>
                        <goals>
                            <goal>single</goal>
                        </goals>
                        <phase>package</phase>
                        <configuration>
                            <archiverConfig>
                                <defaultDirectoryMode>0755</defaultDirectoryMode>
                                <directoryMode>0755</directoryMode>
                                <fileMode>0644</fileMode>
                            </archiverConfig>
                            <descriptors>
                                <descriptor>src/main/assembly/dependencies.xml</descriptor>
                            </descriptors>
                            <tarLongFileMode>posix</tarLongFileMode>
                            <formats>zip</formats>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    <dependencies>
        <dependency>
            <groupId>org.apache.nifi</groupId>
            <artifactId>nifi-toolkit-tls</artifactId>
            <version>1.19.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.nifi</groupId>
            <artifactId>nifi-toolkit-encrypt-config</artifactId>
            <version>1.19.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.nifi</groupId>
            <artifactId>nifi-toolkit-s2s</artifactId>
            <version>1.19.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.nifi</groupId>
            <artifactId>nifi-toolkit-admin</artifactId>
            <version>1.19.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.nifi</groupId>
            <artifactId>nifi-toolkit-zookeeper-migrator</artifactId>
            <version>1.19.1</version>
        </dependency>
          <dependency>
            <groupId>org.apache.nifi</groupId>
            <artifactId>nifi-toolkit-flowanalyzer</artifactId>
            <version>1.19.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.nifi</groupId>
            <artifactId>nifi-toolkit-cli</artifactId>
            <version>1.19.1</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-server</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <scope>compile</scope>
        </dependency>

        <!-- dependencies for jaxb/activation/annotation for running NiFi on Java 11 -->
        <!-- TODO: remove these once minimum Java version is 11 -->
        <dependency>
            <groupId>jakarta.xml.bind</groupId>
            <artifactId>jakarta.xml.bind-api</artifactId>
            <version>${jakarta.xml.bind-api.version}</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jaxb</groupId>
            <artifactId>jaxb-runtime</artifactId>
            <version>${jaxb.runtime.version}</version>
        </dependency>
        <dependency>
            <groupId>javax.annotation</groupId>
            <artifactId>javax.annotation-api</artifactId>
            <version>1.3.2</version>
        </dependency>
    </dependencies>


    <profiles>
        <profile>
            <id>docker</id>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-resources-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>copy-resources</id>
                                <phase>validate</phase>
                                <goals>
                                    <goal>copy-resources</goal>
                                </goals>
                                <configuration>
                                    <outputDirectory>${project.basedir}/target/docker-build</outputDirectory>
                                    <resources>
                                        <resource>
                                            <directory>docker</directory>
                                            <filtering>true</filtering>
                                            <includes>
                                                <include>Dockerfile</include>
                                                <include>**/sh/*.sh</include>
                                            </includes>
                                        </resource>
                                    </resources>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <!-- Copy generated artifact to nifi-docker -->
                    <plugin>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <version>1.8</version>
                        <executions>
                            <execution>
                                <id>copy-for-docker</id>
                                <phase>package</phase>
                                <configuration>
                                    <target name="copy assembly to docker for image build">
                                        <copy todir="${project.basedir}/target/docker-build" overwrite="true" flatten="true">
                                            <fileset dir="${project.basedir}/target" includes="*.zip">
                                                <include name="*.zip" />
                                            </fileset>
                                        </copy>
                                    </target>
                                </configuration>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>com.spotify</groupId>
                        <artifactId>dockerfile-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <configuration>
                                    <contextDirectory>./target/docker-build</contextDirectory>
                                    <buildArgs>
                                        <UID>1000</UID>
                                        <GID>1000</GID>
                                        <NIFI_TOOLKIT_VERSION>${project.version}</NIFI_TOOLKIT_VERSION>
                                    </buildArgs>
                                    <repository>apache/nifi-toolkit</repository>
                                    <tag>${project.version}</tag>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <artifactId>exec-maven-plugin</artifactId>
                        <groupId>org.codehaus.mojo</groupId>
                        <executions>
                            <execution>
                                <id>Docker integration tests - exit codes</id>
                                <phase>integration-test</phase>
                                <goals>
                                    <goal>exec</goal>
                                </goals>
                                <configuration>
                                    <arguments>
                                        <argument>${project.version}</argument>
                                    </arguments>
                                    <executable>${project.basedir}/docker/tests/exit-codes.sh</executable>
                                </configuration>
                            </execution>
                            <execution>
                                <id>Docker integration tests - tls-toolkit</id>
                                <phase>integration-test</phase>
                                <goals>
                                    <goal>exec</goal>
                                </goals>
                                <configuration>
                                    <arguments>
                                        <argument>${project.version}</argument>
                                    </arguments>
                                    <executable>${project.basedir}/docker/tests/tls-toolkit.sh</executable>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>docker-skip-tests</id>
            <activation>
                <property>
                    <name>skipTests</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>exec-maven-plugin</artifactId>
                        <groupId>org.codehaus.mojo</groupId>
                        <executions>
                            <execution>
                                <id>Docker integration tests - exit codes</id>
                                <phase>none</phase>
                            </execution>
                            <execution>
                                <id>Docker integration tests - tls-toolkit</id>
                                <phase>none</phase>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>docker-test-skip-test</id>
            <activation>
                <property>
                    <name>maven.test.skip</name>
                    <value>true</value>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>exec-maven-plugin</artifactId>
                        <groupId>org.codehaus.mojo</groupId>
                        <executions>
                            <execution>
                                <id>Docker integration tests - exit codes</id>
                                <phase>none</phase>
                            </execution>
                            <execution>
                                <id>Docker integration tests - tls-toolkit</id>
                                <phase>none</phase>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>rpm</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>rpm-maven-plugin</artifactId>
                        <configuration>
                            <name>nifi-toolkit</name>
                            <summary>Apache NiFi Toolkit</summary>
                            <description>The NiFi Toolkit contains several command line utilities to setup and support NiFi in standalone and clustered environments.</description>
                            <license>Apache License, Version 2.0 and others (see included LICENSE file)</license>
                            <url>https://nifi.apache.org/docs/nifi-docs/html/toolkit-guide.html</url>
                            <group>Utilities</group>
                            <prefix>/opt/nifi</prefix>
                            <defineStatements>
                                <defineStatement>_use_internal_dependency_generator 0</defineStatement>
                            </defineStatements>
                            <defaultDirmode>750</defaultDirmode>
                            <defaultFilemode>640</defaultFilemode>
                            <defaultUsername>nifi</defaultUsername>
                            <defaultGroupname>nifi</defaultGroupname>
                        </configuration>
                        <executions>
                            <execution>
                                <id>build-bin-rpm</id>
                                <goals>
                                    <goal>attached-rpm</goal>
                                </goals>
                                <configuration>
                                    <classifier>bin</classifier>
                                    <provides>
                                        <provide>nifi</provide>
                                    </provides>
                                    <mappings>
                                        <mapping>
                                            <directory>/opt/nifi</directory>
                                        </mapping>
                                        <mapping>
                                            <directory>/opt/nifi/nifi-toolkit-${project.version}</directory>
                                        </mapping>
                                        <mapping>
                                            <directory>/opt/nifi/nifi-toolkit-${project.version}</directory>
                                            <sources>
                                                <source>
                                                    <location>${project.build.directory}/nifi-toolkit-${project.version}-bin/nifi-toolkit-${project.version}/LICENSE</location>
                                                </source>
                                                <source>
                                                    <location>${project.build.directory}/nifi-toolkit-${project.version}-bin/nifi-toolkit-${project.version}/NOTICE</location>
                                                </source>
                                            </sources>
                                        </mapping>
                                        <mapping>
                                            <directory>/opt/nifi/nifi-toolkit-${project.version}/bin</directory>
                                            <filemode>750</filemode>
                                            <sources>
                                                <source>
                                                    <location>${project.build.directory}/nifi-toolkit-${project.version}-bin/nifi-toolkit-${project.version}/bin</location>
                                                </source>
                                            </sources>
                                        </mapping>
                                        <mapping>
                                            <directory>/opt/nifi/nifi-toolkit-${project.version}/classpath</directory>
                                            <sources>
                                                <source>
                                                    <location>${project.build.directory}/nifi-toolkit-${project.version}-bin/nifi-toolkit-${project.version}/classpath</location>
                                                </source>
                                            </sources>
                                        </mapping>
                                        <mapping>
                                            <directory>/opt/nifi/nifi-toolkit-${project.version}/conf</directory>
                                            <configuration>true</configuration>
                                            <sources>
                                                <source>
                                                    <location>${project.build.directory}/nifi-toolkit-${project.version}-bin/nifi-toolkit-${project.version}/conf</location>
                                                    <filter>true</filter>
                                                </source>
                                            </sources>
                                        </mapping>
                                        <mapping>
                                            <directory>/opt/nifi/nifi-toolkit-${project.version}/lib</directory>
                                            <sources>
                                                <source>
                                                    <location>${project.build.directory}/nifi-toolkit-${project.version}-bin/nifi-toolkit-${project.version}/lib</location>
                                                </source>
                                            </sources>
                                        </mapping>
                                    </mappings>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>targz</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <build>
            <plugins>
                <plugin>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <configuration>
                        <finalName>nifi-toolkit-${project.version}</finalName>
                    </configuration>
                    <executions>
                        <execution>
                            <id>make shared resource</id>
                            <goals>
                                <goal>single</goal>
                            </goals>
                            <phase>package</phase>
                            <configuration>
                                <archiverConfig>
                                    <defaultDirectoryMode>0755</defaultDirectoryMode>
                                    <directoryMode>0755</directoryMode>
                                    <fileMode>0644</fileMode>
                                </archiverConfig>
                                <descriptors>
                                    <descriptor>src/main/assembly/dependencies.xml</descriptor>
                                </descriptors>
                                <tarLongFileMode>posix</tarLongFileMode>
                                <formats>tar.gz</formats>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
            </build>
        </profile>
        <profile>
            <id>dir-only</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <configuration>
                            <finalName>nifi-toolkit-${project.version}</finalName>
                        </configuration>
                        <executions>
                            <execution>
                                <id>make shared resource</id>
                                <goals>
                                    <goal>single</goal>
                                </goals>
                                <phase>package</phase>
                                <configuration>
                                    <archiverConfig>
                                        <defaultDirectoryMode>0755</defaultDirectoryMode>
                                        <directoryMode>0755</directoryMode>
                                        <fileMode>0644</fileMode>
                                    </archiverConfig>
                                    <descriptors>
                                        <descriptor>src/main/assembly/dependencies.xml</descriptor>
                                    </descriptors>
                                    <formats>dir</formats>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>
