<?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-framework</artifactId>
        <version>1.11.2</version>
    </parent>
    <artifactId>nifi-resources</artifactId>
    <packaging>pom</packaging>
    <description>holds common resources used to build installers</description>
    <properties>
        <!--Wrapper Properties -->
        <nifi.jvm.heap.init>512m</nifi.jvm.heap.init>
        <nifi.jvm.heap.max>512m</nifi.jvm.heap.max>
        <nifi.run.as />
        <!-- nifi.properties: core properties -->
        <nifi.flowcontroller.autoResumeState>true</nifi.flowcontroller.autoResumeState>
        <nifi.flowcontroller.graceful.shutdown.period>10 sec</nifi.flowcontroller.graceful.shutdown.period>
        <nifi.flowservice.writedelay.interval>500 ms</nifi.flowservice.writedelay.interval>
        <nifi.administrative.yield.duration>30 sec</nifi.administrative.yield.duration>
        <nifi.bored.yield.duration>10 millis</nifi.bored.yield.duration>
        <nifi.queue.backpressure.count>10000</nifi.queue.backpressure.count>
        <nifi.queue.backpressure.size>1 GB</nifi.queue.backpressure.size>

        <nifi.flow.configuration.file>./conf/flow.xml.gz</nifi.flow.configuration.file>
        <nifi.flow.configuration.archive.enabled>true</nifi.flow.configuration.archive.enabled>
        <nifi.flow.configuration.archive.dir>./conf/archive/</nifi.flow.configuration.archive.dir>
        <nifi.flow.configuration.archive.max.time>30 days</nifi.flow.configuration.archive.max.time>
        <nifi.flow.configuration.archive.max.storage>500 MB</nifi.flow.configuration.archive.max.storage>
        <nifi.login.identity.provider.configuration.file>./conf/login-identity-providers.xml</nifi.login.identity.provider.configuration.file>
        <nifi.authorizer.configuration.file>./conf/authorizers.xml</nifi.authorizer.configuration.file>
        <nifi.templates.directory>./conf/templates</nifi.templates.directory>
        <nifi.database.directory>./database_repository</nifi.database.directory>

        <nifi.state.management.configuration.file>./conf/state-management.xml</nifi.state.management.configuration.file>
        <nifi.state.management.embedded.zookeeper.start>false</nifi.state.management.embedded.zookeeper.start>
        <nifi.state.management.embedded.zookeeper.properties>./conf/zookeeper.properties</nifi.state.management.embedded.zookeeper.properties>
        <nifi.state.management.provider.local>local-provider</nifi.state.management.provider.local>
        <nifi.state.management.provider.cluster>zk-provider</nifi.state.management.provider.cluster>

        <nifi.flowfile.repository.implementation>org.apache.nifi.controller.repository.WriteAheadFlowFileRepository</nifi.flowfile.repository.implementation>
        <nifi.flowfile.repository.wal.implementation>org.apache.nifi.wali.SequentialAccessWriteAheadLog</nifi.flowfile.repository.wal.implementation>
        <nifi.flowfile.repository.directory>./flowfile_repository</nifi.flowfile.repository.directory>
        <nifi.flowfile.repository.partitions>256</nifi.flowfile.repository.partitions>
        <nifi.flowfile.repository.checkpoint.interval>2 mins</nifi.flowfile.repository.checkpoint.interval>
        <nifi.flowfile.repository.always.sync>false</nifi.flowfile.repository.always.sync>
        <nifi.flowfile.repository.encryption.key.provider.implementation />
        <nifi.flowfile.repository.encryption.key.provider.location />
        <nifi.flowfile.repository.encryption.key.id />
        <nifi.flowfile.repository.encryption.key />
        <nifi.swap.manager.implementation>org.apache.nifi.controller.FileSystemSwapManager</nifi.swap.manager.implementation>
        <nifi.queue.swap.threshold>20000</nifi.queue.swap.threshold>
        <nifi.swap.in.period>5 sec</nifi.swap.in.period>
        <nifi.swap.in.threads>1</nifi.swap.in.threads>
        <nifi.swap.out.period>5 sec</nifi.swap.out.period>
        <nifi.swap.out.threads>4</nifi.swap.out.threads>

        <nifi.content.repository.implementation>org.apache.nifi.controller.repository.FileSystemRepository</nifi.content.repository.implementation>
        <nifi.content.claim.max.appendable.size>1 MB</nifi.content.claim.max.appendable.size>
        <nifi.content.claim.max.flow.files>100</nifi.content.claim.max.flow.files>
        <nifi.content.repository.directory.default>./content_repository</nifi.content.repository.directory.default>
        <nifi.content.repository.archive.max.retention.period>12 hours</nifi.content.repository.archive.max.retention.period>
        <nifi.content.repository.archive.max.usage.percentage>50%</nifi.content.repository.archive.max.usage.percentage>
        <nifi.content.repository.archive.enabled>true</nifi.content.repository.archive.enabled>
        <nifi.content.repository.always.sync>false</nifi.content.repository.always.sync>
        <nifi.content.repository.encryption.key.provider.implementation />
        <nifi.content.repository.encryption.key.provider.location />
        <nifi.content.repository.encryption.key.id />
        <nifi.content.repository.encryption.key />
        <nifi.content.viewer.url>../nifi-content-viewer/</nifi.content.viewer.url>

        <nifi.restore.directory />
        <nifi.ui.banner.text />
        <nifi.ui.autorefresh.interval>30 sec</nifi.ui.autorefresh.interval>
        <nifi.nar.library.directory>./lib</nifi.nar.library.directory>
        <nifi.nar.library.autoload.directory>./extensions</nifi.nar.library.autoload.directory>
        <nifi.nar.working.directory>./work/nar/</nifi.nar.working.directory>
        <nifi.documentation.working.directory>./work/docs/components</nifi.documentation.working.directory>

        <nifi.sensitive.props.key.protected />
        <nifi.sensitive.props.algorithm>PBEWITHMD5AND256BITAES-CBC-OPENSSL</nifi.sensitive.props.algorithm>
        <nifi.sensitive.props.provider>BC</nifi.sensitive.props.provider>
        <nifi.sensitive.props.additional.keys />

        <nifi.h2.url.append>;LOCK_TIMEOUT=25000;WRITE_DELAY=0;AUTO_SERVER=FALSE</nifi.h2.url.append>

        <nifi.remote.input.socket.port>9990</nifi.remote.input.socket.port>

        <!-- persistent provenance repository properties -->
        <nifi.provenance.repository.implementation>org.apache.nifi.provenance.WriteAheadProvenanceRepository</nifi.provenance.repository.implementation>
        <nifi.provenance.repository.debug.frequency>1_000_000</nifi.provenance.repository.debug.frequency>
        <nifi.provenance.repository.encryption.key.provider.implementation />
        <nifi.provenance.repository.encryption.key.provider.location />
        <nifi.provenance.repository.encryption.key.id />
        <nifi.provenance.repository.encryption.key />
        <nifi.provenance.repository.directory.default>./provenance_repository</nifi.provenance.repository.directory.default>
        <nifi.provenance.repository.max.storage.time>24 hours</nifi.provenance.repository.max.storage.time>
        <nifi.provenance.repository.max.storage.size>1 GB</nifi.provenance.repository.max.storage.size>
        <nifi.provenance.repository.rollover.time>30 secs</nifi.provenance.repository.rollover.time>
        <nifi.provenance.repository.rollover.size>100 MB</nifi.provenance.repository.rollover.size>
        <nifi.provenance.repository.query.threads>2</nifi.provenance.repository.query.threads>
        <nifi.provenance.repository.index.threads>2</nifi.provenance.repository.index.threads>
        <nifi.provenance.repository.compress.on.rollover>true</nifi.provenance.repository.compress.on.rollover>
        <nifi.provenance.repository.indexed.fields>EventType, FlowFileUUID, Filename, ProcessorID, Relationship</nifi.provenance.repository.indexed.fields>
        <nifi.provenance.repository.indexed.attributes />
        <nifi.provenance.repository.index.shard.size>500 MB</nifi.provenance.repository.index.shard.size>
        <nifi.provenance.repository.always.sync>false</nifi.provenance.repository.always.sync>
        <nifi.provenance.repository.max.attribute.length>65536</nifi.provenance.repository.max.attribute.length>
        <nifi.provenance.repository.concurrent.merge.threads>2</nifi.provenance.repository.concurrent.merge.threads>

        <!-- volatile provenance repository properties -->
        <nifi.provenance.repository.buffer.size>100000</nifi.provenance.repository.buffer.size>

        <!-- Component status repository properties -->
        <nifi.components.status.repository.implementation>org.apache.nifi.controller.status.history.VolatileComponentStatusRepository</nifi.components.status.repository.implementation>
        <nifi.components.status.repository.buffer.size>1440</nifi.components.status.repository.buffer.size>
        <nifi.components.status.snapshot.frequency>1 min</nifi.components.status.snapshot.frequency>

        <!-- nifi.properties: web properties -->
        <nifi.web.war.directory>./lib</nifi.web.war.directory>
        <nifi.web.http.host />
        <nifi.web.http.port>8080</nifi.web.http.port>
        <nifi.web.http.network.interface.default />
        <nifi.web.https.host />
        <nifi.web.https.port />
        <nifi.web.https.network.interface.default />
        <nifi.jetty.work.dir>./work/jetty</nifi.jetty.work.dir>
        <nifi.web.jetty.threads>200</nifi.web.jetty.threads>
        <nifi.web.max.header.size>16 KB</nifi.web.max.header.size>
        <nifi.web.proxy.context.path />
        <nifi.web.proxy.host />

        <!-- nifi.properties: security properties -->
        <nifi.security.keystore />
        <nifi.security.keystoreType />
        <nifi.security.keystorePasswd />
        <nifi.security.keyPasswd />
        <nifi.security.truststore />
        <nifi.security.truststoreType />
        <nifi.security.truststorePasswd />
        <nifi.security.user.authorizer>managed-authorizer</nifi.security.user.authorizer>
        <nifi.security.user.login.identity.provider />
        <nifi.security.x509.principal.extractor />
        <nifi.security.ocsp.responder.url />
        <nifi.security.ocsp.responder.certificate />

        <!-- nifi.properties: openid connect -->
        <nifi.security.user.oidc.discovery.url />
        <nifi.security.user.oidc.connect.timeout>5 secs</nifi.security.user.oidc.connect.timeout>
        <nifi.security.user.oidc.read.timeout>5 secs</nifi.security.user.oidc.read.timeout>
        <nifi.security.user.oidc.client.id />
        <nifi.security.user.oidc.client.secret />
        <nifi.security.user.oidc.preferred.jwsalgorithm />
        <nifi.security.user.oidc.additional.scopes />
        <nifi.security.user.oidc.claim.identifying.user />

        <!-- nifi.properties: apache knox -->
        <nifi.security.user.knox.url />
        <nifi.security.user.knox.publicKey />
        <nifi.security.user.knox.cookieName>hadoop-jwt</nifi.security.user.knox.cookieName>
        <nifi.security.user.knox.audiences />

        <!-- nifi.properties: cluster common properties (cluster manager and nodes must have same values) -->
        <nifi.cluster.protocol.heartbeat.interval>5 sec</nifi.cluster.protocol.heartbeat.interval>
        <nifi.cluster.protocol.is.secure>false</nifi.cluster.protocol.is.secure>

        <!-- nifi.properties: cluster node properties (only configure for cluster nodes) -->
        <nifi.cluster.is.node>false</nifi.cluster.is.node>
        <nifi.cluster.node.address />
        <nifi.cluster.node.protocol.port />
        <nifi.cluster.node.protocol.threads>10</nifi.cluster.node.protocol.threads>
        <nifi.cluster.node.protocol.max.threads>50</nifi.cluster.node.protocol.max.threads>
        <nifi.cluster.node.event.history.size>25</nifi.cluster.node.event.history.size>
        <nifi.cluster.node.connection.timeout>5 sec</nifi.cluster.node.connection.timeout>
        <nifi.cluster.node.read.timeout>5 sec</nifi.cluster.node.read.timeout>
        <nifi.cluster.node.max.concurrent.requests>100</nifi.cluster.node.max.concurrent.requests>
        <nifi.cluster.firewall.file />
        <nifi.cluster.flow.election.max.wait.time>5 mins</nifi.cluster.flow.election.max.wait.time>
        <nifi.cluster.flow.election.max.candidates />

        <!-- nifi.properties: cluster load balance properties -->
        <nifi.cluster.load.balance.host />
        <nifi.cluster.load.balance.port>6342</nifi.cluster.load.balance.port>
        <nifi.cluster.load.balance.connections.per.node>4</nifi.cluster.load.balance.connections.per.node>
        <nifi.cluster.load.balance.max.thread.count>8</nifi.cluster.load.balance.max.thread.count>
        <nifi.cluster.load.balance.comms.timeout>30 sec</nifi.cluster.load.balance.comms.timeout>

        <!--  nifi.properties: zookeeper properties -->
        <nifi.zookeeper.connect.string />
        <nifi.zookeeper.connect.timeout>3 secs</nifi.zookeeper.connect.timeout>
        <nifi.zookeeper.session.timeout>3 secs</nifi.zookeeper.session.timeout>
        <nifi.zookeeper.root.node>/nifi</nifi.zookeeper.root.node>
        <nifi.zookeeper.auth.type />
        <nifi.zookeeper.kerberos.removeHostFromPrincipal />
        <nifi.zookeeper.kerberos.removeRealmFromPrincipal />

        <!-- nifi.properties: kerberos properties -->
        <nifi.kerberos.krb5.file> </nifi.kerberos.krb5.file>
        <nifi.kerberos.service.principal />
        <nifi.kerberos.service.keytab.location />
        <nifi.kerberos.spnego.principal />
        <nifi.kerberos.spnego.keytab.location />
        <nifi.kerberos.spnego.authentication.expiration>12 hours</nifi.kerberos.spnego.authentication.expiration>

        <!-- nifi.properties: analytics properties -->
        <nifi.analytics.predict.enabled>false</nifi.analytics.predict.enabled>
        <nifi.analytics.predict.interval>3 mins</nifi.analytics.predict.interval>
        <nifi.analytics.query.interval>5 mins</nifi.analytics.query.interval>
        <nifi.analytics.connection.model.implementation>org.apache.nifi.controller.status.analytics.models.OrdinaryLeastSquares</nifi.analytics.connection.model.implementation>
        <nifi.analytics.connection.model.score.name>rSquared</nifi.analytics.connection.model.score.name>
        <nifi.analytics.connection.model.score.threshold>.90</nifi.analytics.connection.model.score.threshold>
    </properties>
    <build>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <attach>true</attach>
                </configuration>
                <executions>
                    <execution>
                        <id>make shared resource</id>
                        <goals>
                            <goal>single</goal>
                        </goals>
                        <phase>package</phase>
                        <configuration>
                            <descriptors>
                                <descriptor>src/main/assembly/dependencies.xml</descriptor>
                            </descriptors>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>
