# 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.

MiNiFi Config Version: 2
Flow Controller:
  name: StressTestFramework
  comment: ''
Core Properties:
  flow controller graceful shutdown period: 10 sec
  flow service write delay interval: 500 ms
  administrative yield duration: 30 sec
  bored yield duration: 10 millis
  max concurrent threads: 1
FlowFile Repository:
  partitions: 256
  checkpoint interval: 2 mins
  always sync: false
  Swap:
    threshold: 20000
    in period: 5 sec
    in threads: 1
    out period: 5 sec
    out threads: 4
Content Repository:
  content claim max appendable size: 10 MB
  content claim max flow files: 100
  always sync: false
Provenance Repository:
  provenance rollover time: 1 min
Component Status Repository:
  buffer size: 1440
  snapshot frequency: 1 min
Security Properties:
  keystore: ''
  keystore type: ''
  keystore password: ''
  key password: ''
  truststore: ''
  truststore type: ''
  truststore password: ''
  ssl protocol: ''
  Sensitive Props:
    key:
    algorithm: PBEWITHMD5AND256BITAES-CBC-OPENSSL
    provider: BC
Processors:
- id: 16a47794-5391-4ad2-0000-000000000000
  name: GenerateFlowFile
  class: org.apache.nifi.processors.standard.GenerateFlowFile
  max concurrent tasks: 1
  scheduling strategy: TIMER_DRIVEN
  scheduling period: 0 sec
  penalization period: 30 sec
  yield period: 1 sec
  run duration nanos: 0
  auto-terminated relationships list: []
  Properties:
    Batch Size: '100'
    Data Format: Binary
    File Size: 0 KB
    Unique FlowFiles: 'false'
- id: 4ad21391-16a4-1794-0000-000000000000
  name: GenerateFlowFile
  class: org.apache.nifi.processors.standard.GenerateFlowFile
  max concurrent tasks: 1
  scheduling strategy: TIMER_DRIVEN
  scheduling period: 0 sec
  penalization period: 30 sec
  yield period: 1 sec
  run duration nanos: 0
  auto-terminated relationships list: []
  Properties:
    Batch Size: '100'
    Data Format: Binary
    File Size: 0 KB
    Unique FlowFiles: 'false'
- id: 53914ad2-7794-16a4-0000-000000000000
  name: GenerateFlowFile
  class: org.apache.nifi.processors.standard.GenerateFlowFile
  max concurrent tasks: 1
  scheduling strategy: TIMER_DRIVEN
  scheduling period: 0 sec
  penalization period: 30 sec
  yield period: 1 sec
  run duration nanos: 0
  auto-terminated relationships list: []
  Properties:
    Batch Size: '100'
    Data Format: Binary
    File Size: 0 KB
    Unique FlowFiles: 'false'
- id: 779416a4-4ad2-1391-0000-000000000000
  name: GenerateFlowFile
  class: org.apache.nifi.processors.standard.GenerateFlowFile
  max concurrent tasks: 1
  scheduling strategy: TIMER_DRIVEN
  scheduling period: 0 sec
  penalization period: 30 sec
  yield period: 1 sec
  run duration nanos: 0
  auto-terminated relationships list: []
  Properties:
    Batch Size: '100'
    Data Format: Binary
    File Size: 0 KB
    Unique FlowFiles: 'false'
- id: 397a4910-cc01-4c6b-0000-000000000000
  name: RouteOnAttribute
  class: org.apache.nifi.processors.standard.RouteOnAttribute
  max concurrent tasks: 2
  scheduling strategy: TIMER_DRIVEN
  scheduling period: 0 sec
  penalization period: 30 sec
  yield period: 1 sec
  run duration nanos: 50000
  auto-terminated relationships list:
  - unmatched
  Properties:
    Routing Strategy: Route to Property name
- id: 92557c76-f251-45a4-0000-000000000000
  name: UpdateAttribute
  class: org.apache.nifi.processors.attributes.UpdateAttribute
  max concurrent tasks: 2
  scheduling strategy: TIMER_DRIVEN
  scheduling period: 0 sec
  penalization period: 30 sec
  yield period: 1 sec
  run duration nanos: 100000
  auto-terminated relationships list: []
  Properties:
    Delete Attributes Expression:
    property 1: value 1
    property 2: value 2 ${nextInt()}
Process Groups: []
Input Ports: []
Output Ports: []
Funnels:
- id: 4ad21392-16a4-1794-0000-000000000000
Connections:
- id: 4ad21397-16a4-1794-0000-000000000000
  name: 4ad21392-16a4-1794-0000-000000000000//UpdateAttribute
  source id: 4ad21392-16a4-1794-0000-000000000000
  source relationship names: []
  destination id: 92557c76-f251-45a4-0000-000000000000
  max work queue size: 10000
  max work queue data size: 1 GB
  flowfile expiration: 0 sec
  queue prioritizer class: ''
- id: 4ad21393-16a4-1794-0000-000000000000
  name: GenerateFlowFile/success/4ad21392-16a4-1794-0000-000000000000
  source id: 16a47794-5391-4ad2-0000-000000000000
  source relationship names:
  - success
  destination id: 4ad21392-16a4-1794-0000-000000000000
  max work queue size: 10000
  max work queue data size: 1 GB
  flowfile expiration: 0 sec
  queue prioritizer class: ''
- id: 4ad21394-16a4-1794-0000-000000000000
  name: GenerateFlowFile/success/4ad21392-16a4-1794-0000-000000000000
  source id: 53914ad2-7794-16a4-0000-000000000000
  source relationship names:
  - success
  destination id: 4ad21392-16a4-1794-0000-000000000000
  max work queue size: 10000
  max work queue data size: 1 GB
  flowfile expiration: 0 sec
  queue prioritizer class: ''
- id: 4ad21395-16a4-1794-0000-000000000000
  name: GenerateFlowFile/success/4ad21392-16a4-1794-0000-000000000000
  source id: 779416a4-4ad2-1391-0000-000000000000
  source relationship names:
  - success
  destination id: 4ad21392-16a4-1794-0000-000000000000
  max work queue size: 10000
  max work queue data size: 1 GB
  flowfile expiration: 0 sec
  queue prioritizer class: ''
- id: 4ad21396-16a4-1794-0000-000000000000
  name: GenerateFlowFile/success/4ad21392-16a4-1794-0000-000000000000
  source id: 4ad21391-16a4-1794-0000-000000000000
  source relationship names:
  - success
  destination id: 4ad21392-16a4-1794-0000-000000000000
  max work queue size: 10000
  max work queue data size: 1 GB
  flowfile expiration: 0 sec
  queue prioritizer class: ''
- id: 4c53556e-eb46-458c-0000-000000000000
  name: UpdateAttribute/success/RouteOnAttribute
  source id: 92557c76-f251-45a4-0000-000000000000
  source relationship names:
  - success
  destination id: 397a4910-cc01-4c6b-0000-000000000000
  max work queue size: 2000
  max work queue data size: 0 MB
  flowfile expiration: 0 sec
  queue prioritizer class: org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer
Remote Process Groups: []
