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