You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by al...@apache.org on 2017/03/31 17:11:50 UTC

[1/3] nifi-minifi git commit: MINIFI-242 - Initial integration tests focused around backwards compatibility

Repository: nifi-minifi
Updated Branches:
  refs/heads/master f89f41504 -> 25298e90b


http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/minifi-integration-tests/src/test/resources/standalone/v2/MultipleRelationships/xml/MultipleRelationships.xml
----------------------------------------------------------------------
diff --git a/minifi-integration-tests/src/test/resources/standalone/v2/MultipleRelationships/xml/MultipleRelationships.xml b/minifi-integration-tests/src/test/resources/standalone/v2/MultipleRelationships/xml/MultipleRelationships.xml
new file mode 100644
index 0000000..af2dd1c
--- /dev/null
+++ b/minifi-integration-tests/src/test/resources/standalone/v2/MultipleRelationships/xml/MultipleRelationships.xml
@@ -0,0 +1,340 @@
+<?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.
+  -->
+
+<template encoding-version="1.0">
+    <description></description>
+    <groupId>7c73bce2-0157-1000-1ea7-07d5d9c57c74</groupId>
+    <name>MultipleRelationships</name>
+    <snippet>
+        <connections>
+            <id>7c798ca3-0157-1000-0000-000000000000</id>
+            <parentGroupId>7c73bce2-0157-1000-0000-000000000000</parentGroupId>
+            <backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold>
+            <backPressureObjectThreshold>10000</backPressureObjectThreshold>
+            <destination>
+                <groupId>7c73bce2-0157-1000-0000-000000000000</groupId>
+                <id>7c75ab71-0157-1000-0000-000000000000</id>
+                <type>PROCESSOR</type>
+            </destination>
+            <flowFileExpiration>0 sec</flowFileExpiration>
+            <labelIndex>1</labelIndex>
+            <name></name>
+            <selectedRelationships>abc</selectedRelationships>
+            <selectedRelationships>unmatched</selectedRelationships>
+            <source>
+                <groupId>7c73bce2-0157-1000-0000-000000000000</groupId>
+                <id>7c768622-0157-1000-0000-000000000000</id>
+                <type>PROCESSOR</type>
+            </source>
+            <zIndex>0</zIndex>
+        </connections>
+        <connections>
+            <id>7c79cce3-0157-1000-0000-000000000000</id>
+            <parentGroupId>7c73bce2-0157-1000-0000-000000000000</parentGroupId>
+            <backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold>
+            <backPressureObjectThreshold>10000</backPressureObjectThreshold>
+            <destination>
+                <groupId>7c73bce2-0157-1000-0000-000000000000</groupId>
+                <id>7c79ba25-0157-1000-0000-000000000000</id>
+                <type>PROCESSOR</type>
+            </destination>
+            <flowFileExpiration>0 sec</flowFileExpiration>
+            <labelIndex>1</labelIndex>
+            <name></name>
+            <selectedRelationships>success</selectedRelationships>
+            <source>
+                <groupId>7c73bce2-0157-1000-0000-000000000000</groupId>
+                <id>7c755ed6-0157-1000-0000-000000000000</id>
+                <type>PROCESSOR</type>
+            </source>
+            <zIndex>0</zIndex>
+        </connections>
+        <connections>
+            <id>7c79d576-0157-1000-0000-000000000000</id>
+            <parentGroupId>7c73bce2-0157-1000-0000-000000000000</parentGroupId>
+            <backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold>
+            <backPressureObjectThreshold>10000</backPressureObjectThreshold>
+            <destination>
+                <groupId>7c73bce2-0157-1000-0000-000000000000</groupId>
+                <id>7c768622-0157-1000-0000-000000000000</id>
+                <type>PROCESSOR</type>
+            </destination>
+            <flowFileExpiration>0 sec</flowFileExpiration>
+            <labelIndex>1</labelIndex>
+            <name></name>
+            <selectedRelationships>success</selectedRelationships>
+            <source>
+                <groupId>7c73bce2-0157-1000-0000-000000000000</groupId>
+                <id>7c79ba25-0157-1000-0000-000000000000</id>
+                <type>PROCESSOR</type>
+            </source>
+            <zIndex>0</zIndex>
+        </connections>
+        <processors>
+            <id>7c755ed6-0157-1000-0000-000000000000</id>
+            <parentGroupId>7c73bce2-0157-1000-0000-000000000000</parentGroupId>
+            <position>
+                <x>0.0</x>
+                <y>0.0</y>
+            </position>
+            <config>
+                <bulletinLevel>WARN</bulletinLevel>
+                <comments></comments>
+                <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+                <descriptors>
+                    <entry>
+                        <key>File Size</key>
+                        <value>
+                            <name>File Size</name>
+                        </value>
+                    </entry>
+                    <entry>
+                        <key>Batch Size</key>
+                        <value>
+                            <name>Batch Size</name>
+                        </value>
+                    </entry>
+                    <entry>
+                        <key>Data Format</key>
+                        <value>
+                            <name>Data Format</name>
+                        </value>
+                    </entry>
+                    <entry>
+                        <key>Unique FlowFiles</key>
+                        <value>
+                            <name>Unique FlowFiles</name>
+                        </value>
+                    </entry>
+                </descriptors>
+                <lossTolerant>false</lossTolerant>
+                <penaltyDuration>30 sec</penaltyDuration>
+                <properties>
+                    <entry>
+                        <key>File Size</key>
+                        <value>0 B</value>
+                    </entry>
+                    <entry>
+                        <key>Batch Size</key>
+                        <value>1</value>
+                    </entry>
+                    <entry>
+                        <key>Data Format</key>
+                        <value>Binary</value>
+                    </entry>
+                    <entry>
+                        <key>Unique FlowFiles</key>
+                        <value>false</value>
+                    </entry>
+                </properties>
+                <runDurationMillis>0</runDurationMillis>
+                <schedulingPeriod>0 sec</schedulingPeriod>
+                <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+                <yieldDuration>1 sec</yieldDuration>
+            </config>
+            <name>GenerateFlowFile</name>
+            <relationships>
+                <autoTerminate>false</autoTerminate>
+                <name>success</name>
+            </relationships>
+            <style></style>
+            <type>org.apache.nifi.processors.standard.GenerateFlowFile</type>
+        </processors>
+        <processors>
+            <id>7c75ab71-0157-1000-0000-000000000000</id>
+            <parentGroupId>7c73bce2-0157-1000-0000-000000000000</parentGroupId>
+            <position>
+                <x>3.10443115234375</x>
+                <y>580.1210327148438</y>
+            </position>
+            <config>
+                <bulletinLevel>WARN</bulletinLevel>
+                <comments></comments>
+                <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+                <descriptors>
+                    <entry>
+                        <key>Log Level</key>
+                        <value>
+                            <name>Log Level</name>
+                        </value>
+                    </entry>
+                    <entry>
+                        <key>Log Payload</key>
+                        <value>
+                            <name>Log Payload</name>
+                        </value>
+                    </entry>
+                    <entry>
+                        <key>Attributes to Log</key>
+                        <value>
+                            <name>Attributes to Log</name>
+                        </value>
+                    </entry>
+                    <entry>
+                        <key>Attributes to Ignore</key>
+                        <value>
+                            <name>Attributes to Ignore</name>
+                        </value>
+                    </entry>
+                    <entry>
+                        <key>Log prefix</key>
+                        <value>
+                            <name>Log prefix</name>
+                        </value>
+                    </entry>
+                </descriptors>
+                <lossTolerant>false</lossTolerant>
+                <penaltyDuration>30 sec</penaltyDuration>
+                <properties>
+                    <entry>
+                        <key>Log Level</key>
+                        <value>info</value>
+                    </entry>
+                    <entry>
+                        <key>Log Payload</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>Attributes to Log</key>
+                    </entry>
+                    <entry>
+                        <key>Attributes to Ignore</key>
+                    </entry>
+                    <entry>
+                        <key>Log prefix</key>
+                    </entry>
+                </properties>
+                <runDurationMillis>0</runDurationMillis>
+                <schedulingPeriod>0 sec</schedulingPeriod>
+                <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+                <yieldDuration>1 sec</yieldDuration>
+            </config>
+            <name>LogAttribute</name>
+            <relationships>
+                <autoTerminate>true</autoTerminate>
+                <name>success</name>
+            </relationships>
+            <style></style>
+            <type>org.apache.nifi.processors.standard.LogAttribute</type>
+        </processors>
+        <processors>
+            <id>7c768622-0157-1000-0000-000000000000</id>
+            <parentGroupId>7c73bce2-0157-1000-0000-000000000000</parentGroupId>
+            <position>
+                <x>3.89630126953125</x>
+                <y>386.68919372558594</y>
+            </position>
+            <config>
+                <bulletinLevel>WARN</bulletinLevel>
+                <comments></comments>
+                <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+                <descriptors>
+                    <entry>
+                        <key>Routing Strategy</key>
+                        <value>
+                            <name>Routing Strategy</name>
+                        </value>
+                    </entry>
+                    <entry>
+                        <key>abc</key>
+                        <value>
+                            <name>abc</name>
+                        </value>
+                    </entry>
+                </descriptors>
+                <lossTolerant>false</lossTolerant>
+                <penaltyDuration>30 sec</penaltyDuration>
+                <properties>
+                    <entry>
+                        <key>Routing Strategy</key>
+                        <value>Route to Property name</value>
+                    </entry>
+                    <entry>
+                        <key>abc</key>
+                        <value>${filename:equals('abc')}</value>
+                    </entry>
+                </properties>
+                <runDurationMillis>0</runDurationMillis>
+                <schedulingPeriod>0 sec</schedulingPeriod>
+                <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+                <yieldDuration>1 sec</yieldDuration>
+            </config>
+            <name>RouteOnAttribute</name>
+            <relationships>
+                <autoTerminate>false</autoTerminate>
+                <name>abc</name>
+            </relationships>
+            <relationships>
+                <autoTerminate>false</autoTerminate>
+                <name>unmatched</name>
+            </relationships>
+            <style></style>
+            <type>org.apache.nifi.processors.standard.RouteOnAttribute</type>
+        </processors>
+        <processors>
+            <id>7c79ba25-0157-1000-0000-000000000000</id>
+            <parentGroupId>7c73bce2-0157-1000-0000-000000000000</parentGroupId>
+            <position>
+                <x>15.0</x>
+                <y>199.0</y>
+            </position>
+            <config>
+                <bulletinLevel>WARN</bulletinLevel>
+                <comments></comments>
+                <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+                <descriptors>
+                    <entry>
+                        <key>Delete Attributes Expression</key>
+                        <value>
+                            <name>Delete Attributes Expression</name>
+                        </value>
+                    </entry>
+                    <entry>
+                        <key>filename</key>
+                        <value>
+                            <name>filename</name>
+                        </value>
+                    </entry>
+                </descriptors>
+                <lossTolerant>false</lossTolerant>
+                <penaltyDuration>30 sec</penaltyDuration>
+                <properties>
+                    <entry>
+                        <key>Delete Attributes Expression</key>
+                    </entry>
+                    <entry>
+                        <key>filename</key>
+                        <value>abc</value>
+                    </entry>
+                </properties>
+                <runDurationMillis>0</runDurationMillis>
+                <schedulingPeriod>0 sec</schedulingPeriod>
+                <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+                <yieldDuration>1 sec</yieldDuration>
+            </config>
+            <name>UpdateAttribute</name>
+            <relationships>
+                <autoTerminate>false</autoTerminate>
+                <name>success</name>
+            </relationships>
+            <style></style>
+            <type>org.apache.nifi.processors.attributes.UpdateAttribute</type>
+        </processors>
+    </snippet>
+    <timestamp>09/30/2016 15:03:09 EDT</timestamp>
+</template>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/minifi-integration-tests/src/test/resources/standalone/v2/MultipleRelationships/xml/expected.json
----------------------------------------------------------------------
diff --git a/minifi-integration-tests/src/test/resources/standalone/v2/MultipleRelationships/xml/expected.json b/minifi-integration-tests/src/test/resources/standalone/v2/MultipleRelationships/xml/expected.json
new file mode 100644
index 0000000..6110f19
--- /dev/null
+++ b/minifi-integration-tests/src/test/resources/standalone/v2/MultipleRelationships/xml/expected.json
@@ -0,0 +1,4 @@
+{
+  "pattern": "o.a.n.c.r.StandardProcessSession StandardProcessSession\\[.*\\] for LogAttribute\\[id=7c75ab71-0157-1000-0000-000000000000\\], committed the following events: Transferred FlowFiles \\[.*\\] to 'success'",
+  "occurrences": 20
+}

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/minifi-integration-tests/src/test/resources/standalone/v2/MultipleRelationships/yml/MultipleRelationships.yml
----------------------------------------------------------------------
diff --git a/minifi-integration-tests/src/test/resources/standalone/v2/MultipleRelationships/yml/MultipleRelationships.yml b/minifi-integration-tests/src/test/resources/standalone/v2/MultipleRelationships/yml/MultipleRelationships.yml
new file mode 100644
index 0000000..71dce07
--- /dev/null
+++ b/minifi-integration-tests/src/test/resources/standalone/v2/MultipleRelationships/yml/MultipleRelationships.yml
@@ -0,0 +1,153 @@
+# 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: MultipleRelationships
+  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: 7c755ed6-0157-1000-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: '1'
+    Data Format: Binary
+    File Size: 0 B
+    Unique FlowFiles: 'false'
+- id: 7c75ab71-0157-1000-0000-000000000000
+  name: LogAttribute
+  class: org.apache.nifi.processors.standard.LogAttribute
+  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:
+  - success
+  Properties:
+    Attributes to Ignore:
+    Attributes to Log:
+    Log Level: info
+    Log Payload: 'false'
+    Log prefix:
+- id: 7c768622-0157-1000-0000-000000000000
+  name: RouteOnAttribute
+  class: org.apache.nifi.processors.standard.RouteOnAttribute
+  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:
+    Routing Strategy: Route to Property name
+    abc: ${filename:equals('abc')}
+- id: 7c79ba25-0157-1000-0000-000000000000
+  name: UpdateAttribute
+  class: org.apache.nifi.processors.attributes.UpdateAttribute
+  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:
+    Delete Attributes Expression:
+    filename: abc
+Process Groups: []
+Input Ports: []
+Output Ports: []
+Funnels: []
+Connections:
+- id: 7c79cce3-0157-1000-0000-000000000000
+  name: GenerateFlowFile/success/UpdateAttribute
+  source id: 7c755ed6-0157-1000-0000-000000000000
+  source relationship names:
+  - success
+  destination id: 7c79ba25-0157-1000-0000-000000000000
+  max work queue size: 10000
+  max work queue data size: 1 GB
+  flowfile expiration: 0 sec
+  queue prioritizer class: ''
+- id: 7c798ca3-0157-1000-0000-000000000000
+  name: RouteOnAttribute/abc/LogAttribute
+  source id: 7c768622-0157-1000-0000-000000000000
+  source relationship names:
+  - abc
+  - unmatched
+  destination id: 7c75ab71-0157-1000-0000-000000000000
+  max work queue size: 10000
+  max work queue data size: 1 GB
+  flowfile expiration: 0 sec
+  queue prioritizer class: ''
+- id: 7c79d576-0157-1000-0000-000000000000
+  name: UpdateAttribute/success/RouteOnAttribute
+  source id: 7c79ba25-0157-1000-0000-000000000000
+  source relationship names:
+  - success
+  destination id: 7c768622-0157-1000-0000-000000000000
+  max work queue size: 10000
+  max work queue data size: 1 GB
+  flowfile expiration: 0 sec
+  queue prioritizer class: ''
+Remote Process Groups: []

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/minifi-integration-tests/src/test/resources/standalone/v2/MultipleRelationships/yml/expected.json
----------------------------------------------------------------------
diff --git a/minifi-integration-tests/src/test/resources/standalone/v2/MultipleRelationships/yml/expected.json b/minifi-integration-tests/src/test/resources/standalone/v2/MultipleRelationships/yml/expected.json
new file mode 100644
index 0000000..6110f19
--- /dev/null
+++ b/minifi-integration-tests/src/test/resources/standalone/v2/MultipleRelationships/yml/expected.json
@@ -0,0 +1,4 @@
+{
+  "pattern": "o.a.n.c.r.StandardProcessSession StandardProcessSession\\[.*\\] for LogAttribute\\[id=7c75ab71-0157-1000-0000-000000000000\\], committed the following events: Transferred FlowFiles \\[.*\\] to 'success'",
+  "occurrences": 20
+}

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/minifi-integration-tests/src/test/resources/standalone/v2/ProcessGroups/xml/ProcessGroups.xml
----------------------------------------------------------------------
diff --git a/minifi-integration-tests/src/test/resources/standalone/v2/ProcessGroups/xml/ProcessGroups.xml b/minifi-integration-tests/src/test/resources/standalone/v2/ProcessGroups/xml/ProcessGroups.xml
new file mode 100644
index 0000000..c5d5812
--- /dev/null
+++ b/minifi-integration-tests/src/test/resources/standalone/v2/ProcessGroups/xml/ProcessGroups.xml
@@ -0,0 +1,370 @@
+<?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.
+  -->
+
+<template encoding-version="1.0">
+    <description></description>
+    <groupId>e25c3a84-0157-1000-b0cb-8ebdb45e8945</groupId>
+    <name>pgtest</name>
+    <snippet>
+        <connections>
+            <id>e25dbff3-0157-1000-0000-000000000000</id>
+            <parentGroupId>e25c3a84-0157-1000-0000-000000000000</parentGroupId>
+            <backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold>
+            <backPressureObjectThreshold>10000</backPressureObjectThreshold>
+            <destination>
+                <groupId>e25cbc20-0157-1000-0000-000000000000</groupId>
+                <id>e25d0cef-0157-1000-0000-000000000000</id>
+                <type>INPUT_PORT</type>
+            </destination>
+            <flowFileExpiration>0 sec</flowFileExpiration>
+            <labelIndex>1</labelIndex>
+            <name></name>
+            <selectedRelationships>success</selectedRelationships>
+            <source>
+                <groupId>e25c3a84-0157-1000-0000-000000000000</groupId>
+                <id>e25cd92a-0157-1000-0000-000000000000</id>
+                <type>PROCESSOR</type>
+            </source>
+            <zIndex>0</zIndex>
+        </connections>
+        <connections>
+            <id>e25e22b1-0157-1000-0000-000000000000</id>
+            <parentGroupId>e25c3a84-0157-1000-0000-000000000000</parentGroupId>
+            <backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold>
+            <backPressureObjectThreshold>10000</backPressureObjectThreshold>
+            <destination>
+                <groupId>e25c3a84-0157-1000-0000-000000000000</groupId>
+                <id>e25e0e6e-0157-1000-0000-000000000000</id>
+                <type>PROCESSOR</type>
+            </destination>
+            <flowFileExpiration>0 sec</flowFileExpiration>
+            <labelIndex>1</labelIndex>
+            <name></name>
+            <source>
+                <groupId>e25cbc20-0157-1000-0000-000000000000</groupId>
+                <id>e25d578c-0157-1000-0000-000000000000</id>
+                <type>OUTPUT_PORT</type>
+            </source>
+            <zIndex>0</zIndex>
+        </connections>
+        <processGroups>
+            <id>e25cbc20-0157-1000-0000-000000000000</id>
+            <parentGroupId>e25c3a84-0157-1000-0000-000000000000</parentGroupId>
+            <position>
+                <x>0.0</x>
+                <y>230.999990940094</y>
+            </position>
+            <comments></comments>
+            <contents>
+                <connections>
+                    <id>e25d35dc-0157-1000-0000-000000000000</id>
+                    <parentGroupId>e25cbc20-0157-1000-0000-000000000000</parentGroupId>
+                    <backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold>
+                    <backPressureObjectThreshold>10000</backPressureObjectThreshold>
+                    <destination>
+                        <groupId>e25cbc20-0157-1000-0000-000000000000</groupId>
+                        <id>e25d2588-0157-1000-0000-000000000000</id>
+                        <type>PROCESSOR</type>
+                    </destination>
+                    <flowFileExpiration>0 sec</flowFileExpiration>
+                    <labelIndex>1</labelIndex>
+                    <name></name>
+                    <source>
+                        <groupId>e25cbc20-0157-1000-0000-000000000000</groupId>
+                        <id>e25d0cef-0157-1000-0000-000000000000</id>
+                        <type>INPUT_PORT</type>
+                    </source>
+                    <zIndex>0</zIndex>
+                </connections>
+                <connections>
+                    <id>e25d6bd6-0157-1000-0000-000000000000</id>
+                    <parentGroupId>e25cbc20-0157-1000-0000-000000000000</parentGroupId>
+                    <backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold>
+                    <backPressureObjectThreshold>10000</backPressureObjectThreshold>
+                    <destination>
+                        <groupId>e25cbc20-0157-1000-0000-000000000000</groupId>
+                        <id>e25d578c-0157-1000-0000-000000000000</id>
+                        <type>OUTPUT_PORT</type>
+                    </destination>
+                    <flowFileExpiration>0 sec</flowFileExpiration>
+                    <labelIndex>1</labelIndex>
+                    <name></name>
+                    <selectedRelationships>success</selectedRelationships>
+                    <source>
+                        <groupId>e25cbc20-0157-1000-0000-000000000000</groupId>
+                        <id>e25d2588-0157-1000-0000-000000000000</id>
+                        <type>PROCESSOR</type>
+                    </source>
+                    <zIndex>0</zIndex>
+                </connections>
+                <inputPorts>
+                    <id>e25d0cef-0157-1000-0000-000000000000</id>
+                    <parentGroupId>e25cbc20-0157-1000-0000-000000000000</parentGroupId>
+                    <position>
+                        <x>457.0</x>
+                        <y>50.0</y>
+                    </position>
+                    <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+                    <name>input</name>
+                    <state>STOPPED</state>
+                    <type>INPUT_PORT</type>
+                </inputPorts>
+                <outputPorts>
+                    <id>e25d578c-0157-1000-0000-000000000000</id>
+                    <parentGroupId>e25cbc20-0157-1000-0000-000000000000</parentGroupId>
+                    <position>
+                        <x>461.0</x>
+                        <y>478.0</y>
+                    </position>
+                    <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+                    <name>output</name>
+                    <state>STOPPED</state>
+                    <type>OUTPUT_PORT</type>
+                </outputPorts>
+                <processors>
+                    <id>e25d2588-0157-1000-0000-000000000000</id>
+                    <parentGroupId>e25cbc20-0157-1000-0000-000000000000</parentGroupId>
+                    <position>
+                        <x>406.0</x>
+                        <y>225.0</y>
+                    </position>
+                    <config>
+                        <bulletinLevel>WARN</bulletinLevel>
+                        <comments></comments>
+                        <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+                        <descriptors>
+                            <entry>
+                                <key>Log Level</key>
+                                <value>
+                                    <name>Log Level</name>
+                                </value>
+                            </entry>
+                            <entry>
+                                <key>Log Payload</key>
+                                <value>
+                                    <name>Log Payload</name>
+                                </value>
+                            </entry>
+                            <entry>
+                                <key>Attributes to Log</key>
+                                <value>
+                                    <name>Attributes to Log</name>
+                                </value>
+                            </entry>
+                            <entry>
+                                <key>Attributes to Ignore</key>
+                                <value>
+                                    <name>Attributes to Ignore</name>
+                                </value>
+                            </entry>
+                            <entry>
+                                <key>Log prefix</key>
+                                <value>
+                                    <name>Log prefix</name>
+                                </value>
+                            </entry>
+                        </descriptors>
+                        <lossTolerant>false</lossTolerant>
+                        <penaltyDuration>30 sec</penaltyDuration>
+                        <properties>
+                            <entry>
+                                <key>Log Level</key>
+                                <value>info</value>
+                            </entry>
+                            <entry>
+                                <key>Log Payload</key>
+                                <value>false</value>
+                            </entry>
+                            <entry>
+                                <key>Attributes to Log</key>
+                            </entry>
+                            <entry>
+                                <key>Attributes to Ignore</key>
+                            </entry>
+                            <entry>
+                                <key>Log prefix</key>
+                                <value>INSIDE</value>
+                            </entry>
+                        </properties>
+                        <runDurationMillis>0</runDurationMillis>
+                        <schedulingPeriod>0 sec</schedulingPeriod>
+                        <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+                        <yieldDuration>1 sec</yieldDuration>
+                    </config>
+                    <name>LogAttribute</name>
+                    <relationships>
+                        <autoTerminate>false</autoTerminate>
+                        <name>success</name>
+                    </relationships>
+                    <style></style>
+                    <type>org.apache.nifi.processors.standard.LogAttribute</type>
+                </processors>
+            </contents>
+            <name>black box</name>
+        </processGroups>
+        <processors>
+            <id>e25cd92a-0157-1000-0000-000000000000</id>
+            <parentGroupId>e25c3a84-0157-1000-0000-000000000000</parentGroupId>
+            <position>
+                <x>12.0</x>
+                <y>0.0</y>
+            </position>
+            <config>
+                <bulletinLevel>WARN</bulletinLevel>
+                <comments></comments>
+                <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+                <descriptors>
+                    <entry>
+                        <key>File Size</key>
+                        <value>
+                            <name>File Size</name>
+                        </value>
+                    </entry>
+                    <entry>
+                        <key>Batch Size</key>
+                        <value>
+                            <name>Batch Size</name>
+                        </value>
+                    </entry>
+                    <entry>
+                        <key>Data Format</key>
+                        <value>
+                            <name>Data Format</name>
+                        </value>
+                    </entry>
+                    <entry>
+                        <key>Unique FlowFiles</key>
+                        <value>
+                            <name>Unique FlowFiles</name>
+                        </value>
+                    </entry>
+                </descriptors>
+                <lossTolerant>false</lossTolerant>
+                <penaltyDuration>30 sec</penaltyDuration>
+                <properties>
+                    <entry>
+                        <key>File Size</key>
+                        <value>1 b</value>
+                    </entry>
+                    <entry>
+                        <key>Batch Size</key>
+                        <value>1</value>
+                    </entry>
+                    <entry>
+                        <key>Data Format</key>
+                        <value>Binary</value>
+                    </entry>
+                    <entry>
+                        <key>Unique FlowFiles</key>
+                        <value>false</value>
+                    </entry>
+                </properties>
+                <runDurationMillis>0</runDurationMillis>
+                <schedulingPeriod>0 sec</schedulingPeriod>
+                <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+                <yieldDuration>1 sec</yieldDuration>
+            </config>
+            <name>GenerateFlowFile</name>
+            <relationships>
+                <autoTerminate>false</autoTerminate>
+                <name>success</name>
+            </relationships>
+            <style></style>
+            <type>org.apache.nifi.processors.standard.GenerateFlowFile</type>
+        </processors>
+        <processors>
+            <id>e25e0e6e-0157-1000-0000-000000000000</id>
+            <parentGroupId>e25c3a84-0157-1000-0000-000000000000</parentGroupId>
+            <position>
+                <x>21.08323973697111</x>
+                <y>461.2776537085565</y>
+            </position>
+            <config>
+                <bulletinLevel>WARN</bulletinLevel>
+                <comments></comments>
+                <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+                <descriptors>
+                    <entry>
+                        <key>Log Level</key>
+                        <value>
+                            <name>Log Level</name>
+                        </value>
+                    </entry>
+                    <entry>
+                        <key>Log Payload</key>
+                        <value>
+                            <name>Log Payload</name>
+                        </value>
+                    </entry>
+                    <entry>
+                        <key>Attributes to Log</key>
+                        <value>
+                            <name>Attributes to Log</name>
+                        </value>
+                    </entry>
+                    <entry>
+                        <key>Attributes to Ignore</key>
+                        <value>
+                            <name>Attributes to Ignore</name>
+                        </value>
+                    </entry>
+                    <entry>
+                        <key>Log prefix</key>
+                        <value>
+                            <name>Log prefix</name>
+                        </value>
+                    </entry>
+                </descriptors>
+                <lossTolerant>false</lossTolerant>
+                <penaltyDuration>30 sec</penaltyDuration>
+                <properties>
+                    <entry>
+                        <key>Log Level</key>
+                        <value>info</value>
+                    </entry>
+                    <entry>
+                        <key>Log Payload</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>Attributes to Log</key>
+                    </entry>
+                    <entry>
+                        <key>Attributes to Ignore</key>
+                    </entry>
+                    <entry>
+                        <key>Log prefix</key>
+                        <value>OUTSIDE</value>
+                    </entry>
+                </properties>
+                <runDurationMillis>0</runDurationMillis>
+                <schedulingPeriod>0 sec</schedulingPeriod>
+                <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+                <yieldDuration>1 sec</yieldDuration>
+            </config>
+            <name>LogAttribute</name>
+            <relationships>
+                <autoTerminate>true</autoTerminate>
+                <name>success</name>
+            </relationships>
+            <style></style>
+            <type>org.apache.nifi.processors.standard.LogAttribute</type>
+        </processors>
+    </snippet>
+    <timestamp>10/20/2016 09:53:44 EDT</timestamp>
+</template>

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/minifi-integration-tests/src/test/resources/standalone/v2/ProcessGroups/xml/expected.json
----------------------------------------------------------------------
diff --git a/minifi-integration-tests/src/test/resources/standalone/v2/ProcessGroups/xml/expected.json b/minifi-integration-tests/src/test/resources/standalone/v2/ProcessGroups/xml/expected.json
new file mode 100644
index 0000000..a1e4e43
--- /dev/null
+++ b/minifi-integration-tests/src/test/resources/standalone/v2/ProcessGroups/xml/expected.json
@@ -0,0 +1,4 @@
+{
+  "pattern": "o.a.n.c.r.StandardProcessSession StandardProcessSession\\[id=.*\\] for LogAttribute\\[id=e25e0e6e-0157-1000-0000-000000000000\\], committed the following events: Transferred FlowFiles \\[.*\\] to 'success'",
+  "occurrences": 20
+}

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/minifi-integration-tests/src/test/resources/standalone/v2/ProcessGroups/yml/ProcessGroups.yml
----------------------------------------------------------------------
diff --git a/minifi-integration-tests/src/test/resources/standalone/v2/ProcessGroups/yml/ProcessGroups.yml b/minifi-integration-tests/src/test/resources/standalone/v2/ProcessGroups/yml/ProcessGroups.yml
new file mode 100644
index 0000000..fc837b6
--- /dev/null
+++ b/minifi-integration-tests/src/test/resources/standalone/v2/ProcessGroups/yml/ProcessGroups.yml
@@ -0,0 +1,163 @@
+# 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: pgtest
+  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: e25cd92a-0157-1000-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: '1'
+    Data Format: Binary
+    File Size: 1 b
+    Unique FlowFiles: 'false'
+- id: e25e0e6e-0157-1000-0000-000000000000
+  name: LogAttribute
+  class: org.apache.nifi.processors.standard.LogAttribute
+  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:
+  - success
+  Properties:
+    Attributes to Ignore:
+    Attributes to Log:
+    Log Level: info
+    Log Payload: 'false'
+    Log prefix: OUTSIDE
+Process Groups:
+- id: e25cbc20-0157-1000-0000-000000000000
+  name: black box
+  Processors:
+  - id: e25d2588-0157-1000-0000-000000000000
+    name: LogAttribute
+    class: org.apache.nifi.processors.standard.LogAttribute
+    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:
+      Attributes to Ignore:
+      Attributes to Log:
+      Log Level: info
+      Log Payload: 'false'
+      Log prefix: INSIDE
+  Process Groups: []
+  Input Ports:
+  - id: e25d0cef-0157-1000-0000-000000000000
+    name: input
+  Output Ports:
+  - id: e25d578c-0157-1000-0000-000000000000
+    name: output
+  Funnels: []
+  Connections:
+  - id: e25d6bd6-0157-1000-0000-000000000000
+    name: LogAttribute/success/output
+    source id: e25d2588-0157-1000-0000-000000000000
+    source relationship names:
+    - success
+    destination id: e25d578c-0157-1000-0000-000000000000
+    max work queue size: 10000
+    max work queue data size: 1 GB
+    flowfile expiration: 0 sec
+    queue prioritizer class: ''
+  - id: e25d35dc-0157-1000-0000-000000000000
+    name: input//LogAttribute
+    source id: e25d0cef-0157-1000-0000-000000000000
+    source relationship names: []
+    destination id: e25d2588-0157-1000-0000-000000000000
+    max work queue size: 10000
+    max work queue data size: 1 GB
+    flowfile expiration: 0 sec
+    queue prioritizer class: ''
+  Remote Process Groups: []
+Input Ports: []
+Output Ports: []
+Funnels: []
+Connections:
+- id: e25dbff3-0157-1000-0000-000000000000
+  name: GenerateFlowFile/success/input
+  source id: e25cd92a-0157-1000-0000-000000000000
+  source relationship names:
+  - success
+  destination id: e25d0cef-0157-1000-0000-000000000000
+  max work queue size: 10000
+  max work queue data size: 1 GB
+  flowfile expiration: 0 sec
+  queue prioritizer class: ''
+- id: e25e22b1-0157-1000-0000-000000000000
+  name: output//LogAttribute
+  source id: e25d578c-0157-1000-0000-000000000000
+  source relationship names: []
+  destination id: e25e0e6e-0157-1000-0000-000000000000
+  max work queue size: 10000
+  max work queue data size: 1 GB
+  flowfile expiration: 0 sec
+  queue prioritizer class: ''
+Remote Process Groups: []

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/minifi-integration-tests/src/test/resources/standalone/v2/ProcessGroups/yml/expected.json
----------------------------------------------------------------------
diff --git a/minifi-integration-tests/src/test/resources/standalone/v2/ProcessGroups/yml/expected.json b/minifi-integration-tests/src/test/resources/standalone/v2/ProcessGroups/yml/expected.json
new file mode 100644
index 0000000..a1e4e43
--- /dev/null
+++ b/minifi-integration-tests/src/test/resources/standalone/v2/ProcessGroups/yml/expected.json
@@ -0,0 +1,4 @@
+{
+  "pattern": "o.a.n.c.r.StandardProcessSession StandardProcessSession\\[id=.*\\] for LogAttribute\\[id=e25e0e6e-0157-1000-0000-000000000000\\], committed the following events: Transferred FlowFiles \\[.*\\] to 'success'",
+  "occurrences": 20
+}

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/minifi-integration-tests/src/test/resources/standalone/v2/StressTestFramework/xml/StressTestFramework.xml
----------------------------------------------------------------------
diff --git a/minifi-integration-tests/src/test/resources/standalone/v2/StressTestFramework/xml/StressTestFramework.xml b/minifi-integration-tests/src/test/resources/standalone/v2/StressTestFramework/xml/StressTestFramework.xml
new file mode 100644
index 0000000..4234170
--- /dev/null
+++ b/minifi-integration-tests/src/test/resources/standalone/v2/StressTestFramework/xml/StressTestFramework.xml
@@ -0,0 +1,539 @@
+<?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.
+  -->
+
+<template encoding-version="1.0">
+    <description></description>
+    <groupId>7cba7223-0157-1000-0571-63471fdb84c9</groupId>
+    <name>StressTestFramework</name>
+    <snippet>
+        <connections>
+            <id>4ad21393-16a4-1794-0000-000000000000</id>
+            <parentGroupId>7cba7223-0157-1000-0000-000000000000</parentGroupId>
+            <backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold>
+            <backPressureObjectThreshold>10000</backPressureObjectThreshold>
+            <destination>
+                <groupId>7cba7223-0157-1000-0000-000000000000</groupId>
+                <id>4ad21392-16a4-1794-0000-000000000000</id>
+                <type>FUNNEL</type>
+            </destination>
+            <flowFileExpiration>0 sec</flowFileExpiration>
+            <labelIndex>1</labelIndex>
+            <name></name>
+            <selectedRelationships>success</selectedRelationships>
+            <source>
+                <groupId>7cba7223-0157-1000-0000-000000000000</groupId>
+                <id>16a47794-5391-4ad2-0000-000000000000</id>
+                <type>PROCESSOR</type>
+            </source>
+            <zIndex>0</zIndex>
+        </connections>
+        <connections>
+            <id>4ad21394-16a4-1794-0000-000000000000</id>
+            <parentGroupId>7cba7223-0157-1000-0000-000000000000</parentGroupId>
+            <backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold>
+            <backPressureObjectThreshold>10000</backPressureObjectThreshold>
+            <destination>
+                <groupId>7cba7223-0157-1000-0000-000000000000</groupId>
+                <id>4ad21392-16a4-1794-0000-000000000000</id>
+                <type>FUNNEL</type>
+            </destination>
+            <flowFileExpiration>0 sec</flowFileExpiration>
+            <labelIndex>1</labelIndex>
+            <name></name>
+            <selectedRelationships>success</selectedRelationships>
+            <source>
+                <groupId>7cba7223-0157-1000-0000-000000000000</groupId>
+                <id>53914ad2-7794-16a4-0000-000000000000</id>
+                <type>PROCESSOR</type>
+            </source>
+            <zIndex>0</zIndex>
+        </connections>
+        <connections>
+            <id>4ad21395-16a4-1794-0000-000000000000</id>
+            <parentGroupId>7cba7223-0157-1000-0000-000000000000</parentGroupId>
+            <backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold>
+            <backPressureObjectThreshold>10000</backPressureObjectThreshold>
+            <destination>
+                <groupId>7cba7223-0157-1000-0000-000000000000</groupId>
+                <id>4ad21392-16a4-1794-0000-000000000000</id>
+                <type>FUNNEL</type>
+            </destination>
+            <flowFileExpiration>0 sec</flowFileExpiration>
+            <labelIndex>1</labelIndex>
+            <name></name>
+            <selectedRelationships>success</selectedRelationships>
+            <source>
+                <groupId>7cba7223-0157-1000-0000-000000000000</groupId>
+                <id>779416a4-4ad2-1391-0000-000000000000</id>
+                <type>PROCESSOR</type>
+            </source>
+            <zIndex>0</zIndex>
+        </connections>
+        <connections>
+            <id>4ad21396-16a4-1794-0000-000000000000</id>
+            <parentGroupId>7cba7223-0157-1000-0000-000000000000</parentGroupId>
+            <backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold>
+            <backPressureObjectThreshold>10000</backPressureObjectThreshold>
+            <destination>
+                <groupId>7cba7223-0157-1000-0000-000000000000</groupId>
+                <id>4ad21392-16a4-1794-0000-000000000000</id>
+                <type>FUNNEL</type>
+            </destination>
+            <flowFileExpiration>0 sec</flowFileExpiration>
+            <labelIndex>1</labelIndex>
+            <name></name>
+            <selectedRelationships>success</selectedRelationships>
+            <source>
+                <groupId>7cba7223-0157-1000-0000-000000000000</groupId>
+                <id>4ad21391-16a4-1794-0000-000000000000</id>
+                <type>PROCESSOR</type>
+            </source>
+            <zIndex>0</zIndex>
+        </connections>
+        <connections>
+            <id>4ad21397-16a4-1794-0000-000000000000</id>
+            <parentGroupId>7cba7223-0157-1000-0000-000000000000</parentGroupId>
+            <backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold>
+            <backPressureObjectThreshold>10000</backPressureObjectThreshold>
+            <destination>
+                <groupId>7cba7223-0157-1000-0000-000000000000</groupId>
+                <id>92557c76-f251-45a4-0000-000000000000</id>
+                <type>PROCESSOR</type>
+            </destination>
+            <flowFileExpiration>0 sec</flowFileExpiration>
+            <labelIndex>1</labelIndex>
+            <name></name>
+            <source>
+                <groupId>7cba7223-0157-1000-0000-000000000000</groupId>
+                <id>4ad21392-16a4-1794-0000-000000000000</id>
+                <type>FUNNEL</type>
+            </source>
+            <zIndex>0</zIndex>
+        </connections>
+        <connections>
+            <id>4c53556e-eb46-458c-0000-000000000000</id>
+            <parentGroupId>7cba7223-0157-1000-0000-000000000000</parentGroupId>
+            <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold>
+            <backPressureObjectThreshold>2000</backPressureObjectThreshold>
+            <destination>
+                <groupId>7cba7223-0157-1000-0000-000000000000</groupId>
+                <id>397a4910-cc01-4c6b-0000-000000000000</id>
+                <type>PROCESSOR</type>
+            </destination>
+            <flowFileExpiration>0 sec</flowFileExpiration>
+            <labelIndex>1</labelIndex>
+            <name></name>
+            <prioritizers>org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer</prioritizers>
+            <selectedRelationships>success</selectedRelationships>
+            <source>
+                <groupId>7cba7223-0157-1000-0000-000000000000</groupId>
+                <id>92557c76-f251-45a4-0000-000000000000</id>
+                <type>PROCESSOR</type>
+            </source>
+            <zIndex>0</zIndex>
+        </connections>
+        <funnels>
+            <id>4ad21392-16a4-1794-0000-000000000000</id>
+            <parentGroupId>7cba7223-0157-1000-0000-000000000000</parentGroupId>
+            <position>
+                <x>593.8762672567133</x>
+                <y>246.40484683047555</y>
+            </position>
+        </funnels>
+        <processors>
+            <id>92557c76-f251-45a4-0000-000000000000</id>
+            <parentGroupId>7cba7223-0157-1000-0000-000000000000</parentGroupId>
+            <position>
+                <x>442.8776092529297</x>
+                <y>345.48790588378904</y>
+            </position>
+            <config>
+                <bulletinLevel>WARN</bulletinLevel>
+                <comments></comments>
+                <concurrentlySchedulableTaskCount>2</concurrentlySchedulableTaskCount>
+                <descriptors>
+                    <entry>
+                        <key>Delete Attributes Expression</key>
+                        <value>
+                            <name>Delete Attributes Expression</name>
+                        </value>
+                    </entry>
+                    <entry>
+                        <key>property 1</key>
+                        <value>
+                            <name>property 1</name>
+                        </value>
+                    </entry>
+                    <entry>
+                        <key>property 2</key>
+                        <value>
+                            <name>property 2</name>
+                        </value>
+                    </entry>
+                </descriptors>
+                <lossTolerant>false</lossTolerant>
+                <penaltyDuration>30 sec</penaltyDuration>
+                <properties>
+                    <entry>
+                        <key>Delete Attributes Expression</key>
+                    </entry>
+                    <entry>
+                        <key>property 1</key>
+                        <value>value 1</value>
+                    </entry>
+                    <entry>
+                        <key>property 2</key>
+                        <value>value 2 ${nextInt()}</value>
+                    </entry>
+                </properties>
+                <runDurationMillis>100</runDurationMillis>
+                <schedulingPeriod>0 sec</schedulingPeriod>
+                <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+                <yieldDuration>1 sec</yieldDuration>
+            </config>
+            <name>UpdateAttribute</name>
+            <relationships>
+                <autoTerminate>false</autoTerminate>
+                <name>success</name>
+            </relationships>
+            <style></style>
+            <type>org.apache.nifi.processors.attributes.UpdateAttribute</type>
+        </processors>
+        <processors>
+            <id>16a47794-5391-4ad2-0000-000000000000</id>
+            <parentGroupId>7cba7223-0157-1000-0000-000000000000</parentGroupId>
+            <position>
+                <x>0.0</x>
+                <y>188.24237060546875</y>
+            </position>
+            <config>
+                <bulletinLevel>WARN</bulletinLevel>
+                <comments></comments>
+                <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+                <descriptors>
+                    <entry>
+                        <key>File Size</key>
+                        <value>
+                            <name>File Size</name>
+                        </value>
+                    </entry>
+                    <entry>
+                        <key>Batch Size</key>
+                        <value>
+                            <name>Batch Size</name>
+                        </value>
+                    </entry>
+                    <entry>
+                        <key>Data Format</key>
+                        <value>
+                            <name>Data Format</name>
+                        </value>
+                    </entry>
+                    <entry>
+                        <key>Unique FlowFiles</key>
+                        <value>
+                            <name>Unique FlowFiles</name>
+                        </value>
+                    </entry>
+                </descriptors>
+                <lossTolerant>false</lossTolerant>
+                <penaltyDuration>30 sec</penaltyDuration>
+                <properties>
+                    <entry>
+                        <key>File Size</key>
+                        <value>0 KB</value>
+                    </entry>
+                    <entry>
+                        <key>Batch Size</key>
+                        <value>100</value>
+                    </entry>
+                    <entry>
+                        <key>Data Format</key>
+                        <value>Binary</value>
+                    </entry>
+                    <entry>
+                        <key>Unique FlowFiles</key>
+                        <value>false</value>
+                    </entry>
+                </properties>
+                <runDurationMillis>0</runDurationMillis>
+                <schedulingPeriod>0 sec</schedulingPeriod>
+                <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+                <yieldDuration>1 sec</yieldDuration>
+            </config>
+            <name>GenerateFlowFile</name>
+            <relationships>
+                <autoTerminate>false</autoTerminate>
+                <name>success</name>
+            </relationships>
+            <style></style>
+            <type>org.apache.nifi.processors.standard.GenerateFlowFile</type>
+        </processors>
+        <processors>
+            <id>397a4910-cc01-4c6b-0000-000000000000</id>
+            <parentGroupId>7cba7223-0157-1000-0000-000000000000</parentGroupId>
+            <position>
+                <x>444.3776092529297</x>
+                <y>609.6672564697267</y>
+            </position>
+            <config>
+                <bulletinLevel>WARN</bulletinLevel>
+                <comments></comments>
+                <concurrentlySchedulableTaskCount>2</concurrentlySchedulableTaskCount>
+                <descriptors>
+                    <entry>
+                        <key>Routing Strategy</key>
+                        <value>
+                            <name>Routing Strategy</name>
+                        </value>
+                    </entry>
+                </descriptors>
+                <lossTolerant>false</lossTolerant>
+                <penaltyDuration>30 sec</penaltyDuration>
+                <properties>
+                    <entry>
+                        <key>Routing Strategy</key>
+                        <value>Route to Property name</value>
+                    </entry>
+                </properties>
+                <runDurationMillis>50</runDurationMillis>
+                <schedulingPeriod>0 sec</schedulingPeriod>
+                <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+                <yieldDuration>1 sec</yieldDuration>
+            </config>
+            <name>RouteOnAttribute</name>
+            <relationships>
+                <autoTerminate>true</autoTerminate>
+                <name>unmatched</name>
+            </relationships>
+            <style></style>
+            <type>org.apache.nifi.processors.standard.RouteOnAttribute</type>
+        </processors>
+        <processors>
+            <id>4ad21391-16a4-1794-0000-000000000000</id>
+            <parentGroupId>7cba7223-0157-1000-0000-000000000000</parentGroupId>
+            <position>
+                <x>975.3996429443359</x>
+                <y>173.76165771484375</y>
+            </position>
+            <config>
+                <bulletinLevel>WARN</bulletinLevel>
+                <comments></comments>
+                <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+                <descriptors>
+                    <entry>
+                        <key>File Size</key>
+                        <value>
+                            <name>File Size</name>
+                        </value>
+                    </entry>
+                    <entry>
+                        <key>Batch Size</key>
+                        <value>
+                            <name>Batch Size</name>
+                        </value>
+                    </entry>
+                    <entry>
+                        <key>Data Format</key>
+                        <value>
+                            <name>Data Format</name>
+                        </value>
+                    </entry>
+                    <entry>
+                        <key>Unique FlowFiles</key>
+                        <value>
+                            <name>Unique FlowFiles</name>
+                        </value>
+                    </entry>
+                </descriptors>
+                <lossTolerant>false</lossTolerant>
+                <penaltyDuration>30 sec</penaltyDuration>
+                <properties>
+                    <entry>
+                        <key>File Size</key>
+                        <value>0 KB</value>
+                    </entry>
+                    <entry>
+                        <key>Batch Size</key>
+                        <value>100</value>
+                    </entry>
+                    <entry>
+                        <key>Data Format</key>
+                        <value>Binary</value>
+                    </entry>
+                    <entry>
+                        <key>Unique FlowFiles</key>
+                        <value>false</value>
+                    </entry>
+                </properties>
+                <runDurationMillis>0</runDurationMillis>
+                <schedulingPeriod>0 sec</schedulingPeriod>
+                <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+                <yieldDuration>1 sec</yieldDuration>
+            </config>
+            <name>GenerateFlowFile</name>
+            <relationships>
+                <autoTerminate>false</autoTerminate>
+                <name>success</name>
+            </relationships>
+            <style></style>
+            <type>org.apache.nifi.processors.standard.GenerateFlowFile</type>
+        </processors>
+        <processors>
+            <id>53914ad2-7794-16a4-0000-000000000000</id>
+            <parentGroupId>7cba7223-0157-1000-0000-000000000000</parentGroupId>
+            <position>
+                <x>174.88023376464844</x>
+                <y>9.67376708984375</y>
+            </position>
+            <config>
+                <bulletinLevel>WARN</bulletinLevel>
+                <comments></comments>
+                <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+                <descriptors>
+                    <entry>
+                        <key>File Size</key>
+                        <value>
+                            <name>File Size</name>
+                        </value>
+                    </entry>
+                    <entry>
+                        <key>Batch Size</key>
+                        <value>
+                            <name>Batch Size</name>
+                        </value>
+                    </entry>
+                    <entry>
+                        <key>Data Format</key>
+                        <value>
+                            <name>Data Format</name>
+                        </value>
+                    </entry>
+                    <entry>
+                        <key>Unique FlowFiles</key>
+                        <value>
+                            <name>Unique FlowFiles</name>
+                        </value>
+                    </entry>
+                </descriptors>
+                <lossTolerant>false</lossTolerant>
+                <penaltyDuration>30 sec</penaltyDuration>
+                <properties>
+                    <entry>
+                        <key>File Size</key>
+                        <value>0 KB</value>
+                    </entry>
+                    <entry>
+                        <key>Batch Size</key>
+                        <value>100</value>
+                    </entry>
+                    <entry>
+                        <key>Data Format</key>
+                        <value>Binary</value>
+                    </entry>
+                    <entry>
+                        <key>Unique FlowFiles</key>
+                        <value>false</value>
+                    </entry>
+                </properties>
+                <runDurationMillis>0</runDurationMillis>
+                <schedulingPeriod>0 sec</schedulingPeriod>
+                <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+                <yieldDuration>1 sec</yieldDuration>
+            </config>
+            <name>GenerateFlowFile</name>
+            <relationships>
+                <autoTerminate>false</autoTerminate>
+                <name>success</name>
+            </relationships>
+            <style></style>
+            <type>org.apache.nifi.processors.standard.GenerateFlowFile</type>
+        </processors>
+        <processors>
+            <id>779416a4-4ad2-1391-0000-000000000000</id>
+            <parentGroupId>7cba7223-0157-1000-0000-000000000000</parentGroupId>
+            <position>
+                <x>758.0161590576172</x>
+                <y>0.0</y>
+            </position>
+            <config>
+                <bulletinLevel>WARN</bulletinLevel>
+                <comments></comments>
+                <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+                <descriptors>
+                    <entry>
+                        <key>File Size</key>
+                        <value>
+                            <name>File Size</name>
+                        </value>
+                    </entry>
+                    <entry>
+                        <key>Batch Size</key>
+                        <value>
+                            <name>Batch Size</name>
+                        </value>
+                    </entry>
+                    <entry>
+                        <key>Data Format</key>
+                        <value>
+                            <name>Data Format</name>
+                        </value>
+                    </entry>
+                    <entry>
+                        <key>Unique FlowFiles</key>
+                        <value>
+                            <name>Unique FlowFiles</name>
+                        </value>
+                    </entry>
+                </descriptors>
+                <lossTolerant>false</lossTolerant>
+                <penaltyDuration>30 sec</penaltyDuration>
+                <properties>
+                    <entry>
+                        <key>File Size</key>
+                        <value>0 KB</value>
+                    </entry>
+                    <entry>
+                        <key>Batch Size</key>
+                        <value>100</value>
+                    </entry>
+                    <entry>
+                        <key>Data Format</key>
+                        <value>Binary</value>
+                    </entry>
+                    <entry>
+                        <key>Unique FlowFiles</key>
+                        <value>false</value>
+                    </entry>
+                </properties>
+                <runDurationMillis>0</runDurationMillis>
+                <schedulingPeriod>0 sec</schedulingPeriod>
+                <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+                <yieldDuration>1 sec</yieldDuration>
+            </config>
+            <name>GenerateFlowFile</name>
+            <relationships>
+                <autoTerminate>false</autoTerminate>
+                <name>success</name>
+            </relationships>
+            <style></style>
+            <type>org.apache.nifi.processors.standard.GenerateFlowFile</type>
+        </processors>
+    </snippet>
+    <timestamp>09/30/2016 16:18:24 EDT</timestamp>
+</template>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/minifi-integration-tests/src/test/resources/standalone/v2/StressTestFramework/xml/expected.json
----------------------------------------------------------------------
diff --git a/minifi-integration-tests/src/test/resources/standalone/v2/StressTestFramework/xml/expected.json b/minifi-integration-tests/src/test/resources/standalone/v2/StressTestFramework/xml/expected.json
new file mode 100644
index 0000000..5f3740b
--- /dev/null
+++ b/minifi-integration-tests/src/test/resources/standalone/v2/StressTestFramework/xml/expected.json
@@ -0,0 +1,4 @@
+{
+  "pattern": "o.a.n.c.r.StandardProcessSession StandardProcessSession\\[id=.*\\] for RouteOnAttribute\\[id=397a4910-cc01-4c6b-0000-000000000000\\], committed the following events: Transferred FlowFiles \\[.*\\] to 'unmatched'",
+  "occurrences": 20
+}

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/minifi-integration-tests/src/test/resources/standalone/v2/StressTestFramework/yml/StressTestFramework.yml
----------------------------------------------------------------------
diff --git a/minifi-integration-tests/src/test/resources/standalone/v2/StressTestFramework/yml/StressTestFramework.yml b/minifi-integration-tests/src/test/resources/standalone/v2/StressTestFramework/yml/StressTestFramework.yml
new file mode 100644
index 0000000..46cd84d
--- /dev/null
+++ b/minifi-integration-tests/src/test/resources/standalone/v2/StressTestFramework/yml/StressTestFramework.yml
@@ -0,0 +1,211 @@
+# 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: []

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/minifi-integration-tests/src/test/resources/standalone/v2/StressTestFramework/yml/expected.json
----------------------------------------------------------------------
diff --git a/minifi-integration-tests/src/test/resources/standalone/v2/StressTestFramework/yml/expected.json b/minifi-integration-tests/src/test/resources/standalone/v2/StressTestFramework/yml/expected.json
new file mode 100644
index 0000000..5f3740b
--- /dev/null
+++ b/minifi-integration-tests/src/test/resources/standalone/v2/StressTestFramework/yml/expected.json
@@ -0,0 +1,4 @@
+{
+  "pattern": "o.a.n.c.r.StandardProcessSession StandardProcessSession\\[id=.*\\] for RouteOnAttribute\\[id=397a4910-cc01-4c6b-0000-000000000000\\], committed the following events: Transferred FlowFiles \\[.*\\] to 'unmatched'",
+  "occurrences": 20
+}

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/minifi-integration-tests/src/test/resources/tailFileServer.py
----------------------------------------------------------------------
diff --git a/minifi-integration-tests/src/test/resources/tailFileServer.py b/minifi-integration-tests/src/test/resources/tailFileServer.py
new file mode 100644
index 0000000..bec2ccf
--- /dev/null
+++ b/minifi-integration-tests/src/test/resources/tailFileServer.py
@@ -0,0 +1,61 @@
+# 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.
+
+#!/usr/bin/env python
+
+import logging
+
+from argparse import ArgumentParser
+from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler
+from SocketServer import ThreadingMixIn
+from subprocess import PIPE, Popen
+
+# Needs to be threaded or health check hangs the server
+class ThreadedHTTPServer(ThreadingMixIn, HTTPServer):
+  pass
+
+class TailHTTPRequestHandler(BaseHTTPRequestHandler):
+  def do_GET(self):
+    self.send_response(200)
+    self.send_header('Content-type','text/plain')
+    self.end_headers()
+    p = Popen(['tail', '-f', '-n', '+1', TAIL_FILE], stdout=PIPE)
+    try:
+      for line in iter(p.stdout.readline, b''):
+        self.wfile.write(line)
+        self.wfile.flush()
+    finally:
+      p.kill()
+    return
+
+if __name__ == '__main__':
+  logging.basicConfig(level=logging.DEBUG)
+  parser = ArgumentParser(description='Tail file over http')
+  parser.add_argument('--file')
+  parser.add_argument('--port', type=int, default=8000)
+
+  logging.debug('About to parse arguments')
+  args = parser.parse_args()
+
+  if not args.file:
+    raise Exception('Must specify --file')
+
+  global TAIL_FILE
+  TAIL_FILE = args.file
+
+  logging.debug('Serving tail of ' + TAIL_FILE + ' via HTTP at port ' + str(args.port))
+
+  server = ThreadedHTTPServer(('', args.port), TailHTTPRequestHandler)
+  server.serve_forever()
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 3fa1f2a..7ea5a2c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -40,6 +40,7 @@ limitations under the License.
         <module>minifi-toolkit</module>
         <module>minifi-docker</module>
         <module>minifi-c2</module>
