Created
April 28, 2016 21:39
-
-
Save anarchivist/37e06476f87cecdabea5fa9fd3aebaa3 to your computer and use it in GitHub Desktop.
Apache NiFi OAI-PMH harvester (work in progress)
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> | |
| <description/> | |
| <name>OAI-PMH</name> | |
| <snippet> | |
| <connections> | |
| <id>a17830ba-5cff-466a-85cb-f6ef8d2570e2</id> | |
| <parentGroupId>39307b88-cf92-400b-8d28-ca855e4bbf3f</parentGroupId> | |
| <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold> | |
| <backPressureObjectThreshold>0</backPressureObjectThreshold> | |
| <destination> | |
| <groupId>39307b88-cf92-400b-8d28-ca855e4bbf3f</groupId> | |
| <id>81ce52f7-618b-4802-aab2-424bec82c1c9</id> | |
| <type>PROCESSOR</type> | |
| </destination> | |
| <flowFileExpiration>0 sec</flowFileExpiration> | |
| <labelIndex>1</labelIndex> | |
| <name/> | |
| <selectedRelationships>matched</selectedRelationships> | |
| <source> | |
| <groupId>39307b88-cf92-400b-8d28-ca855e4bbf3f</groupId> | |
| <id>c293aa03-a839-448a-8ca6-e491ff684f44</id> | |
| <type>PROCESSOR</type> | |
| </source> | |
| <zIndex>0</zIndex> | |
| </connections> | |
| <connections> | |
| <id>faa7f794-5778-4e29-964d-86765a18e4f4</id> | |
| <parentGroupId>39307b88-cf92-400b-8d28-ca855e4bbf3f</parentGroupId> | |
| <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold> | |
| <backPressureObjectThreshold>0</backPressureObjectThreshold> | |
| <destination> | |
| <groupId>39307b88-cf92-400b-8d28-ca855e4bbf3f</groupId> | |
| <id>ec8bcaec-28b2-4923-85cd-dfbd2e28019c</id> | |
| <type>PROCESSOR</type> | |
| </destination> | |
| <flowFileExpiration>0 sec</flowFileExpiration> | |
| <labelIndex>1</labelIndex> | |
| <name/> | |
| <selectedRelationships>success</selectedRelationships> | |
| <source> | |
| <groupId>39307b88-cf92-400b-8d28-ca855e4bbf3f</groupId> | |
| <id>5fded9d5-098e-4bb8-bd0e-03de394bca09</id> | |
| <type>PROCESSOR</type> | |
| </source> | |
| <zIndex>0</zIndex> | |
| </connections> | |
| <connections> | |
| <id>3b0b730f-9641-4677-943f-16105e7cba49</id> | |
| <parentGroupId>39307b88-cf92-400b-8d28-ca855e4bbf3f</parentGroupId> | |
| <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold> | |
| <backPressureObjectThreshold>0</backPressureObjectThreshold> | |
| <destination> | |
| <groupId>39307b88-cf92-400b-8d28-ca855e4bbf3f</groupId> | |
| <id>7915b6c0-ccc2-40b2-a154-c4e54a28bf96</id> | |
| <type>PROCESSOR</type> | |
| </destination> | |
| <flowFileExpiration>0 sec</flowFileExpiration> | |
| <labelIndex>1</labelIndex> | |
| <name/> | |
| <selectedRelationships>failure</selectedRelationships> | |
| <selectedRelationships>unmatched</selectedRelationships> | |
| <source> | |
| <groupId>39307b88-cf92-400b-8d28-ca855e4bbf3f</groupId> | |
| <id>c293aa03-a839-448a-8ca6-e491ff684f44</id> | |
| <type>PROCESSOR</type> | |
| </source> | |
| <zIndex>0</zIndex> | |
| </connections> | |
| <connections> | |
| <id>9ac2975f-4d4b-4770-8c62-5b940750e9fa</id> | |
| <parentGroupId>39307b88-cf92-400b-8d28-ca855e4bbf3f</parentGroupId> | |
| <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold> | |
| <backPressureObjectThreshold>0</backPressureObjectThreshold> | |
| <destination> | |
| <groupId>39307b88-cf92-400b-8d28-ca855e4bbf3f</groupId> | |
| <id>c293aa03-a839-448a-8ca6-e491ff684f44</id> | |
| <type>PROCESSOR</type> | |
| </destination> | |
| <flowFileExpiration>0 sec</flowFileExpiration> | |
| <labelIndex>1</labelIndex> | |
| <name/> | |
| <selectedRelationships>success</selectedRelationships> | |
| <source> | |
| <groupId>39307b88-cf92-400b-8d28-ca855e4bbf3f</groupId> | |
| <id>aa8eec14-63d5-4afd-9aab-50f6dabaabb2</id> | |
| <type>PROCESSOR</type> | |
| </source> | |
| <zIndex>0</zIndex> | |
| </connections> | |
| <connections> | |
| <id>f8e828f7-f006-48cc-9735-d1d8881e3619</id> | |
| <parentGroupId>39307b88-cf92-400b-8d28-ca855e4bbf3f</parentGroupId> | |
| <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold> | |
| <backPressureObjectThreshold>0</backPressureObjectThreshold> | |
| <destination> | |
| <groupId>39307b88-cf92-400b-8d28-ca855e4bbf3f</groupId> | |
| <id>7915b6c0-ccc2-40b2-a154-c4e54a28bf96</id> | |
| <type>PROCESSOR</type> | |
| </destination> | |
| <flowFileExpiration>0 sec</flowFileExpiration> | |
| <labelIndex>1</labelIndex> | |
| <name/> | |
| <selectedRelationships>matched</selectedRelationships> | |
| <selectedRelationships>unmatched</selectedRelationships> | |
| <source> | |
| <groupId>39307b88-cf92-400b-8d28-ca855e4bbf3f</groupId> | |
| <id>ec8bcaec-28b2-4923-85cd-dfbd2e28019c</id> | |
| <type>PROCESSOR</type> | |
| </source> | |
| <zIndex>0</zIndex> | |
| </connections> | |
| <connections> | |
| <id>07d3511a-37fb-4518-b900-364a76e670fd</id> | |
| <parentGroupId>39307b88-cf92-400b-8d28-ca855e4bbf3f</parentGroupId> | |
| <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold> | |
| <backPressureObjectThreshold>0</backPressureObjectThreshold> | |
| <destination> | |
| <groupId>39307b88-cf92-400b-8d28-ca855e4bbf3f</groupId> | |
| <id>5fded9d5-098e-4bb8-bd0e-03de394bca09</id> | |
| <type>PROCESSOR</type> | |
| </destination> | |
| <flowFileExpiration>0 sec</flowFileExpiration> | |
| <labelIndex>1</labelIndex> | |
| <name/> | |
| <selectedRelationships>split</selectedRelationships> | |
| <source> | |
| <groupId>39307b88-cf92-400b-8d28-ca855e4bbf3f</groupId> | |
| <id>81ce52f7-618b-4802-aab2-424bec82c1c9</id> | |
| <type>PROCESSOR</type> | |
| </source> | |
| <zIndex>0</zIndex> | |
| </connections> | |
| <processors> | |
| <id>aa8eec14-63d5-4afd-9aab-50f6dabaabb2</id> | |
| <parentGroupId>39307b88-cf92-400b-8d28-ca855e4bbf3f</parentGroupId> | |
| <position> | |
| <x>-65.0</x> | |
| <y>-44.0</y> | |
| </position> | |
| <config> | |
| <bulletinLevel>WARN</bulletinLevel> | |
| <comments/> | |
| <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount> | |
| <defaultConcurrentTasks> | |
| <entry> | |
| <key>TIMER_DRIVEN</key> | |
| <value>1</value> | |
| </entry> | |
| <entry> | |
| <key>EVENT_DRIVEN</key> | |
| <value>0</value> | |
| </entry> | |
| <entry> | |
| <key>CRON_DRIVEN</key> | |
| <value>1</value> | |
| </entry> | |
| </defaultConcurrentTasks> | |
| <defaultSchedulingPeriod> | |
| <entry> | |
| <key>TIMER_DRIVEN</key> | |
| <value>0 sec</value> | |
| </entry> | |
| <entry> | |
| <key>CRON_DRIVEN</key> | |
| <value>* * * * * ?</value> | |
| </entry> | |
| </defaultSchedulingPeriod> | |
| <descriptors> | |
| <entry> | |
| <key>URL</key> | |
| <value> | |
| <description>The URL to pull from</description> | |
| <displayName>URL</displayName> | |
| <dynamic>false</dynamic> | |
| <name>URL</name> | |
| <required>true</required> | |
| <sensitive>false</sensitive> | |
| <supportsEl>true</supportsEl> | |
| </value> | |
| </entry> | |
| <entry> | |
| <key>Filename</key> | |
| <value> | |
| <description>The filename to assign to the file when pulled</description> | |
| <displayName>Filename</displayName> | |
| <dynamic>false</dynamic> | |
| <name>Filename</name> | |
| <required>true</required> | |
| <sensitive>false</sensitive> | |
| <supportsEl>true</supportsEl> | |
| </value> | |
| </entry> | |
| <entry> | |
| <key>SSL Context Service</key> | |
| <value> | |
| <description>The Controller Service to use in order to obtain an SSL Context</description> | |
| <displayName>SSL Context Service</displayName> | |
| <dynamic>false</dynamic> | |
| <identifiesControllerService>org.apache.nifi.ssl.SSLContextService</identifiesControllerService> | |
| <name>SSL Context Service</name> | |
| <required>false</required> | |
| <sensitive>false</sensitive> | |
| <supportsEl>false</supportsEl> | |
| </value> | |
| </entry> | |
| <entry> | |
| <key>Username</key> | |
| <value> | |
| <description>Username required to access the URL</description> | |
| <displayName>Username</displayName> | |
| <dynamic>false</dynamic> | |
| <name>Username</name> | |
| <required>false</required> | |
| <sensitive>false</sensitive> | |
| <supportsEl>false</supportsEl> | |
| </value> | |
| </entry> | |
| <entry> | |
| <key>Password</key> | |
| <value> | |
| <description>Password required to access the URL</description> | |
| <displayName>Password</displayName> | |
| <dynamic>false</dynamic> | |
| <name>Password</name> | |
| <required>false</required> | |
| <sensitive>true</sensitive> | |
| <supportsEl>false</supportsEl> | |
| </value> | |
| </entry> | |
| <entry> | |
| <key>Connection Timeout</key> | |
| <value> | |
| <defaultValue>30 sec</defaultValue> | |
| <description>How long to wait when attempting to connect to the remote server before giving up</description> | |
| <displayName>Connection Timeout</displayName> | |
| <dynamic>false</dynamic> | |
| <name>Connection Timeout</name> | |
| <required>true</required> | |
| <sensitive>false</sensitive> | |
| <supportsEl>false</supportsEl> | |
| </value> | |
| </entry> | |
| <entry> | |
| <key>Data Timeout</key> | |
| <value> | |
| <defaultValue>30 sec</defaultValue> | |
| <description>How long to wait between receiving segments of data from the remote server before giving up and discarding the partial file</description> | |
| <displayName>Data Timeout</displayName> | |
| <dynamic>false</dynamic> | |
| <name>Data Timeout</name> | |
| <required>true</required> | |
| <sensitive>false</sensitive> | |
| <supportsEl>false</supportsEl> | |
| </value> | |
| </entry> | |
| <entry> | |
| <key>User Agent</key> | |
| <value> | |
| <description>What to report as the User Agent when we connect to the remote server</description> | |
| <displayName>User Agent</displayName> | |
| <dynamic>false</dynamic> | |
| <name>User Agent</name> | |
| <required>false</required> | |
| <sensitive>false</sensitive> | |
| <supportsEl>false</supportsEl> | |
| </value> | |
| </entry> | |
| <entry> | |
| <key>Accept Content-Type</key> | |
| <value> | |
| <description>If specified, requests will only accept the provided Content-Type</description> | |
| <displayName>Accept Content-Type</displayName> | |
| <dynamic>false</dynamic> | |
| <name>Accept Content-Type</name> | |
| <required>false</required> | |
| <sensitive>false</sensitive> | |
| <supportsEl>false</supportsEl> | |
| </value> | |
| </entry> | |
| <entry> | |
| <key>Follow Redirects</key> | |
| <value> | |
| <allowableValues> | |
| <displayName>true</displayName> | |
| <value>true</value> | |
| </allowableValues> | |
| <allowableValues> | |
| <displayName>false</displayName> | |
| <value>false</value> | |
| </allowableValues> | |
| <defaultValue>false</defaultValue> | |
| <description>If we receive a 3xx HTTP Status Code from the server, indicates whether or not we should follow the redirect that the server specifies</description> | |
| <displayName>Follow Redirects</displayName> | |
| <dynamic>false</dynamic> | |
| <name>Follow Redirects</name> | |
| <required>false</required> | |
| <sensitive>false</sensitive> | |
| <supportsEl>false</supportsEl> | |
| </value> | |
| </entry> | |
| <entry> | |
| <key>Proxy Host</key> | |
| <value> | |
| <description>The fully qualified hostname or IP address of the proxy server</description> | |
| <displayName>Proxy Host</displayName> | |
| <dynamic>false</dynamic> | |
| <name>Proxy Host</name> | |
| <required>false</required> | |
| <sensitive>false</sensitive> | |
| <supportsEl>false</supportsEl> | |
| </value> | |
| </entry> | |
| <entry> | |
| <key>Proxy Port</key> | |
| <value> | |
| <description>The port of the proxy server</description> | |
| <displayName>Proxy Port</displayName> | |
| <dynamic>false</dynamic> | |
| <name>Proxy Port</name> | |
| <required>false</required> | |
| <sensitive>false</sensitive> | |
| <supportsEl>false</supportsEl> | |
| </value> | |
| </entry> | |
| </descriptors> | |
| <lossTolerant>false</lossTolerant> | |
| <penaltyDuration>30 sec</penaltyDuration> | |
| <properties> | |
| <entry> | |
| <key>URL</key> | |
| <value>http://dpla.library.in.gov/OAIHandler?verb=ListRecords&metadataPrefix=oai_qdc_imdpla</value> | |
| </entry> | |
| <entry> | |
| <key>Filename</key> | |
| <value>oaiResponse</value> | |
| </entry> | |
| <entry> | |
| <key>SSL Context Service</key> | |
| </entry> | |
| <entry> | |
| <key>Username</key> | |
| </entry> | |
| <entry> | |
| <key>Password</key> | |
| </entry> | |
| <entry> | |
| <key>Connection Timeout</key> | |
| </entry> | |
| <entry> | |
| <key>Data Timeout</key> | |
| </entry> | |
| <entry> | |
| <key>User Agent</key> | |
| </entry> | |
| <entry> | |
| <key>Accept Content-Type</key> | |
| </entry> | |
| <entry> | |
| <key>Follow Redirects</key> | |
| </entry> | |
| <entry> | |
| <key>Proxy Host</key> | |
| </entry> | |
| <entry> | |
| <key>Proxy Port</key> | |
| </entry> | |
| </properties> | |
| <runDurationMillis>0</runDurationMillis> | |
| <schedulingPeriod>10 sec</schedulingPeriod> | |
| <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy> | |
| <yieldDuration>1 sec</yieldDuration> | |
| </config> | |
| <name>GetHTTP</name> | |
| <relationships> | |
| <autoTerminate>false</autoTerminate> | |
| <description>All files are transferred to the success relationship</description> | |
| <name>success</name> | |
| </relationships> | |
| <state>STOPPED</state> | |
| <style/> | |
| <supportsEventDriven>false</supportsEventDriven> | |
| <supportsParallelProcessing>true</supportsParallelProcessing> | |
| <type>org.apache.nifi.processors.standard.GetHTTP</type> | |
| </processors> | |
| <processors> | |
| <id>7915b6c0-ccc2-40b2-a154-c4e54a28bf96</id> | |
| <parentGroupId>39307b88-cf92-400b-8d28-ca855e4bbf3f</parentGroupId> | |
| <position> | |
| <x>559.1438598632812</x> | |
| <y>536.7674407958984</y> | |
| </position> | |
| <config> | |
| <bulletinLevel>WARN</bulletinLevel> | |
| <comments/> | |
| <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount> | |
| <defaultConcurrentTasks> | |
| <entry> | |
| <key>TIMER_DRIVEN</key> | |
| <value>1</value> | |
| </entry> | |
| <entry> | |
| <key>EVENT_DRIVEN</key> | |
| <value>0</value> | |
| </entry> | |
| <entry> | |
| <key>CRON_DRIVEN</key> | |
| <value>1</value> | |
| </entry> | |
| </defaultConcurrentTasks> | |
| <defaultSchedulingPeriod> | |
| <entry> | |
| <key>TIMER_DRIVEN</key> | |
| <value>0 sec</value> | |
| </entry> | |
| <entry> | |
| <key>CRON_DRIVEN</key> | |
| <value>* * * * * ?</value> | |
| </entry> | |
| </defaultSchedulingPeriod> | |
| <descriptors> | |
| <entry> | |
| <key>Directory</key> | |
| <value> | |
| <description>The directory to which files should be written. You may use expression language such as /aa/bb/${path}</description> | |
| <displayName>Directory</displayName> | |
| <dynamic>false</dynamic> | |
| <name>Directory</name> | |
| <required>true</required> | |
| <sensitive>false</sensitive> | |
| <supportsEl>true</supportsEl> | |
| </value> | |
| </entry> | |
| <entry> | |
| <key>Conflict Resolution Strategy</key> | |
| <value> | |
| <allowableValues> | |
| <displayName>replace</displayName> | |
| <value>replace</value> | |
| </allowableValues> | |
| <allowableValues> | |
| <displayName>ignore</displayName> | |
| <value>ignore</value> | |
| </allowableValues> | |
| <allowableValues> | |
| <displayName>fail</displayName> | |
| <value>fail</value> | |
| </allowableValues> | |
| <defaultValue>fail</defaultValue> | |
| <description>Indicates what should happen when a file with the same name already exists in the output directory</description> | |
| <displayName>Conflict Resolution Strategy</displayName> | |
| <dynamic>false</dynamic> | |
| <name>Conflict Resolution Strategy</name> | |
| <required>true</required> | |
| <sensitive>false</sensitive> | |
| <supportsEl>false</supportsEl> | |
| </value> | |
| </entry> | |
| <entry> | |
| <key>Create Missing Directories</key> | |
| <value> | |
| <allowableValues> | |
| <displayName>true</displayName> | |
| <value>true</value> | |
| </allowableValues> | |
| <allowableValues> | |
| <displayName>false</displayName> | |
| <value>false</value> | |
| </allowableValues> | |
| <defaultValue>true</defaultValue> | |
| <description>If true, then missing destination directories will be created. If false, flowfiles are penalized and sent to failure.</description> | |
| <displayName>Create Missing Directories</displayName> | |
| <dynamic>false</dynamic> | |
| <name>Create Missing Directories</name> | |
| <required>true</required> | |
| <sensitive>false</sensitive> | |
| <supportsEl>false</supportsEl> | |
| </value> | |
| </entry> | |
| <entry> | |
| <key>Maximum File Count</key> | |
| <value> | |
| <description>Specifies the maximum number of files that can exist in the output directory</description> | |
| <displayName>Maximum File Count</displayName> | |
| <dynamic>false</dynamic> | |
| <name>Maximum File Count</name> | |
| <required>false</required> | |
| <sensitive>false</sensitive> | |
| <supportsEl>false</supportsEl> | |
| </value> | |
| </entry> | |
| <entry> | |
| <key>Last Modified Time</key> | |
| <value> | |
| <description>Sets the lastModifiedTime on the output file to the value of this attribute. Format must be yyyy-MM-dd'T'HH:mm:ssZ. You may also use expression language such as ${file.lastModifiedTime}.</description> | |
| <displayName>Last Modified Time</displayName> | |
| <dynamic>false</dynamic> | |
| <name>Last Modified Time</name> | |
| <required>false</required> | |
| <sensitive>false</sensitive> | |
| <supportsEl>true</supportsEl> | |
| </value> | |
| </entry> | |
| <entry> | |
| <key>Permissions</key> | |
| <value> | |
| <description>Sets the permissions on the output file to the value of this attribute. Format must be either UNIX rwxrwxrwx with a - in place of denied permissions (e.g. rw-r--r--) or an octal number (e.g. 644). You may also use expression language such as ${file.permissions}.</description> | |
| <displayName>Permissions</displayName> | |
| <dynamic>false</dynamic> | |
| <name>Permissions</name> | |
| <required>false</required> | |
| <sensitive>false</sensitive> | |
| <supportsEl>true</supportsEl> | |
| </value> | |
| </entry> | |
| <entry> | |
| <key>Owner</key> | |
| <value> | |
| <description>Sets the owner on the output file to the value of this attribute. You may also use expression language such as ${file.owner}.</description> | |
| <displayName>Owner</displayName> | |
| <dynamic>false</dynamic> | |
| <name>Owner</name> | |
| <required>false</required> | |
| <sensitive>false</sensitive> | |
| <supportsEl>true</supportsEl> | |
| </value> | |
| </entry> | |
| <entry> | |
| <key>Group</key> | |
| <value> | |
| <description>Sets the group on the output file to the value of this attribute. You may also use expression language such as ${file.group}.</description> | |
| <displayName>Group</displayName> | |
| <dynamic>false</dynamic> | |
| <name>Group</name> | |
| <required>false</required> | |
| <sensitive>false</sensitive> | |
| <supportsEl>true</supportsEl> | |
| </value> | |
| </entry> | |
| </descriptors> | |
| <lossTolerant>false</lossTolerant> | |
| <penaltyDuration>30 sec</penaltyDuration> | |
| <properties> | |
| <entry> | |
| <key>Directory</key> | |
| <value>/tmp/foo</value> | |
| </entry> | |
| <entry> | |
| <key>Conflict Resolution Strategy</key> | |
| </entry> | |
| <entry> | |
| <key>Create Missing Directories</key> | |
| </entry> | |
| <entry> | |
| <key>Maximum File Count</key> | |
| </entry> | |
| <entry> | |
| <key>Last Modified Time</key> | |
| </entry> | |
| <entry> | |
| <key>Permissions</key> | |
| </entry> | |
| <entry> | |
| <key>Owner</key> | |
| </entry> | |
| <entry> | |
| <key>Group</key> | |
| </entry> | |
| </properties> | |
| <runDurationMillis>0</runDurationMillis> | |
| <schedulingPeriod>0 sec</schedulingPeriod> | |
| <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy> | |
| <yieldDuration>1 sec</yieldDuration> | |
| </config> | |
| <name>PutFile</name> | |
| <relationships> | |
| <autoTerminate>true</autoTerminate> | |
| <description>Files that could not be written to the output directory for some reason are transferred to this relationship</description> | |
| <name>failure</name> | |
| </relationships> | |
| <relationships> | |
| <autoTerminate>true</autoTerminate> | |
| <description>Files that have been successfully written to the output directory are transferred to this relationship</description> | |
| <name>success</name> | |
| </relationships> | |
| <state>STOPPED</state> | |
| <style/> | |
| <supportsEventDriven>false</supportsEventDriven> | |
| <supportsParallelProcessing>true</supportsParallelProcessing> | |
| <type>org.apache.nifi.processors.standard.PutFile</type> | |
| </processors> | |
| <processors> | |
| <id>ec8bcaec-28b2-4923-85cd-dfbd2e28019c</id> | |
| <parentGroupId>39307b88-cf92-400b-8d28-ca855e4bbf3f</parentGroupId> | |
| <position> | |
| <x>-427.85787509913155</x> | |
| <y>466.11830366665095</y> | |
| </position> | |
| <config> | |
| <bulletinLevel>WARN</bulletinLevel> | |
| <comments/> | |
| <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount> | |
| <defaultConcurrentTasks> | |
| <entry> | |
| <key>TIMER_DRIVEN</key> | |
| <value>1</value> | |
| </entry> | |
| <entry> | |
| <key>EVENT_DRIVEN</key> | |
| <value>0</value> | |
| </entry> | |
| <entry> | |
| <key>CRON_DRIVEN</key> | |
| <value>1</value> | |
| </entry> | |
| </defaultConcurrentTasks> | |
| <defaultSchedulingPeriod> | |
| <entry> | |
| <key>TIMER_DRIVEN</key> | |
| <value>0 sec</value> | |
| </entry> | |
| <entry> | |
| <key>CRON_DRIVEN</key> | |
| <value>* * * * * ?</value> | |
| </entry> | |
| </defaultSchedulingPeriod> | |
| <descriptors> | |
| <entry> | |
| <key>Destination</key> | |
| <value> | |
| <allowableValues> | |
| <displayName>flowfile-content</displayName> | |
| <value>flowfile-content</value> | |
| </allowableValues> | |
| <allowableValues> | |
| <displayName>flowfile-attribute</displayName> | |
| <value>flowfile-attribute</value> | |
| </allowableValues> | |
| <defaultValue>flowfile-content</defaultValue> | |
| <description>Indicates whether the results of the XPath evaluation are written to the FlowFile content or a FlowFile attribute; if using attribute, must specify the Attribute Name property. If set to flowfile-content, only one XPath may be specified, and the property name is ignored.</description> | |
| <displayName>Destination</displayName> | |
| <dynamic>false</dynamic> | |
| <name>Destination</name> | |
| <required>true</required> | |
| <sensitive>false</sensitive> | |
| <supportsEl>false</supportsEl> | |
| </value> | |
| </entry> | |
| <entry> | |
| <key>Return Type</key> | |
| <value> | |
| <allowableValues> | |
| <displayName>auto-detect</displayName> | |
| <value>auto-detect</value> | |
| </allowableValues> | |
| <allowableValues> | |
| <displayName>nodeset</displayName> | |
| <value>nodeset</value> | |
| </allowableValues> | |
| <allowableValues> | |
| <displayName>string</displayName> | |
| <value>string</value> | |
| </allowableValues> | |
| <defaultValue>auto-detect</defaultValue> | |
| <description>Indicates the desired return type of the Xpath expressions. Selecting 'auto-detect' will set the return type to 'nodeset' for a Destination of 'flowfile-content', and 'string' for a Destination of 'flowfile-attribute'.</description> | |
| <displayName>Return Type</displayName> | |
| <dynamic>false</dynamic> | |
| <name>Return Type</name> | |
| <required>true</required> | |
| <sensitive>false</sensitive> | |
| <supportsEl>false</supportsEl> | |
| </value> | |
| </entry> | |
| <entry> | |
| <key>header</key> | |
| <value> | |
| <description/> | |
| <displayName>header</displayName> | |
| <dynamic>true</dynamic> | |
| <name>header</name> | |
| <required>false</required> | |
| <sensitive>false</sensitive> | |
| <supportsEl>false</supportsEl> | |
| </value> | |
| </entry> | |
| <entry> | |
| <key>id</key> | |
| <value> | |
| <description/> | |
| <displayName>id</displayName> | |
| <dynamic>true</dynamic> | |
| <name>id</name> | |
| <required>false</required> | |
| <sensitive>false</sensitive> | |
| <supportsEl>false</supportsEl> | |
| </value> | |
| </entry> | |
| <entry> | |
| <key>metadata</key> | |
| <value> | |
| <description/> | |
| <displayName>metadata</displayName> | |
| <dynamic>true</dynamic> | |
| <name>metadata</name> | |
| <required>false</required> | |
| <sensitive>false</sensitive> | |
| <supportsEl>false</supportsEl> | |
| </value> | |
| </entry> | |
| <entry> | |
| <key>slashmetadata</key> | |
| <value> | |
| <description/> | |
| <displayName>slashmetadata</displayName> | |
| <dynamic>true</dynamic> | |
| <name>slashmetadata</name> | |
| <required>false</required> | |
| <sensitive>false</sensitive> | |
| <supportsEl>false</supportsEl> | |
| </value> | |
| </entry> | |
| </descriptors> | |
| <lossTolerant>false</lossTolerant> | |
| <penaltyDuration>30 sec</penaltyDuration> | |
| <properties> | |
| <entry> | |
| <key>Destination</key> | |
| <value>flowfile-attribute</value> | |
| </entry> | |
| <entry> | |
| <key>Return Type</key> | |
| <value>auto-detect</value> | |
| </entry> | |
| <entry> | |
| <key>header</key> | |
| <value>record/header</value> | |
| </entry> | |
| <entry> | |
| <key>id</key> | |
| <value>/record/header/identifier</value> | |
| </entry> | |
| <entry> | |
| <key>metadata</key> | |
| <value>record/metadata</value> | |
| </entry> | |
| <entry> | |
| <key>slashmetadata</key> | |
| <value>/record/metadata</value> | |
| </entry> | |
| </properties> | |
| <runDurationMillis>0</runDurationMillis> | |
| <schedulingPeriod>0 sec</schedulingPeriod> | |
| <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy> | |
| <yieldDuration>1 sec</yieldDuration> | |
| </config> | |
| <name>EvaluateXPath</name> | |
| <relationships> | |
| <autoTerminate>true</autoTerminate> | |
| <description>FlowFiles are routed to this relationship when the XPath cannot be evaluated against the content of the FlowFile; for instance, if the FlowFile is not valid XML, or if the Return Type is 'nodeset' and the XPath evaluates to multiple nodes</description> | |
| <name>failure</name> | |
| </relationships> | |
| <relationships> | |
| <autoTerminate>false</autoTerminate> | |
| <description>FlowFiles are routed to this relationship when the XPath is successfully evaluated and the FlowFile is modified as a result</description> | |
| <name>matched</name> | |
| </relationships> | |
| <relationships> | |
| <autoTerminate>false</autoTerminate> | |
| <description>FlowFiles are routed to this relationship when the XPath does not match the content of the FlowFile and the Destination is set to flowfile-content</description> | |
| <name>unmatched</name> | |
| </relationships> | |
| <state>STOPPED</state> | |
| <style/> | |
| <supportsEventDriven>true</supportsEventDriven> | |
| <supportsParallelProcessing>true</supportsParallelProcessing> | |
| <type>org.apache.nifi.processors.standard.EvaluateXPath</type> | |
| </processors> | |
| <processors> | |
| <id>c293aa03-a839-448a-8ca6-e491ff684f44</id> | |
| <parentGroupId>39307b88-cf92-400b-8d28-ca855e4bbf3f</parentGroupId> | |
| <position> | |
| <x>552.2781982421875</x> | |
| <y>-48.651856422424316</y> | |
| </position> | |
| <config> | |
| <bulletinLevel>WARN</bulletinLevel> | |
| <comments/> | |
| <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount> | |
| <defaultConcurrentTasks> | |
| <entry> | |
| <key>TIMER_DRIVEN</key> | |
| <value>1</value> | |
| </entry> | |
| <entry> | |
| <key>EVENT_DRIVEN</key> | |
| <value>0</value> | |
| </entry> | |
| <entry> | |
| <key>CRON_DRIVEN</key> | |
| <value>1</value> | |
| </entry> | |
| </defaultConcurrentTasks> | |
| <defaultSchedulingPeriod> | |
| <entry> | |
| <key>TIMER_DRIVEN</key> | |
| <value>0 sec</value> | |
| </entry> | |
| <entry> | |
| <key>CRON_DRIVEN</key> | |
| <value>* * * * * ?</value> | |
| </entry> | |
| </defaultSchedulingPeriod> | |
| <descriptors> | |
| <entry> | |
| <key>Destination</key> | |
| <value> | |
| <allowableValues> | |
| <displayName>flowfile-content</displayName> | |
| <value>flowfile-content</value> | |
| </allowableValues> | |
| <allowableValues> | |
| <displayName>flowfile-attribute</displayName> | |
| <value>flowfile-attribute</value> | |
| </allowableValues> | |
| <defaultValue>flowfile-content</defaultValue> | |
| <description>Indicates whether the results of the XPath evaluation are written to the FlowFile content or a FlowFile attribute; if using attribute, must specify the Attribute Name property. If set to flowfile-content, only one XPath may be specified, and the property name is ignored.</description> | |
| <displayName>Destination</displayName> | |
| <dynamic>false</dynamic> | |
| <name>Destination</name> | |
| <required>true</required> | |
| <sensitive>false</sensitive> | |
| <supportsEl>false</supportsEl> | |
| </value> | |
| </entry> | |
| <entry> | |
| <key>Return Type</key> | |
| <value> | |
| <allowableValues> | |
| <displayName>auto-detect</displayName> | |
| <value>auto-detect</value> | |
| </allowableValues> | |
| <allowableValues> | |
| <displayName>nodeset</displayName> | |
| <value>nodeset</value> | |
| </allowableValues> | |
| <allowableValues> | |
| <displayName>string</displayName> | |
| <value>string</value> | |
| </allowableValues> | |
| <defaultValue>auto-detect</defaultValue> | |
| <description>Indicates the desired return type of the Xpath expressions. Selecting 'auto-detect' will set the return type to 'nodeset' for a Destination of 'flowfile-content', and 'string' for a Destination of 'flowfile-attribute'.</description> | |
| <displayName>Return Type</displayName> | |
| <dynamic>false</dynamic> | |
| <name>Return Type</name> | |
| <required>true</required> | |
| <sensitive>false</sensitive> | |
| <supportsEl>false</supportsEl> | |
| </value> | |
| </entry> | |
| <entry> | |
| <key>oaiResponse</key> | |
| <value> | |
| <description/> | |
| <displayName>oaiResponse</displayName> | |
| <dynamic>true</dynamic> | |
| <name>oaiResponse</name> | |
| <required>false</required> | |
| <sensitive>false</sensitive> | |
| <supportsEl>false</supportsEl> | |
| </value> | |
| </entry> | |
| </descriptors> | |
| <lossTolerant>false</lossTolerant> | |
| <penaltyDuration>30 sec</penaltyDuration> | |
| <properties> | |
| <entry> | |
| <key>Destination</key> | |
| <value>flowfile-attribute</value> | |
| </entry> | |
| <entry> | |
| <key>Return Type</key> | |
| <value>auto-detect</value> | |
| </entry> | |
| <entry> | |
| <key>oaiResponse</key> | |
| <value>/OAI-PMH/ListRecords</value> | |
| </entry> | |
| </properties> | |
| <runDurationMillis>0</runDurationMillis> | |
| <schedulingPeriod>0 sec</schedulingPeriod> | |
| <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy> | |
| <yieldDuration>1 sec</yieldDuration> | |
| </config> | |
| <name>EvaluateXPath</name> | |
| <relationships> | |
| <autoTerminate>false</autoTerminate> | |
| <description>FlowFiles are routed to this relationship when the XPath cannot be evaluated against the content of the FlowFile; for instance, if the FlowFile is not valid XML, or if the Return Type is 'nodeset' and the XPath evaluates to multiple nodes</description> | |
| <name>failure</name> | |
| </relationships> | |
| <relationships> | |
| <autoTerminate>false</autoTerminate> | |
| <description>FlowFiles are routed to this relationship when the XPath is successfully evaluated and the FlowFile is modified as a result</description> | |
| <name>matched</name> | |
| </relationships> | |
| <relationships> | |
| <autoTerminate>false</autoTerminate> | |
| <description>FlowFiles are routed to this relationship when the XPath does not match the content of the FlowFile and the Destination is set to flowfile-content</description> | |
| <name>unmatched</name> | |
| </relationships> | |
| <state>STOPPED</state> | |
| <style/> | |
| <supportsEventDriven>true</supportsEventDriven> | |
| <supportsParallelProcessing>true</supportsParallelProcessing> | |
| <type>org.apache.nifi.processors.standard.EvaluateXPath</type> | |
| </processors> | |
| <processors> | |
| <id>5fded9d5-098e-4bb8-bd0e-03de394bca09</id> | |
| <parentGroupId>39307b88-cf92-400b-8d28-ca855e4bbf3f</parentGroupId> | |
| <position> | |
| <x>-422.0982723419329</x> | |
| <y>185.39533544409733</y> | |
| </position> | |
| <config> | |
| <bulletinLevel>WARN</bulletinLevel> | |
| <comments/> | |
| <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount> | |
| <defaultConcurrentTasks> | |
| <entry> | |
| <key>TIMER_DRIVEN</key> | |
| <value>1</value> | |
| </entry> | |
| <entry> | |
| <key>EVENT_DRIVEN</key> | |
| <value>0</value> | |
| </entry> | |
| <entry> | |
| <key>CRON_DRIVEN</key> | |
| <value>1</value> | |
| </entry> | |
| </defaultConcurrentTasks> | |
| <defaultSchedulingPeriod> | |
| <entry> | |
| <key>TIMER_DRIVEN</key> | |
| <value>0 sec</value> | |
| </entry> | |
| <entry> | |
| <key>CRON_DRIVEN</key> | |
| <value>* * * * * ?</value> | |
| </entry> | |
| </defaultSchedulingPeriod> | |
| <descriptors> | |
| <entry> | |
| <key>Delete Attributes Expression</key> | |
| <value> | |
| <description>Regular expression for attributes to be deleted from flowfiles.</description> | |
| <displayName>Delete Attributes Expression</displayName> | |
| <dynamic>false</dynamic> | |
| <name>Delete Attributes Expression</name> | |
| <required>false</required> | |
| <sensitive>false</sensitive> | |
| <supportsEl>true</supportsEl> | |
| </value> | |
| </entry> | |
| <entry> | |
| <key>body</key> | |
| <value> | |
| <description/> | |
| <displayName>body</displayName> | |
| <dynamic>true</dynamic> | |
| <name>body</name> | |
| <required>false</required> | |
| <sensitive>false</sensitive> | |
| <supportsEl>true</supportsEl> | |
| </value> | |
| </entry> | |
| <entry> | |
| <key>filename</key> | |
| <value> | |
| <description/> | |
| <displayName>filename</displayName> | |
| <dynamic>true</dynamic> | |
| <name>filename</name> | |
| <required>false</required> | |
| <sensitive>false</sensitive> | |
| <supportsEl>true</supportsEl> | |
| </value> | |
| </entry> | |
| </descriptors> | |
| <lossTolerant>false</lossTolerant> | |
| <penaltyDuration>30 sec</penaltyDuration> | |
| <properties> | |
| <entry> | |
| <key>Delete Attributes Expression</key> | |
| </entry> | |
| <entry> | |
| <key>body</key> | |
| <value>${content}</value> | |
| </entry> | |
| <entry> | |
| <key>filename</key> | |
| <value>${uuid}</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> | |
| <description>All FlowFiles are routed to this relationship</description> | |
| <name>success</name> | |
| </relationships> | |
| <state>STOPPED</state> | |
| <style/> | |
| <supportsEventDriven>true</supportsEventDriven> | |
| <supportsParallelProcessing>true</supportsParallelProcessing> | |
| <type>org.apache.nifi.processors.attributes.UpdateAttribute</type> | |
| </processors> | |
| <processors> | |
| <id>81ce52f7-618b-4802-aab2-424bec82c1c9</id> | |
| <parentGroupId>39307b88-cf92-400b-8d28-ca855e4bbf3f</parentGroupId> | |
| <position> | |
| <x>217.5176760876189</x> | |
| <y>189.20572875263292</y> | |
| </position> | |
| <config> | |
| <bulletinLevel>WARN</bulletinLevel> | |
| <comments/> | |
| <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount> | |
| <defaultConcurrentTasks> | |
| <entry> | |
| <key>TIMER_DRIVEN</key> | |
| <value>1</value> | |
| </entry> | |
| <entry> | |
| <key>EVENT_DRIVEN</key> | |
| <value>0</value> | |
| </entry> | |
| <entry> | |
| <key>CRON_DRIVEN</key> | |
| <value>1</value> | |
| </entry> | |
| </defaultConcurrentTasks> | |
| <defaultSchedulingPeriod> | |
| <entry> | |
| <key>TIMER_DRIVEN</key> | |
| <value>0 sec</value> | |
| </entry> | |
| <entry> | |
| <key>CRON_DRIVEN</key> | |
| <value>* * * * * ?</value> | |
| </entry> | |
| </defaultSchedulingPeriod> | |
| <descriptors> | |
| <entry> | |
| <key>Split Depth</key> | |
| <value> | |
| <defaultValue>1</defaultValue> | |
| <description>Indicates the XML-nesting depth to start splitting XML fragments. A depth of 1 means split the root's children, whereas a depth of 2 means split the root's children's children and so forth.</description> | |
| <displayName>Split Depth</displayName> | |
| <dynamic>false</dynamic> | |
| <name>Split Depth</name> | |
| <required>true</required> | |
| <sensitive>false</sensitive> | |
| <supportsEl>false</supportsEl> | |
| </value> | |
| </entry> | |
| </descriptors> | |
| <lossTolerant>false</lossTolerant> | |
| <penaltyDuration>30 sec</penaltyDuration> | |
| <properties> | |
| <entry> | |
| <key>Split Depth</key> | |
| <value>2</value> | |
| </entry> | |
| </properties> | |
| <runDurationMillis>0</runDurationMillis> | |
| <schedulingPeriod>0 sec</schedulingPeriod> | |
| <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy> | |
| <yieldDuration>1 sec</yieldDuration> | |
| </config> | |
| <name>SplitXml</name> | |
| <relationships> | |
| <autoTerminate>true</autoTerminate> | |
| <description>If a FlowFile fails processing for any reason (for example, the FlowFile is not valid XML), it will be routed to this relationship</description> | |
| <name>failure</name> | |
| </relationships> | |
| <relationships> | |
| <autoTerminate>true</autoTerminate> | |
| <description>The original FlowFile that was split into segments. If the FlowFile fails processing, nothing will be sent to this relationship</description> | |
| <name>original</name> | |
| </relationships> | |
| <relationships> | |
| <autoTerminate>false</autoTerminate> | |
| <description>All segments of the original FlowFile will be routed to this relationship</description> | |
| <name>split</name> | |
| </relationships> | |
| <state>STOPPED</state> | |
| <style/> | |
| <supportsEventDriven>true</supportsEventDriven> | |
| <supportsParallelProcessing>true</supportsParallelProcessing> | |
| <type>org.apache.nifi.processors.standard.SplitXml</type> | |
| </processors> | |
| </snippet> | |
| <timestamp>04/28/2016 17:38:19 EDT</timestamp> | |
| </template> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment