You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by al...@apache.org on 2018/07/17 01:35:44 UTC

svn commit: r1836075 [35/39] - in /nifi/site/trunk/docs/nifi-docs: ./ components/org.apache.nifi/nifi-ambari-nar/1.7.1/ components/org.apache.nifi/nifi-ambari-nar/1.7.1/org.apache.nifi.reporting.ambari.AmbariReportingTask/ components/org.apache.nifi/ni...

Added: nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.RouteText/index.html
URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.RouteText/index.html?rev=1836075&view=auto
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.RouteText/index.html (added)
+++ nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.RouteText/index.html Tue Jul 17 01:35:38 2018
@@ -0,0 +1 @@
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"></meta><title>RouteText</title><link rel="stylesheet" href="../../../../../css/component-usage.css" type="text/css"></link></head><script type="text/javascript">window.onload = function(){if(self==top) { document.getElementById('nameHeader').style.display = "inherit"; } }</script><body><h1 id="nameHeader" style="display: none;">RouteText</h1><h2>Description: </h2><p>Routes textual data based on a set of user-defined rules. Each line in an incoming FlowFile is compared against the values specified by user-defined Properties. The mechanism by which the text is compared to these user-defined properties is defined by the 'Matching Strategy'. The data is then routed according to these rules, routing each line of the text individually.</p><h3>Tags: </h3><p>attributes, routing, text, regexp, regex, Regular Expression, Expression Language, csv, filter, logs, delimited</p><h3>Properties: </h3><p>In the list below, the names of requir
 ed properties appear in <strong>bold</strong>. Any other properties (not in bold) are considered optional. The table also indicates any default values.</p><table id="properties"><tr><th>Name</th><th>Default Value</th><th>Allowable Values</th><th>Description</th></tr><tr><td id="name"><strong>Routing Strategy</strong></td><td id="default-value">Route to each matching Property Name</td><td id="allowable-values"><ul><li>Route to each matching Property Name <img src="../../../../../html/images/iconInfo.png" alt="Lines will be routed to each relationship whose corresponding expression evaluates to 'true'" title="Lines will be routed to each relationship whose corresponding expression evaluates to 'true'"></img></li><li>Route to 'matched' if line matches all conditions <img src="../../../../../html/images/iconInfo.png" alt="Requires that all user-defined expressions evaluate to 'true' for the line to be considered a match" title="Requires that all user-defined expressions evaluate to 'tru
 e' for the line to be considered a match"></img></li><li>Route to 'matched' if lines matches any condition <img src="../../../../../html/images/iconInfo.png" alt="Requires that at least one user-defined expression evaluate to 'true' for the line to be considered a match" title="Requires that at least one user-defined expression evaluate to 'true' for the line to be considered a match"></img></li></ul></td><td id="description">Specifies how to determine which Relationship(s) to use when evaluating the lines of incoming text against the 'Matching Strategy' and user-defined properties.</td></tr><tr><td id="name"><strong>Matching Strategy</strong></td><td id="default-value"></td><td id="allowable-values"><ul><li>Satisfies Expression <img src="../../../../../html/images/iconInfo.png" alt="Match lines based on whether or not the the text satisfies the given Expression Language expression. I.e., the line will match if the property value, evaluated as an Expression, returns true. The expres
 sion is able to reference FlowFile Attributes, as well as the variables 'line' (which is the text of the line to evaluate) and 'lineNo' (which is the line number being evaluated. This will be 1 for the first line, 2 for the second and so on)." title="Match lines based on whether or not the the text satisfies the given Expression Language expression. I.e., the line will match if the property value, evaluated as an Expression, returns true. The expression is able to reference FlowFile Attributes, as well as the variables 'line' (which is the text of the line to evaluate) and 'lineNo' (which is the line number being evaluated. This will be 1 for the first line, 2 for the second and so on)."></img></li><li>Starts With <img src="../../../../../html/images/iconInfo.png" alt="Match lines based on whether the line starts with the property value" title="Match lines based on whether the line starts with the property value"></img></li><li>Ends With <img src="../../../../../html/images/iconInfo
 .png" alt="Match lines based on whether the line ends with the property value" title="Match lines based on whether the line ends with the property value"></img></li><li>Contains <img src="../../../../../html/images/iconInfo.png" alt="Match lines based on whether the line contains the property value" title="Match lines based on whether the line contains the property value"></img></li><li>Equals <img src="../../../../../html/images/iconInfo.png" alt="Match lines based on whether the line equals the property value" title="Match lines based on whether the line equals the property value"></img></li><li>Matches Regular Expression <img src="../../../../../html/images/iconInfo.png" alt="Match lines based on whether the line exactly matches the Regular Expression that is provided as the Property value" title="Match lines based on whether the line exactly matches the Regular Expression that is provided as the Property value"></img></li><li>Contains Regular Expression <img src="../../../../../
 html/images/iconInfo.png" alt="Match lines based on whether the line contains some text that matches the Regular Expression that is provided as the Property value" title="Match lines based on whether the line contains some text that matches the Regular Expression that is provided as the Property value"></img></li></ul></td><td id="description">Specifies how to evaluate each line of incoming text against the user-defined properties.</td></tr><tr><td id="name"><strong>Character Set</strong></td><td id="default-value">UTF-8</td><td id="allowable-values"></td><td id="description">The Character Set in which the incoming text is encoded</td></tr><tr><td id="name"><strong>Ignore Leading/Trailing Whitespace</strong></td><td id="default-value">true</td><td id="allowable-values"></td><td id="description">Indicates whether or not the whitespace at the beginning and end of the lines should be ignored when evaluating the line.</td></tr><tr><td id="name"><strong>Ignore Case</strong></td><td id="d
 efault-value">false</td><td id="allowable-values"><ul><li>true</li><li>false</li></ul></td><td id="description">If true, capitalization will not be taken into account when comparing values. E.g., matching against 'HELLO' or 'hello' will have the same result. This property is ignored if the 'Matching Strategy' is set to 'Satisfies Expression'.</td></tr><tr><td id="name">Grouping Regular Expression</td><td id="default-value"></td><td id="allowable-values"></td><td id="description">Specifies a Regular Expression to evaluate against each line to determine which Group the line should be placed in. The Regular Expression must have at least one Capturing Group that defines the line's Group. If multiple Capturing Groups exist in the Regular Expression, the values from all Capturing Groups will be concatenated together. Two lines will not be placed into the same FlowFile unless they both have the same value for the Group (or neither line matches the Regular Expression). For example, to group
  together all lines in a CSV File by the first column, we can set this value to "(.*?),.*". Two lines that have the same Group but different Relationships will never be placed into the same FlowFile.</td></tr></table><h3>Dynamic Properties: </h3><p>Dynamic Properties allow the user to specify both the name and value of a property.<table id="dynamic-properties"><tr><th>Name</th><th>Value</th><th>Description</th></tr><tr><td id="name">Relationship Name</td><td id="value">value to match against</td><td>Routes data that matches the value specified in the Dynamic Property Value to the Relationship specified in the Dynamic Property Key.<br/><strong>Supports Expression Language: true (will be evaluated using flow file attributes and variable registry)</strong></td></tr></table></p><h3>Relationships: </h3><table id="relationships"><tr><th>Name</th><th>Description</th></tr><tr><td>original</td><td>The original input file will be routed to this destination when the lines have been successfull
 y routed to 1 or more relationships</td></tr><tr><td>unmatched</td><td>Data that does not satisfy the required user-defined rules will be routed to this Relationship</td></tr></table><h3>Dynamic Relationships: </h3><p>A Dynamic Relationship may be created based on how the user configures the Processor.<table id="dynamic-relationships"><tr><th>Name</th><th>Description</th></tr><tr><td>Name from Dynamic Property</td><td>FlowFiles that match the Dynamic Property's value</td></tr></table></p><h3>Reads Attributes: </h3>None specified.<h3>Writes Attributes: </h3><table id="writes-attributes"><tr><th>Name</th><th>Description</th></tr><tr><td>RouteText.Route</td><td>The name of the relationship to which the FlowFile was routed.</td></tr><tr><td>RouteText.Group</td><td>The value captured by all capturing groups in the 'Grouping Regular Expression' property. If this property is not set or contains no capturing groups, this attribute will not be added.</td></tr></table><h3>State management: </
 h3>This component does not store state.<h3>Restricted: </h3>This component is not restricted.<h3>Input requirement: </h3>This component requires an incoming relationship.<h3>System Resource Considerations:</h3>None specified.</body></html>
\ No newline at end of file

Added: nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.ScanAttribute/index.html
URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.ScanAttribute/index.html?rev=1836075&view=auto
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.ScanAttribute/index.html (added)
+++ nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.ScanAttribute/index.html Tue Jul 17 01:35:38 2018
@@ -0,0 +1 @@
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"></meta><title>ScanAttribute</title><link rel="stylesheet" href="../../../../../css/component-usage.css" type="text/css"></link></head><script type="text/javascript">window.onload = function(){if(self==top) { document.getElementById('nameHeader').style.display = "inherit"; } }</script><body><h1 id="nameHeader" style="display: none;">ScanAttribute</h1><h2>Description: </h2><p>Scans the specified attributes of FlowFiles, checking to see if any of their values are present within the specified dictionary of terms</p><h3>Tags: </h3><p>scan, attributes, search, lookup</p><h3>Properties: </h3><p>In the list below, the names of required properties appear in <strong>bold</strong>. Any other properties (not in bold) are considered optional. The table also indicates any default values, and whether a property supports the <a href="../../../../../html/expression-language-guide.html">NiFi Expression Language</a>.</p><table id="properties">
 <tr><th>Name</th><th>Default Value</th><th>Allowable Values</th><th>Description</th></tr><tr><td id="name"><strong>Dictionary File</strong></td><td id="default-value"></td><td id="allowable-values"></td><td id="description">A new-line-delimited text file that includes the terms that should trigger a match. Empty lines are ignored.  The contents of the text file are loaded into memory when the processor is scheduled and reloaded when the contents are modified.<br/><strong>Supports Expression Language: true (will be evaluated using variable registry only)</strong></td></tr><tr><td id="name"><strong>Attribute Pattern</strong></td><td id="default-value">.*</td><td id="allowable-values"></td><td id="description">Regular Expression that specifies the names of attributes whose values will be matched against the terms in the dictionary</td></tr><tr><td id="name"><strong>Match Criteria</strong></td><td id="default-value">At Least 1 Must Match</td><td id="allowable-values"><ul><li>At Least 1 
 Must Match</li><li>All Must Match</li></ul></td><td id="description">If set to All Must Match, then FlowFiles will be routed to 'matched' only if all specified attributes' values are found in the dictionary. If set to At Least 1 Must Match, FlowFiles will be routed to 'matched' if any attribute specified is found in the dictionary</td></tr><tr><td id="name">Dictionary Filter Pattern</td><td id="default-value"></td><td id="allowable-values"></td><td id="description">A Regular Expression that will be applied to each line in the dictionary file. If the regular expression does not match the line, the line will not be included in the list of terms to search for. If a Matching Group is specified, only the portion of the term that matches that Matching Group will be used instead of the entire term. If not specified, all terms in the dictionary will be used and each term will consist of the text of the entire line in the file</td></tr></table><h3>Relationships: </h3><table id="relationships
 "><tr><th>Name</th><th>Description</th></tr><tr><td>unmatched</td><td>FlowFiles whose attributes are not found in the dictionary will be routed to this relationship</td></tr><tr><td>matched</td><td>FlowFiles whose attributes are found in the dictionary will be routed to this relationship</td></tr></table><h3>Reads Attributes: </h3>None specified.<h3>Writes Attributes: </h3>None specified.<h3>State management: </h3>This component does not store state.<h3>Restricted: </h3>This component is not restricted.<h3>Input requirement: </h3>This component requires an incoming relationship.<h3>System Resource Considerations:</h3>None specified.</body></html>
\ No newline at end of file

Added: nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.ScanContent/index.html
URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.ScanContent/index.html?rev=1836075&view=auto
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.ScanContent/index.html (added)
+++ nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.ScanContent/index.html Tue Jul 17 01:35:38 2018
@@ -0,0 +1 @@
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"></meta><title>ScanContent</title><link rel="stylesheet" href="../../../../../css/component-usage.css" type="text/css"></link></head><script type="text/javascript">window.onload = function(){if(self==top) { document.getElementById('nameHeader').style.display = "inherit"; } }</script><body><h1 id="nameHeader" style="display: none;">ScanContent</h1><h2>Description: </h2><p>Scans the content of FlowFiles for terms that are found in a user-supplied dictionary. If a term is matched, the UTF-8 encoded version of the term will be added to the FlowFile using the 'matching.term' attribute</p><h3>Tags: </h3><p>aho-corasick, scan, content, byte sequence, search, find, dictionary</p><h3>Properties: </h3><p>In the list below, the names of required properties appear in <strong>bold</strong>. Any other properties (not in bold) are considered optional. The table also indicates any default values.</p><table id="properties"><tr><th>Name</th><t
 h>Default Value</th><th>Allowable Values</th><th>Description</th></tr><tr><td id="name"><strong>Dictionary File</strong></td><td id="default-value"></td><td id="allowable-values"></td><td id="description">The filename of the terms dictionary</td></tr><tr><td id="name"><strong>Dictionary Encoding</strong></td><td id="default-value">text</td><td id="allowable-values"><ul><li>text</li><li>binary</li></ul></td><td id="description">Indicates how the dictionary is encoded. If 'text', dictionary terms are new-line delimited and UTF-8 encoded; if 'binary', dictionary terms are denoted by a 4-byte integer indicating the term length followed by the term itself</td></tr></table><h3>Relationships: </h3><table id="relationships"><tr><th>Name</th><th>Description</th></tr><tr><td>unmatched</td><td>FlowFiles that do not match any term in the dictionary are routed to this relationship</td></tr><tr><td>matched</td><td>FlowFiles that match at least one term in the dictionary are routed to this relatio
 nship</td></tr></table><h3>Reads Attributes: </h3>None specified.<h3>Writes Attributes: </h3><table id="writes-attributes"><tr><th>Name</th><th>Description</th></tr><tr><td>matching.term</td><td>The term that caused the Processor to route the FlowFile to the 'matched' relationship; if FlowFile is routed to the 'unmatched' relationship, this attribute is not added</td></tr></table><h3>State management: </h3>This component does not store state.<h3>Restricted: </h3>This component is not restricted.<h3>Input requirement: </h3>This component requires an incoming relationship.<h3>System Resource Considerations:</h3>None specified.</body></html>
\ No newline at end of file

Added: nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.SegmentContent/index.html
URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.SegmentContent/index.html?rev=1836075&view=auto
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.SegmentContent/index.html (added)
+++ nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.SegmentContent/index.html Tue Jul 17 01:35:38 2018
@@ -0,0 +1 @@
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"></meta><title>SegmentContent</title><link rel="stylesheet" href="../../../../../css/component-usage.css" type="text/css"></link></head><script type="text/javascript">window.onload = function(){if(self==top) { document.getElementById('nameHeader').style.display = "inherit"; } }</script><body><h1 id="nameHeader" style="display: none;">SegmentContent</h1><h2>Description: </h2><p>Segments a FlowFile into multiple smaller segments on byte boundaries. Each segment is given the following attributes: fragment.identifier, fragment.index, fragment.count, segment.original.filename; these attributes can then be used by the MergeContent processor in order to reconstitute the original FlowFile</p><h3>Tags: </h3><p>segment, split</p><h3>Properties: </h3><p>In the list below, the names of required properties appear in <strong>bold</strong>. Any other properties (not in bold) are considered optional. The table also indicates any default valu
 es.</p><table id="properties"><tr><th>Name</th><th>Default Value</th><th>Allowable Values</th><th>Description</th></tr><tr><td id="name"><strong>Segment Size</strong></td><td id="default-value"></td><td id="allowable-values"></td><td id="description">The maximum data size in bytes for each segment</td></tr></table><h3>Relationships: </h3><table id="relationships"><tr><th>Name</th><th>Description</th></tr><tr><td>segments</td><td>All segments will be sent to this relationship. If the file was small enough that it was not segmented, a copy of the original is sent to this relationship as well as original</td></tr><tr><td>original</td><td>The original FlowFile will be sent to this relationship</td></tr></table><h3>Reads Attributes: </h3>None specified.<h3>Writes Attributes: </h3><table id="writes-attributes"><tr><th>Name</th><th>Description</th></tr><tr><td>segment.identifier</td><td>All segments produced from the same parent FlowFile will have the same randomly generated UUID added for
  this attribute. This attribute is added to maintain backward compatibility, but the fragment.identifier is preferred, as it is designed to work in conjunction with the MergeContent Processor</td></tr><tr><td>segment.index</td><td>A one-up number that indicates the ordering of the segments that were created from a single parent FlowFile. This attribute is added to maintain backward compatibility, but the fragment.index is preferred, as it is designed to work in conjunction with the MergeContent Processor</td></tr><tr><td>segment.count</td><td>The number of segments generated from the parent FlowFile. This attribute is added to maintain backward compatibility, but the fragment.count is preferred, as it is designed to work in conjunction with the MergeContent Processor</td></tr><tr><td>fragment.identifier</td><td>All segments produced from the same parent FlowFile will have the same randomly generated UUID added for this attribute</td></tr><tr><td>fragment.index</td><td>A one-up numbe
 r that indicates the ordering of the segments that were created from a single parent FlowFile</td></tr><tr><td>fragment.count</td><td>The number of segments generated from the parent FlowFile</td></tr><tr><td>segment.original.filename </td><td>The filename of the parent FlowFile</td></tr><tr><td>segment.original.filename </td><td>The filename will be updated to include the parent's filename, the segment index, and the segment count</td></tr></table><h3>State management: </h3>This component does not store state.<h3>Restricted: </h3>This component is not restricted.<h3>Input requirement: </h3>This component requires an incoming relationship.<h3>System Resource Considerations:</h3>None specified.<h3>See Also:</h3><p><a href="../org.apache.nifi.processors.standard.MergeContent/index.html">MergeContent</a></p></body></html>
\ No newline at end of file

Added: nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.SplitContent/index.html
URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.SplitContent/index.html?rev=1836075&view=auto
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.SplitContent/index.html (added)
+++ nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.SplitContent/index.html Tue Jul 17 01:35:38 2018
@@ -0,0 +1 @@
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"></meta><title>SplitContent</title><link rel="stylesheet" href="../../../../../css/component-usage.css" type="text/css"></link></head><script type="text/javascript">window.onload = function(){if(self==top) { document.getElementById('nameHeader').style.display = "inherit"; } }</script><body><h1 id="nameHeader" style="display: none;">SplitContent</h1><h2>Description: </h2><p>Splits incoming FlowFiles by a specified byte sequence</p><h3>Tags: </h3><p>content, split, binary</p><h3>Properties: </h3><p>In the list below, the names of required properties appear in <strong>bold</strong>. Any other properties (not in bold) are considered optional. The table also indicates any default values.</p><table id="properties"><tr><th>Name</th><th>Default Value</th><th>Allowable Values</th><th>Description</th></tr><tr><td id="name"><strong>Byte Sequence Format</strong></td><td id="default-value">Hexadecimal</td><td id="allowable-values"><ul><li
 >Hexadecimal <img src="../../../../../html/images/iconInfo.png" alt="The Byte Sequence will be interpreted as a hexadecimal representation of bytes" title="The Byte Sequence will be interpreted as a hexadecimal representation of bytes"></img></li><li>Text <img src="../../../../../html/images/iconInfo.png" alt="The Byte Sequence will be interpreted as UTF-8 Encoded text" title="The Byte Sequence will be interpreted as UTF-8 Encoded text"></img></li></ul></td><td id="description">Specifies how the &lt;Byte Sequence&gt; property should be interpreted</td></tr><tr><td id="name"><strong>Byte Sequence</strong></td><td id="default-value"></td><td id="allowable-values"></td><td id="description">A representation of bytes to look for and upon which to split the source file into separate files</td></tr><tr><td id="name"><strong>Keep Byte Sequence</strong></td><td id="default-value">false</td><td id="allowable-values"><ul><li>true</li><li>false</li></ul></td><td id="description">Determines whet
 her or not the Byte Sequence should be included with each Split</td></tr><tr><td id="name"><strong>Byte Sequence Location</strong></td><td id="default-value">Trailing</td><td id="allowable-values"><ul><li>Trailing <img src="../../../../../html/images/iconInfo.png" alt="Keep the Byte Sequence at the end of the first split if &lt;Keep Byte Sequence&gt; is true" title="Keep the Byte Sequence at the end of the first split if &lt;Keep Byte Sequence&gt; is true"></img></li><li>Leading <img src="../../../../../html/images/iconInfo.png" alt="Keep the Byte Sequence at the beginning of the second split if &lt;Keep Byte Sequence&gt; is true" title="Keep the Byte Sequence at the beginning of the second split if &lt;Keep Byte Sequence&gt; is true"></img></li></ul></td><td id="description">If &lt;Keep Byte Sequence&gt; is set to true, specifies whether the byte sequence should be added to the end of the first split or the beginning of the second; if &lt;Keep Byte Sequence&gt; is false, this prope
 rty is ignored.</td></tr></table><h3>Relationships: </h3><table id="relationships"><tr><th>Name</th><th>Description</th></tr><tr><td>splits</td><td>All Splits will be routed to the splits relationship</td></tr><tr><td>original</td><td>The original file</td></tr></table><h3>Reads Attributes: </h3>None specified.<h3>Writes Attributes: </h3><table id="writes-attributes"><tr><th>Name</th><th>Description</th></tr><tr><td>fragment.identifier</td><td>All split FlowFiles produced from the same parent FlowFile will have the same randomly generated UUID added for this attribute</td></tr><tr><td>fragment.index</td><td>A one-up number that indicates the ordering of the split FlowFiles that were created from a single parent FlowFile</td></tr><tr><td>fragment.count</td><td>The number of split FlowFiles generated from the parent FlowFile</td></tr><tr><td>segment.original.filename </td><td>The filename of the parent FlowFile</td></tr></table><h3>State management: </h3>This component does not store 
 state.<h3>Restricted: </h3>This component is not restricted.<h3>Input requirement: </h3>This component requires an incoming relationship.<h3>System Resource Considerations:</h3><table id="system-resource-considerations"><tr><th>Resource</th><th>Description</th></tr><tr><td>MEMORY</td><td>The FlowFile with its attributes is stored in memory, not the content of the FlowFile. If many splits are generated due to the size of the content, or how the content is configured to be split, a two-phase approach may be necessary to avoid excessive use of memory.</td></tr></table><h3>See Also:</h3><p><a href="../org.apache.nifi.processors.standard.MergeContent/index.html">MergeContent</a></p></body></html>
\ No newline at end of file

Added: nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.SplitJson/index.html
URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.SplitJson/index.html?rev=1836075&view=auto
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.SplitJson/index.html (added)
+++ nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.SplitJson/index.html Tue Jul 17 01:35:38 2018
@@ -0,0 +1 @@
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"></meta><title>SplitJson</title><link rel="stylesheet" href="../../../../../css/component-usage.css" type="text/css"></link></head><script type="text/javascript">window.onload = function(){if(self==top) { document.getElementById('nameHeader').style.display = "inherit"; } }</script><body><h1 id="nameHeader" style="display: none;">SplitJson</h1><h2>Description: </h2><p>Splits a JSON File into multiple, separate FlowFiles for an array element specified by a JsonPath expression. Each generated FlowFile is comprised of an element of the specified array and transferred to relationship 'split,' with the original file transferred to the 'original' relationship. If the specified JsonPath is not found or does not evaluate to an array element, the original file is routed to 'failure' and no files are generated.</p><h3>Tags: </h3><p>json, split, jsonpath</p><h3>Properties: </h3><p>In the list below, the names of required properties appea
 r in <strong>bold</strong>. Any other properties (not in bold) are considered optional. The table also indicates any default values.</p><table id="properties"><tr><th>Name</th><th>Default Value</th><th>Allowable Values</th><th>Description</th></tr><tr><td id="name"><strong>JsonPath Expression</strong></td><td id="default-value"></td><td id="allowable-values"></td><td id="description">A JsonPath expression that indicates the array element to split into JSON/scalar fragments.</td></tr><tr><td id="name"><strong>Null Value Representation</strong></td><td id="default-value">empty string</td><td id="allowable-values"><ul><li>empty string</li><li>the string 'null'</li></ul></td><td id="description">Indicates the desired representation of JSON Path expressions resulting in a null value.</td></tr></table><h3>Relationships: </h3><table id="relationships"><tr><th>Name</th><th>Description</th></tr><tr><td>failure</td><td>If a FlowFile fails processing for any reason (for example, the FlowFile i
 s not valid JSON or the specified path does not exist), it will be routed to this relationship</td></tr><tr><td>original</td><td>The original FlowFile that was split into segments. If the FlowFile fails processing, nothing will be sent to this relationship</td></tr><tr><td>split</td><td>All segments of the original FlowFile will be routed to this relationship</td></tr></table><h3>Reads Attributes: </h3>None specified.<h3>Writes Attributes: </h3><table id="writes-attributes"><tr><th>Name</th><th>Description</th></tr><tr><td>fragment.identifier</td><td>All split FlowFiles produced from the same parent FlowFile will have the same randomly generated UUID added for this attribute</td></tr><tr><td>fragment.index</td><td>A one-up number that indicates the ordering of the split FlowFiles that were created from a single parent FlowFile</td></tr><tr><td>fragment.count</td><td>The number of split FlowFiles generated from the parent FlowFile</td></tr><tr><td>segment.original.filename </td><td>T
 he filename of the parent FlowFile</td></tr></table><h3>State management: </h3>This component does not store state.<h3>Restricted: </h3>This component is not restricted.<h3>Input requirement: </h3>This component requires an incoming relationship.<h3>System Resource Considerations:</h3><table id="system-resource-considerations"><tr><th>Resource</th><th>Description</th></tr><tr><td>MEMORY</td><td>The entirety of the FlowFile's content (as a JsonNode object) is read into memory, in addition to all of the generated FlowFiles representing the split JSON. If many splits are generated due to the size of the JSON, or how the JSON is configured to be split, a two-phase approach may be necessary to avoid excessive use of memory.</td></tr></table></body></html>
\ No newline at end of file

Added: nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.SplitRecord/index.html
URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.SplitRecord/index.html?rev=1836075&view=auto
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.SplitRecord/index.html (added)
+++ nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.SplitRecord/index.html Tue Jul 17 01:35:38 2018
@@ -0,0 +1 @@
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"></meta><title>SplitRecord</title><link rel="stylesheet" href="../../../../../css/component-usage.css" type="text/css"></link></head><script type="text/javascript">window.onload = function(){if(self==top) { document.getElementById('nameHeader').style.display = "inherit"; } }</script><body><h1 id="nameHeader" style="display: none;">SplitRecord</h1><h2>Description: </h2><p>Splits up an input FlowFile that is in a record-oriented data format into multiple smaller FlowFiles</p><h3>Tags: </h3><p>split, generic, schema, json, csv, avro, log, logs, freeform, text</p><h3>Properties: </h3><p>In the list below, the names of required properties appear in <strong>bold</strong>. Any other properties (not in bold) are considered optional. The table also indicates any default values, and whether a property supports the <a href="../../../../../html/expression-language-guide.html">NiFi Expression Language</a>.</p><table id="properties"><tr><t
 h>Name</th><th>Default Value</th><th>Allowable Values</th><th>Description</th></tr><tr><td id="name"><strong>Record Reader</strong></td><td id="default-value"></td><td id="allowable-values"><strong>Controller Service API: </strong><br/>RecordReaderFactory<br/><strong>Implementations: </strong><a href="../../../nifi-record-serialization-services-nar/1.7.1/org.apache.nifi.json.JsonTreeReader/index.html">JsonTreeReader</a><br/><a href="../../../nifi-record-serialization-services-nar/1.7.1/org.apache.nifi.avro.AvroReader/index.html">AvroReader</a><br/><a href="../../../nifi-record-serialization-services-nar/1.7.1/org.apache.nifi.csv.CSVReader/index.html">CSVReader</a><br/><a href="../../../nifi-record-serialization-services-nar/1.7.1/org.apache.nifi.xml.XMLReader/index.html">XMLReader</a><br/><a href="../../../nifi-record-serialization-services-nar/1.7.1/org.apache.nifi.json.JsonPathReader/index.html">JsonPathReader</a><br/><a href="../../../nifi-scripting-nar/1.7.1/org.apache.nifi.reco
 rd.script.ScriptedReader/index.html">ScriptedReader</a><br/><a href="../../../nifi-record-serialization-services-nar/1.7.1/org.apache.nifi.grok.GrokReader/index.html">GrokReader</a></td><td id="description">Specifies the Controller Service to use for reading incoming data</td></tr><tr><td id="name"><strong>Record Writer</strong></td><td id="default-value"></td><td id="allowable-values"><strong>Controller Service API: </strong><br/>RecordSetWriterFactory<br/><strong>Implementations: </strong><a href="../../../nifi-record-serialization-services-nar/1.7.1/org.apache.nifi.avro.AvroRecordSetWriter/index.html">AvroRecordSetWriter</a><br/><a href="../../../nifi-record-serialization-services-nar/1.7.1/org.apache.nifi.csv.CSVRecordSetWriter/index.html">CSVRecordSetWriter</a><br/><a href="../../../nifi-record-serialization-services-nar/1.7.1/org.apache.nifi.json.JsonRecordSetWriter/index.html">JsonRecordSetWriter</a><br/><a href="../../../nifi-scripting-nar/1.7.1/org.apache.nifi.record.script
 .ScriptedRecordSetWriter/index.html">ScriptedRecordSetWriter</a><br/><a href="../../../nifi-record-serialization-services-nar/1.7.1/org.apache.nifi.xml.XMLRecordSetWriter/index.html">XMLRecordSetWriter</a><br/><a href="../../../nifi-record-serialization-services-nar/1.7.1/org.apache.nifi.text.FreeFormTextRecordSetWriter/index.html">FreeFormTextRecordSetWriter</a></td><td id="description">Specifies the Controller Service to use for writing out the records</td></tr><tr><td id="name"><strong>Records Per Split</strong></td><td id="default-value"></td><td id="allowable-values"></td><td id="description">Specifies how many records should be written to each 'split' or 'segment' FlowFile<br/><strong>Supports Expression Language: true (will be evaluated using flow file attributes and variable registry)</strong></td></tr></table><h3>Relationships: </h3><table id="relationships"><tr><th>Name</th><th>Description</th></tr><tr><td>failure</td><td>If a FlowFile cannot be transformed from the config
 ured input format to the configured output format, the unchanged FlowFile will be routed to this relationship.</td></tr><tr><td>splits</td><td>The individual 'segments' of the original FlowFile will be routed to this relationship.</td></tr><tr><td>original</td><td>Upon successfully splitting an input FlowFile, the original FlowFile will be sent to this relationship.</td></tr></table><h3>Reads Attributes: </h3>None specified.<h3>Writes Attributes: </h3><table id="writes-attributes"><tr><th>Name</th><th>Description</th></tr><tr><td>mime.type</td><td>Sets the mime.type attribute to the MIME Type specified by the Record Writer for the FlowFiles routed to the 'splits' Relationship.</td></tr><tr><td>record.count</td><td>The number of records in the FlowFile. This is added to FlowFiles that are routed to the 'splits' Relationship.</td></tr></table><h3>State management: </h3>This component does not store state.<h3>Restricted: </h3>This component is not restricted.<h3>Input requirement: </h3
 >This component requires an incoming relationship.<h3>System Resource Considerations:</h3>None specified.</body></html>
\ No newline at end of file

Added: nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.SplitText/index.html
URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.SplitText/index.html?rev=1836075&view=auto
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.SplitText/index.html (added)
+++ nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.SplitText/index.html Tue Jul 17 01:35:38 2018
@@ -0,0 +1,2 @@
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"></meta><title>SplitText</title><link rel="stylesheet" href="../../../../../css/component-usage.css" type="text/css"></link></head><script type="text/javascript">window.onload = function(){if(self==top) { document.getElementById('nameHeader').style.display = "inherit"; } }</script><body><h1 id="nameHeader" style="display: none;">SplitText</h1><h2>Description: </h2><p>Splits a text file into multiple smaller text files on line boundaries limited by maximum number of lines or total size of fragment. Each output split file will contain no more than the configured number of lines or bytes. If both Line Split Count and Maximum Fragment Size are specified, the split occurs at whichever limit is reached first. If the first line of a fragment exceeds the Maximum Fragment Size, that line will be output in a single split file which exceeds the configured maximum size limit. This component also allows one to specify that each split shou
 ld include a header lines. Header lines can be computed by either specifying the amount of lines that should constitute a header or by using header marker to match against the read lines. If such match happens then the corresponding line will be treated as header. Keep in mind that upon the first failure of header marker match, no more matches will be performed and the rest of the data will be parsed as regular lines for a given split. If after computation of the header there are no more data, the resulting split will consists of only header lines.</p><h3>Tags: </h3><p>split, text</p><h3>Properties: </h3><p>In the list below, the names of required properties appear in <strong>bold</strong>. Any other properties (not in bold) are considered optional. The table also indicates any default values.</p><table id="properties"><tr><th>Name</th><th>Default Value</th><th>Allowable Values</th><th>Description</th></tr><tr><td id="name"><strong>Line Split Count</strong></td><td id="default-value
 "></td><td id="allowable-values"></td><td id="description">The number of lines that will be added to each split file, excluding header lines. A value of zero requires Maximum Fragment Size to be set, and line count will not be considered in determining splits.</td></tr><tr><td id="name">Maximum Fragment Size</td><td id="default-value"></td><td id="allowable-values"></td><td id="description">The maximum size of each split file, including header lines. NOTE: in the case where a single line exceeds this property (including headers, if applicable), that line will be output in a split of its own which exceeds this Maximum Fragment Size setting.</td></tr><tr><td id="name"><strong>Header Line Count</strong></td><td id="default-value">0</td><td id="allowable-values"></td><td id="description">The number of lines that should be considered part of the header; the header lines will be duplicated to all split files</td></tr><tr><td id="name">Header Line Marker Characters</td><td id="default-valu
 e"></td><td id="allowable-values"></td><td id="description">The first character(s) on the line of the datafile which signifies a header line. This value is ignored when Header Line Count is non-zero. The first line not containing the Header Line Marker Characters and all subsequent lines are considered non-header</td></tr><tr><td id="name"><strong>Remove Trailing Newlines</strong></td><td id="default-value">true</td><td id="allowable-values"><ul><li>true</li><li>false</li></ul></td><td id="description">Whether to remove newlines at the end of each split file. This should be false if you intend to merge the split files later. If this is set to 'true' and a FlowFile is generated that contains only 'empty lines' (i.e., consists only of 
 and 
+ characters), the FlowFile will not be emitted. Note, however, that if header lines are specified, the resultant FlowFile will never be empty as it will consist of the header lines, so a FlowFile may be emitted that contains only the header lines.</td></tr></table><h3>Relationships: </h3><table id="relationships"><tr><th>Name</th><th>Description</th></tr><tr><td>failure</td><td>If a file cannot be split for some reason, the original file will be routed to this destination and nothing will be routed elsewhere</td></tr><tr><td>original</td><td>The original input file will be routed to this destination when it has been successfully split into 1 or more files</td></tr><tr><td>splits</td><td>The split files will be routed to this destination when an input file is successfully split into 1 or more split files</td></tr></table><h3>Reads Attributes: </h3>None specified.<h3>Writes Attributes: </h3><table id="writes-attributes"><tr><th>Name</th><th>Description</th></tr><tr><td>text.line.count
 </td><td>The number of lines of text from the original FlowFile that were copied to this FlowFile</td></tr><tr><td>fragment.size</td><td>The number of bytes from the original FlowFile that were copied to this FlowFile, including header, if applicable, which is duplicated in each split FlowFile</td></tr><tr><td>fragment.identifier</td><td>All split FlowFiles produced from the same parent FlowFile will have the same randomly generated UUID added for this attribute</td></tr><tr><td>fragment.index</td><td>A one-up number that indicates the ordering of the split FlowFiles that were created from a single parent FlowFile</td></tr><tr><td>fragment.count</td><td>The number of split FlowFiles generated from the parent FlowFile</td></tr><tr><td>segment.original.filename </td><td>The filename of the parent FlowFile</td></tr></table><h3>State management: </h3>This component does not store state.<h3>Restricted: </h3>This component is not restricted.<h3>Input requirement: </h3>This component requi
 res an incoming relationship.<h3>System Resource Considerations:</h3><table id="system-resource-considerations"><tr><th>Resource</th><th>Description</th></tr><tr><td>MEMORY</td><td>The FlowFile with its attributes is stored in memory, not the content of the FlowFile. If many splits are generated due to the size of the content, or how the content is configured to be split, a two-phase approach may be necessary to avoid excessive use of memory.</td></tr></table><h3>See Also:</h3><p><a href="../org.apache.nifi.processors.standard.MergeContent/index.html">MergeContent</a></p></body></html>
\ No newline at end of file

Added: nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.SplitXml/index.html
URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.SplitXml/index.html?rev=1836075&view=auto
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.SplitXml/index.html (added)
+++ nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.SplitXml/index.html Tue Jul 17 01:35:38 2018
@@ -0,0 +1 @@
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"></meta><title>SplitXml</title><link rel="stylesheet" href="../../../../../css/component-usage.css" type="text/css"></link></head><script type="text/javascript">window.onload = function(){if(self==top) { document.getElementById('nameHeader').style.display = "inherit"; } }</script><body><h1 id="nameHeader" style="display: none;">SplitXml</h1><h2>Description: </h2><p>Splits an XML File into multiple separate FlowFiles, each comprising a child or descendant of the original root element</p><h3>Tags: </h3><p>xml, split</p><h3>Properties: </h3><p>In the list below, the names of required properties appear in <strong>bold</strong>. Any other properties (not in bold) are considered optional. The table also indicates any default values.</p><table id="properties"><tr><th>Name</th><th>Default Value</th><th>Allowable Values</th><th>Description</th></tr><tr><td id="name"><strong>Split Depth</strong></td><td id="default-value">1</td><td id=
 "allowable-values"></td><td id="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.</td></tr></table><h3>Relationships: </h3><table id="relationships"><tr><th>Name</th><th>Description</th></tr><tr><td>failure</td><td>If a FlowFile fails processing for any reason (for example, the FlowFile is not valid XML), it will be routed to this relationship</td></tr><tr><td>original</td><td>The original FlowFile that was split into segments. If the FlowFile fails processing, nothing will be sent to this relationship</td></tr><tr><td>split</td><td>All segments of the original FlowFile will be routed to this relationship</td></tr></table><h3>Reads Attributes: </h3>None specified.<h3>Writes Attributes: </h3><table id="writes-attributes"><tr><th>Name</th><th>Description</th></tr><tr><td>fragment.identifier</td><td>All split FlowFiles produced from th
 e same parent FlowFile will have the same randomly generated UUID added for this attribute</td></tr><tr><td>fragment.index</td><td>A one-up number that indicates the ordering of the split FlowFiles that were created from a single parent FlowFile</td></tr><tr><td>fragment.count</td><td>The number of split FlowFiles generated from the parent FlowFile</td></tr><tr><td>segment.original.filename </td><td>The filename of the parent FlowFile</td></tr></table><h3>State management: </h3>This component does not store state.<h3>Restricted: </h3>This component is not restricted.<h3>Input requirement: </h3>This component requires an incoming relationship.<h3>System Resource Considerations:</h3><table id="system-resource-considerations"><tr><th>Resource</th><th>Description</th></tr><tr><td>MEMORY</td><td>The entirety of the FlowFile's content (as a Document object) is read into memory, in addition to all of the generated FlowFiles representing the split XML. A Document object can take approximate
 ly 10 times as much memory as the size of the XML. For example, a 1 MB XML document may use 10 MB of memory. If many splits are generated due to the size of the XML, a two-phase approach may be necessary to avoid excessive use of memory.</td></tr></table></body></html>
\ No newline at end of file

Added: nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.TailFile/additionalDetails.html
URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.TailFile/additionalDetails.html?rev=1836075&view=auto
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.TailFile/additionalDetails.html (added)
+++ nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.TailFile/additionalDetails.html Tue Jul 17 01:35:38 2018
@@ -0,0 +1,129 @@
+<!DOCTYPE html>
+<html lang="en">
+    <!--
+      Licensed to the Apache Software Foundation (ASF) under one or more
+      contributor license agreements.  See the NOTICE file distributed with
+      this work for additional information regarding copyright ownership.
+      The ASF licenses this file to You under the Apache License, Version 2.0
+      (the "License"); you may not use this file except in compliance with
+      the License.  You may obtain a copy of the License at
+          http://www.apache.org/licenses/LICENSE-2.0
+      Unless required by applicable law or agreed to in writing, software
+      distributed under the License is distributed on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+      See the License for the specific language governing permissions and
+      limitations under the License.
+    -->
+    <head>
+        <meta charset="utf-8" />
+        <title>TailFile</title>
+
+        <link rel="stylesheet" href="../../../../../css/component-usage.css" type="text/css" />
+    </head>
+
+    <body>
+        <h3>Modes</h3>
+        <p>
+            This processor is used to tail a file or multiple files according to multiple modes. The 
+            mode to choose depends of the logging pattern followed by the file(s) to tail. In any case, if there
+            is a rolling pattern, the rolling files must be plain text files (compression is not supported at 
+            the moment).
+        </p>
+        <ul>
+        	<li><b>Single file</b>: the processor will tail the file with the path given in 'File(s) to tail' property.</li>
+        	<li><b>Multiple files</b>: the processor will look for files into the 'Base directory'. It will look for file recursively
+        	according to the 'Recursive lookup' property and will tail all the files matching the regular expression
+        	provided in the 'File(s) to tail' property.</li>
+        </ul>
+        <h3>Rolling filename pattern</h3>
+        <p>
+        	In case the 'Rolling filename pattern' property is used, when the processor detects that the file to tail has rolled over, the
+        	processor will look for possible missing messages in the rolled file. To do so, the processor will use the pattern to find the 
+        	rolling files in the same directory as the file to tail.
+        </p>
+        <p>
+        	In order to keep this property available in the 'Multiple files' mode when multiples files to tail are in the same directory, 
+        	it is possible to use the ${filename} tag to reference the name (without extension) of the file to tail. For example, if we have:
+        </p>
+       	<p>
+        	<code>
+	        	/my/path/directory/my-app.log.1<br />
+	        	/my/path/directory/my-app.log<br />
+	        	/my/path/directory/application.log.1<br />
+	        	/my/path/directory/application.log
+        	</code>
+       	</p>
+       	<p>
+       		the 'rolling filename pattern' would be <i>${filename}.log.*</i>.
+       	</p>
+        <h3>Descriptions for different modes and strategies</h3>
+        <p>
+        	The '<b>Single file</b>' mode assumes that the file to tail has always the same name even if there is a rolling pattern.
+        	Example:
+        </p>
+       	<p>
+        	<code>
+	        	/my/path/directory/my-app.log.2<br />
+	        	/my/path/directory/my-app.log.1<br />
+	        	/my/path/directory/my-app.log
+        	</code>
+       	</p>
+       	<p>
+        	and new log messages are always appended in my-app.log file.
+        </p>
+        <p>
+        	In case recursivity is set to 'true'. The regular expression for the files to tail must embrace the possible intermediate directories 
+        	between the base directory and the files to tail. Example:
+        </p>
+        <p>
+        	<code>
+	        	/my/path/directory1/my-app1.log<br />
+	        	/my/path/directory2/my-app2.log<br />
+	        	/my/path/directory3/my-app3.log
+        	</code>
+       	</p>
+        <p>
+        	<code>
+	        	Base directory: /my/path<br />
+	        	Files to tail: directory[1-3]/my-app[1-3].log<br />
+	        	Recursivity: true
+        	</code>
+       	</p>
+        <p>
+        	In the '<b>Multiple files</b>' mode, it is possible to specify if the file to tail has always the same name or not. It is done through
+        	the property 'Rolling strategy'. The strategy can be 'Fixed name' in case the files to tail have always the same name (see example above) 
+        	or can be 'Changing name' in case the files to tail do not always have the same name. Example:
+        </p>
+       	<p>
+        	<code>
+	        	/my/path/directory/my-app-2016-09-06.log<br />
+	        	/my/path/directory/my-app-2016-09-07.log<br />
+	        	/my/path/directory/my-app-2016-09-08.log
+        	</code>
+       	</p>
+       	<p>
+        	and new log messages are always appended in log file of the current day.
+        </p>
+        <p>
+        	If the processor is configured with '<b>Multiple files</b>' mode, two additional properties are relevant:
+        </p>
+        <ul>
+        	<li><b>Lookup frequency</b>: specifies the minimum duration the processor will wait before listing again the files to tail.</li>
+        	<li><b>Maximum age</b>: specifies the necessary minimum duration to consider that no new messages will be appended in a file 
+        	regarding its last modification date. If the amount of time that has elapsed since the file was modified is larger than this
+        	period of time, the file will not be tailed. For example, if a file was modified 24 hours ago and this property is set to 12 hours,
+        	the file will not be tailed. But if this property is set to 36 hours, then the file will continue to be tailed.</li>
+        </ul>
+        <p>
+        	It is necessary to pay attention to 'Lookup frequency' and 'Maximum age' properties, as well as the frequency at which the processor is 
+        	triggered, in order to achieve high performance. It is recommended to keep 'Maximum age' > 'Lookup frequency' > processor scheduling 
+        	frequency to avoid missing data. It also recommended not to set 'Maximum Age' too low because if messages are appended in a file 
+        	after this file has been considered "too old", all the messages in the file may be read again, leading to data duplication.
+        </p>
+        <p>
+        	If the processor is configured with '<b>Multiple files</b>' mode, the 'Rolling 
+        	filename pattern' property must be specific enough to ensure that only the rolling files will be listed and not other currently tailed
+        	files in the same directory (this can be achieved using ${filename} tag).
+        </p>
+    </body>
+</html>
\ No newline at end of file

Added: nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.TailFile/index.html
URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.TailFile/index.html?rev=1836075&view=auto
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.TailFile/index.html (added)
+++ nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.TailFile/index.html Tue Jul 17 01:35:38 2018
@@ -0,0 +1 @@
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"></meta><title>TailFile</title><link rel="stylesheet" href="../../../../../css/component-usage.css" type="text/css"></link></head><script type="text/javascript">window.onload = function(){if(self==top) { document.getElementById('nameHeader').style.display = "inherit"; } }</script><body><h1 id="nameHeader" style="display: none;">TailFile</h1><h2>Description: </h2><p>"Tails" a file, or a list of files, ingesting data from the file as it is written to the file. The file is expected to be textual. Data is ingested only when a new line is encountered (carriage return or new-line character or combination). If the file to tail is periodically "rolled over", as is generally the case with log files, an optional Rolling Filename Pattern can be used to retrieve data from files that have rolled over, even if the rollover occurred while NiFi was not running (provided that the data still exists upon restart of NiFi). It is generally advisa
 ble to set the Run Schedule to a few seconds, rather than running with the default value of 0 secs, as this Processor will consume a lot of resources if scheduled very aggressively. At this time, this Processor does not support ingesting files that have been compressed when 'rolled over'.</p><p><a href="additionalDetails.html">Additional Details...</a></p><h3>Tags: </h3><p>tail, file, log, text, source</p><h3>Properties: </h3><p>In the list below, the names of required properties appear in <strong>bold</strong>. Any other properties (not in bold) are considered optional. The table also indicates any default values, and whether a property supports the <a href="../../../../../html/expression-language-guide.html">NiFi Expression Language</a>.</p><table id="properties"><tr><th>Name</th><th>Default Value</th><th>Allowable Values</th><th>Description</th></tr><tr><td id="name"><strong>Tailing mode</strong></td><td id="default-value">Single file</td><td id="allowable-values"><ul><li>Single 
 file <img src="../../../../../html/images/iconInfo.png" alt="In this mode, only the one file indicated in the 'Files to tail' property will be watched by the processor. In this mode, the file may not exist when starting the processor." title="In this mode, only the one file indicated in the 'Files to tail' property will be watched by the processor. In this mode, the file may not exist when starting the processor."></img></li><li>Multiple files <img src="../../../../../html/images/iconInfo.png" alt="In this mode, the 'Files to tail' property accepts a regular expression and the processor will look for files in 'Base directory' to list the files to tail by the processor." title="In this mode, the 'Files to tail' property accepts a regular expression and the processor will look for files in 'Base directory' to list the files to tail by the processor."></img></li></ul></td><td id="description">Mode to use: single file will tail only one file, multiple file will look for a list of file. 
 In Multiple mode the Base directory is required.</td></tr><tr><td id="name"><strong>File(s) to Tail</strong></td><td id="default-value"></td><td id="allowable-values"></td><td id="description">Path of the file to tail in case of single file mode. If using multifile mode, regular expression to find files to tail in the base directory. In case recursivity is set to true, the regular expression will be used to match the path starting from the base directory (see additional details for examples).<br/><strong>Supports Expression Language: true (will be evaluated using variable registry only)</strong></td></tr><tr><td id="name">Rolling Filename Pattern</td><td id="default-value"></td><td id="allowable-values"></td><td id="description">If the file to tail "rolls over" as would be the case with log files, this filename pattern will be used to identify files that have rolled over so that if NiFi is restarted, and the file has rolled over, it will be able to pick up where it left off. This pa
 ttern supports wildcard characters * and ?, it also supports the notation ${filename} to specify a pattern based on the name of the file (without extension), and will assume that the files that have rolled over live in the same directory as the file being tailed. The same glob pattern will be used for all files.</td></tr><tr><td id="name">Base directory</td><td id="default-value"></td><td id="allowable-values"></td><td id="description">Base directory used to look for files to tail. This property is required when using Multifile mode.<br/><strong>Supports Expression Language: true (will be evaluated using variable registry only)</strong></td></tr><tr><td id="name"><strong>Initial Start Position</strong></td><td id="default-value">Beginning of File</td><td id="allowable-values"><ul><li>Beginning of Time <img src="../../../../../html/images/iconInfo.png" alt="Start with the oldest data that matches the Rolling Filename Pattern and then begin reading from the File to Tail" title="Start 
 with the oldest data that matches the Rolling Filename Pattern and then begin reading from the File to Tail"></img></li><li>Beginning of File <img src="../../../../../html/images/iconInfo.png" alt="Start with the beginning of the File to Tail. Do not ingest any data that has already been rolled over" title="Start with the beginning of the File to Tail. Do not ingest any data that has already been rolled over"></img></li><li>Current Time <img src="../../../../../html/images/iconInfo.png" alt="Start with the data at the end of the File to Tail. Do not ingest any data thas has already been rolled over or any data in the File to Tail that has already been written." title="Start with the data at the end of the File to Tail. Do not ingest any data thas has already been rolled over or any data in the File to Tail that has already been written."></img></li></ul></td><td id="description">When the Processor first begins to tail data, this property specifies where the Processor should begin re
 ading data. Once data has been ingested from a file, the Processor will continue from the last point from which it has received data.</td></tr><tr><td id="name"><strong>State Location</strong></td><td id="default-value">Local</td><td id="allowable-values"><ul><li>Local <img src="../../../../../html/images/iconInfo.png" alt="State is stored locally. Each node in a cluster will tail a different file." title="State is stored locally. Each node in a cluster will tail a different file."></img></li><li>Remote <img src="../../../../../html/images/iconInfo.png" alt="State is located on a remote resource. This Processor will store state across the cluster so that it can be run on Primary Node Only and a new Primary Node can pick up where the last one left off." title="State is located on a remote resource. This Processor will store state across the cluster so that it can be run on Primary Node Only and a new Primary Node can pick up where the last one left off."></img></li></ul></td><td id="
 description">Specifies where the state is located either local or cluster so that state can be stored appropriately in order to ensure that all data is consumed without duplicating data upon restart of NiFi</td></tr><tr><td id="name"><strong>Recursive lookup</strong></td><td id="default-value">false</td><td id="allowable-values"><ul><li>true</li><li>false</li></ul></td><td id="description">When using Multiple files mode, this property defines if files must be listed recursively or not in the base directory.</td></tr><tr><td id="name">Lookup frequency</td><td id="default-value">10 minutes</td><td id="allowable-values"></td><td id="description">Only used in Multiple files mode and Changing name rolling strategy. It specifies the minimum duration the processor will wait before listing again the files to tail.</td></tr><tr><td id="name">Maximum age</td><td id="default-value">24 hours</td><td id="allowable-values"></td><td id="description">Only used in Multiple files mode and Changing na
 me rolling strategy. It specifies the necessary minimum duration to consider that no new messages will be appended in a file regarding its last modification date. This should not be set too low to avoid duplication of data in case new messages are appended at a lower frequency.</td></tr></table><h3>Relationships: </h3><table id="relationships"><tr><th>Name</th><th>Description</th></tr><tr><td>success</td><td>All FlowFiles are routed to this Relationship.</td></tr></table><h3>Reads Attributes: </h3>None specified.<h3>Writes Attributes: </h3><table id="writes-attributes"><tr><th>Name</th><th>Description</th></tr><tr><td>tailfile.original.path</td><td>Path of the original file the flow file comes from.</td></tr></table><h3>State management: </h3><table id="stateful"><tr><th>Scope</th><th>Description</th></tr><tr><td>LOCAL, CLUSTER</td><td>Stores state about where in the Tailed File it left off so that on restart it does not have to duplicate data. State is stored either local or cluste
 red depend on the &lt;File Location&gt; property.</td></tr></table><h3>Restricted: </h3><table id="restrictions"><tr><th>Required Permission</th><th>Explanation</th></tr><tr><td>read filesystem</td><td>Provides operator the ability to read from any file that NiFi has access to.</td></tr></table><h3>Input requirement: </h3>This component does not allow an incoming relationship.<h3>System Resource Considerations:</h3>None specified.</body></html>
\ No newline at end of file

Added: nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.TransformXml/index.html
URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.TransformXml/index.html?rev=1836075&view=auto
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.TransformXml/index.html (added)
+++ nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.TransformXml/index.html Tue Jul 17 01:35:38 2018
@@ -0,0 +1 @@
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"></meta><title>TransformXml</title><link rel="stylesheet" href="../../../../../css/component-usage.css" type="text/css"></link></head><script type="text/javascript">window.onload = function(){if(self==top) { document.getElementById('nameHeader').style.display = "inherit"; } }</script><body><h1 id="nameHeader" style="display: none;">TransformXml</h1><h2>Description: </h2><p>Applies the provided XSLT file to the flowfile XML payload. A new FlowFile is created with transformed content and is routed to the 'success' relationship. If the XSL transform fails, the original FlowFile is routed to the 'failure' relationship</p><h3>Tags: </h3><p>xml, xslt, transform</p><h3>Properties: </h3><p>In the list below, the names of required properties appear in <strong>bold</strong>. Any other properties (not in bold) are considered optional. The table also indicates any default values, and whether a property supports the <a href="../../../../.
 ./html/expression-language-guide.html">NiFi Expression Language</a>.</p><table id="properties"><tr><th>Name</th><th>Default Value</th><th>Allowable Values</th><th>Description</th></tr><tr><td id="name"><strong>XSLT file name</strong></td><td id="default-value"></td><td id="allowable-values"></td><td id="description">Provides the name (including full path) of the XSLT file to apply to the flowfile XML content.<br/><strong>Supports Expression Language: true (will be evaluated using flow file attributes and variable registry)</strong></td></tr><tr><td id="name"><strong>Indent</strong></td><td id="default-value">true</td><td id="allowable-values"><ul><li>true</li><li>false</li></ul></td><td id="description">Whether or not to indent the output.</td></tr><tr><td id="name"><strong>Secure processing</strong></td><td id="default-value">true</td><td id="allowable-values"><ul><li>true</li><li>false</li></ul></td><td id="description">Whether or not to mitigate various XML-related attacks like X
 XE (XML External Entity) attacks.</td></tr><tr><td id="name"><strong>Cache size</strong></td><td id="default-value">10</td><td id="allowable-values"></td><td id="description">Maximum number of stylesheets to cache. Zero disables the cache.</td></tr><tr><td id="name"><strong>Cache TTL after last access</strong></td><td id="default-value">60 secs</td><td id="allowable-values"></td><td id="description">The cache TTL (time-to-live) or how long to keep stylesheets in the cache after last access.</td></tr></table><h3>Dynamic Properties: </h3><p>Dynamic Properties allow the user to specify both the name and value of a property.<table id="dynamic-properties"><tr><th>Name</th><th>Value</th><th>Description</th></tr><tr><td id="name">An XSLT transform parameter name</td><td id="value">An XSLT transform parameter value</td><td>These XSLT parameters are passed to the transformer<br/><strong>Supports Expression Language: true (will be evaluated using flow file attributes and variable registry)</s
 trong></td></tr></table></p><h3>Relationships: </h3><table id="relationships"><tr><th>Name</th><th>Description</th></tr><tr><td>success</td><td>The FlowFile with transformed content will be routed to this relationship</td></tr><tr><td>failure</td><td>If a FlowFile fails processing for any reason (for example, the FlowFile is not valid XML), it will be routed to this relationship</td></tr></table><h3>Reads Attributes: </h3>None specified.<h3>Writes Attributes: </h3>None specified.<h3>State management: </h3>This component does not store state.<h3>Restricted: </h3>This component is not restricted.<h3>Input requirement: </h3>This component requires an incoming relationship.<h3>System Resource Considerations:</h3>None specified.</body></html>
\ No newline at end of file

Added: nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.UnpackContent/index.html
URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.UnpackContent/index.html?rev=1836075&view=auto
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.UnpackContent/index.html (added)
+++ nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.UnpackContent/index.html Tue Jul 17 01:35:38 2018
@@ -0,0 +1 @@
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"></meta><title>UnpackContent</title><link rel="stylesheet" href="../../../../../css/component-usage.css" type="text/css"></link></head><script type="text/javascript">window.onload = function(){if(self==top) { document.getElementById('nameHeader').style.display = "inherit"; } }</script><body><h1 id="nameHeader" style="display: none;">UnpackContent</h1><h2>Description: </h2><p>Unpacks the content of FlowFiles that have been packaged with one of several different Packaging Formats, emitting one to many FlowFiles for each input FlowFile</p><h3>Tags: </h3><p>Unpack, un-merge, tar, zip, archive, flowfile-stream, flowfile-stream-v3</p><h3>Properties: </h3><p>In the list below, the names of required properties appear in <strong>bold</strong>. Any other properties (not in bold) are considered optional. The table also indicates any default values.</p><table id="properties"><tr><th>Name</th><th>Default Value</th><th>Allowable Values</th
 ><th>Description</th></tr><tr><td id="name"><strong>Packaging Format</strong></td><td id="default-value">use mime.type attribute</td><td id="allowable-values"><ul><li>use mime.type attribute</li><li>tar</li><li>zip</li><li>flowfile-stream-v3</li><li>flowfile-stream-v2</li><li>flowfile-tar-v1</li></ul></td><td id="description">The Packaging Format used to create the file</td></tr><tr><td id="name"><strong>File Filter</strong></td><td id="default-value">.*</td><td id="allowable-values"></td><td id="description">Only files contained in the archive whose names match the given regular expression will be extracted (tar/zip only)</td></tr></table><h3>Relationships: </h3><table id="relationships"><tr><th>Name</th><th>Description</th></tr><tr><td>success</td><td>Unpacked FlowFiles are sent to this relationship</td></tr><tr><td>failure</td><td>The original FlowFile is sent to this relationship when it cannot be unpacked for some reason</td></tr><tr><td>original</td><td>The original FlowFile i
 s sent to this relationship after it has been successfully unpacked</td></tr></table><h3>Reads Attributes: </h3><table id="reads-attributes"><tr><th>Name</th><th>Description</th></tr><tr><td>mime.type</td><td>If the &lt;Packaging Format&gt; property is set to use mime.type attribute, this attribute is used to determine the FlowFile's MIME Type. In this case, if the attribute is set to application/tar, the TAR Packaging Format will be used. If the attribute is set to application/zip, the ZIP Packaging Format will be used. If the attribute is set to application/flowfile-v3 or application/flowfile-v2 or application/flowfile-v1, the appropriate FlowFile Packaging Format will be used. If this attribute is missing, the FlowFile will be routed to 'failure'. Otherwise, if the attribute's value is not one of those mentioned above, the FlowFile will be routed to 'success' without being unpacked. Use the File Filter property only extract files matching a specific regular expression.</td></tr><
 /table><h3>Writes Attributes: </h3><table id="writes-attributes"><tr><th>Name</th><th>Description</th></tr><tr><td>mime.type</td><td>If the FlowFile is successfully unpacked, its MIME Type is no longer known, so the mime.type attribute is set to application/octet-stream.</td></tr><tr><td>fragment.identifier</td><td>All unpacked FlowFiles produced from the same parent FlowFile will have the same randomly generated UUID added for this attribute</td></tr><tr><td>fragment.index</td><td>A one-up number that indicates the ordering of the unpacked FlowFiles that were created from a single parent FlowFile</td></tr><tr><td>fragment.count</td><td>The number of unpacked FlowFiles generated from the parent FlowFile</td></tr><tr><td>segment.original.filename </td><td>The filename of the parent FlowFile. Extensions of .tar, .zip or .pkg are removed because the MergeContent processor automatically adds those extensions if it is used to rebuild the original FlowFile</td></tr></table><h3>State manag
 ement: </h3>This component does not store state.<h3>Restricted: </h3>This component is not restricted.<h3>Input requirement: </h3>This component requires an incoming relationship.<h3>System Resource Considerations:</h3>None specified.<h3>See Also:</h3><p><a href="../org.apache.nifi.processors.standard.MergeContent/index.html">MergeContent</a></p></body></html>
\ No newline at end of file

Added: nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.UpdateCounter/index.html
URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.UpdateCounter/index.html?rev=1836075&view=auto
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.UpdateCounter/index.html (added)
+++ nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.7.1/org.apache.nifi.processors.standard.UpdateCounter/index.html Tue Jul 17 01:35:38 2018
@@ -0,0 +1 @@
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"></meta><title>UpdateCounter</title><link rel="stylesheet" href="../../../../../css/component-usage.css" type="text/css"></link></head><script type="text/javascript">window.onload = function(){if(self==top) { document.getElementById('nameHeader').style.display = "inherit"; } }</script><body><h1 id="nameHeader" style="display: none;">UpdateCounter</h1><h2>Description: </h2><p>This processor allows users to set specific counters and key points in their flow. It is useful for debugging and basic counting functions.</p><h3>Tags: </h3><p>counter, debug, instrumentation</p><h3>Properties: </h3><p>In the list below, the names of required properties appear in <strong>bold</strong>. Any other properties (not in bold) are considered optional. The table also indicates any default values, and whether a property supports the <a href="../../../../../html/expression-language-guide.html">NiFi Expression Language</a>.</p><table id="properties
 "><tr><th>Name</th><th>Default Value</th><th>Allowable Values</th><th>Description</th></tr><tr><td id="name"><strong>Counter Name</strong></td><td id="default-value"></td><td id="allowable-values"></td><td id="description">The name of the counter you want to set the value off - supports expression language like ${counterName}<br/><strong>Supports Expression Language: true (will be evaluated using flow file attributes and variable registry)</strong></td></tr><tr><td id="name"><strong>Delta</strong></td><td id="default-value">1</td><td id="allowable-values"></td><td id="description">Adjusts the counter by the specified delta for each flow file received. May be a positive or negative integer.<br/><strong>Supports Expression Language: true (will be evaluated using flow file attributes and variable registry)</strong></td></tr></table><h3>Relationships: </h3><table id="relationships"><tr><th>Name</th><th>Description</th></tr><tr><td>success</td><td>Counter was updated/retrieved</td></tr><
 /table><h3>Reads Attributes: </h3><table id="reads-attributes"><tr><th>Name</th><th>Description</th></tr><tr><td>counterName</td><td>The name of the counter to update/get.</td></tr></table><h3>Writes Attributes: </h3>None specified.<h3>State management: </h3>This component does not store state.<h3>Restricted: </h3>This component is not restricted.<h3>Input requirement: </h3>This component requires an incoming relationship.<h3>System Resource Considerations:</h3>None specified.</body></html>
\ No newline at end of file