+        <module>minifi-integration-tests</module>
     </modules>
 
     <url>http://nifi.apache.org/minifi</url>


[3/3] nifi-minifi git commit: MINIFI-242 - Initial integration tests focused around backwards compatibility

Posted by al...@apache.org.
MINIFI-242 - Initial integration tests focused around backwards compatibility

This closes #76.

Signed-off-by: Aldrin Piri <al...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/nifi-minifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi-minifi/commit/25298e90
Tree: http://git-wip-us.apache.org/repos/asf/nifi-minifi/tree/25298e90
Diff: http://git-wip-us.apache.org/repos/asf/nifi-minifi/diff/25298e90

Branch: refs/heads/master
Commit: 25298e90b0024779316fd55d13510613acfa6b90
Parents: f89f415
Author: Bryan Rosander <br...@apache.org>
Authored: Tue Mar 21 12:37:05 2017 -0400
Committer: Aldrin Piri <al...@apache.org>
Committed: Fri Mar 31 13:10:46 2017 -0400

----------------------------------------------------------------------
 README.md                                       |   9 +
 minifi-integration-tests/pom.xml                | 122 +++
 .../standalone/test/StandaloneXmlTest.java      |  53 ++
 .../standalone/test/StandaloneYamlTest.java     | 131 ++++
 .../src/test/resources/bootstrap.conf           |  99 +++
 .../resources/docker-compose-v1-standalone.yml  |  33 +
 .../src/test/resources/logback.xml              | 100 +++
 .../standalone/v1/CsvToJson/xml/CsvToJson.xml   | 400 ++++++++++
 .../standalone/v1/CsvToJson/xml/expected.json   |   4 +
 .../standalone/v1/CsvToJson/yml/CsvToJson.yml   | 178 +++++
 .../standalone/v1/CsvToJson/yml/expected.json   |   4 +
 .../xml/DecompressionCircularFlow.xml           | 757 +++++++++++++++++++
 .../DecompressionCircularFlow/xml/expected.json |   4 +
 .../yml/DecompressionCircularFlow.yml           | 293 +++++++
 .../DecompressionCircularFlow/yml/expected.json |   4 +
 .../xml/MiNiFiTailLogAttribute.xml              | 134 ++++
 .../v1/MiNiFiTailLogAttribute/xml/expected.json |   4 +
 .../yml/MiNiFiTailLogAttribute.yml              |  98 +++
 .../v1/MiNiFiTailLogAttribute/yml/expected.json |   4 +
 ...aceTextExpressionLanguageCSVReformatting.xml | 270 +++++++
 .../xml/expected.json                           |   4 +
 ...aceTextExpressionLanguageCSVReformatting.yml | 146 ++++
 .../yml/expected.json                           |   4 +
 .../xml/MultipleRelationships.xml               | 340 +++++++++
 .../v2/MultipleRelationships/xml/expected.json  |   4 +
 .../yml/MultipleRelationships.yml               | 153 ++++
 .../v2/MultipleRelationships/yml/expected.json  |   4 +
 .../v2/ProcessGroups/xml/ProcessGroups.xml      | 370 +++++++++
 .../v2/ProcessGroups/xml/expected.json          |   4 +
 .../v2/ProcessGroups/yml/ProcessGroups.yml      | 163 ++++
 .../v2/ProcessGroups/yml/expected.json          |   4 +
 .../xml/StressTestFramework.xml                 | 539 +++++++++++++
 .../v2/StressTestFramework/xml/expected.json    |   4 +
 .../yml/StressTestFramework.yml                 | 211 ++++++
 .../v2/StressTestFramework/yml/expected.json    |   4 +
 .../src/test/resources/tailFileServer.py        |  61 ++
 pom.xml                                         |   1 +
 37 files changed, 4717 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/README.md
