Created
August 1, 2018 18:44
-
-
Save alopresto/5f557380e26e6114465958f915356281 to your computer and use it in GitHub Desktop.
This template demonstrates an ExecuteScript processor containing a Groovy script to calculate the SHA-256 hash of various attributes and add that value as a new attribute on the flowfile. It also compares the ssdeep locality-sensitive hash (LSH) for reference. To deploy locally, replace the *Module Lib* property of *ExecuteScript* with the path …
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> | |
<template encoding-version="1.2"> | |
<description>This template demonstrates an ExecuteScript processor containing a Groovy script to calculate the SHA-256 hash of various attributes and add that value as a new attribute on the flowfile. It also compares the ssdeep locality-sensitive hash (LSH) for reference. </description> | |
<groupId>f6aec6a2-0164-1000-e01d-dcaf5d2d2f5d</groupId> | |
<name>HashAttribute Template</name> | |
<snippet> | |
<connections> | |
<id>13e1392c-72b1-38ed-0000-000000000000</id> | |
<parentGroupId>b01ab23b-41d5-389b-0000-000000000000</parentGroupId> | |
<backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold> | |
<backPressureObjectThreshold>10000</backPressureObjectThreshold> | |
<destination> | |
<groupId>b01ab23b-41d5-389b-0000-000000000000</groupId> | |
<id>5c419611-6416-3347-0000-000000000000</id> | |
<type>PROCESSOR</type> | |
</destination> | |
<flowFileExpiration>0 sec</flowFileExpiration> | |
<labelIndex>1</labelIndex> | |
<name></name> | |
<selectedRelationships>success</selectedRelationships> | |
<source> | |
<groupId>b01ab23b-41d5-389b-0000-000000000000</groupId> | |
<id>7a1f0b9e-aeef-3138-0000-000000000000</id> | |
<type>PROCESSOR</type> | |
</source> | |
<zIndex>0</zIndex> | |
</connections> | |
<connections> | |
<id>18cd3b17-e168-3778-0000-000000000000</id> | |
<parentGroupId>b01ab23b-41d5-389b-0000-000000000000</parentGroupId> | |
<backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold> | |
<backPressureObjectThreshold>10000</backPressureObjectThreshold> | |
<destination> | |
<groupId>b01ab23b-41d5-389b-0000-000000000000</groupId> | |
<id>469e63f6-20fb-3689-0000-000000000000</id> | |
<type>FUNNEL</type> | |
</destination> | |
<flowFileExpiration>0 sec</flowFileExpiration> | |
<labelIndex>1</labelIndex> | |
<name></name> | |
<selectedRelationships>success</selectedRelationships> | |
<source> | |
<groupId>b01ab23b-41d5-389b-0000-000000000000</groupId> | |
<id>6c7daba3-101f-3048-0000-000000000000</id> | |
<type>PROCESSOR</type> | |
</source> | |
<zIndex>0</zIndex> | |
</connections> | |
<connections> | |
<id>33afed24-512a-3774-0000-000000000000</id> | |
<parentGroupId>b01ab23b-41d5-389b-0000-000000000000</parentGroupId> | |
<backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold> | |
<backPressureObjectThreshold>10000</backPressureObjectThreshold> | |
<destination> | |
<groupId>b01ab23b-41d5-389b-0000-000000000000</groupId> | |
<id>0f86e72c-fbea-3c58-0000-000000000000</id> | |
<type>PROCESSOR</type> | |
</destination> | |
<flowFileExpiration>0 sec</flowFileExpiration> | |
<labelIndex>1</labelIndex> | |
<name></name> | |
<selectedRelationships>success</selectedRelationships> | |
<source> | |
<groupId>b01ab23b-41d5-389b-0000-000000000000</groupId> | |
<id>cc5a75c9-16be-35e5-0000-000000000000</id> | |
<type>PROCESSOR</type> | |
</source> | |
<zIndex>0</zIndex> | |
</connections> | |
<connections> | |
<id>57e37654-787d-3602-0000-000000000000</id> | |
<parentGroupId>b01ab23b-41d5-389b-0000-000000000000</parentGroupId> | |
<backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold> | |
<backPressureObjectThreshold>10000</backPressureObjectThreshold> | |
<destination> | |
<groupId>b01ab23b-41d5-389b-0000-000000000000</groupId> | |
<id>469e63f6-20fb-3689-0000-000000000000</id> | |
<type>FUNNEL</type> | |
</destination> | |
<flowFileExpiration>0 sec</flowFileExpiration> | |
<labelIndex>1</labelIndex> | |
<name></name> | |
<selectedRelationships>success</selectedRelationships> | |
<source> | |
<groupId>b01ab23b-41d5-389b-0000-000000000000</groupId> | |
<id>dfea606a-1f6f-3c9c-0000-000000000000</id> | |
<type>PROCESSOR</type> | |
</source> | |
<zIndex>0</zIndex> | |
</connections> | |
<connections> | |
<id>7949ec6d-0eff-3b67-0000-000000000000</id> | |
<parentGroupId>b01ab23b-41d5-389b-0000-000000000000</parentGroupId> | |
<backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold> | |
<backPressureObjectThreshold>10000</backPressureObjectThreshold> | |
<destination> | |
<groupId>b01ab23b-41d5-389b-0000-000000000000</groupId> | |
<id>cc5a75c9-16be-35e5-0000-000000000000</id> | |
<type>PROCESSOR</type> | |
</destination> | |
<flowFileExpiration>0 sec</flowFileExpiration> | |
<labelIndex>1</labelIndex> | |
<name></name> | |
<source> | |
<groupId>b01ab23b-41d5-389b-0000-000000000000</groupId> | |
<id>469e63f6-20fb-3689-0000-000000000000</id> | |
<type>FUNNEL</type> | |
</source> | |
<zIndex>0</zIndex> | |
</connections> | |
<connections> | |
<id>79cf430e-36b6-3f47-0000-000000000000</id> | |
<parentGroupId>b01ab23b-41d5-389b-0000-000000000000</parentGroupId> | |
<backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold> | |
<backPressureObjectThreshold>10000</backPressureObjectThreshold> | |
<destination> | |
<groupId>b01ab23b-41d5-389b-0000-000000000000</groupId> | |
<id>469e63f6-20fb-3689-0000-000000000000</id> | |
<type>FUNNEL</type> | |
</destination> | |
<flowFileExpiration>0 sec</flowFileExpiration> | |
<labelIndex>1</labelIndex> | |
<name></name> | |
<selectedRelationships>success</selectedRelationships> | |
<source> | |
<groupId>b01ab23b-41d5-389b-0000-000000000000</groupId> | |
<id>d82575eb-dafc-3a11-0000-000000000000</id> | |
<type>PROCESSOR</type> | |
</source> | |
<zIndex>0</zIndex> | |
</connections> | |
<connections> | |
<id>a5d91155-095c-38e5-0000-000000000000</id> | |
<parentGroupId>b01ab23b-41d5-389b-0000-000000000000</parentGroupId> | |
<backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold> | |
<backPressureObjectThreshold>10000</backPressureObjectThreshold> | |
<destination> | |
<groupId>b01ab23b-41d5-389b-0000-000000000000</groupId> | |
<id>7a1f0b9e-aeef-3138-0000-000000000000</id> | |
<type>PROCESSOR</type> | |
</destination> | |
<flowFileExpiration>0 sec</flowFileExpiration> | |
<labelIndex>1</labelIndex> | |
<name></name> | |
<source> | |
<groupId>b01ab23b-41d5-389b-0000-000000000000</groupId> | |
<id>469e63f6-20fb-3689-0000-000000000000</id> | |
<type>FUNNEL</type> | |
</source> | |
<zIndex>0</zIndex> | |
</connections> | |
<connections> | |
<id>d39da69a-1af6-3805-0000-000000000000</id> | |
<parentGroupId>b01ab23b-41d5-389b-0000-000000000000</parentGroupId> | |
<backPressureDataSizeThreshold>1 GB</backPressureDataSizeThreshold> | |
<backPressureObjectThreshold>10000</backPressureObjectThreshold> | |
<destination> | |
<groupId>b01ab23b-41d5-389b-0000-000000000000</groupId> | |
<id>5c419611-6416-3347-0000-000000000000</id> | |
<type>PROCESSOR</type> | |
</destination> | |
<flowFileExpiration>0 sec</flowFileExpiration> | |
<labelIndex>1</labelIndex> | |
<name></name> | |
<selectedRelationships>success</selectedRelationships> | |
<source> | |
<groupId>b01ab23b-41d5-389b-0000-000000000000</groupId> | |
<id>0f86e72c-fbea-3c58-0000-000000000000</id> | |
<type>PROCESSOR</type> | |
</source> | |
<zIndex>0</zIndex> | |
</connections> | |
<funnels> | |
<id>469e63f6-20fb-3689-0000-000000000000</id> | |
<parentGroupId>b01ab23b-41d5-389b-0000-000000000000</parentGroupId> | |
<position> | |
<x>530.0</x> | |
<y>258.0</y> | |
</position> | |
</funnels> | |
<labels> | |
<id>39fb7243-14c7-3964-0000-000000000000</id> | |
<parentGroupId>b01ab23b-41d5-389b-0000-000000000000</parentGroupId> | |
<position> | |
<x>0.0</x> | |
<y>0.0</y> | |
</position> | |
<height>199.0</height> | |
<label>Comment generating processors</label> | |
<style> | |
<entry> | |
<key>font-size</key> | |
<value>16px</value> | |
</entry> | |
</style> | |
<width>1198.0</width> | |
</labels> | |
<labels> | |
<id>a828355a-b94b-356c-0000-000000000000</id> | |
<parentGroupId>b01ab23b-41d5-389b-0000-000000000000</parentGroupId> | |
<position> | |
<x>645.0</x> | |
<y>277.0</y> | |
</position> | |
<height>449.0</height> | |
<label>"Fuzzy" hash for comparison (similar input results in similar output)</label> | |
<style> | |
<entry> | |
<key>font-size</key> | |
<value>16px</value> | |
</entry> | |
</style> | |
<width>563.0</width> | |
</labels> | |
<labels> | |
<id>bb4b7b8e-4bc5-36be-0000-000000000000</id> | |
<parentGroupId>b01ab23b-41d5-389b-0000-000000000000</parentGroupId> | |
<position> | |
<x>53.0</x> | |
<y>279.0</y> | |
</position> | |
<height>226.0</height> | |
<label>Custom script to calculate SHA-256 over attributes</label> | |
<style> | |
<entry> | |
<key>font-size</key> | |
<value>16px</value> | |
</entry> | |
</style> | |
<width>526.0</width> | |
</labels> | |
<processors> | |
<id>0f86e72c-fbea-3c58-0000-000000000000</id> | |
<parentGroupId>b01ab23b-41d5-389b-0000-000000000000</parentGroupId> | |
<position> | |
<x>701.5</x> | |
<y>585.0</y> | |
</position> | |
<bundle> | |
<artifact>nifi-cybersecurity-nar</artifact> | |
<group>org.apache.nifi</group> | |
<version>1.8.0-SNAPSHOT</version> | |
</bundle> | |
<config> | |
<bulletinLevel>WARN</bulletinLevel> | |
<comments></comments> | |
<concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount> | |
<descriptors> | |
<entry> | |
<key>ATTRIBUTE_NAME</key> | |
<value> | |
<name>ATTRIBUTE_NAME</name> | |
</value> | |
</entry> | |
<entry> | |
<key>HASH_ALGORITHM</key> | |
<value> | |
<name>HASH_ALGORITHM</name> | |
</value> | |
</entry> | |
</descriptors> | |
<executionNode>ALL</executionNode> | |
<lossTolerant>false</lossTolerant> | |
<penaltyDuration>30 sec</penaltyDuration> | |
<properties> | |
<entry> | |
<key>ATTRIBUTE_NAME</key> | |
<value>fuzzyhash.value</value> | |
</entry> | |
<entry> | |
<key>HASH_ALGORITHM</key> | |
<value>ssdeep</value> | |
</entry> | |
</properties> | |
<runDurationMillis>0</runDurationMillis> | |
<schedulingPeriod>0 sec</schedulingPeriod> | |
<schedulingStrategy>TIMER_DRIVEN</schedulingStrategy> | |
<yieldDuration>1 sec</yieldDuration> | |
</config> | |
<executionNodeRestricted>false</executionNodeRestricted> | |
<name>FuzzyHashContent</name> | |
<relationships> | |
<autoTerminate>true</autoTerminate> | |
<name>failure</name> | |
</relationships> | |
<relationships> | |
<autoTerminate>false</autoTerminate> | |
<name>success</name> | |
</relationships> | |
<state>STOPPED</state> | |
<style/> | |
<type>org.apache.nifi.processors.cybersecurity.FuzzyHashContent</type> | |
</processors> | |
<processors> | |
<id>5c419611-6416-3347-0000-000000000000</id> | |
<parentGroupId>b01ab23b-41d5-389b-0000-000000000000</parentGroupId> | |
<position> | |
<x>196.5</x> | |
<y>755.0</y> | |
</position> | |
<bundle> | |
<artifact>nifi-standard-nar</artifact> | |
<group>org.apache.nifi</group> | |
<version>1.8.0-SNAPSHOT</version> | |
</bundle> | |
<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-log-regex</key> | |
<value> | |
<name>attributes-to-log-regex</name> | |
</value> | |
</entry> | |
<entry> | |
<key>Attributes to Ignore</key> | |
<value> | |
<name>Attributes to Ignore</name> | |
</value> | |
</entry> | |
<entry> | |
<key>attributes-to-ignore-regex</key> | |
<value> | |
<name>attributes-to-ignore-regex</name> | |
</value> | |
</entry> | |
<entry> | |
<key>Log prefix</key> | |
<value> | |
<name>Log prefix</name> | |
</value> | |
</entry> | |
<entry> | |
<key>character-set</key> | |
<value> | |
<name>character-set</name> | |
</value> | |
</entry> | |
</descriptors> | |
<executionNode>ALL</executionNode> | |
<lossTolerant>false</lossTolerant> | |
<penaltyDuration>30 sec</penaltyDuration> | |
<properties> | |
<entry> | |
<key>Log Level</key> | |
<value>info</value> | |
</entry> | |
<entry> | |
<key>Log Payload</key> | |
<value>true</value> | |
</entry> | |
<entry> | |
<key>Attributes to Log</key> | |
</entry> | |
<entry> | |
<key>attributes-to-log-regex</key> | |
<value>.*</value> | |
</entry> | |
<entry> | |
<key>Attributes to Ignore</key> | |
</entry> | |
<entry> | |
<key>attributes-to-ignore-regex</key> | |
</entry> | |
<entry> | |
<key>Log prefix</key> | |
</entry> | |
<entry> | |
<key>character-set</key> | |
<value>UTF-8</value> | |
</entry> | |
</properties> | |
<runDurationMillis>0</runDurationMillis> | |
<schedulingPeriod>0 sec</schedulingPeriod> | |
<schedulingStrategy>TIMER_DRIVEN</schedulingStrategy> | |
<yieldDuration>1 sec</yieldDuration> | |
</config> | |
<executionNodeRestricted>false</executionNodeRestricted> | |
<name>LogAttribute</name> | |
<relationships> | |
<autoTerminate>true</autoTerminate> | |
<name>success</name> | |
</relationships> | |
<state>STOPPED</state> | |
<style/> | |
<type>org.apache.nifi.processors.standard.LogAttribute</type> | |
</processors> | |
<processors> | |
<id>6c7daba3-101f-3048-0000-000000000000</id> | |
<parentGroupId>b01ab23b-41d5-389b-0000-000000000000</parentGroupId> | |
<position> | |
<x>35.0</x> | |
<y>35.5</y> | |
</position> | |
<bundle> | |
<artifact>nifi-standard-nar</artifact> | |
<group>org.apache.nifi</group> | |
<version>1.8.0-SNAPSHOT</version> | |
</bundle> | |
<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> | |
<entry> | |
<key>generate-ff-custom-text</key> | |
<value> | |
<name>generate-ff-custom-text</name> | |
</value> | |
</entry> | |
<entry> | |
<key>character-set</key> | |
<value> | |
<name>character-set</name> | |
</value> | |
</entry> | |
<entry> | |
<key>commentContent</key> | |
<value> | |
<name>commentContent</name> | |
</value> | |
</entry> | |
<entry> | |
<key>commentID</key> | |
<value> | |
<name>commentID</name> | |
</value> | |
</entry> | |
</descriptors> | |
<executionNode>ALL</executionNode> | |
<lossTolerant>false</lossTolerant> | |
<penaltyDuration>30 sec</penaltyDuration> | |
<properties> | |
<entry> | |
<key>File Size</key> | |
<value>0B</value> | |
</entry> | |
<entry> | |
<key>Batch Size</key> | |
<value>1</value> | |
</entry> | |
<entry> | |
<key>Data Format</key> | |
<value>Text</value> | |
</entry> | |
<entry> | |
<key>Unique FlowFiles</key> | |
<value>false</value> | |
</entry> | |
<entry> | |
<key>generate-ff-custom-text</key> | |
<value>This is a plaintext message. </value> | |
</entry> | |
<entry> | |
<key>character-set</key> | |
<value>UTF-8</value> | |
</entry> | |
<entry> | |
<key>commentContent</key> | |
<value>This is a long, rambling comment. This comment goes on and on for quite some time, never reaching the author's intended point. Sadly, we see many of these comments in today's society. </value> | |
</entry> | |
<entry> | |
<key>commentID</key> | |
<value>1</value> | |
</entry> | |
</properties> | |
<runDurationMillis>0</runDurationMillis> | |
<schedulingPeriod>1 sec</schedulingPeriod> | |
<schedulingStrategy>TIMER_DRIVEN</schedulingStrategy> | |
<yieldDuration>1 sec</yieldDuration> | |
</config> | |
<executionNodeRestricted>false</executionNodeRestricted> | |
<name>Comment 1</name> | |
<relationships> | |
<autoTerminate>false</autoTerminate> | |
<name>success</name> | |
</relationships> | |
<state>STOPPED</state> | |
<style/> | |
<type>org.apache.nifi.processors.standard.GenerateFlowFile</type> | |
</processors> | |
<processors> | |
<id>7a1f0b9e-aeef-3138-0000-000000000000</id> | |
<parentGroupId>b01ab23b-41d5-389b-0000-000000000000</parentGroupId> | |
<position> | |
<x>196.5</x> | |
<y>347.5</y> | |
</position> | |
<bundle> | |
<artifact>nifi-scripting-nar</artifact> | |
<group>org.apache.nifi</group> | |
<version>1.8.0-SNAPSHOT</version> | |
</bundle> | |
<config> | |
<bulletinLevel>WARN</bulletinLevel> | |
<comments></comments> | |
<concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount> | |
<descriptors> | |
<entry> | |
<key>Script Engine</key> | |
<value> | |
<name>Script Engine</name> | |
</value> | |
</entry> | |
<entry> | |
<key>Script File</key> | |
<value> | |
<name>Script File</name> | |
</value> | |
</entry> | |
<entry> | |
<key>Script Body</key> | |
<value> | |
<name>Script Body</name> | |
</value> | |
</entry> | |
<entry> | |
<key>Module Directory</key> | |
<value> | |
<name>Module Directory</name> | |
</value> | |
</entry> | |
</descriptors> | |
<executionNode>ALL</executionNode> | |
<lossTolerant>false</lossTolerant> | |
<penaltyDuration>30 sec</penaltyDuration> | |
<properties> | |
<entry> | |
<key>Script Engine</key> | |
<value>Groovy</value> | |
</entry> | |
<entry> | |
<key>Script File</key> | |
</entry> | |
<entry> | |
<key>Script Body</key> | |
<value>import java.security.MessageDigest | |
import java.nio.charset.StandardCharsets | |
import org.apache.commons.codec.binary.Hex | |
def flowFile = session.get() | |
if (flowFile == null) { | |
return | |
} | |
// Retrieve each of the desired attributes (in order) | |
def attributesToHash = ["commentID", "commentContent"] | |
def attributeValues = [] | |
attributesToHash.each { String attr -> | |
attributeValues << flowFile.getAttribute(attr) | |
} | |
def stringToHash = attributeValues.join(";") | |
// Calculate the hash of the provided string | |
MessageDigest digest = MessageDigest.getInstance("SHA-256") | |
byte[] hashBytes = digest.digest(stringToHash.getBytes(StandardCharsets.UTF_8)) | |
String hashHex = Hex.encodeHexString(hashBytes) | |
log.info("Calculated SHA-256(${stringToHash}): ${hashHex}") | |
// Store the value in an attribute on the flowfile | |
flowFile = session.putAttribute(flowFile, "hashSha256", hashHex) | |
// Transfer the flowfile to success relationship | |
session.transfer(flowFile, ExecuteScript.REL_SUCCESS)</value> | |
</entry> | |
<entry> | |
<key>Module Directory</key> | |
<value>/Users/alopresto/Workspace/nifi/nifi-assembly/target/nifi-1.8.0-SNAPSHOT-bin/nifi-1.8.0-SNAPSHOT/lib/bootstrap/commons-codec-1.11.jar</value> | |
</entry> | |
</properties> | |
<runDurationMillis>0</runDurationMillis> | |
<schedulingPeriod>0 sec</schedulingPeriod> | |
<schedulingStrategy>TIMER_DRIVEN</schedulingStrategy> | |
<yieldDuration>1 sec</yieldDuration> | |
</config> | |
<executionNodeRestricted>false</executionNodeRestricted> | |
<name>ExecuteScript</name> | |
<relationships> | |
<autoTerminate>true</autoTerminate> | |
<name>failure</name> | |
</relationships> | |
<relationships> | |
<autoTerminate>false</autoTerminate> | |
<name>success</name> | |
</relationships> | |
<state>STOPPED</state> | |
<style/> | |
<type>org.apache.nifi.processors.script.ExecuteScript</type> | |
</processors> | |
<processors> | |
<id>cc5a75c9-16be-35e5-0000-000000000000</id> | |
<parentGroupId>b01ab23b-41d5-389b-0000-000000000000</parentGroupId> | |
<position> | |
<x>701.5</x> | |
<y>347.5</y> | |
</position> | |
<bundle> | |
<artifact>nifi-standard-nar</artifact> | |
<group>org.apache.nifi</group> | |
<version>1.8.0-SNAPSHOT</version> | |
</bundle> | |
<config> | |
<bulletinLevel>WARN</bulletinLevel> | |
<comments></comments> | |
<concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount> | |
<descriptors> | |
<entry> | |
<key>Regular Expression</key> | |
<value> | |
<name>Regular Expression</name> | |
</value> | |
</entry> | |
<entry> | |
<key>Replacement Value</key> | |
<value> | |
<name>Replacement Value</name> | |
</value> | |
</entry> | |
<entry> | |
<key>Character Set</key> | |
<value> | |
<name>Character Set</name> | |
</value> | |
</entry> | |
<entry> | |
<key>Maximum Buffer Size</key> | |
<value> | |
<name>Maximum Buffer Size</name> | |
</value> | |
</entry> | |
<entry> | |
<key>Replacement Strategy</key> | |
<value> | |
<name>Replacement Strategy</name> | |
</value> | |
</entry> | |
<entry> | |
<key>Evaluation Mode</key> | |
<value> | |
<name>Evaluation Mode</name> | |
</value> | |
</entry> | |
</descriptors> | |
<executionNode>ALL</executionNode> | |
<lossTolerant>false</lossTolerant> | |
<penaltyDuration>30 sec</penaltyDuration> | |
<properties> | |
<entry> | |
<key>Regular Expression</key> | |
<value>(?s)(^.*$)</value> | |
</entry> | |
<entry> | |
<key>Replacement Value</key> | |
<value>${commentID};${commentContent}</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> | |
<value>Regex Replace</value> | |
</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> | |
<executionNodeRestricted>false</executionNodeRestricted> | |
<name>Populate FF Content with Attributes</name> | |
<relationships> | |
<autoTerminate>true</autoTerminate> | |
<name>failure</name> | |
</relationships> | |
<relationships> | |
<autoTerminate>false</autoTerminate> | |
<name>success</name> | |
</relationships> | |
<state>STOPPED</state> | |
<style/> | |
<type>org.apache.nifi.processors.standard.ReplaceText</type> | |
</processors> | |
<processors> | |
<id>d82575eb-dafc-3a11-0000-000000000000</id> | |
<parentGroupId>b01ab23b-41d5-389b-0000-000000000000</parentGroupId> | |
<position> | |
<x>799.0</x> | |
<y>35.5</y> | |
</position> | |
<bundle> | |
<artifact>nifi-standard-nar</artifact> | |
<group>org.apache.nifi</group> | |
<version>1.8.0-SNAPSHOT</version> | |
</bundle> | |
<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> | |
<entry> | |
<key>generate-ff-custom-text</key> | |
<value> | |
<name>generate-ff-custom-text</name> | |
</value> | |
</entry> | |
<entry> | |
<key>character-set</key> | |
<value> | |
<name>character-set</name> | |
</value> | |
</entry> | |
<entry> | |
<key>commentContent</key> | |
<value> | |
<name>commentContent</name> | |
</value> | |
</entry> | |
<entry> | |
<key>commentID</key> | |
<value> | |
<name>commentID</name> | |
</value> | |
</entry> | |
</descriptors> | |
<executionNode>ALL</executionNode> | |
<lossTolerant>false</lossTolerant> | |
<penaltyDuration>30 sec</penaltyDuration> | |
<properties> | |
<entry> | |
<key>File Size</key> | |
<value>0B</value> | |
</entry> | |
<entry> | |
<key>Batch Size</key> | |
<value>1</value> | |
</entry> | |
<entry> | |
<key>Data Format</key> | |
<value>Text</value> | |
</entry> | |
<entry> | |
<key>Unique FlowFiles</key> | |
<value>false</value> | |
</entry> | |
<entry> | |
<key>generate-ff-custom-text</key> | |
<value>This is a plaintext message. </value> | |
</entry> | |
<entry> | |
<key>character-set</key> | |
<value>UTF-8</value> | |
</entry> | |
<entry> | |
<key>commentContent</key> | |
<value>This is a concise comment. </value> | |
</entry> | |
<entry> | |
<key>commentID</key> | |
<value>3</value> | |
</entry> | |
</properties> | |
<runDurationMillis>0</runDurationMillis> | |
<schedulingPeriod>1 sec</schedulingPeriod> | |
<schedulingStrategy>TIMER_DRIVEN</schedulingStrategy> | |
<yieldDuration>1 sec</yieldDuration> | |
</config> | |
<executionNodeRestricted>false</executionNodeRestricted> | |
<name>Comment 3</name> | |
<relationships> | |
<autoTerminate>false</autoTerminate> | |
<name>success</name> | |
</relationships> | |
<state>STOPPED</state> | |
<style/> | |
<type>org.apache.nifi.processors.standard.GenerateFlowFile</type> | |
</processors> | |
<processors> | |
<id>dfea606a-1f6f-3c9c-0000-000000000000</id> | |
<parentGroupId>b01ab23b-41d5-389b-0000-000000000000</parentGroupId> | |
<position> | |
<x>412.0</x> | |
<y>35.5</y> | |
</position> | |
<bundle> | |
<artifact>nifi-standard-nar</artifact> | |
<group>org.apache.nifi</group> | |
<version>1.8.0-SNAPSHOT</version> | |
</bundle> | |
<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> | |
<entry> | |
<key>generate-ff-custom-text</key> | |
<value> | |
<name>generate-ff-custom-text</name> | |
</value> | |
</entry> | |
<entry> | |
<key>character-set</key> | |
<value> | |
<name>character-set</name> | |
</value> | |
</entry> | |
<entry> | |
<key>commentContent</key> | |
<value> | |
<name>commentContent</name> | |
</value> | |
</entry> | |
<entry> | |
<key>commentID</key> | |
<value> | |
<name>commentID</name> | |
</value> | |
</entry> | |
</descriptors> | |
<executionNode>ALL</executionNode> | |
<lossTolerant>false</lossTolerant> | |
<penaltyDuration>30 sec</penaltyDuration> | |
<properties> | |
<entry> | |
<key>File Size</key> | |
<value>0B</value> | |
</entry> | |
<entry> | |
<key>Batch Size</key> | |
<value>1</value> | |
</entry> | |
<entry> | |
<key>Data Format</key> | |
<value>Text</value> | |
</entry> | |
<entry> | |
<key>Unique FlowFiles</key> | |
<value>false</value> | |
</entry> | |
<entry> | |
<key>generate-ff-custom-text</key> | |
<value>This is a plaintext message. </value> | |
</entry> | |
<entry> | |
<key>character-set</key> | |
<value>UTF-8</value> | |
</entry> | |
<entry> | |
<key>commentContent</key> | |
<value>This is a long, rambling comment. This comment goes on and on for quite some time, never reaching the author's intended point. Sadly, we see many of these comments in today's society. </value> | |
</entry> | |
<entry> | |
<key>commentID</key> | |
<value>2</value> | |
</entry> | |
</properties> | |
<runDurationMillis>0</runDurationMillis> | |
<schedulingPeriod>1 sec</schedulingPeriod> | |
<schedulingStrategy>TIMER_DRIVEN</schedulingStrategy> | |
<yieldDuration>1 sec</yieldDuration> | |
</config> | |
<executionNodeRestricted>false</executionNodeRestricted> | |
<name>Comment 2 (Same as 1)</name> | |
<relationships> | |
<autoTerminate>false</autoTerminate> | |
<name>success</name> | |
</relationships> | |
<state>STOPPED</state> | |
<style/> | |
<type>org.apache.nifi.processors.standard.GenerateFlowFile</type> | |
</processors> | |
</snippet> | |
<timestamp>08/01/2018 11:42:59 PDT</timestamp> | |
</template> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment