This is an automated email from the ASF dual-hosted git repository.

aldrin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nifi-minifi.git


The following commit(s) were added to refs/heads/master by this push:
     new 2e0970b  MINIFI-521 Change logic around how updated RPG logic is 
applied to handle all subsequent versions
2e0970b is described below

commit 2e0970b8dd29797b1f8d5d710ca29d0d0486113d
Author: Aldrin Piri <ald...@apache.org>
AuthorDate: Thu Mar 19 09:38:16 2020 -0400

    MINIFI-521 Change logic around how updated RPG logic is applied to handle 
all subsequent versions
    
    Add test for supplied sample file
    
    This closes #188 and closes #185.
    
    Signed-off-by: Aldrin Piri <ald...@apache.org>
---
 .../configuration/dto/FlowSnippetDTOEnricher.java  |   9 +-
 .../toolkit/configuration/ConfigMainTest.java      |   5 +
 .../resources/MINIFI-521_1.3_TemplateEncoding.xml  | 205 +++++++++++++++++++++
 .../resources/MINIFI-521_1.3_TemplateEncoding.yml  | 112 +++++++++++
 4 files changed, 328 insertions(+), 3 deletions(-)

diff --git 
a/minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/dto/FlowSnippetDTOEnricher.java
 
b/minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/dto/FlowSnippetDTOEnricher.java
index a197925..4795e12 100644
--- 
a/minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/dto/FlowSnippetDTOEnricher.java
+++ 
b/minifi-toolkit/minifi-toolkit-configuration/src/main/java/org/apache/nifi/minifi/toolkit/configuration/dto/FlowSnippetDTOEnricher.java
@@ -65,14 +65,17 @@ public class FlowSnippetDTOEnricher {
              */
             if (encodingVersion != null) {
                 switch (encodingVersion) {
-                    case "1.2":
+                    // Perform a no-op for the first two versions of templates
+                    case "1.0":
+                    case "1.1":
+                        break;
+                    // Starting in 1.2, the way in which RPGs are mapped has 
changed
+                    default:
                         // Map all port DTOs to their respective targetIds
                         rpgIdToTargetIdMap.putAll(
                                 Stream.concat(rpgInputPortDtos.stream(), 
rpgOutputPortDtos.stream())
                                         
.collect(Collectors.toMap(RemoteProcessGroupPortDTO::getId, 
RemoteProcessGroupPortDTO::getTargetId)));
                         break;
-                    default:
-                        break;
                 }
             }
 
diff --git 
a/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/ConfigMainTest.java
 
b/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/ConfigMainTest.java
index fd8b56b..66accea 100644
--- 
a/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/ConfigMainTest.java
+++ 
b/minifi-toolkit/minifi-toolkit-configuration/src/test/java/org/apache/nifi/minifi/toolkit/configuration/ConfigMainTest.java
@@ -179,6 +179,11 @@ public class ConfigMainTest {
     }
 
     @Test
+    public void testTransformRoundTrip13TemplateEncoding() throws IOException, 
JAXBException, SchemaLoaderException {
+        transformRoundTrip("MINIFI-521_1.3_TemplateEncoding");
+    }
+
+    @Test
     public void testTransformRoundTripDecompression() throws IOException, 
JAXBException, SchemaLoaderException {
         transformRoundTrip("DecompressionCircularFlow");
     }
diff --git 
a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/MINIFI-521_1.3_TemplateEncoding.xml
 
b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/MINIFI-521_1.3_TemplateEncoding.xml
new file mode 100644
index 0000000..1ae143b
--- /dev/null
+++ 
b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/MINIFI-521_1.3_TemplateEncoding.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<template encoding-version="1.3">
+    <description></description>
+    <groupId>dacdd7b8-016e-1000-3bfe-7b025a1f4a65</groupId>
+    <name>MiNiFi2</name>
+    <snippet>
+        <processGroups>
+            <id>e544a343-e2f0-3112-0000-000000000000</id>
+            <parentGroupId>f73cd914-561d-3ade-0000-000000000000</parentGroupId>
+            <position>
+                <x>0.0</x>
+                <y>0.0</y>
+            </position>
+            <comments></comments>
+            <contents>
+                <connections>
+                    <id>10de7342-41ef-37a5-0000-000000000000</id>
+                    
<parentGroupId>e544a343-e2f0-3112-0000-000000000000</parentGroupId>
+                    <backPressureDataSizeThreshold>1 
GB</backPressureDataSizeThreshold>
+                    
<backPressureObjectThreshold>10000</backPressureObjectThreshold>
+                    <destination>
+                        <groupId>1e18bdb9-7df3-3fba-0000-000000000000</groupId>
+                        <id>9b02eb45-3c2d-3fb4-91cf-880d5038c0cd</id>
+                        <type>REMOTE_INPUT_PORT</type>
+                    </destination>
+                    <flowFileExpiration>0 sec</flowFileExpiration>
+                    <labelIndex>1</labelIndex>
+                    
<loadBalanceCompression>DO_NOT_COMPRESS</loadBalanceCompression>
+                    
<loadBalancePartitionAttribute></loadBalancePartitionAttribute>
+                    
<loadBalanceStatus>LOAD_BALANCE_NOT_CONFIGURED</loadBalanceStatus>
+                    
<loadBalanceStrategy>DO_NOT_LOAD_BALANCE</loadBalanceStrategy>
+                    <name></name>
+                    <selectedRelationships>success</selectedRelationships>
+                    <source>
+                        <groupId>e544a343-e2f0-3112-0000-000000000000</groupId>
+                        <id>246f7d78-f8e1-3c88-0000-000000000000</id>
+                        <type>PROCESSOR</type>
+                    </source>
+                    <zIndex>0</zIndex>
+                </connections>
+                <processors>
+                    <id>246f7d78-f8e1-3c88-0000-000000000000</id>
+                    
<parentGroupId>e544a343-e2f0-3112-0000-000000000000</parentGroupId>
+                    <position>
+                        <x>-16.0</x>
+                        <y>104.0</y>
+                    </position>
+                    <bundle>
+                        <artifact>nifi-standard-nar</artifact>
+                        <group>org.apache.nifi</group>
+                        <version>1.10.0</version>
+                    </bundle>
+                    <config>
+                        <bulletinLevel>WARN</bulletinLevel>
+                        <comments></comments>
+                        
<concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+                        <descriptors>
+                            <entry>
+                                <key>tail-mode</key>
+                                <value>
+                                    <name>tail-mode</name>
+                                </value>
+                            </entry>
+                            <entry>
+                                <key>File to Tail</key>
+                                <value>
+                                    <name>File to Tail</name>
+                                </value>
+                            </entry>
+                            <entry>
+                                <key>Rolling Filename Pattern</key>
+                                <value>
+                                    <name>Rolling Filename Pattern</name>
+                                </value>
+                            </entry>
+                            <entry>
+                                <key>tail-base-directory</key>
+                                <value>
+                                    <name>tail-base-directory</name>
+                                </value>
+                            </entry>
+                            <entry>
+                                <key>Initial Start Position</key>
+                                <value>
+                                    <name>Initial Start Position</name>
+                                </value>
+                            </entry>
+                            <entry>
+                                <key>File Location</key>
+                                <value>
+                                    <name>File Location</name>
+                                </value>
+                            </entry>
+                            <entry>
+                                <key>tailfile-recursive-lookup</key>
+                                <value>
+                                    <name>tailfile-recursive-lookup</name>
+                                </value>
+                            </entry>
+                            <entry>
+                                <key>tailfile-lookup-frequency</key>
+                                <value>
+                                    <name>tailfile-lookup-frequency</name>
+                                </value>
+                            </entry>
+                            <entry>
+                                <key>tailfile-maximum-age</key>
+                                <value>
+                                    <name>tailfile-maximum-age</name>
+                                </value>
+                            </entry>
+                        </descriptors>
+                        <executionNode>ALL</executionNode>
+                        <lossTolerant>false</lossTolerant>
+                        <penaltyDuration>30 sec</penaltyDuration>
+                        <properties>
+                            <entry>
+                                <key>tail-mode</key>
+                                <value>Single file</value>
+                            </entry>
+                            <entry>
+                                <key>File to Tail</key>
+                                <value>/opt/minifi/minifi_test_dir</value>
+                            </entry>
+                            <entry>
+                                <key>Rolling Filename Pattern</key>
+                            </entry>
+                            <entry>
+                                <key>tail-base-directory</key>
+                            </entry>
+                            <entry>
+                                <key>Initial Start Position</key>
+                                <value>Beginning of File</value>
+                            </entry>
+                            <entry>
+                                <key>File Location</key>
+                                <value>Local</value>
+                            </entry>
+                            <entry>
+                                <key>tailfile-recursive-lookup</key>
+                                <value>false</value>
+                            </entry>
+                            <entry>
+                                <key>tailfile-lookup-frequency</key>
+                                <value>10 minutes</value>
+                            </entry>
+                            <entry>
+                                <key>tailfile-maximum-age</key>
+                                <value>24 hours</value>
+                            </entry>
+                        </properties>
+                        <runDurationMillis>0</runDurationMillis>
+                        <schedulingPeriod>0 sec</schedulingPeriod>
+                        <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>
+                        <yieldDuration>1 sec</yieldDuration>
+                    </config>
+                    <executionNodeRestricted>false</executionNodeRestricted>
+                    <name>TailFile</name>
+                    <relationships>
+                        <autoTerminate>false</autoTerminate>
+                        <name>success</name>
+                    </relationships>
+                    <state>STOPPED</state>
+                    <style/>
+                    <type>org.apache.nifi.processors.standard.TailFile</type>
+                </processors>
+                <remoteProcessGroups>
+                    <id>1e18bdb9-7df3-3fba-0000-000000000000</id>
+                    
<parentGroupId>e544a343-e2f0-3112-0000-000000000000</parentGroupId>
+                    <position>
+                        <x>680.0</x>
+                        <y>88.0</y>
+                    </position>
+                    <comments></comments>
+                    <communicationsTimeout>30 sec</communicationsTimeout>
+                    <contents>
+                        <inputPorts>
+                            <batchSettings/>
+                            <comments></comments>
+                            
<concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>
+                            <connected>true</connected>
+                            <exists>true</exists>
+                            
<groupId>db4d2e20-016e-1000-d3c7-73a67e2b1d67</groupId>
+                            <id>9b02eb45-3c2d-3fb4-91cf-880d5038c0cd</id>
+                            <name>input_minifi</name>
+                            
<targetId>dadd7f29-016e-1000-3c91-89495c813674</targetId>
+                            <targetRunning>false</targetRunning>
+                            <transmitting>false</transmitting>
+                            <useCompression>false</useCompression>
+                        </inputPorts>
+                    </contents>
+                    <proxyHost></proxyHost>
+                    <proxyUser></proxyUser>
+                    <targetUri>http://nifi-server:8080/nifi</targetUri>
+                    <targetUris>http://nifi-server:8080/nifi</targetUris>
+                    <transportProtocol>RAW</transportProtocol>
+                    <yieldDuration>10 sec</yieldDuration>
+                </remoteProcessGroups>
+            </contents>
+            <name>MiNiFi</name>
+            <variables/>
+        </processGroups>
+    </snippet>
+    <timestamp>12/06/2019 13:23:39 UTC</timestamp>
+</template>
\ No newline at end of file
diff --git 
a/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/MINIFI-521_1.3_TemplateEncoding.yml
 
b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/MINIFI-521_1.3_TemplateEncoding.yml
new file mode 100644
index 0000000..379216c
--- /dev/null
+++ 
b/minifi-toolkit/minifi-toolkit-configuration/src/test/resources/MINIFI-521_1.3_TemplateEncoding.yml
@@ -0,0 +1,112 @@
+MiNiFi Config Version: 3
+Flow Controller:
+  name: MiNiFi2
+  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
+  variable registry properties: ''
+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
+  implementation: 
org.apache.nifi.provenance.MiNiFiPersistentProvenanceRepository
+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: []
+Controller Services: []
+Process Groups:
+  - id: e544a343-e2f0-3112-0000-000000000000
+    name: MiNiFi
+    Processors:
+      - id: 246f7d78-f8e1-3c88-0000-000000000000
+        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: Local
+          File to Tail: /opt/minifi/minifi_test_dir
+          Initial Start Position: Beginning of File
+          Rolling Filename Pattern:
+          tail-base-directory:
+          tail-mode: Single file
+          tailfile-lookup-frequency: 10 minutes
+          tailfile-maximum-age: 24 hours
+          tailfile-recursive-lookup: 'false'
+    Controller Services: []
+    Process Groups: []
+    Input Ports: []
+    Output Ports: []
+    Funnels: []
+    Connections:
+      - id: 10de7342-41ef-37a5-0000-000000000000
+        name: TailFile/success/dadd7f29-016e-1000-3c91-89495c813674
+        source id: 246f7d78-f8e1-3c88-0000-000000000000
+        source relationship names:
+          - success
+        destination id: dadd7f29-016e-1000-3c91-89495c813674
+        max work queue size: 10000
+        max work queue data size: 1 GB
+        flowfile expiration: 0 sec
+        queue prioritizer class: ''
+    Remote Process Groups:
+      - id: 1e18bdb9-7df3-3fba-0000-000000000000
+        name: ''
+        url: http://nifi-server:8080/nifi
+        comment: ''
+        timeout: 30 sec
+        yield period: 10 sec
+        transport protocol: RAW
+        proxy host: ''
+        proxy port: ''
+        proxy user: ''
+        proxy password: ''
+        local network interface: ''
+        Input Ports:
+          - id: dadd7f29-016e-1000-3c91-89495c813674
+            name: input_minifi
+            comment: ''
+            max concurrent tasks: 1
+            use compression: false
+        Output Ports: []
+Input Ports: []
+Output Ports: []
+Funnels: []
+Connections: []
+Remote Process Groups: []
+NiFi Properties Overrides: {}
\ No newline at end of file

Reply via email to