----------------------------------------------------------------------
diff --git a/README.md b/README.md
index ec6916f..ad29baa 100644
--- a/README.md
+++ b/README.md
@@ -21,6 +21,7 @@ MiNiFi is a child project effort of Apache NiFi
 - [Features](#features)
 - [Requirements](#requirements)
 - [Getting Started](#getting-started)
+- [Docker Build](#docker-build)
 - [Getting Help](#getting-help)
 - [Documentation](#documentation)
 - [License](#license)
@@ -97,6 +98,14 @@ To run MiNiFi:
         $ cd ~/example-minifi-deploy/minifi-*
         $ ./bin/minifi.sh stop
 
+## Docker Build
+
+To build:
+- Execute mvn -P docker clean install.  This will run the full build, create a docker image based on it, and run docker-compose integration tests.  After it completes successfully, you should have an apacheminifi:${minifi.version} image that can be started with the following command (replacing ${minifi.version} with the current maven version of your branch):
+```
+docker run -d -v YOUR_CONFIG.YML:/opt/minifi/minifi-${minifi.version}/conf/config.yml apacheminifi:${minifi.version}
+```
+
 ## Getting Help
 If you have questions, you can reach out to our mailing list: dev@nifi.apache.org
 ([archive](https://mail-archives.apache.org/mod_mbox/nifi-dev)).

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/minifi-integration-tests/pom.xml
----------------------------------------------------------------------
diff --git a/minifi-integration-tests/pom.xml b/minifi-integration-tests/pom.xml
new file mode 100644
index 0000000..6356434
--- /dev/null
+++ b/minifi-integration-tests/pom.xml
@@ -0,0 +1,122 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <artifactId>minifi</artifactId>
+        <groupId>org.apache.nifi.minifi</groupId>
+        <version>0.2.0-SNAPSHOT</version>
+    </parent>
+    <artifactId>minifi-integration-tests</artifactId>
+    <packaging>jar</packaging>
+
+    <properties>
+        <minifi.version>${project.version}</minifi.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.nifi.minifi</groupId>
+            <artifactId>minifi-commons-schema</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.palantir.docker.compose</groupId>
+            <artifactId>docker-compose-rule-junit4</artifactId>
+            <version>0.31.1</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.nifi.minifi</groupId>
+            <artifactId>minifi-toolkit-configuration</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>ch.qos.logback</groupId>
+                    <artifactId>logback-classic</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.slf4j</groupId>
+                    <artifactId>slf4j-log4j12</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-databind</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <testResources>
+            <testResource>
+                <directory>src/test/resources</directory>
+                <filtering>true</filtering>
+            </testResource>
+        </testResources>
+
+        <plugins>
+            <plugin>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <configuration>
+                    <skip>true</skip>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.rat</groupId>
+                <artifactId>apache-rat-plugin</artifactId>
+                <configuration>
+                    <excludes combine.children="append">
+                        <exclude>**/expected.json</exclude>
+                    </excludes>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <profiles>
+        <profile>
+            <id>docker</id>
+            <properties>
+                <name>docker</name>
+            </properties>
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-surefire-plugin</artifactId>
+                        <configuration>
+                            <skip>false</skip>
+                        </configuration>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+
+    <repositories>
+        <repository>
+            <id>palantir.bintray</id>
+            <name>Palantir Bintray</name>
+            <url>https://dl.bintray.com/palantir/releases</url>
+        </repository>
+    </repositories>
+</project>

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/minifi-integration-tests/src/test/java/org/apache/nifi/minifi/integration/standalone/test/StandaloneXmlTest.java
----------------------------------------------------------------------
diff --git a/minifi-integration-tests/src/test/java/org/apache/nifi/minifi/integration/standalone/test/StandaloneXmlTest.java b/minifi-integration-tests/src/test/java/org/apache/nifi/minifi/integration/standalone/test/StandaloneXmlTest.java
new file mode 100644
index 0000000..9672928
--- /dev/null
+++ b/minifi-integration-tests/src/test/java/org/apache/nifi/minifi/integration/standalone/test/StandaloneXmlTest.java
@@ -0,0 +1,53 @@
+/*
+ * 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.
+ */
+
+package org.apache.nifi.minifi.integration.standalone.test;
+
+import org.apache.nifi.minifi.commons.schema.ConfigSchema;
+import org.apache.nifi.minifi.commons.schema.serialization.SchemaSaver;
+import org.apache.nifi.minifi.toolkit.configuration.ConfigMain;
+
+import javax.xml.bind.JAXBException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+
+public class StandaloneXmlTest extends StandaloneYamlTest {
+    public StandaloneXmlTest(String version, String name) throws IOException, JAXBException {
+        super(version, name);
+        ConfigSchema configSchema;
+        try (InputStream inputStream = StandaloneXmlTest.class.getClassLoader().getResourceAsStream("./standalone/" + version + "/" + name + "/xml/" + name + ".xml")) {
+            configSchema = ConfigMain.transformTemplateToSchema(inputStream);
+        }
+        try (OutputStream outputStream = Files.newOutputStream(Paths.get(StandaloneXmlTest.class.getClassLoader().getResource("docker-compose-v1-standalone.yml").getFile())
+                .getParent().toAbsolutePath().resolve(getConfigYml()))) {
+            SchemaSaver.saveConfigSchema(configSchema, outputStream);
+        }
+    }
+
+    @Override
+    protected String getConfigYml() {
+        return "./standalone/" + version + "/" + name + "/xml/" + name + ".yml";
+    }
+
+    @Override
+    protected String getExpectedJson() {
+        return "standalone/" + version + "/" + name + "/xml/expected.json";
+    }
+}

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/minifi-integration-tests/src/test/java/org/apache/nifi/minifi/integration/standalone/test/StandaloneYamlTest.java
----------------------------------------------------------------------
diff --git a/minifi-integration-tests/src/test/java/org/apache/nifi/minifi/integration/standalone/test/StandaloneYamlTest.java b/minifi-integration-tests/src/test/java/org/apache/nifi/minifi/integration/standalone/test/StandaloneYamlTest.java
new file mode 100644
index 0000000..bf9cd96
--- /dev/null
+++ b/minifi-integration-tests/src/test/java/org/apache/nifi/minifi/integration/standalone/test/StandaloneYamlTest.java
@@ -0,0 +1,131 @@
+/*
+ * 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.
+ */
+
+package org.apache.nifi.minifi.integration.standalone.test;
+
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.palantir.docker.compose.DockerComposeRule;
+import com.palantir.docker.compose.connection.DockerPort;
+import com.palantir.docker.compose.connection.waiting.HealthChecks;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Map;
+import java.util.concurrent.ExecutionException;
+import java.util.regex.Pattern;
+
+import static org.junit.Assert.fail;
+
+@RunWith(Parameterized.class)
+public class StandaloneYamlTest {
+    private static final Logger logger = LoggerFactory.getLogger(StandaloneYamlTest.class);
+
+    protected final String version;
+    protected final String name;
+
+    @Parameterized.Parameters(name = "{index}: Schema Version: {0} Name: {1}")
+    public static Collection<Object[]> data() {
+        return Arrays.asList(new Object[][]{
+                {"v1", "CsvToJson"},
+                {"v1", "DecompressionCircularFlow"},
+                {"v1", "MiNiFiTailLogAttribute"},
+                {"v1", "ReplaceTextExpressionLanguageCSVReformatting"},
+                {"v2", "MultipleRelationships"},
+                {"v2", "ProcessGroups"},
+                {"v2", "StressTestFramework"}
+        });
+    }
+
+    @Rule
+    public DockerComposeRule dockerComposeRule;
+
+    public StandaloneYamlTest(String version, String name) throws IOException {
+        this.version = version;
+        this.name = name;
+        String dockerComposeYmlFile = "target/test-classes/docker-compose-" + version + "-" + name + "Test-yml.yml";
+        try (InputStream inputStream = StandaloneYamlTest.class.getClassLoader().getResourceAsStream("docker-compose-v1-standalone.yml");
+             InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
+             BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
+             FileWriter fileWriter = new FileWriter(dockerComposeYmlFile);
+             BufferedWriter bufferedWriter = new BufferedWriter(fileWriter)) {
+            String line;
+            while ((line = bufferedReader.readLine()) != null) {
+                bufferedWriter.write(line.replace("REPLACED_WITH_CONFIG_FILE", getConfigYml()));
+                bufferedWriter.newLine();
+            }
+        }
+        dockerComposeRule = DockerComposeRule.builder()
+                .file(dockerComposeYmlFile)
+                .waitingForService("minifi", HealthChecks.toRespond2xxOverHttp(8000, dockerPort -> "http://" + dockerPort.getIp() + ":" + dockerPort.getExternalPort()))
+                .build();
+    }
+
+    protected String getConfigYml() {
+        return "./standalone/" + version + "/" + name + "/yml/" + name + ".yml";
+    }
+
+    protected String getExpectedJson() {
+        return "standalone/" + version + "/" + name + "/yml/expected.json";
+    }
+
+    @Test(timeout = 60_000)
+    public void verifyLogEntries() throws IOException, InterruptedException, ExecutionException {
+        Pattern expectedLine;
+        int expectedOccurences;
+        try (InputStream inputStream = StandaloneYamlTest.class.getClassLoader().getResourceAsStream(getExpectedJson())) {
+            Map<String, Object> map = new ObjectMapper().readValue(inputStream, Map.class);
+            expectedLine = Pattern.compile((String) map.get("pattern"));
+            expectedOccurences = (int) map.getOrDefault("occurrences", 1);
+        }
+        DockerPort dockerPort = dockerComposeRule.containers().container("minifi").port(8000);
+        URL url = new URL("http://" + dockerPort.getIp() + ":" + dockerPort.getExternalPort());
+        HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
+        try (InputStream inputStream = urlConnection.getInputStream();
+             InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
+             BufferedReader bufferedReader = new BufferedReader(inputStreamReader)) {
+            String line;
+            int occurrences = 0;
+            while ((line = bufferedReader.readLine()) != null) {
+                if (expectedLine.matcher(line).find()) {
+                    logger.info("Found expected: " + line);
+                    if (++occurrences >= expectedOccurences) {
+                        logger.info("Found target " + occurrences + " times");
+                        return;
+                    }
+                }
+            }
+            fail("End of log reached without " + expectedOccurences + " match(es)");
+        } finally {
+            urlConnection.disconnect();
+        }
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/minifi-integration-tests/src/test/resources/bootstrap.conf
----------------------------------------------------------------------
diff --git a/minifi-integration-tests/src/test/resources/bootstrap.conf b/minifi-integration-tests/src/test/resources/bootstrap.conf
new file mode 100644
index 0000000..28e9d1b
--- /dev/null
+++ b/minifi-integration-tests/src/test/resources/bootstrap.conf
@@ -0,0 +1,99 @@
+#
+# 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.
+#
+
+# Java command to use when running MiNiFi
+java=java
+
+# Username to use when running MiNiFi. This value will be ignored on Windows.
+run.as=
+
+# Configure where MiNiFi's lib and conf directories live
+lib.dir=./lib
+conf.dir=./conf
+
+# How long to wait after telling MiNiFi to shutdown before explicitly killing the Process
+graceful.shutdown.seconds=20
+
+# The location for the configuration file
+nifi.minifi.config=./conf/config.yml
+
+# Notifiers to use for the associated agent, comma separated list of class names
+#nifi.minifi.notifier.ingestors=org.apache.nifi.minifi.bootstrap.configuration.ingestors.FileChangeIngestor
+#nifi.minifi.notifier.ingestors=org.apache.nifi.minifi.bootstrap.configuration.ingestors.RestChangeIngestor
+#nifi.minifi.notifier.ingestors=org.apache.nifi.minifi.bootstrap.configuration.ingestors.PullHttpChangeIngestor
+
+# File change notifier configuration
+
+# Path of the file to monitor for changes.  When these occur, the FileChangeNotifier, if configured, will begin the configuration reloading process
+#nifi.minifi.notifier.ingestors.file.config.path=
+# How frequently the file specified by 'nifi.minifi.notifier.file.config.path' should be evaluated for changes.
+#nifi.minifi.notifier.ingestors.file.polling.period.seconds=5
+
+# Rest change notifier configuration
+
+# Port on which the Jetty server will bind to, keep commented for a random open port
+#nifi.minifi.notifier.ingestors.receive.http.port=8338
+
+#Pull HTTP change notifier configuration
+
+# Hostname on which to pull configurations from
+#nifi.minifi.notifier.ingestors.pull.http.hostname=localhost
+# Port on which to pull configurations from
+#nifi.minifi.notifier.ingestors.pull.http.port=4567
+# Path to pull configurations from
+#nifi.minifi.notifier.ingestors.pull.http.path=/c2/config
+# Query string to pull configurations with
+#nifi.minifi.notifier.ingestors.pull.http.query=class=raspi3
+# Period on which to pull configurations from, defaults to 5 minutes if commented out
+#nifi.minifi.notifier.ingestors.pull.http.period.ms=300000
+
+# Periodic Status Reporters to use for the associated agent, comma separated list of class names
+#nifi.minifi.status.reporter.components=org.apache.nifi.minifi.bootstrap.status.reporters.StatusLogger
+
+# Periodic Status Logger configuration
+
+# The FlowStatus query to submit to the MiNiFi instance
+#nifi.minifi.status.reporter.log.query=instance:health,bulletins
+# The log level at which the status will be logged
+#nifi.minifi.status.reporter.log.level=INFO
+# The period (in milliseconds) at which to log the status
+#nifi.minifi.status.reporter.log.period=60000
+
+# Disable JSR 199 so that we can use JSP's without running a JDK
+java.arg.1=-Dorg.apache.jasper.compiler.disablejsr199=true
+
+# JVM memory settings
+java.arg.2=-Xms256m
+java.arg.3=-Xmx256m
+
+# Enable Remote Debugging
+#java.arg.debug=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000
+
+java.arg.4=-Djava.net.preferIPv4Stack=true
+
+# allowRestrictedHeaders is required for Cluster/Node communications to work properly
+java.arg.5=-Dsun.net.http.allowRestrictedHeaders=true
+java.arg.6=-Djava.protocol.handler.pkgs=sun.net.www.protocol
+
+# The G1GC is still considered experimental but has proven to be very advantageous in providing great
+# performance without significant "stop-the-world" delays.
+#java.arg.13=-XX:+UseG1GC
+
+#Set headless mode by default
+java.arg.14=-Djava.awt.headless=true
+
+java.arg.15=-Djava.security.egd=file:/dev/./urandom
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/minifi-integration-tests/src/test/resources/docker-compose-v1-standalone.yml
----------------------------------------------------------------------
diff --git a/minifi-integration-tests/src/test/resources/docker-compose-v1-standalone.yml b/minifi-integration-tests/src/test/resources/docker-compose-v1-standalone.yml
new file mode 100644
index 0000000..1cd18ae
--- /dev/null
+++ b/minifi-integration-tests/src/test/resources/docker-compose-v1-standalone.yml
@@ -0,0 +1,33 @@
+# 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.
+
+version: "2"
+
+services:
+  minifi:
+    image: apacheminifi:${minifi.version}
+    ports:
+      - "8000"
+    hostname: minifi
+    volumes:
+      - ./tailFileServer.py:/home/minifi/tailFileServer.py
+
+      - ./bootstrap.conf:/opt/minifi/minifi-${minifi.version}/conf/bootstrap.conf
+      - ./logback.xml:/opt/minifi/minifi-${minifi.version}/conf/logback.xml
+      - REPLACED_WITH_CONFIG_FILE:/opt/minifi/minifi-${minifi.version}/conf/config.yml
+    entrypoint:
+      - bash
+      - -c
+      - /opt/minifi/minifi-${minifi.version}/bin/minifi.sh start && python /home/minifi/tailFileServer.py --file /opt/minifi/minifi-${minifi.version}/logs/minifi-app.log
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/minifi-integration-tests/src/test/resources/logback.xml
----------------------------------------------------------------------
diff --git a/minifi-integration-tests/src/test/resources/logback.xml b/minifi-integration-tests/src/test/resources/logback.xml
new file mode 100644
index 0000000..168ff9e
--- /dev/null
+++ b/minifi-integration-tests/src/test/resources/logback.xml
@@ -0,0 +1,100 @@
+<?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.
+  -->
+
+<configuration scan="true" scanPeriod="30 seconds">
+    <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
+        <resetJUL>true</resetJUL>
+    </contextListener>
+    
+    <appender name="APP_FILE" class="ch.qos.logback.core.FileAppender">
+        <file>${org.apache.nifi.minifi.bootstrap.config.log.dir}/minifi-app.log</file>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <pattern>%date %level [%thread] %logger{40} %msg%n</pattern>
+            <immediateFlush>true</immediateFlush>
+        </encoder>
+    </appender>
+
+    <appender name="BOOTSTRAP_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${org.apache.nifi.minifi.bootstrap.config.log.dir}/minifi-bootstrap.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!--
+              For daily rollover, use 'user_%d.log'.
+              For hourly rollover, use 'user_%d{yyyy-MM-dd_HH}.log'.
+              To GZIP rolled files, replace '.log' with '.log.gz'.
+              To ZIP rolled files, replace '.log' with '.log.zip'.
+            -->
+            <fileNamePattern>${org.apache.nifi.minifi.bootstrap.config.log.dir}/minifi-bootstrap_%d.log.gz</fileNamePattern>
+            <!-- Keep 5 rolling periods worth of logs-->
+            <maxHistory>5</maxHistory>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <pattern>%date %level [%thread] %logger{40} %msg%n</pattern>
+        </encoder>
+    </appender>
+	
+	<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+		<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <pattern>%date %level [%thread] %logger{40} %msg%n</pattern>
+        </encoder>
+	</appender>
+    
+    <!-- valid logging levels: TRACE, DEBUG, INFO, WARN, ERROR -->
+    
+    <logger name="org.apache.nifi" level="INFO"/>
+    <logger name="org.apache.nifi.processors" level="WARN"/>
+    <logger name="org.apache.nifi.processors.standard.LogAttribute" level="INFO"/>
+    <logger name="org.apache.nifi.controller.repository.StandardProcessSession" level="INFO" />
+
+    <!-- Logger for managing logging statements for jetty -->
+    <logger name="org.eclipse.jetty" level="INFO"/>
+
+    <!-- Suppress non-error messages due to excessive logging by class or library -->
+    <logger name="com.sun.jersey.spi.container.servlet.WebComponent" level="ERROR"/>
+    <logger name="com.sun.jersey.spi.spring" level="ERROR"/>
+    <logger name="org.springframework" level="ERROR"/>
+    
+    <!-- Suppress non-error messages due to known warning about redundant path annotation (NIFI-574) -->
+    <logger name="com.sun.jersey.spi.inject.Errors" level="ERROR"/>
+
+    <!--
+        Logger for capturing Bootstrap logs and MiNiFi's standard error and standard out.
+    -->
+    <logger name="org.apache.nifi.minifi.bootstrap" level="INFO" additivity="false">
+        <appender-ref ref="BOOTSTRAP_FILE" />
+    </logger>
+    <logger name="org.apache.nifi.minifi.bootstrap.Command" level="INFO" additivity="false">
+        <appender-ref ref="CONSOLE" />
+        <appender-ref ref="BOOTSTRAP_FILE" />
+    </logger>
+
+    <!-- Everything written to MiNiFi's Standard Out will be logged with the logger org.apache.nifi.minifi.StdOut at INFO level -->
+    <logger name="org.apache.nifi.minifi.StdOut" level="INFO" additivity="false">
+        <appender-ref ref="BOOTSTRAP_FILE" />
+    </logger>
+    
+    <!-- Everything written to MiNiFi's Standard Error will be logged with the logger org.apache.nifi.minifi.StdErr at ERROR level -->
+	<logger name="org.apache.nifi.minifi.StdErr" level="ERROR" additivity="false">
+    	<appender-ref ref="BOOTSTRAP_FILE" />
+    </logger>
+
+
+    <root level="INFO">
+        <appender-ref ref="APP_FILE"/>
+    </root>
+    
+</configuration>

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/minifi-integration-tests/src/test/resources/standalone/v1/CsvToJson/xml/CsvToJson.xml
----------------------------------------------------------------------
diff --git a/minifi-integration-tests/src/test/resources/standalone/v1/CsvToJson/xml/CsvToJson.xml b/minifi-integration-tests/src/test/resources/standalone/v1/CsvToJson/xml/CsvToJson.xml
new file mode 100644
index 0000000..60f5296
--- /dev/null
+++ b/minifi-integration-tests/src/test/resources/standalone/v1/CsvToJson/xml/CsvToJson.xml
@@ -0,0 +1,400 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+  ~ 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.
+  -->
+<template encoding-version="1.0">
+    <description></description>
+    <groupId>3d665027-7897-4322-96a1-cabef6b2bcf7</groupId>
+    <name>CsvToJsonWorking</name>
+    <snippet>
+        <connections>
+            <id>0cc34e0a-0ae9-44ba-838f-792ed393a301</id>
+            <parentGroupId>3d665027-7897-4322-96a1-cabef6b2bcf7</parentGroupId>
+            <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold>
+            <backPressureObjectThreshold>0</backPressureObjectThreshold>
+            <destination>
+                <groupId>3d665027-7897-4322-96a1-cabef6b2bcf7</groupId>
+                <id>cdcc2028-238b-42b7-bf95-dd4f301b91fc</id>
+                <type>PROCESSOR</type>
+            </destination>
+            <flowFileExpiration>0 sec</flowFileExpiration>
+            <labelIndex>1</labelIndex>
+            <name></name>
+            <prioritizers>org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer</prioritizers>
+            <selectedRelationships>success</selectedRelationships>
+            <source>
+                <groupId>3d665027-7897-4322-96a1-cabef6b2bcf7</groupId>
+                <id>ffb6d4e9-9d6c-4fbe-ab8a-52bad90ce2e5</id>
+                <type>PROCESSOR</type>
+            </source>
+            <zIndex>0</zIndex>
+        </connections>
+        <connections>
+            <id>e32e19cb-6c4c-4c6c-a8db-408447ba2ca2</id>
+            <parentGroupId>3d665027-7897-4322-96a1-cabef6b2bcf7</parentGroupId>
+            <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold>
+            <backPressureObjectThreshold>0</backPressureObjectThreshold>
+            <destination>
+                <groupId>3d665027-7897-4322-96a1-cabef6b2bcf7</groupId>
+                <id>5f0ec33c-0a07-4305-a3a9-9a3ba0548ac6</id>
+                <type>PROCESSOR</type>
+            </destination>
+            <flowFileExpiration>0 sec</flowFileExpiration>
+            <labelIndex>1</labelIndex>
+            <name></name>
+            <prioritizers>org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer</prioritizers>
+            <selectedRelationships>success</selectedRelationships>
+            <source>
+                <groupId>3d665027-7897-4322-96a1-cabef6b2bcf7</groupId>
+                <id>cdcc2028-238b-42b7-bf95-dd4f301b91fc</id>
+                <type>PROCESSOR</type>
+            </source>
+            <zIndex>0</zIndex>
+        </connections>
+        <connections>
+            <id>b061c170-19da-4e84-9709-327303fef579</id>
+            <parentGroupId>3d665027-7897-4322-96a1-cabef6b2bcf7</parentGroupId>
+            <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold>
+            <backPressureObjectThreshold>0</backPressureObjectThreshold>
+            <destination>
+                <groupId>3d665027-7897-4322-96a1-cabef6b2bcf7</groupId>
+                <id>1d00089c-78cd-467f-9aa6-31e3bdf90cb0</id>
+                <type>PROCESSOR</type>
+            </destination>
+            <flowFileExpiration>0 sec</flowFileExpiration>
+            <labelIndex>1</labelIndex>
+            <name></name>
+            <prioritizers>org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer</prioritizers>
+            <selectedRelationships>success</selectedRelationships>
+            <source>
+                <groupId>3d665027-7897-4322-96a1-cabef6b2bcf7</groupId>
+                <id>8db2ebc8-12c8-4396-89b6-479d907fbc6b</id>
+                <type>PROCESSOR</type>
+            </source>
+            <zIndex>0</zIndex>
+        </connections>
+        <connections>
+            <id>56ef3e2e-ee35-4598-9fbe-ae86050960b0</id>
+            <parentGroupId>3d665027-7897-4322-96a1-cabef6b2bcf7</parentGroupId>
+            <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold>
+            <backPressureObjectThreshold>0</backPressureObjectThreshold>
+            <destination>
+                <groupId>3d665027-7897-4322-96a1-cabef6b2bcf7</groupId>
+                <id>8db2ebc8-12c8-4396-89b6-479d907fbc6b</id>
+                <type>PROCESSOR</type>
+            </destination>
+            <flowFileExpiration>0 sec</flowFileExpiration>
+            <labelIndex>1</labelIndex>
+            <name></name>
+            <prioritizers>org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer</prioritizers>
+            <selectedRelationships>matched</selectedRelationships>
+            <source>
+                <groupId>3d665027-7897-4322-96a1-cabef6b2bcf7</groupId>
+                <id>5f0ec33c-0a07-4305-a3a9-9a3ba0548ac6</id>
+                <type>PROCESSOR</type>
+            </source>
+            <zIndex>0</zIndex>
+        </connections>
+        <labels>
+            <id>a1854f35-469c-41fa-80a2-70ae90cf1ed9</id>
+            <parentGroupId>3d665027-7897-4322-96a1-cabef6b2bcf7</parentGroupId>
+            <position>
+                <x>514.0</x>
+                <y>431.6599933547974</y>
+            </position>
+            <height>281.4172668457031</height>
+            <label></label>
+            <style/>
+            <width>388.0479431152344</width>
+        </labels>
+        <processors>
+            <id>cdcc2028-238b-42b7-bf95-dd4f301b91fc</id>
+            <parentGroupId>3d665027-7897-4322-96a1-cabef6b2bcf7</parentGroupId>
+            <position>
+                <x>569.3500686645507</x>
+                <y>239.77198108673096</y>
+            </position>
+            <config>
+                <bulletinLevel>WARN</bulletinLevel>
+                <comments></comments>
+                <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+                <lossTolerant>false</lossTolerant>
+                <penaltyDuration>30 sec</penaltyDuration>
+                <properties>
+                    <entry>
+                        <key>Regular Expression</key>
+                        <value>(?s:^.*$)</value>
+                    </entry>
+                    <entry>
+                        <key>Replacement Value</key>
+                        <value>a,b,c,d</value>
+                    </entry>
+                    <entry>
+                        <key>Character Set</key>
+                        <value>UTF-8</value>
+                    </entry>
+                    <entry>
+                        <key>Maximum Buffer Size</key>
+                        <value>1 MB</value>
+                    </entry>
+                    <entry>
+                        <key>Replacement Strategy</key>
+                    </entry>
+                    <entry>
+                        <key>Evaluation Mode</key>
+                        <value>Entire text</value>
+                    </entry>
+                </properties>
+                <runDurationMillis>0</runDurationMillis>
+                <schedulingPeriod>0 sec</schedulingPeriod>
+                <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+                <yieldDuration>1 sec</yieldDuration>
+            </config>
+            <name>ReplaceText</name>
+            <relationships>
+                <autoTerminate>true</autoTerminate>
+                <name>failure</name>
+            </relationships>
+            <relationships>
+                <autoTerminate>false</autoTerminate>
+                <name>success</name>
+            </relationships>
+            <style/>
+            <type>org.apache.nifi.processors.standard.ReplaceText</type>
+        </processors>
+        <processors>
+            <id>ffb6d4e9-9d6c-4fbe-ab8a-52bad90ce2e5</id>
+            <parentGroupId>3d665027-7897-4322-96a1-cabef6b2bcf7</parentGroupId>
+            <position>
+                <x>558.2500778198241</x>
+                <y>31.0</y>
+            </position>
+            <config>
+                <bulletinLevel>WARN</bulletinLevel>
+                <comments></comments>
+                <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+                <lossTolerant>false</lossTolerant>
+                <penaltyDuration>30 sec</penaltyDuration>
+                <properties>
+                    <entry>
+                        <key>File Size</key>
+                        <value>1 b</value>
+                    </entry>
+                    <entry>
+                        <key>Batch Size</key>
+                        <value>1</value>
+                    </entry>
+                    <entry>
+                        <key>Data Format</key>
+                        <value>Binary</value>
+                    </entry>
+                    <entry>
+                        <key>Unique FlowFiles</key>
+                        <value>false</value>
+                    </entry>
+                </properties>
+                <runDurationMillis>0</runDurationMillis>
+                <schedulingPeriod>1 sec</schedulingPeriod>
+                <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+                <yieldDuration>1 sec</yieldDuration>
+            </config>
+            <name>GenerateFlowFile</name>
+            <relationships>
+                <autoTerminate>false</autoTerminate>
+                <name>success</name>
+            </relationships>
+            <style/>
+            <type>org.apache.nifi.processors.standard.GenerateFlowFile</type>
+        </processors>
+        <processors>
+            <id>1d00089c-78cd-467f-9aa6-31e3bdf90cb0</id>
+            <parentGroupId>3d665027-7897-4322-96a1-cabef6b2bcf7</parentGroupId>
+            <position>
+                <x>585.2500320434569</x>
+                <y>866.0879933547974</y>
+            </position>
+            <config>
+                <bulletinLevel>WARN</bulletinLevel>
+                <comments></comments>
+                <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+                <lossTolerant>false</lossTolerant>
+                <penaltyDuration>30 sec</penaltyDuration>
+                <properties>
+                    <entry>
+                        <key>Delete Attributes Expression</key>
+                    </entry>
+                </properties>
+                <runDurationMillis>0</runDurationMillis>
+                <schedulingPeriod>0 sec</schedulingPeriod>
+                <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+                <yieldDuration>1 sec</yieldDuration>
+            </config>
+            <name>UpdateAttribute</name>
+            <relationships>
+                <autoTerminate>true</autoTerminate>
+                <name>success</name>
+            </relationships>
+            <style/>
+            <type>org.apache.nifi.processors.attributes.UpdateAttribute</type>
+        </processors>
+        <processors>
+            <id>8db2ebc8-12c8-4396-89b6-479d907fbc6b</id>
+            <parentGroupId>3d665027-7897-4322-96a1-cabef6b2bcf7</parentGroupId>
+            <position>
+                <x>590.3500228881835</x>
+                <y>658.9239851760865</y>
+            </position>
+            <config>
+                <bulletinLevel>WARN</bulletinLevel>
+                <comments></comments>
+                <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+                <lossTolerant>false</lossTolerant>
+                <penaltyDuration>30 sec</penaltyDuration>
+                <properties>
+                    <entry>
+                        <key>Regular Expression</key>
+                        <value>(?s:^.*$)</value>
+                    </entry>
+                    <entry>
+                        <key>Replacement Value</key>
+                        <value>{ &quot;field1&quot; : &quot;${csv.1}&quot;, &quot;field2&quot; : &quot;${csv.2}&quot;,
+                            &quot;field3&quot; : &quot;${csv.3}&quot;, &quot;field4&quot; : &quot;${csv.4}&quot; }
+                        </value>
+                    </entry>
+                    <entry>
+                        <key>Character Set</key>
+                        <value>UTF-8</value>
+                    </entry>
+                    <entry>
+                        <key>Maximum Buffer Size</key>
+                        <value>1 MB</value>
+                    </entry>
+                    <entry>
+                        <key>Replacement Strategy</key>
+                    </entry>
+                    <entry>
+                        <key>Evaluation Mode</key>
+                        <value>Entire text</value>
+                    </entry>
+                </properties>
+                <runDurationMillis>0</runDurationMillis>
+                <schedulingPeriod>0 sec</schedulingPeriod>
+                <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+                <yieldDuration>1 sec</yieldDuration>
+            </config>
+            <name>ReplaceText2</name>
+            <relationships>
+                <autoTerminate>true</autoTerminate>
+                <name>failure</name>
+            </relationships>
+            <relationships>
+                <autoTerminate>false</autoTerminate>
+                <name>success</name>
+            </relationships>
+            <style/>
+            <type>org.apache.nifi.processors.standard.ReplaceText</type>
+        </processors>
+        <processors>
+            <id>5f0ec33c-0a07-4305-a3a9-9a3ba0548ac6</id>
+            <parentGroupId>3d665027-7897-4322-96a1-cabef6b2bcf7</parentGroupId>
+            <position>
+                <x>580.7500320434569</x>
+                <y>450.15196063995364</y>
+            </position>
+            <config>
+                <bulletinLevel>WARN</bulletinLevel>
+                <comments></comments>
+                <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+                <lossTolerant>false</lossTolerant>
+                <penaltyDuration>30 sec</penaltyDuration>
+                <properties>
+                    <entry>
+                        <key>Character Set</key>
+                        <value>UTF-8</value>
+                    </entry>
+                    <entry>
+                        <key>Maximum Buffer Size</key>
+                        <value>1 MB</value>
+                    </entry>
+                    <entry>
+                        <key>Maximum Capture Group Length</key>
+                        <value>1024</value>
+                    </entry>
+                    <entry>
+                        <key>Enable Canonical Equivalence</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>Enable Case-insensitive Matching</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>Permit Whitespace and Comments in Pattern</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>Enable DOTALL Mode</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>Enable Literal Parsing of the Pattern</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>Enable Multiline Mode</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>Enable Unicode-aware Case Folding</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>Enable Unicode Predefined Character Classes</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>Enable Unix Lines Mode</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>Include Capture Group 0</key>
+                        <value>false</value>
+                    </entry>
+                    <entry>
+                        <key>csv</key>
+                        <value>(.+),(.+),(.+),(.+)</value>
+                    </entry>
+                </properties>
+                <runDurationMillis>0</runDurationMillis>
+                <schedulingPeriod>0 sec</schedulingPeriod>
+                <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+                <yieldDuration>1 sec</yieldDuration>
+            </config>
+            <name>ExtractText</name>
+            <relationships>
+                <autoTerminate>false</autoTerminate>
+                <name>matched</name>
+            </relationships>
+            <relationships>
+                <autoTerminate>true</autoTerminate>
+                <name>unmatched</name>
+            </relationships>
+            <style/>
+            <type>org.apache.nifi.processors.standard.ExtractText</type>
+        </processors>
+    </snippet>
+    <timestamp>07/04/2016 20:20:45 UTC</timestamp>
+</template>

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/minifi-integration-tests/src/test/resources/standalone/v1/CsvToJson/xml/expected.json
----------------------------------------------------------------------
diff --git a/minifi-integration-tests/src/test/resources/standalone/v1/CsvToJson/xml/expected.json b/minifi-integration-tests/src/test/resources/standalone/v1/CsvToJson/xml/expected.json
new file mode 100644
index 0000000..ebc43fc
--- /dev/null
+++ b/minifi-integration-tests/src/test/resources/standalone/v1/CsvToJson/xml/expected.json
@@ -0,0 +1,4 @@
+{
+  "pattern": "o.a.n.c.r.StandardProcessSession StandardProcessSession\\[id=.*\\] for UpdateAttribute\\[id=1d00089c-78cd-467f-9aa6-31e3bdf90cb0\\], committed the following events: Transferred FlowFiles \\[.*\\] to 'success'",
+  "occurrences": 2
+}

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/minifi-integration-tests/src/test/resources/standalone/v1/CsvToJson/yml/CsvToJson.yml
----------------------------------------------------------------------
diff --git a/minifi-integration-tests/src/test/resources/standalone/v1/CsvToJson/yml/CsvToJson.yml b/minifi-integration-tests/src/test/resources/standalone/v1/CsvToJson/yml/CsvToJson.yml
new file mode 100644
index 0000000..1237ac8
--- /dev/null
+++ b/minifi-integration-tests/src/test/resources/standalone/v1/CsvToJson/yml/CsvToJson.yml
@@ -0,0 +1,178 @@
+# 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.
+
+Flow Controller:
+  name: CsvToJsonWorking
+  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:
+- name: ExtractText
+  class: org.apache.nifi.processors.standard.ExtractText
+  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:
+  - unmatched
+  Properties:
+    Character Set: UTF-8
+    Enable Canonical Equivalence: 'false'
+    Enable Case-insensitive Matching: 'false'
+    Enable DOTALL Mode: 'false'
+    Enable Literal Parsing of the Pattern: 'false'
+    Enable Multiline Mode: 'false'
+    Enable Unicode Predefined Character Classes: 'false'
+    Enable Unicode-aware Case Folding: 'false'
+    Enable Unix Lines Mode: 'false'
+    Include Capture Group 0: 'false'
+    Maximum Buffer Size: 1 MB
+    Maximum Capture Group Length: '1024'
+    Permit Whitespace and Comments in Pattern: 'false'
+    csv: (.+),(.+),(.+),(.+)
+- name: GenerateFlowFile
+  class: org.apache.nifi.processors.standard.GenerateFlowFile
+  max concurrent tasks: 1
+  scheduling strategy: TIMER_DRIVEN
+  scheduling period: 1 sec
+  penalization period: 30 sec
+  yield period: 1 sec
+  run duration nanos: 0
+  auto-terminated relationships list: []
+  Properties:
+    Batch Size: '1'
+    Data Format: Binary
+    File Size: 1 b
+    Unique FlowFiles: 'false'
+- name: ReplaceText
+  class: org.apache.nifi.processors.standard.ReplaceText
+  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:
+  - failure
+  Properties:
+    Character Set: UTF-8
+    Evaluation Mode: Entire text
+    Maximum Buffer Size: 1 MB
+    Regular Expression: (?s:^.*$)
+    Replacement Strategy:
+    Replacement Value: a,b,c,d
+- name: ReplaceText2
+  class: org.apache.nifi.processors.standard.ReplaceText
+  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:
+  - failure
+  Properties:
+    Character Set: UTF-8
+    Evaluation Mode: Entire text
+    Maximum Buffer Size: 1 MB
+    Regular Expression: (?s:^.*$)
+    Replacement Strategy:
+    Replacement Value: "{ \"field1\" : \"${csv.1}\", \"field2\" : \"${csv.2}\",\n\
+      \                            \"field3\" : \"${csv.3}\", \"field4\" : \"${csv.4}\"\
+      \ }\n                        "
+- name: UpdateAttribute
+  class: org.apache.nifi.processors.attributes.UpdateAttribute
+  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:
+  - success
+  Properties:
+    Delete Attributes Expression:
+Connections:
+- name: ExtractText/matched/ReplaceText2
+  source name: ExtractText
+  source relationship name: matched
+  destination name: ReplaceText2
+  max work queue size: 0
+  max work queue data size: 0 MB
+  flowfile expiration: 0 sec
+  queue prioritizer class: org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer
+- name: GenerateFlowFile/success/ReplaceText
+  source name: GenerateFlowFile
+  source relationship name: success
+  destination name: ReplaceText
+  max work queue size: 0
+  max work queue data size: 0 MB
+  flowfile expiration: 0 sec
+  queue prioritizer class: org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer
+- name: ReplaceText/success/ExtractText
+  source name: ReplaceText
+  source relationship name: success
+  destination name: ExtractText
+  max work queue size: 0
+  max work queue data size: 0 MB
+  flowfile expiration: 0 sec
+  queue prioritizer class: org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer
+- name: ReplaceText2/success/UpdateAttribute
+  source name: ReplaceText2
+  source relationship name: success
+  destination name: UpdateAttribute
+  max work queue size: 0
+  max work queue data size: 0 MB
+  flowfile expiration: 0 sec
+  queue prioritizer class: org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer
+Remote Processing Groups: []

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/minifi-integration-tests/src/test/resources/standalone/v1/CsvToJson/yml/expected.json
----------------------------------------------------------------------
diff --git a/minifi-integration-tests/src/test/resources/standalone/v1/CsvToJson/yml/expected.json b/minifi-integration-tests/src/test/resources/standalone/v1/CsvToJson/yml/expected.json
new file mode 100644
index 0000000..1f89457
--- /dev/null
+++ b/minifi-integration-tests/src/test/resources/standalone/v1/CsvToJson/yml/expected.json
@@ -0,0 +1,4 @@
+{
+  "pattern": "o.a.n.c.r.StandardProcessSession StandardProcessSession\\[id=.*\\] for UpdateAttribute\\[id=2aac227f-e8e9-370f-87c8-4f970e0b260e\\], committed the following events: Transferred FlowFiles \\[.*\\] to 'success'",
+  "occurrences": 2
+}


[2/3] nifi-minifi git commit: MINIFI-242 - Initial integration tests focused around backwards compatibility

Posted by al...@apache.org.
http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/minifi-integration-tests/src/test/resources/standalone/v1/DecompressionCircularFlow/xml/DecompressionCircularFlow.xml
----------------------------------------------------------------------
diff --git a/minifi-integration-tests/src/test/resources/standalone/v1/DecompressionCircularFlow/xml/DecompressionCircularFlow.xml b/minifi-integration-tests/src/test/resources/standalone/v1/DecompressionCircularFlow/xml/DecompressionCircularFlow.xml
new file mode 100644
index 0000000..3a81433
--- /dev/null
+++ b/minifi-integration-tests/src/test/resources/standalone/v1/DecompressionCircularFlow/xml/DecompressionCircularFlow.xml
@@ -0,0 +1,757 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+  ~ 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.
+  -->
+<template encoding-version="1.0">
+    <description></description>
+    <groupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</groupId>
+    <name>DecompressionCircularFlow2</name>
+    <snippet>
+        <connections>
+            <id>645ec08f-3d6d-4255-b4d9-0f6d61708974</id>
+            <parentGroupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</parentGroupId>
+            <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold>
+            <backPressureObjectThreshold>0</backPressureObjectThreshold>
+            <destination>
+                <groupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</groupId>
+                <id>9d33bbc9-2f51-43c8-aa8a-94dcc367b371</id>
+                <type>PROCESSOR</type>
+            </destination>
+            <flowFileExpiration>0 sec</flowFileExpiration>
+            <labelIndex>1</labelIndex>
+            <name></name>
+            <prioritizers>org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer</prioritizers>
+            <selectedRelationships>success</selectedRelationships>
+            <source>
+                <groupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</groupId>
+                <id>defa6d98-3e98-41dd-82ac-1bdfd39eacfc</id>
+                <type>PROCESSOR</type>
+            </source>
+            <zIndex>0</zIndex>
+        </connections>
+        <connections>
+            <id>bb250fb4-0b15-418f-83f9-83a43bd3de9c</id>
+            <parentGroupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</parentGroupId>
+            <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold>
+            <backPressureObjectThreshold>0</backPressureObjectThreshold>
+            <bends>
+                <x>2664.3797325791907</x>
+                <y>604.6419422353362</y>
+            </bends>
+            <destination>
+                <groupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</groupId>
+                <id>212097d4-2ea8-497b-b574-b1354fae40f2</id>
+                <type>PROCESSOR</type>
+            </destination>
+            <flowFileExpiration>0 sec</flowFileExpiration>
+            <labelIndex>1</labelIndex>
+            <name></name>
+            <prioritizers>org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer</prioritizers>
+            <selectedRelationships>success</selectedRelationships>
+            <source>
+                <groupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</groupId>
+                <id>0bdda776-0c7e-4723-b3ce-969b7d10a922</id>
+                <type>PROCESSOR</type>
+            </source>
+            <zIndex>0</zIndex>
+        </connections>
+        <connections>
+            <id>bdfdb568-682d-4d3b-b87b-99199c15505c</id>
+            <parentGroupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</parentGroupId>
+            <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold>
+            <backPressureObjectThreshold>0</backPressureObjectThreshold>
+            <bends>
+                <x>1701.5</x>
+                <y>538.5800204467773</y>
+            </bends>
+            <bends>
+                <x>1701.5</x>
+                <y>605.5800204467773</y>
+            </bends>
+            <destination>
+                <groupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</groupId>
+                <id>defa6d98-3e98-41dd-82ac-1bdfd39eacfc</id>
+                <type>PROCESSOR</type>
+            </destination>
+            <flowFileExpiration>0 sec</flowFileExpiration>
+            <labelIndex>1</labelIndex>
+            <name></name>
+            <prioritizers>org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer</prioritizers>
+            <selectedRelationships>failure</selectedRelationships>
+            <source>
+                <groupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</groupId>
+                <id>defa6d98-3e98-41dd-82ac-1bdfd39eacfc</id>
+                <type>PROCESSOR</type>
+            </source>
+            <zIndex>0</zIndex>
+        </connections>
+        <connections>
+            <id>f6ff74cf-a30b-4916-86b3-e269266666ff</id>
+            <parentGroupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</parentGroupId>
+            <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold>
+            <backPressureObjectThreshold>0</backPressureObjectThreshold>
+            <bends>
+                <x>1692.5</x>
+                <y>326.86002044677736</y>
+            </bends>
+            <bends>
+                <x>1692.5</x>
+                <y>393.86002044677736</y>
+            </bends>
+            <destination>
+                <groupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</groupId>
+                <id>e227167f-62af-49cc-8fb5-a5b5e5251066</id>
+                <type>PROCESSOR</type>
+            </destination>
+            <flowFileExpiration>0 sec</flowFileExpiration>
+            <labelIndex>1</labelIndex>
+            <name></name>
+            <prioritizers>org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer</prioritizers>
+            <selectedRelationships>failure</selectedRelationships>
+            <source>
+                <groupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</groupId>
+                <id>e227167f-62af-49cc-8fb5-a5b5e5251066</id>
+                <type>PROCESSOR</type>
+            </source>
+            <zIndex>0</zIndex>
+        </connections>
+        <connections>
+            <id>ded9891b-4433-4f56-9fc0-1a240146835f</id>
+            <parentGroupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</parentGroupId>
+            <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold>
+            <backPressureObjectThreshold>0</backPressureObjectThreshold>
+            <destination>
+                <groupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</groupId>
+                <id>1377e3cc-db4e-4832-8a90-c8dc9e08f603</id>
+                <type>PROCESSOR</type>
+            </destination>
+            <flowFileExpiration>0 sec</flowFileExpiration>
+            <labelIndex>1</labelIndex>
+            <name></name>
+            <prioritizers>org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer</prioritizers>
+            <selectedRelationships>success</selectedRelationships>
+            <source>
+                <groupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</groupId>
+                <id>212097d4-2ea8-497b-b574-b1354fae40f2</id>
+                <type>PROCESSOR</type>
+            </source>
+            <zIndex>0</zIndex>
+        </connections>
+        <connections>
+            <id>5cdc2e79-ec8c-4f7d-a3ab-d284c80e3afe</id>
+            <parentGroupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</parentGroupId>
+            <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold>
+            <backPressureObjectThreshold>0</backPressureObjectThreshold>
+            <destination>
+                <groupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</groupId>
+                <id>e227167f-62af-49cc-8fb5-a5b5e5251066</id>
+                <type>PROCESSOR</type>
+            </destination>
+            <flowFileExpiration>0 sec</flowFileExpiration>
+            <labelIndex>1</labelIndex>
+            <name></name>
+            <prioritizers>org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer</prioritizers>
+            <selectedRelationships>success</selectedRelationships>
+            <source>
+                <groupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</groupId>
+                <id>9e28dd28-8116-4199-aeab-bc7a1002aec5</id>
+                <type>PROCESSOR</type>
+            </source>
+            <zIndex>0</zIndex>
+        </connections>
+        <connections>
+            <id>42bd2967-d74a-4e22-9b16-9e0a51024658</id>
+            <parentGroupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</parentGroupId>
+            <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold>
+            <backPressureObjectThreshold>0</backPressureObjectThreshold>
+            <bends>
+                <x>1701.5</x>
+                <y>767.7200204467774</y>
+            </bends>
+            <bends>
+                <x>1701.5</x>
+                <y>834.7200204467774</y>
+            </bends>
+            <destination>
+                <groupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</groupId>
+                <id>9d33bbc9-2f51-43c8-aa8a-94dcc367b371</id>
+                <type>PROCESSOR</type>
+            </destination>
+            <flowFileExpiration>0 sec</flowFileExpiration>
+            <labelIndex>1</labelIndex>
+            <name></name>
+            <prioritizers>org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer</prioritizers>
+            <selectedRelationships>failure</selectedRelationships>
+            <source>
+                <groupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</groupId>
+                <id>9d33bbc9-2f51-43c8-aa8a-94dcc367b371</id>
+                <type>PROCESSOR</type>
+            </source>
+            <zIndex>0</zIndex>
+        </connections>
+        <connections>
+            <id>299f7d1f-e216-43a3-ad0b-7a6d6680dacc</id>
+            <parentGroupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</parentGroupId>
+            <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold>
+            <backPressureObjectThreshold>0</backPressureObjectThreshold>
+            <destination>
+                <groupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</groupId>
+                <id>9e28dd28-8116-4199-aeab-bc7a1002aec5</id>
+                <type>PROCESSOR</type>
+            </destination>
+            <flowFileExpiration>0 sec</flowFileExpiration>
+            <labelIndex>1</labelIndex>
+            <name></name>
+            <prioritizers>org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer</prioritizers>
+            <selectedRelationships>success</selectedRelationships>
+            <source>
+                <groupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</groupId>
+                <id>ad8ff6a3-ba60-4b9b-af9e-0773c8afc1c9</id>
+                <type>PROCESSOR</type>
+            </source>
+            <zIndex>0</zIndex>
+        </connections>
+        <connections>
+            <id>6eeca4aa-04c7-4774-aee5-bb6340c3a7b6</id>
+            <parentGroupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</parentGroupId>
+            <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold>
+            <backPressureObjectThreshold>0</backPressureObjectThreshold>
+            <destination>
+                <groupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</groupId>
+                <id>0bdda776-0c7e-4723-b3ce-969b7d10a922</id>
+                <type>PROCESSOR</type>
+            </destination>
+            <flowFileExpiration>0 sec</flowFileExpiration>
+            <labelIndex>1</labelIndex>
+            <name></name>
+            <prioritizers>org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer</prioritizers>
+            <selectedRelationships>success</selectedRelationships>
+            <source>
+                <groupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</groupId>
+                <id>9d33bbc9-2f51-43c8-aa8a-94dcc367b371</id>
+                <type>PROCESSOR</type>
+            </source>
+            <zIndex>0</zIndex>
+        </connections>
+        <connections>
+            <id>4f98618d-2443-465d-9856-bbf7c1ee49e1</id>
+            <parentGroupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</parentGroupId>
+            <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold>
+            <backPressureObjectThreshold>0</backPressureObjectThreshold>
+            <bends>
+                <x>1695.5</x>
+                <y>120.5</y>
+            </bends>
+            <bends>
+                <x>1695.5</x>
+                <y>187.5</y>
+            </bends>
+            <destination>
+                <groupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</groupId>
+                <id>9e28dd28-8116-4199-aeab-bc7a1002aec5</id>
+                <type>PROCESSOR</type>
+            </destination>
+            <flowFileExpiration>0 sec</flowFileExpiration>
+            <labelIndex>1</labelIndex>
+            <name></name>
+            <prioritizers>org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer</prioritizers>
+            <selectedRelationships>failure</selectedRelationships>
+            <source>
+                <groupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</groupId>
+                <id>9e28dd28-8116-4199-aeab-bc7a1002aec5</id>
+                <type>PROCESSOR</type>
+            </source>
+            <zIndex>0</zIndex>
+        </connections>
+        <connections>
+            <id>37f15fde-d463-41b1-9fe7-28c72cd6c871</id>
+            <parentGroupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</parentGroupId>
+            <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold>
+            <backPressureObjectThreshold>0</backPressureObjectThreshold>
+            <bends>
+                <x>2647.0997032823157</x>
+                <y>701.1219422353362</y>
+            </bends>
+            <bends>
+                <x>2652.689913243253</x>
+                <y>883.8309913076018</y>
+            </bends>
+            <destination>
+                <groupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</groupId>
+                <id>0bdda776-0c7e-4723-b3ce-969b7d10a922</id>
+                <type>PROCESSOR</type>
+            </destination>
+            <flowFileExpiration>5 sec</flowFileExpiration>
+            <labelIndex>1</labelIndex>
+            <name></name>
+            <prioritizers>org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer</prioritizers>
+            <selectedRelationships>failure</selectedRelationships>
+            <source>
+                <groupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</groupId>
+                <id>0bdda776-0c7e-4723-b3ce-969b7d10a922</id>
+                <type>PROCESSOR</type>
+            </source>
+            <zIndex>0</zIndex>
+        </connections>
+        <connections>
+            <id>ac822b4f-7d0d-462a-8ac0-03e9032ebefb</id>
+            <parentGroupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</parentGroupId>
+            <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold>
+            <backPressureObjectThreshold>0</backPressureObjectThreshold>
+            <destination>
+                <groupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</groupId>
+                <id>defa6d98-3e98-41dd-82ac-1bdfd39eacfc</id>
+                <type>PROCESSOR</type>
+            </destination>
+            <flowFileExpiration>0 sec</flowFileExpiration>
+            <labelIndex>1</labelIndex>
+            <name></name>
+            <prioritizers>org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer</prioritizers>
+            <selectedRelationships>success</selectedRelationships>
+            <source>
+                <groupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</groupId>
+                <id>e227167f-62af-49cc-8fb5-a5b5e5251066</id>
+                <type>PROCESSOR</type>
+            </source>
+            <zIndex>0</zIndex>
+        </connections>
+        <connections>
+            <id>a72e8727-9a5c-44dd-a4f5-cf94b3422c1a</id>
+            <parentGroupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</parentGroupId>
+            <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold>
+            <backPressureObjectThreshold>0</backPressureObjectThreshold>
+            <destination>
+                <groupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</groupId>
+                <id>7209cf79-23ba-421c-b1c3-925ed86c302d</id>
+                <type>PROCESSOR</type>
+            </destination>
+            <flowFileExpiration>0 sec</flowFileExpiration>
+            <labelIndex>1</labelIndex>
+            <name></name>
+            <prioritizers>org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer</prioritizers>
+            <selectedRelationships>unmatched</selectedRelationships>
+            <source>
+                <groupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</groupId>
+                <id>1377e3cc-db4e-4832-8a90-c8dc9e08f603</id>
+                <type>PROCESSOR</type>
+            </source>
+            <zIndex>0</zIndex>
+        </connections>
+        <connections>
+            <id>5de215d5-9f7e-414b-98aa-2edaa0514d99</id>
+            <parentGroupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</parentGroupId>
+            <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold>
+            <backPressureObjectThreshold>0</backPressureObjectThreshold>
+            <bends>
+                <x>2258.299776524503</x>
+                <y>1088.9714637197112</y>
+            </bends>
+            <destination>
+                <groupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</groupId>
+                <id>0bdda776-0c7e-4723-b3ce-969b7d10a922</id>
+                <type>PROCESSOR</type>
+            </destination>
+            <flowFileExpiration>0 sec</flowFileExpiration>
+            <labelIndex>1</labelIndex>
+            <name></name>
+            <prioritizers>org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer</prioritizers>
+            <selectedRelationships>gzip</selectedRelationships>
+            <source>
+                <groupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</groupId>
+                <id>1377e3cc-db4e-4832-8a90-c8dc9e08f603</id>
+                <type>PROCESSOR</type>
+            </source>
+            <zIndex>0</zIndex>
+        </connections>
+        <processors>
+            <id>1377e3cc-db4e-4832-8a90-c8dc9e08f603</id>
+            <parentGroupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</parentGroupId>
+            <position>
+                <x>2864.4202270507812</x>
+                <y>1020.8192269897463</y>
+            </position>
+            <config>
+                <bulletinLevel>WARN</bulletinLevel>
+                <comments></comments>
+                <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+                <lossTolerant>false</lossTolerant>
+                <penaltyDuration>30 sec</penaltyDuration>
+                <properties>
+                    <entry>
+                        <key>Routing Strategy</key>
+                    </entry>
+                    <entry>
+                        <key>gzip</key>
+                        <value>${mime.type:toUpper():contains(&quot;GZIP&quot;)}</value>
+                    </entry>
+                </properties>
+                <runDurationMillis>0</runDurationMillis>
+                <schedulingPeriod>0 sec</schedulingPeriod>
+                <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+                <yieldDuration>1 sec</yieldDuration>
+            </config>
+            <name>Compressed?</name>
+            <relationships>
+                <autoTerminate>false</autoTerminate>
+                <name>gzip</name>
+            </relationships>
+            <relationships>
+                <autoTerminate>false</autoTerminate>
+                <name>unmatched</name>
+            </relationships>
+            <style/>
+            <type>org.apache.nifi.processors.standard.RouteOnAttribute</type>
+        </processors>
+        <processors>
+            <id>212097d4-2ea8-497b-b574-b1354fae40f2</id>
+            <parentGroupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</parentGroupId>
+            <position>
+                <x>2854.459897460938</x>
+                <y>731.99545032959</y>
+            </position>
+            <config>
+                <bulletinLevel>WARN</bulletinLevel>
+                <comments></comments>
+                <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+                <lossTolerant>false</lossTolerant>
+                <penaltyDuration>30 sec</penaltyDuration>
+                <properties/>
+                <runDurationMillis>0</runDurationMillis>
+                <schedulingPeriod>0 sec</schedulingPeriod>
+                <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+                <yieldDuration>1 sec</yieldDuration>
+            </config>
+            <name>IdentifyMimeType</name>
+            <relationships>
+                <autoTerminate>false</autoTerminate>
+                <name>success</name>
+            </relationships>
+            <style/>
+            <type>org.apache.nifi.processors.standard.IdentifyMimeType</type>
+        </processors>
+        <processors>
+            <id>9e28dd28-8116-4199-aeab-bc7a1002aec5</id>
+            <parentGroupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</parentGroupId>
+            <position>
+                <x>1082.0</x>
+                <y>87.0</y>
+            </position>
+            <config>
+                <bulletinLevel>WARN</bulletinLevel>
+                <comments></comments>
+                <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+                <lossTolerant>false</lossTolerant>
+                <penaltyDuration>30 sec</penaltyDuration>
+                <properties>
+                    <entry>
+                        <key>Mode</key>
+                    </entry>
+                    <entry>
+                        <key>Compression Format</key>
+                        <value>gzip</value>
+                    </entry>
+                    <entry>
+                        <key>Compression Level</key>
+                    </entry>
+                    <entry>
+                        <key>Update Filename</key>
+                    </entry>
+                </properties>
+                <runDurationMillis>0</runDurationMillis>
+                <schedulingPeriod>0 sec</schedulingPeriod>
+                <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+                <yieldDuration>1 sec</yieldDuration>
+            </config>
+            <name>GZIP CompressContent</name>
+            <relationships>
+                <autoTerminate>false</autoTerminate>
+                <name>failure</name>
+            </relationships>
+            <relationships>
+                <autoTerminate>false</autoTerminate>
+                <name>success</name>
+            </relationships>
+            <style/>
+            <type>org.apache.nifi.processors.standard.CompressContent</type>
+        </processors>
+        <processors>
+            <id>defa6d98-3e98-41dd-82ac-1bdfd39eacfc</id>
+            <parentGroupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</parentGroupId>
+            <position>
+                <x>1088.0</x>
+                <y>505.0800204467774</y>
+            </position>
+            <config>
+                <bulletinLevel>WARN</bulletinLevel>
+                <comments></comments>
+                <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+                <lossTolerant>false</lossTolerant>
+                <penaltyDuration>30 sec</penaltyDuration>
+                <properties>
+                    <entry>
+                        <key>Mode</key>
+                    </entry>
+                    <entry>
+                        <key>Compression Format</key>
+                        <value>gzip</value>
+                    </entry>
+                    <entry>
+                        <key>Compression Level</key>
+                    </entry>
+                    <entry>
+                        <key>Update Filename</key>
+                    </entry>
+                </properties>
+                <runDurationMillis>0</runDurationMillis>
+                <schedulingPeriod>0 sec</schedulingPeriod>
+                <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+                <yieldDuration>1 sec</yieldDuration>
+            </config>
+            <name>GZIP CompressContent3</name>
+            <relationships>
+                <autoTerminate>false</autoTerminate>
+                <name>failure</name>
+            </relationships>
+            <relationships>
+                <autoTerminate>false</autoTerminate>
+                <name>success</name>
+            </relationships>
+            <style/>
+            <type>org.apache.nifi.processors.standard.CompressContent</type>
+        </processors>
+        <processors>
+            <id>0bdda776-0c7e-4723-b3ce-969b7d10a922</id>
+            <parentGroupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</parentGroupId>
+            <position>
+                <x>2025.5</x>
+                <y>732.8800204467774</y>
+            </position>
+            <config>
+                <bulletinLevel>WARN</bulletinLevel>
+                <comments></comments>
+                <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+                <lossTolerant>false</lossTolerant>
+                <penaltyDuration>30 sec</penaltyDuration>
+                <properties>
+                    <entry>
+                        <key>Mode</key>
+                        <value>decompress</value>
+                    </entry>
+                    <entry>
+                        <key>Compression Format</key>
+                        <value>gzip</value>
+                    </entry>
+                    <entry>
+                        <key>Compression Level</key>
+                    </entry>
+                    <entry>
+                        <key>Update Filename</key>
+                    </entry>
+                </properties>
+                <runDurationMillis>0</runDurationMillis>
+                <schedulingPeriod>0 sec</schedulingPeriod>
+                <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+                <yieldDuration>1 sec</yieldDuration>
+            </config>
+            <name>Uncompress GZIP</name>
+            <relationships>
+                <autoTerminate>false</autoTerminate>
+                <name>failure</name>
+            </relationships>
+            <relationships>
+                <autoTerminate>false</autoTerminate>
+                <name>success</name>
+            </relationships>
+            <style/>
+            <type>org.apache.nifi.processors.standard.CompressContent</type>
+        </processors>
+        <processors>
+            <id>7209cf79-23ba-421c-b1c3-925ed86c302d</id>
+            <parentGroupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</parentGroupId>
+            <position>
+                <x>2858.3004760742188</x>
+                <y>1334.7543026733401</y>
+            </position>
+            <config>
+                <bulletinLevel>WARN</bulletinLevel>
+                <comments></comments>
+                <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+                <lossTolerant>false</lossTolerant>
+                <penaltyDuration>30 sec</penaltyDuration>
+                <properties>
+                    <entry>
+                        <key>Log Level</key>
+                    </entry>
+                    <entry>
+                        <key>Log Payload</key>
+                    </entry>
+                    <entry>
+                        <key>Attributes to Log</key>
+                    </entry>
+                    <entry>
+                        <key>Attributes to Ignore</key>
+                    </entry>
+                    <entry>
+                        <key>Log prefix</key>
+                    </entry>
+                </properties>
+                <runDurationMillis>0</runDurationMillis>
+                <schedulingPeriod>0 sec</schedulingPeriod>
+                <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+                <yieldDuration>1 sec</yieldDuration>
+            </config>
+            <name>LogAttribute</name>
+            <relationships>
+                <autoTerminate>true</autoTerminate>
+                <name>success</name>
+            </relationships>
+            <style/>
+            <type>org.apache.nifi.processors.standard.LogAttribute</type>
+        </processors>
+        <processors>
+            <id>e227167f-62af-49cc-8fb5-a5b5e5251066</id>
+            <parentGroupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</parentGroupId>
+            <position>
+                <x>1079.0</x>
+                <y>293.36002044677736</y>
+            </position>
+            <config>
+                <bulletinLevel>WARN</bulletinLevel>
+                <comments></comments>
+                <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+                <lossTolerant>false</lossTolerant>
+                <penaltyDuration>30 sec</penaltyDuration>
+                <properties>
+                    <entry>
+                        <key>Mode</key>
+                    </entry>
+                    <entry>
+                        <key>Compression Format</key>
+                        <value>gzip</value>
+                    </entry>
+                    <entry>
+                        <key>Compression Level</key>
+                    </entry>
+                    <entry>
+                        <key>Update Filename</key>
+                    </entry>
+                </properties>
+                <runDurationMillis>0</runDurationMillis>
+                <schedulingPeriod>0 sec</schedulingPeriod>
+                <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+                <yieldDuration>1 sec</yieldDuration>
+            </config>
+            <name>GZIP CompressContent2</name>
+            <relationships>
+                <autoTerminate>false</autoTerminate>
+                <name>failure</name>
+            </relationships>
+            <relationships>
+                <autoTerminate>false</autoTerminate>
+                <name>success</name>
+            </relationships>
+            <style/>
+            <type>org.apache.nifi.processors.standard.CompressContent</type>
+        </processors>
+        <processors>
+            <id>ad8ff6a3-ba60-4b9b-af9e-0773c8afc1c9</id>
+            <parentGroupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</parentGroupId>
+            <position>
+                <x>416.0</x>
+                <y>92.36002044677734</y>
+            </position>
+            <config>
+                <bulletinLevel>WARN</bulletinLevel>
+                <comments></comments>
+                <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+                <lossTolerant>false</lossTolerant>
+                <penaltyDuration>30 sec</penaltyDuration>
+                <properties>
+                    <entry>
+                        <key>File Size</key>
+                        <value>10kb</value>
+                    </entry>
+                    <entry>
+                        <key>Batch Size</key>
+                    </entry>
+                    <entry>
+                        <key>Data Format</key>
+                    </entry>
+                    <entry>
+                        <key>Unique FlowFiles</key>
+                    </entry>
+                </properties>
+                <runDurationMillis>0</runDurationMillis>
+                <schedulingPeriod>1 min</schedulingPeriod>
+                <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+                <yieldDuration>1 sec</yieldDuration>
+            </config>
+            <name>GenerateFlowFile</name>
+            <relationships>
+                <autoTerminate>false</autoTerminate>
+                <name>success</name>
+            </relationships>
+            <style/>
+            <type>org.apache.nifi.processors.standard.GenerateFlowFile</type>
+        </processors>
+        <processors>
+            <id>9d33bbc9-2f51-43c8-aa8a-94dcc367b371</id>
+            <parentGroupId>ff2213e2-b27e-458b-ab3b-1c7a4a50d2e3</parentGroupId>
+            <position>
+                <x>1088.0</x>
+                <y>734.2200204467774</y>
+            </position>
+            <config>
+                <bulletinLevel>WARN</bulletinLevel>
+                <comments></comments>
+                <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+                <lossTolerant>false</lossTolerant>
+                <penaltyDuration>30 sec</penaltyDuration>
+                <properties>
+                    <entry>
+                        <key>Mode</key>
+                    </entry>
+                    <entry>
+                        <key>Compression Format</key>
+                        <value>gzip</value>
+                    </entry>
+                    <entry>
+                        <key>Compression Level</key>
+                    </entry>
+                    <entry>
+                        <key>Update Filename</key>
+                    </entry>
+                </properties>
+                <runDurationMillis>0</runDurationMillis>
+                <schedulingPeriod>0 sec</schedulingPeriod>
+                <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+                <yieldDuration>1 sec</yieldDuration>
+            </config>
+            <name>GZIP CompressContent4</name>
+            <relationships>
+                <autoTerminate>false</autoTerminate>
+                <name>failure</name>
+            </relationships>
+            <relationships>
+                <autoTerminate>false</autoTerminate>
+                <name>success</name>
+            </relationships>
+            <style/>
+            <type>org.apache.nifi.processors.standard.CompressContent</type>
+        </processors>
+    </snippet>
+    <timestamp>07/04/2016 20:44:19 UTC</timestamp>
+</template>

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/minifi-integration-tests/src/test/resources/standalone/v1/DecompressionCircularFlow/xml/expected.json
----------------------------------------------------------------------
diff --git a/minifi-integration-tests/src/test/resources/standalone/v1/DecompressionCircularFlow/xml/expected.json b/minifi-integration-tests/src/test/resources/standalone/v1/DecompressionCircularFlow/xml/expected.json
new file mode 100644
index 0000000..7812559
--- /dev/null
+++ b/minifi-integration-tests/src/test/resources/standalone/v1/DecompressionCircularFlow/xml/expected.json
@@ -0,0 +1,4 @@
+{
+  "pattern": "o.a.n.c.r.StandardProcessSession StandardProcessSession\\[id=.*\\] for LogAttribute\\[id=7209cf79-23ba-421c-b1c3-925ed86c302d\\], committed the following events: Transferred FlowFiles \\[.*\\] to 'success'",
+  "occurrences": 1
+}

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/minifi-integration-tests/src/test/resources/standalone/v1/DecompressionCircularFlow/yml/DecompressionCircularFlow.yml
----------------------------------------------------------------------
diff --git a/minifi-integration-tests/src/test/resources/standalone/v1/DecompressionCircularFlow/yml/DecompressionCircularFlow.yml b/minifi-integration-tests/src/test/resources/standalone/v1/DecompressionCircularFlow/yml/DecompressionCircularFlow.yml
new file mode 100644
index 0000000..743fdf6
--- /dev/null
+++ b/minifi-integration-tests/src/test/resources/standalone/v1/DecompressionCircularFlow/yml/DecompressionCircularFlow.yml
@@ -0,0 +1,293 @@
+# 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.
+
+Flow Controller:
+  name: DecompressionCircularFlow2
+  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:
+- name: Compressed?
+  class: org.apache.nifi.processors.standard.RouteOnAttribute
+  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:
+    Routing Strategy:
+    gzip: ${mime.type:toUpper():contains("GZIP")}
+- name: GZIP CompressContent
+  class: org.apache.nifi.processors.standard.CompressContent
+  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:
+    Compression Format: gzip
+    Compression Level:
+    Mode:
+    Update Filename:
+- name: GZIP CompressContent2
+  class: org.apache.nifi.processors.standard.CompressContent
+  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:
+    Compression Format: gzip
+    Compression Level:
+    Mode:
+    Update Filename:
+- name: GZIP CompressContent3
+  class: org.apache.nifi.processors.standard.CompressContent
+  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:
+    Compression Format: gzip
+    Compression Level:
+    Mode:
+    Update Filename:
+- name: GZIP CompressContent4
+  class: org.apache.nifi.processors.standard.CompressContent
+  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:
+    Compression Format: gzip
+    Compression Level:
+    Mode:
+    Update Filename:
+- name: GenerateFlowFile
+  class: org.apache.nifi.processors.standard.GenerateFlowFile
+  max concurrent tasks: 1
+  scheduling strategy: TIMER_DRIVEN
+  scheduling period: 1 min
+  penalization period: 30 sec
+  yield period: 1 sec
+  run duration nanos: 0
+  auto-terminated relationships list: []
+  Properties:
+    Batch Size:
+    Data Format:
+    File Size: 10kb
+    Unique FlowFiles:
+- name: IdentifyMimeType
+  class: org.apache.nifi.processors.standard.IdentifyMimeType
+  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: {}
+- name: LogAttribute
+  class: org.apache.nifi.processors.standard.LogAttribute
+  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:
+  - success
+  Properties:
+    Attributes to Ignore:
+    Attributes to Log:
+    Log Level:
+    Log Payload:
+    Log prefix:
+- name: Uncompress GZIP
+  class: org.apache.nifi.processors.standard.CompressContent
+  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:
+    Compression Format: gzip
+    Compression Level:
+    Mode: decompress
+    Update Filename:
+Connections:
+- name: Compressed?/gzip/Uncompress GZIP
+  source name: Compressed?
+  source relationship name: gzip
+  destination name: Uncompress GZIP
+  max work queue size: 0
+  max work queue data size: 0 MB
+  flowfile expiration: 0 sec
+  queue prioritizer class: org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer
+- name: Compressed?/unmatched/LogAttribute
+  source name: Compressed?
+  source relationship name: unmatched
+  destination name: LogAttribute
+  max work queue size: 0
+  max work queue data size: 0 MB
+  flowfile expiration: 0 sec
+  queue prioritizer class: org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer
+- name: GZIP CompressContent/failure/GZIP CompressContent
+  source name: GZIP CompressContent
+  source relationship name: failure
+  destination name: GZIP CompressContent
+  max work queue size: 0
+  max work queue data size: 0 MB
+  flowfile expiration: 0 sec
+  queue prioritizer class: org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer
+- name: GZIP CompressContent/success/GZIP CompressContent2
+  source name: GZIP CompressContent
+  source relationship name: success
+  destination name: GZIP CompressContent2
+  max work queue size: 0
+  max work queue data size: 0 MB
+  flowfile expiration: 0 sec
+  queue prioritizer class: org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer
+- name: GZIP CompressContent2/failure/GZIP CompressContent2
+  source name: GZIP CompressContent2
+  source relationship name: failure
+  destination name: GZIP CompressContent2
+  max work queue size: 0
+  max work queue data size: 0 MB
+  flowfile expiration: 0 sec
+  queue prioritizer class: org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer
+- name: GZIP CompressContent2/success/GZIP CompressContent3
+  source name: GZIP CompressContent2
+  source relationship name: success
+  destination name: GZIP CompressContent3
+  max work queue size: 0
+  max work queue data size: 0 MB
+  flowfile expiration: 0 sec
+  queue prioritizer class: org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer
+- name: GZIP CompressContent3/failure/GZIP CompressContent3
+  source name: GZIP CompressContent3
+  source relationship name: failure
+  destination name: GZIP CompressContent3
+  max work queue size: 0
+  max work queue data size: 0 MB
+  flowfile expiration: 0 sec
+  queue prioritizer class: org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer
+- name: GZIP CompressContent3/success/GZIP CompressContent4
+  source name: GZIP CompressContent3
+  source relationship name: success
+  destination name: GZIP CompressContent4
+  max work queue size: 0
+  max work queue data size: 0 MB
+  flowfile expiration: 0 sec
+  queue prioritizer class: org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer
+- name: GZIP CompressContent4/failure/GZIP CompressContent4
+  source name: GZIP CompressContent4
+  source relationship name: failure
+  destination name: GZIP CompressContent4
+  max work queue size: 0
+  max work queue data size: 0 MB
+  flowfile expiration: 0 sec
+  queue prioritizer class: org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer
+- name: GZIP CompressContent4/success/Uncompress GZIP
+  source name: GZIP CompressContent4
+  source relationship name: success
+  destination name: Uncompress GZIP
+  max work queue size: 0
+  max work queue data size: 0 MB
+  flowfile expiration: 0 sec
+  queue prioritizer class: org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer
+- name: GenerateFlowFile/success/GZIP CompressContent
+  source name: GenerateFlowFile
+  source relationship name: success
+  destination name: GZIP CompressContent
+  max work queue size: 0
+  max work queue data size: 0 MB
+  flowfile expiration: 0 sec
+  queue prioritizer class: org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer
+- name: IdentifyMimeType/success/Compressed?
+  source name: IdentifyMimeType
+  source relationship name: success
+  destination name: Compressed?
+  max work queue size: 0
+  max work queue data size: 0 MB
+  flowfile expiration: 0 sec
+  queue prioritizer class: org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer
+- name: Uncompress GZIP/failure/Uncompress GZIP
+  source name: Uncompress GZIP
+  source relationship name: failure
+  destination name: Uncompress GZIP
+  max work queue size: 0
+  max work queue data size: 0 MB
+  flowfile expiration: 5 sec
+  queue prioritizer class: org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer
+- name: Uncompress GZIP/success/IdentifyMimeType
+  source name: Uncompress GZIP
+  source relationship name: success
+  destination name: IdentifyMimeType
+  max work queue size: 0
+  max work queue data size: 0 MB
+  flowfile expiration: 0 sec
+  queue prioritizer class: org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer
+Remote Processing Groups: []

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/minifi-integration-tests/src/test/resources/standalone/v1/DecompressionCircularFlow/yml/expected.json
----------------------------------------------------------------------
diff --git a/minifi-integration-tests/src/test/resources/standalone/v1/DecompressionCircularFlow/yml/expected.json b/minifi-integration-tests/src/test/resources/standalone/v1/DecompressionCircularFlow/yml/expected.json
new file mode 100644
index 0000000..a486289
--- /dev/null
+++ b/minifi-integration-tests/src/test/resources/standalone/v1/DecompressionCircularFlow/yml/expected.json
@@ -0,0 +1,4 @@
+{
+  "pattern": "o.a.n.c.r.StandardProcessSession StandardProcessSession\\[id=.*\\] for LogAttribute\\[id=59198b81-12fc-374f-bead-7fcd1d5d4823\\], committed the following events: Transferred FlowFiles \\[.*\\] to 'success'",
+  "occurrences": 1
+}

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/minifi-integration-tests/src/test/resources/standalone/v1/MiNiFiTailLogAttribute/xml/MiNiFiTailLogAttribute.xml
----------------------------------------------------------------------
diff --git a/minifi-integration-tests/src/test/resources/standalone/v1/MiNiFiTailLogAttribute/xml/MiNiFiTailLogAttribute.xml b/minifi-integration-tests/src/test/resources/standalone/v1/MiNiFiTailLogAttribute/xml/MiNiFiTailLogAttribute.xml
new file mode 100644
index 0000000..a2c0fd5
--- /dev/null
+++ b/minifi-integration-tests/src/test/resources/standalone/v1/MiNiFiTailLogAttribute/xml/MiNiFiTailLogAttribute.xml
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+  ~ 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.
+  -->
+
+<template encoding-version="1.0">
+    <description></description>
+    <groupId>d7261cce-f2bb-4ae9-9e73-199b79137a16</groupId>
+    <name>MiNiFi TailTail LogAttribute</name>
+    <snippet>
+        <connections>
+            <id>aadfc150-660d-4a35-beb0-2dbd351daca9</id>
+            <parentGroupId>d7261cce-f2bb-4ae9-9e73-199b79137a16</parentGroupId>
+            <backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold>
+            <backPressureObjectThreshold>10000</backPressureObjectThreshold>
+            <destination>
+                <groupId>d7261cce-f2bb-4ae9-9e73-199b79137a16</groupId>
+                <id>5a36371c-4884-41cb-8792-073deb6c256a</id>
+                <type>PROCESSOR</type>
+            </destination>
+            <flowFileExpiration>0 sec</flowFileExpiration>
+            <labelIndex>1</labelIndex>
+            <name></name>
+            <selectedRelationships>success</selectedRelationships>
+            <source>
+                <groupId>d7261cce-f2bb-4ae9-9e73-199b79137a16</groupId>
+                <id>dd9611ff-7820-4109-b33f-db43d98613d7</id>
+                <type>PROCESSOR</type>
+            </source>
+            <zIndex>0</zIndex>
+        </connections>
+        <processors>
+            <id>5a36371c-4884-41cb-8792-073deb6c256a</id>
+            <parentGroupId>d7261cce-f2bb-4ae9-9e73-199b79137a16</parentGroupId>
+            <position>
+                <x>2261.0</x>
+                <y>539.5399780273438</y>
+            </position>
+            <config>
+                <bulletinLevel>WARN</bulletinLevel>
+                <comments></comments>
+                <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+                <lossTolerant>false</lossTolerant>
+                <penaltyDuration>30 sec</penaltyDuration>
+                <properties>
+                    <entry>
+                        <key>Log Level</key>
+                    </entry>
+                    <entry>
+                        <key>Log Payload</key>
+                    </entry>
+                    <entry>
+                        <key>Attributes to Log</key>
+                    </entry>
+                    <entry>
+                        <key>Attributes to Ignore</key>
+                    </entry>
+                    <entry>
+                        <key>Log prefix</key>
+                    </entry>
+                </properties>
+                <runDurationMillis>0</runDurationMillis>
+                <schedulingPeriod>0 sec</schedulingPeriod>
+                <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+                <yieldDuration>1 sec</yieldDuration>
+            </config>
+            <name>LogAttribute</name>
+            <relationships>
+                <autoTerminate>true</autoTerminate>
+                <name>success</name>
+            </relationships>
+            <style/>
+            <type>org.apache.nifi.processors.standard.LogAttribute</type>
+        </processors>
+        <processors>
+            <id>dd9611ff-7820-4109-b33f-db43d98613d7</id>
+            <parentGroupId>d7261cce-f2bb-4ae9-9e73-199b79137a16</parentGroupId>
+            <position>
+                <x>2281.0</x>
+                <y>291.53997802734375</y>
+            </position>
+            <config>
+                <bulletinLevel>WARN</bulletinLevel>
+                <comments></comments>
+                <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+                <lossTolerant>false</lossTolerant>
+                <penaltyDuration>30 sec</penaltyDuration>
+                <properties>
+                    <entry>
+                        <key>File to Tail</key>
+                        <value>./logs/minifi-app.log</value>
+                    </entry>
+                    <entry>
+                        <key>Rolling Filename Pattern</key>
+                    </entry>
+                    <entry>
+                        <key>State File</key>
+                    </entry>
+                    <entry>
+                        <key>Initial Start Position</key>
+                    </entry>
+                    <entry>
+                        <key>File Location</key>
+                    </entry>
+                </properties>
+                <runDurationMillis>0</runDurationMillis>
+                <schedulingPeriod>0 sec</schedulingPeriod>
+                <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+                <yieldDuration>1 sec</yieldDuration>
+            </config>
+            <name>TailFile</name>
+            <relationships>
+                <autoTerminate>false</autoTerminate>
+                <name>success</name>
+            </relationships>
+            <style/>
+            <type>org.apache.nifi.processors.standard.TailFile</type>
+        </processors>
+    </snippet>
+    <timestamp>07/03/2016 21:16:16 EDT</timestamp>
+</template>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/minifi-integration-tests/src/test/resources/standalone/v1/MiNiFiTailLogAttribute/xml/expected.json
----------------------------------------------------------------------
diff --git a/minifi-integration-tests/src/test/resources/standalone/v1/MiNiFiTailLogAttribute/xml/expected.json b/minifi-integration-tests/src/test/resources/standalone/v1/MiNiFiTailLogAttribute/xml/expected.json
new file mode 100644
index 0000000..57ad2d1
--- /dev/null
+++ b/minifi-integration-tests/src/test/resources/standalone/v1/MiNiFiTailLogAttribute/xml/expected.json
@@ -0,0 +1,4 @@
+{
+  "pattern": "o.a.n.c.r.StandardProcessSession StandardProcessSession\\[id=.*\\] for LogAttribute\\[id=5a36371c-4884-41cb-8792-073deb6c256a\\], committed the following events: Transferred FlowFiles \\[.*\\] to 'success'",
+  "occurrences": 20
+}

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/minifi-integration-tests/src/test/resources/standalone/v1/MiNiFiTailLogAttribute/yml/MiNiFiTailLogAttribute.yml
----------------------------------------------------------------------
diff --git a/minifi-integration-tests/src/test/resources/standalone/v1/MiNiFiTailLogAttribute/yml/MiNiFiTailLogAttribute.yml b/minifi-integration-tests/src/test/resources/standalone/v1/MiNiFiTailLogAttribute/yml/MiNiFiTailLogAttribute.yml
new file mode 100644
index 0000000..88f5c6d
--- /dev/null
+++ b/minifi-integration-tests/src/test/resources/standalone/v1/MiNiFiTailLogAttribute/yml/MiNiFiTailLogAttribute.yml
@@ -0,0 +1,98 @@
+# 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.
+
+Flow Controller:
+  name: MiNiFi TailTail LogAttribute
+  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:
+- name: LogAttribute
+  class: org.apache.nifi.processors.standard.LogAttribute
+  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:
+  - success
+  Properties:
+    Attributes to Ignore:
+    Attributes to Log:
+    Log Level:
+    Log Payload:
+    Log prefix:
+- name: TailFile
+  class: org.apache.nifi.processors.standard.TailFile
+  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:
+    File Location:
+    File to Tail: ./logs/minifi-app.log
+    Initial Start Position:
+    Rolling Filename Pattern:
+    State File:
+Connections:
+- name: TailFile/success/LogAttribute
+  source name: TailFile
+  source relationship name: success
+  destination name: LogAttribute
+  max work queue size: 10000
+  max work queue data size: 1 GB
+  flowfile expiration: 0 sec
+  queue prioritizer class: ''
+Remote Processing Groups: []

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/minifi-integration-tests/src/test/resources/standalone/v1/MiNiFiTailLogAttribute/yml/expected.json
----------------------------------------------------------------------
diff --git a/minifi-integration-tests/src/test/resources/standalone/v1/MiNiFiTailLogAttribute/yml/expected.json b/minifi-integration-tests/src/test/resources/standalone/v1/MiNiFiTailLogAttribute/yml/expected.json
new file mode 100644
index 0000000..f98095b
--- /dev/null
+++ b/minifi-integration-tests/src/test/resources/standalone/v1/MiNiFiTailLogAttribute/yml/expected.json
@@ -0,0 +1,4 @@
+{
+  "pattern": "o.a.n.c.r.StandardProcessSession StandardProcessSession\\[id=.*\\] for LogAttribute\\[id=59198b81-12fc-374f-bead-7fcd1d5d4823\\], committed the following events: Transferred FlowFiles \\[.*\\] to 'success'",
+  "occurrences": 20
+}

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/minifi-integration-tests/src/test/resources/standalone/v1/ReplaceTextExpressionLanguageCSVReformatting/xml/ReplaceTextExpressionLanguageCSVReformatting.xml
----------------------------------------------------------------------
diff --git a/minifi-integration-tests/src/test/resources/standalone/v1/ReplaceTextExpressionLanguageCSVReformatting/xml/ReplaceTextExpressionLanguageCSVReformatting.xml b/minifi-integration-tests/src/test/resources/standalone/v1/ReplaceTextExpressionLanguageCSVReformatting/xml/ReplaceTextExpressionLanguageCSVReformatting.xml
new file mode 100644
index 0000000..b84c571
--- /dev/null
+++ b/minifi-integration-tests/src/test/resources/standalone/v1/ReplaceTextExpressionLanguageCSVReformatting/xml/ReplaceTextExpressionLanguageCSVReformatting.xml
@@ -0,0 +1,270 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+  ~ 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.
+  -->
+<template encoding-version="1.0">
+    <description></description>
+    <groupId>d140e36d-3d80-449c-8a5b-c43a7ade1ed5</groupId>
+    <name>ReplaceTextExpressionLanguageCSVReformatting</name>
+    <snippet>
+        <connections>
+            <id>1b327d4e-918f-43bc-97cf-043efed7ffbc</id>
+            <parentGroupId>d140e36d-3d80-449c-8a5b-c43a7ade1ed5</parentGroupId>
+            <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold>
+            <backPressureObjectThreshold>0</backPressureObjectThreshold>
+            <destination>
+                <groupId>d140e36d-3d80-449c-8a5b-c43a7ade1ed5</groupId>
+                <id>a25f67cb-029c-466f-b040-9339ba64a4b5</id>
+                <type>PROCESSOR</type>
+            </destination>
+            <flowFileExpiration>0 sec</flowFileExpiration>
+            <labelIndex>1</labelIndex>
+            <name></name>
+            <prioritizers>org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer</prioritizers>
+            <selectedRelationships>success</selectedRelationships>
+            <source>
+                <groupId>d140e36d-3d80-449c-8a5b-c43a7ade1ed5</groupId>
+                <id>7ba79381-4317-4c99-bcc0-256ee7ad44e9</id>
+                <type>PROCESSOR</type>
+            </source>
+            <zIndex>0</zIndex>
+        </connections>
+        <connections>
+            <id>ca71a875-0ff5-41ef-bbe0-da5de0ca1e08</id>
+            <parentGroupId>d140e36d-3d80-449c-8a5b-c43a7ade1ed5</parentGroupId>
+            <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold>
+            <backPressureObjectThreshold>0</backPressureObjectThreshold>
+            <destination>
+                <groupId>d140e36d-3d80-449c-8a5b-c43a7ade1ed5</groupId>
+                <id>7ba79381-4317-4c99-bcc0-256ee7ad44e9</id>
+                <type>PROCESSOR</type>
+            </destination>
+            <flowFileExpiration>0 sec</flowFileExpiration>
+            <labelIndex>1</labelIndex>
+            <name></name>
+            <prioritizers>org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer</prioritizers>
+            <selectedRelationships>success</selectedRelationships>
+            <source>
+                <groupId>d140e36d-3d80-449c-8a5b-c43a7ade1ed5</groupId>
+                <id>e626f756-f018-4670-8802-c8f8e459e15d</id>
+                <type>PROCESSOR</type>
+            </source>
+            <zIndex>0</zIndex>
+        </connections>
+        <connections>
+            <id>7fe8e5c6-6d9b-4b8f-af89-5d543bcc0199</id>
+            <parentGroupId>d140e36d-3d80-449c-8a5b-c43a7ade1ed5</parentGroupId>
+            <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold>
+            <backPressureObjectThreshold>0</backPressureObjectThreshold>
+            <destination>
+                <groupId>d140e36d-3d80-449c-8a5b-c43a7ade1ed5</groupId>
+                <id>bfa4fb38-096b-455d-a10f-2a1ed044bd49</id>
+                <type>PROCESSOR</type>
+            </destination>
+            <flowFileExpiration>0 sec</flowFileExpiration>
+            <labelIndex>1</labelIndex>
+            <name></name>
+            <prioritizers>org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer</prioritizers>
+            <selectedRelationships>success</selectedRelationships>
+            <source>
+                <groupId>d140e36d-3d80-449c-8a5b-c43a7ade1ed5</groupId>
+                <id>a25f67cb-029c-466f-b040-9339ba64a4b5</id>
+                <type>PROCESSOR</type>
+            </source>
+            <zIndex>0</zIndex>
+        </connections>
+        <processors>
+            <id>bfa4fb38-096b-455d-a10f-2a1ed044bd49</id>
+            <parentGroupId>d140e36d-3d80-449c-8a5b-c43a7ade1ed5</parentGroupId>
+            <position>
+                <x>1922.6538720444464</x>
+                <y>336.0769270573644</y>
+            </position>
+            <config>
+                <bulletinLevel>WARN</bulletinLevel>
+                <comments></comments>
+                <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+                <lossTolerant>false</lossTolerant>
+                <penaltyDuration>30 sec</penaltyDuration>
+                <properties>
+                    <entry>
+                        <key>Delete Attributes Expression</key>
+                    </entry>
+                </properties>
+                <runDurationMillis>0</runDurationMillis>
+                <schedulingPeriod>0 sec</schedulingPeriod>
+                <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+                <yieldDuration>1 sec</yieldDuration>
+            </config>
+            <name>No-Op Termination</name>
+            <relationships>
+                <autoTerminate>true</autoTerminate>
+                <name>success</name>
+            </relationships>
+            <style/>
+            <type>org.apache.nifi.processors.attributes.UpdateAttribute</type>
+        </processors>
+        <processors>
+            <id>a25f67cb-029c-466f-b040-9339ba64a4b5</id>
+            <parentGroupId>d140e36d-3d80-449c-8a5b-c43a7ade1ed5</parentGroupId>
+            <position>
+                <x>1916.6538720444464</x>
+                <y>645.6169270573644</y>
+            </position>
+            <config>
+                <bulletinLevel>WARN</bulletinLevel>
+                <comments></comments>
+                <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+                <lossTolerant>false</lossTolerant>
+                <penaltyDuration>30 sec</penaltyDuration>
+                <properties>
+                    <entry>
+                        <key>Regular Expression</key>
+                        <value>(.*?),(.*?),(\d+.*)</value>
+                    </entry>
+                    <entry>
+                        <key>Replacement Value</key>
+                        <value>$1,$2,${ '$3':toDate('ddMMMyyyy'):format('yyyy/MM/dd') }</value>
+                    </entry>
+                    <entry>
+                        <key>Character Set</key>
+                    </entry>
+                    <entry>
+                        <key>Maximum Buffer Size</key>
+                    </entry>
+                    <entry>
+                        <key>Replacement Strategy</key>
+                    </entry>
+                    <entry>
+                        <key>Evaluation Mode</key>
+                        <value>Line-by-Line</value>
+                    </entry>
+                </properties>
+                <runDurationMillis>0</runDurationMillis>
+                <schedulingPeriod>0 sec</schedulingPeriod>
+                <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+                <yieldDuration>1 sec</yieldDuration>
+            </config>
+            <name>Reformat Date Column</name>
+            <relationships>
+                <autoTerminate>true</autoTerminate>
+                <name>failure</name>
+            </relationships>
+            <relationships>
+                <autoTerminate>false</autoTerminate>
+                <name>success</name>
+            </relationships>
+            <style/>
+            <type>org.apache.nifi.processors.standard.ReplaceText</type>
+        </processors>
+        <processors>
+            <id>7ba79381-4317-4c99-bcc0-256ee7ad44e9</id>
+            <parentGroupId>d140e36d-3d80-449c-8a5b-c43a7ade1ed5</parentGroupId>
+            <position>
+                <x>1012.1538720444463</x>
+                <y>646.9569270573643</y>
+            </position>
+            <config>
+                <bulletinLevel>WARN</bulletinLevel>
+                <comments></comments>
+                <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+                <lossTolerant>false</lossTolerant>
+                <penaltyDuration>30 sec</penaltyDuration>
+                <properties>
+                    <entry>
+                        <key>Regular Expression</key>
+                    </entry>
+                    <entry>
+                        <key>Replacement Value</key>
+                        <value>2006,10-01-2004,10may2004
+                            2007,15-05-2006,10jun2005
+                            2009,8-8-2008,10aug2008
+                        </value>
+                    </entry>
+                    <entry>
+                        <key>Character Set</key>
+                    </entry>
+                    <entry>
+                        <key>Maximum Buffer Size</key>
+                    </entry>
+                    <entry>
+                        <key>Replacement Strategy</key>
+                    </entry>
+                    <entry>
+                        <key>Evaluation Mode</key>
+                    </entry>
+                </properties>
+                <runDurationMillis>0</runDurationMillis>
+                <schedulingPeriod>0 sec</schedulingPeriod>
+                <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+                <yieldDuration>1 sec</yieldDuration>
+            </config>
+            <name>Set CSV Content</name>
+            <relationships>
+                <autoTerminate>true</autoTerminate>
+                <name>failure</name>
+            </relationships>
+            <relationships>
+                <autoTerminate>false</autoTerminate>
+                <name>success</name>
+            </relationships>
+            <style/>
+            <type>org.apache.nifi.processors.standard.ReplaceText</type>
+        </processors>
+        <processors>
+            <id>e626f756-f018-4670-8802-c8f8e459e15d</id>
+            <parentGroupId>d140e36d-3d80-449c-8a5b-c43a7ade1ed5</parentGroupId>
+            <position>
+                <x>1013.6538720444463</x>
+                <y>311.9569270573644</y>
+            </position>
+            <config>
+                <bulletinLevel>WARN</bulletinLevel>
+                <comments></comments>
+                <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+                <lossTolerant>false</lossTolerant>
+                <penaltyDuration>30 sec</penaltyDuration>
+                <properties>
+                    <entry>
+                        <key>File Size</key>
+                        <value>0b</value>
+                    </entry>
+                    <entry>
+                        <key>Batch Size</key>
+                    </entry>
+                    <entry>
+                        <key>Data Format</key>
+                    </entry>
+                    <entry>
+                        <key>Unique FlowFiles</key>
+                    </entry>
+                </properties>
+                <runDurationMillis>0</runDurationMillis>
+                <schedulingPeriod>1 sec</schedulingPeriod>
+                <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+                <yieldDuration>1 sec</yieldDuration>
+            </config>
+            <name>Generate Empty File</name>
+            <relationships>
+                <autoTerminate>false</autoTerminate>
+                <name>success</name>
+            </relationships>
+            <style/>
+            <type>org.apache.nifi.processors.standard.GenerateFlowFile</type>
+        </processors>
+    </snippet>
+    <timestamp>07/04/2016 21:04:46 UTC</timestamp>
+</template>

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/minifi-integration-tests/src/test/resources/standalone/v1/ReplaceTextExpressionLanguageCSVReformatting/xml/expected.json
----------------------------------------------------------------------
diff --git a/minifi-integration-tests/src/test/resources/standalone/v1/ReplaceTextExpressionLanguageCSVReformatting/xml/expected.json b/minifi-integration-tests/src/test/resources/standalone/v1/ReplaceTextExpressionLanguageCSVReformatting/xml/expected.json
new file mode 100644
index 0000000..70303df
--- /dev/null
+++ b/minifi-integration-tests/src/test/resources/standalone/v1/ReplaceTextExpressionLanguageCSVReformatting/xml/expected.json
@@ -0,0 +1,4 @@
+{
+  "pattern": "o.a.n.c.r.StandardProcessSession StandardProcessSession\\[id=.*\\] for UpdateAttribute\\[id=bfa4fb38-096b-455d-a10f-2a1ed044bd49\\], committed the following events: Transferred FlowFiles \\[.*\\] to 'success'",
+  "occurrences": 2
+}

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/minifi-integration-tests/src/test/resources/standalone/v1/ReplaceTextExpressionLanguageCSVReformatting/yml/ReplaceTextExpressionLanguageCSVReformatting.yml
----------------------------------------------------------------------
diff --git a/minifi-integration-tests/src/test/resources/standalone/v1/ReplaceTextExpressionLanguageCSVReformatting/yml/ReplaceTextExpressionLanguageCSVReformatting.yml b/minifi-integration-tests/src/test/resources/standalone/v1/ReplaceTextExpressionLanguageCSVReformatting/yml/ReplaceTextExpressionLanguageCSVReformatting.yml
new file mode 100644
index 0000000..8c280c8
--- /dev/null
+++ b/minifi-integration-tests/src/test/resources/standalone/v1/ReplaceTextExpressionLanguageCSVReformatting/yml/ReplaceTextExpressionLanguageCSVReformatting.yml
@@ -0,0 +1,146 @@
+# 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.
+
+Flow Controller:
+  name: ReplaceTextExpressionLanguageCSVReformatting
+  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:
+- name: Generate Empty File
+  class: org.apache.nifi.processors.standard.GenerateFlowFile
+  max concurrent tasks: 1
+  scheduling strategy: TIMER_DRIVEN
+  scheduling period: 1 sec
+  penalization period: 30 sec
+  yield period: 1 sec
+  run duration nanos: 0
+  auto-terminated relationships list: []
+  Properties:
+    Batch Size:
+    Data Format:
+    File Size: 0b
+    Unique FlowFiles:
+- name: No-Op Termination
+  class: org.apache.nifi.processors.attributes.UpdateAttribute
+  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:
+  - success
+  Properties:
+    Delete Attributes Expression:
+- name: Reformat Date Column
+  class: org.apache.nifi.processors.standard.ReplaceText
+  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:
+  - failure
+  Properties:
+    Character Set:
+    Evaluation Mode: Line-by-Line
+    Maximum Buffer Size:
+    Regular Expression: (.*?),(.*?),(\d+.*)
+    Replacement Strategy:
+    Replacement Value: $1,$2,${ '$3':toDate('ddMMMyyyy'):format('yyyy/MM/dd') }
+- name: Set CSV Content
+  class: org.apache.nifi.processors.standard.ReplaceText
+  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:
+  - failure
+  Properties:
+    Character Set:
+    Evaluation Mode:
+    Maximum Buffer Size:
+    Regular Expression:
+    Replacement Strategy:
+    Replacement Value: |-
+      2006,10-01-2004,10may2004
+      2007,15-05-2006,10jun2005
+      2009,8-8-2008,10aug2008
+Connections:
+- name: Generate Empty File/success/Set CSV Content
+  source name: Generate Empty File
+  source relationship name: success
+  destination name: Set CSV Content
+  max work queue size: 0
+  max work queue data size: 0 MB
+  flowfile expiration: 0 sec
+  queue prioritizer class: org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer
+- name: Reformat Date Column/success/No-Op Termination
+  source name: Reformat Date Column
+  source relationship name: success
+  destination name: No-Op Termination
+  max work queue size: 0
+  max work queue data size: 0 MB
+  flowfile expiration: 0 sec
+  queue prioritizer class: org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer
+- name: Set CSV Content/success/Reformat Date Column
+  source name: Set CSV Content
+  source relationship name: success
+  destination name: Reformat Date Column
+  max work queue size: 0
+  max work queue data size: 0 MB
+  flowfile expiration: 0 sec
+  queue prioritizer class: org.apache.nifi.prioritizer.FirstInFirstOutPrioritizer
+Remote Processing Groups: []

http://git-wip-us.apache.org/repos/asf/nifi-minifi/blob/25298e90/minifi-integration-tests/src/test/resources/standalone/v1/ReplaceTextExpressionLanguageCSVReformatting/yml/expected.json
----------------------------------------------------------------------
diff --git a/minifi-integration-tests/src/test/resources/standalone/v1/ReplaceTextExpressionLanguageCSVReformatting/yml/expected.json b/minifi-integration-tests/src/test/resources/standalone/v1/ReplaceTextExpressionLanguageCSVReformatting/yml/expected.json
new file mode 100644
index 0000000..30eb6c7
--- /dev/null
+++ b/minifi-integration-tests/src/test/resources/standalone/v1/ReplaceTextExpressionLanguageCSVReformatting/yml/expected.json
@@ -0,0 +1,4 @@
+{
+  "pattern": "o.a.n.c.r.StandardProcessSession StandardProcessSession\\[id=.*\\] for UpdateAttribute\\[id=8c6c54be-7db6-333f-8c3b-d6e7b02411ff\\], committed the following events: Transferred FlowFiles \\[.*\\] to 'success'",
+  "occurrences": 2
+}