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 2019/02/22 01:03:50 UTC

svn commit: r1854109 [43/50] - in /nifi/site/trunk/docs/nifi-docs: ./ components/org.apache.nifi/nifi-ambari-nar/1.9.0/ components/org.apache.nifi/nifi-ambari-nar/1.9.0/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.9.0/org.apache.nifi.processors.standard.Wait/index.html
URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.9.0/org.apache.nifi.processors.standard.Wait/index.html?rev=1854109&view=auto
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.9.0/org.apache.nifi.processors.standard.Wait/index.html (added)
+++ nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.9.0/org.apache.nifi.processors.standard.Wait/index.html Fri Feb 22 01:03:44 2019
@@ -0,0 +1 @@
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"></meta><title>Wait</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;">Wait</h1><h2>Description: </h2><p>Routes incoming FlowFiles to the 'wait' relationship until a matching release signal is stored in the distributed cache from a corresponding Notify processor. When a matching release signal is identified, a waiting FlowFile is routed to the 'success' relationship, with attributes copied from the FlowFile that produced the release signal from the Notify processor.  The release signal entry is then removed from the cache. Waiting FlowFiles will be routed to 'expired' if they exceed the Expiration Duration. If you need to wait for more than one signal, specify the desired num
 ber of signals via the 'Target Signal Count' property. This is particularly useful with processors that split a source FlowFile into multiple fragments, such as SplitText. In order to wait for all fragments to be processed, connect the 'original' relationship to a Wait processor, and the 'splits' relationship to a corresponding Notify processor. Configure the Notify and Wait processors to use the '${fragment.identifier}' as the value of 'Release Signal Identifier', and specify '${fragment.count}' as the value of 'Target Signal Count' in the Wait processor.It is recommended to use a prioritizer (for instance First In First Out) when using the 'wait' relationship as a loop.</p><h3>Tags: </h3><p>map, cache, wait, hold, distributed, signal, release</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 su
 pports 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>Release Signal Identifier</strong></td><td id="default-value"></td><td id="allowable-values"></td><td id="description">A value, or the results of an Attribute Expression Language statement, which will be evaluated against a FlowFile in order to determine the release signal cache key<br/><strong>Supports Expression Language: true (will be evaluated using flow file attributes and variable registry)</strong></td></tr><tr><td id="name"><strong>Target Signal Count</strong></td><td id="default-value">1</td><td id="allowable-values"></td><td id="description">A value, or the results of an Attribute Expression Language statement, which will be evaluated against a FlowFile in order to determine the target signal count. This processor checks whether the s
 ignal count has reached this number. If Signal Counter Name is specified, this processor checks a particular counter, otherwise checks against total count in a signal.<br/><strong>Supports Expression Language: true (will be evaluated using flow file attributes and variable registry)</strong></td></tr><tr><td id="name">Signal Counter Name</td><td id="default-value"></td><td id="allowable-values"></td><td id="description">A value, or the results of an Attribute Expression Language statement, which will be evaluated against a FlowFile in order to determine the signal counter name. If not specified, this processor checks the total count in a signal.<br/><strong>Supports Expression Language: true (will be evaluated using flow file attributes and variable registry)</strong></td></tr><tr><td id="name"><strong>Wait Buffer Count</strong></td><td id="default-value">1</td><td id="allowable-values"></td><td id="description">Specify the maximum number of incoming FlowFiles that can be buffered t
 o check whether it can move forward. The more buffer can provide the better performance, as it reduces the number of interactions with cache service by grouping FlowFiles by signal identifier. Only a signal identifier can be processed at a processor execution.</td></tr><tr><td id="name"><strong>Releasable FlowFile Count</strong></td><td id="default-value">1</td><td id="allowable-values"></td><td id="description">A value, or the results of an Attribute Expression Language statement, which will be evaluated against a FlowFile in order to determine the releasable FlowFile count. This specifies how many FlowFiles can be released when a target count reaches target signal count. Zero (0) has a special meaning, any number of FlowFiles can be released as long as signal count matches target.<br/><strong>Supports Expression Language: true (will be evaluated using flow file attributes and variable registry)</strong></td></tr><tr><td id="name"><strong>Expiration Duration</strong></td><td id="de
 fault-value">10 min</td><td id="allowable-values"></td><td id="description">Indicates the duration after which waiting FlowFiles will be routed to the 'expired' relationship</td></tr><tr><td id="name"><strong>Distributed Cache Service</strong></td><td id="default-value"></td><td id="allowable-values"><strong>Controller Service API: </strong><br/>AtomicDistributedMapCacheClient<br/><strong>Implementations: </strong><a href="../../../nifi-distributed-cache-services-nar/1.9.0/org.apache.nifi.distributed.cache.client.DistributedMapCacheClientService/index.html">DistributedMapCacheClientService</a><br/><a href="../../../nifi-redis-nar/1.9.0/org.apache.nifi.redis.service.RedisDistributedMapCacheClientService/index.html">RedisDistributedMapCacheClientService</a><br/><a href="../../../nifi-couchbase-nar/1.9.0/org.apache.nifi.couchbase.CouchbaseMapCacheClient/index.html">CouchbaseMapCacheClient</a></td><td id="description">The Controller Service that is used to check for release signals from
  a corresponding Notify processor</td></tr><tr><td id="name"><strong>Attribute Copy Mode</strong></td><td id="default-value">keeporiginal</td><td id="allowable-values"><ul><li>Replace if present <img src="../../../../../html/images/iconInfo.png" alt="When cached attributes are copied onto released FlowFiles, they replace any matching attributes." title="When cached attributes are copied onto released FlowFiles, they replace any matching attributes."></img></li><li>Keep original <img src="../../../../../html/images/iconInfo.png" alt="Attributes on released FlowFiles are not overwritten by copied cached attributes." title="Attributes on released FlowFiles are not overwritten by copied cached attributes."></img></li></ul></td><td id="description">Specifies how to handle attributes copied from FlowFiles entering the Notify processor</td></tr><tr><td id="name"><strong>Wait Mode</strong></td><td id="default-value">wait</td><td id="allowable-values"><ul><li>Transfer to wait relationship <i
 mg src="../../../../../html/images/iconInfo.png" alt="Transfer a FlowFile to the 'wait' relationship when whose release signal has not been notified yet. This mode allows other incoming FlowFiles to be enqueued by moving FlowFiles into the wait relationship. It is recommended to set a prioritizer (for instance First In First Out) on the 'wait' relationship." title="Transfer a FlowFile to the 'wait' relationship when whose release signal has not been notified yet. This mode allows other incoming FlowFiles to be enqueued by moving FlowFiles into the wait relationship. It is recommended to set a prioritizer (for instance First In First Out) on the 'wait' relationship."></img></li><li>Keep in the upstream connection <img src="../../../../../html/images/iconInfo.png" alt="Transfer a FlowFile to the upstream connection where it comes from when whose release signal has not been notified yet. This mode helps keeping upstream connection being full so that the upstream source processor will n
 ot be scheduled while back-pressure is active and limit incoming FlowFiles. " title="Transfer a FlowFile to the upstream connection where it comes from when whose release signal has not been notified yet. This mode helps keeping upstream connection being full so that the upstream source processor will not be scheduled while back-pressure is active and limit incoming FlowFiles. "></img></li></ul></td><td id="description">Specifies how to handle a FlowFile waiting for a notify signal</td></tr></table><h3>Relationships: </h3><table id="relationships"><tr><th>Name</th><th>Description</th></tr><tr><td>expired</td><td>A FlowFile that has exceeded the configured Expiration Duration will be routed to this relationship</td></tr><tr><td>success</td><td>A FlowFile with a matching release signal in the cache will be routed to this relationship</td></tr><tr><td>wait</td><td>A FlowFile with no matching release signal in the cache will be routed to this relationship</td></tr><tr><td>failure</td><t
 d>When the cache cannot be reached, or if the Release Signal Identifier evaluates to null or empty, FlowFiles 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>wait.start.timestamp</td><td>All FlowFiles will have an attribute 'wait.start.timestamp', which sets the initial epoch timestamp when the file first entered this processor.  This is used to determine the expiration time of the FlowFile.  This attribute is not written when the FlowFile is transferred to failure or success</td></tr><tr><td>wait.counter.&lt;counterName&gt;</td><td>If a signal exists when the processor runs, each count value in the signal is copied.</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>Sy
 stem Resource Considerations:</h3>None specified.<h3>See Also:</h3><p><a href="../../../nifi-distributed-cache-services-nar/1.9.0/org.apache.nifi.distributed.cache.client.DistributedMapCacheClientService/index.html">DistributedMapCacheClientService</a>, <a href="../../../nifi-distributed-cache-services-nar/1.9.0/org.apache.nifi.distributed.cache.server.map.DistributedMapCacheServer/index.html">DistributedMapCacheServer</a>, <a href="../org.apache.nifi.processors.standard.Notify/index.html">Notify</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.9.0/org.apache.nifi.reporting.ganglia.StandardGangliaReporter/additionalDetails.html
URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.9.0/org.apache.nifi.reporting.ganglia.StandardGangliaReporter/additionalDetails.html?rev=1854109&view=auto
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.9.0/org.apache.nifi.reporting.ganglia.StandardGangliaReporter/additionalDetails.html (added)
+++ nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.9.0/org.apache.nifi.reporting.ganglia.StandardGangliaReporter/additionalDetails.html Fri Feb 22 01:03:44 2019
@@ -0,0 +1,41 @@
+<!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>StandardGangliaReporter</title>
+        <link rel="stylesheet" href="../../../../../css/component-usage.css" type="text/css" />
+    </head>
+
+    <body>
+        <h2>Description:</h2>
+
+        <p>Reporting Task that reports metrics to a Ganglia server. The following metrics are reported:
+        </p>
+
+        <ul>
+            <li><strong>FlowFiles In (5 mins)</strong>: The number of FlowFiles received via Site-to-Site in the last 5 minutes</li>
+            <li><strong>Bytes In (5 mins)</strong>: The number of bytes received via Site-to-Site in the last 5 minutes</li>
+            <li><strong>FlowFiles Out (5 mins)</strong>: The number of FlowFiles pulled from Output Ports via Site-to-Site in the last 5 minutes</li>
+            <li><strong>Bytes Out (5 mins)</strong>: The number of bytes pulled from Output Ports via Site-to-Site in the last 5 minutes</li>
+            <li><strong>Bytes Read (5 mins)</strong>: The number of bytes read from disk by NiFi in the last 5 minutes</li>
+            <li><strong>Bytes Written (5 mins)</strong>: The number of bytes written to disk by NiFi in the last 5 minutes</li>
+            <li><strong>FlowFiles Queued</strong>: The total number of FlowFiles currently queued on the system at the point in time at which the Reporting Task is run</li>
+            <li><strong>Bytes Queued</strong>: The total number of bytes allocated by the FlowFiles that are currently queued on the system at the point in time at which the Reporting Task is run</li>
+            <li><strong>Active Threads</strong>: The number of threads actively running at the point in time at which the Reporting Task is run</li>
+        </ul>
+    </body>
+</html>

Added: nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.9.0/org.apache.nifi.reporting.ganglia.StandardGangliaReporter/index.html
URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.9.0/org.apache.nifi.reporting.ganglia.StandardGangliaReporter/index.html?rev=1854109&view=auto
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.9.0/org.apache.nifi.reporting.ganglia.StandardGangliaReporter/index.html (added)
+++ nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.9.0/org.apache.nifi.reporting.ganglia.StandardGangliaReporter/index.html Fri Feb 22 01:03:44 2019
@@ -0,0 +1 @@
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"></meta><title>StandardGangliaReporter</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;">StandardGangliaReporter</h1><h2>Description: </h2><p>Reports metrics to Ganglia so that Ganglia can be used for external monitoring of the application. Metrics reported include JVM Metrics (optional); the following 5-minute NiFi statistics: FlowFiles Received, Bytes Received, FlowFiles Sent, Bytes Sent, Bytes Read, Bytes Written, Total Task Duration; and the current values for FlowFiles Queued, Bytes Queued, and number of Active Threads.</p><p><a href="additionalDetails.html">Additional Details...</a></p><h3>Tags: </h3><p>ganglia, stats</p><h3>Properties: </h3><p>In the list below, the n
 ames 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>Hostname</strong></td><td id="default-value">localhost</td><td id="allowable-values"></td><td id="description">The fully-qualified name of the host on which Ganglia is running</td></tr><tr><td id="name"><strong>Port</strong></td><td id="default-value">8649</td><td id="allowable-values"></td><td id="description">The Port on which Ganglia is listening for incoming connections</td></tr><tr><td id="name"><strong>Send JVM Metrics</strong></td><td id="default-value">false</td><td id="allowable-values"><ul><li>true</li><li>false</li></ul></td><td id="description">Specifies whether or not JVM Metrics should be gathered and sent, in addition to NiFi-specific metrics</td></tr></table><h3>Sta
 te management: </h3>This component does not store state.<h3>Restricted: </h3>This component is not restricted.<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-stateful-analysis-nar/1.9.0/org.apache.nifi.processors.stateful.analysis.AttributeRollingWindow/index.html
URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-stateful-analysis-nar/1.9.0/org.apache.nifi.processors.stateful.analysis.AttributeRollingWindow/index.html?rev=1854109&view=auto
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-stateful-analysis-nar/1.9.0/org.apache.nifi.processors.stateful.analysis.AttributeRollingWindow/index.html (added)
+++ nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-stateful-analysis-nar/1.9.0/org.apache.nifi.processors.stateful.analysis.AttributeRollingWindow/index.html Fri Feb 22 01:03:44 2019
@@ -0,0 +1 @@
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"></meta><title>AttributeRollingWindow</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;">AttributeRollingWindow</h1><h2>Description: </h2><p>Track a Rolling Window based on evaluating an Expression Language expression on each FlowFile and add that value to the processor's state. Each FlowFile will be emitted with the count of FlowFiles and total aggregate value of values processed in the current time window.</p><h3>Tags: </h3><p>Attribute Expression Language, state, data science, rolling, window</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 a
 lso 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>Value to track</strong></td><td id="default-value"></td><td id="allowable-values"></td><td id="description">The expression on which to evaluate each FlowFile. The result of the expression will be added to the rolling window value.<br/><strong>Supports Expression Language: true (will be evaluated using flow file attributes and variable registry)</strong></td></tr><tr><td id="name"><strong>Time window</strong></td><td id="default-value"></td><td id="allowable-values"></td><td id="description">The time window on which to calculate the rolling window.</td></tr><tr><td id="name">Sub-window length</td><td id="default-value"></td><td id="allowable-values"></td><td id="description">When set, va
 lues will be batched into sub-windows of the set length. This allows for much larger length total windows to be set but sacrifices some precision. If this is not set (or is 0) then each value is stored in state with the timestamp of when it was received. After the length of time stated in Time window elaspes the value will be removed. If this is set, values will be batched together every X amount of time (where X is the time period set for this property) and removed all at once.</td></tr></table><h3>Relationships: </h3><table id="relationships"><tr><th>Name</th><th>Description</th></tr><tr><td>set state fail</td><td>When state fails to save when processing a FlowFile, the FlowFile is routed here.</td></tr><tr><td>success</td><td>All FlowFiles are successfully processed are routed here</td></tr><tr><td>failure</td><td>When a FlowFile fails for a reason other than failing to set state it is routed here.</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>rolling_window_value</td><td>The rolling window value (sum of all the values stored).</td></tr><tr><td>rolling_window_count</td><td>The count of the number of FlowFiles seen in the rolling window.</td></tr><tr><td>rolling_window_mean</td><td>The mean of the FlowFiles seen in the rolling window.</td></tr></table><h3>State management: </h3><table id="stateful"><tr><th>Scope</th><th>Description</th></tr><tr><td>LOCAL</td><td>Store the values backing the rolling window. This includes storing the individual values and their time-stamps or the batches of values and their counts.</td></tr></table><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-tcp-nar/1.9.0/org.apache.nifi.processors.gettcp.GetTCP/index.html
URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-tcp-nar/1.9.0/org.apache.nifi.processors.gettcp.GetTCP/index.html?rev=1854109&view=auto
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-tcp-nar/1.9.0/org.apache.nifi.processors.gettcp.GetTCP/index.html (added)
+++ nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-tcp-nar/1.9.0/org.apache.nifi.processors.gettcp.GetTCP/index.html Fri Feb 22 01:03:44 2019
@@ -0,0 +1 @@
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"></meta><title>GetTCP</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;">GetTCP</h1><h2>Description: </h2><p>Connects over TCP to the provided endpoint(s). Received data will be written as content to the FlowFile</p><h3>Tags: </h3><p>get, fetch, poll, tcp, ingest, source, input</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>Endpoint List</strong></td><td id="default-valu
 e"></td><td id="allowable-values"></td><td id="description">A comma delimited list of the endpoints to connect to. The format should be &lt;server_address&gt;:&lt;port&gt;. Only one server will be connected to at a time, the others will be used as fail overs.</td></tr><tr><td id="name"><strong>Connection Attempt Count</strong></td><td id="default-value">3</td><td id="allowable-values"></td><td id="description">The number of times to try and establish a connection, before using a backup host if available. This same attempt count would be used for a backup host as well.</td></tr><tr><td id="name"><strong>Reconnect interval</strong></td><td id="default-value">5 sec</td><td id="allowable-values"></td><td id="description">The number of seconds to wait before attempting to reconnect to the endpoint.</td></tr><tr><td id="name">Receive Buffer Size</td><td id="default-value">16MB</td><td id="allowable-values"></td><td id="description">The size of the buffer to receive data in. Default 16384 
 (16MB).</td></tr><tr><td id="name"><strong>End of message delimiter byte</strong></td><td id="default-value">13</td><td id="allowable-values"></td><td id="description">Byte value which denotes end of message. Must be specified as integer within the valid byte range (-128 thru 127). For example, '13' = Carriage return and '10' = New line. Default '13'.</td></tr></table><h3>Relationships: </h3><table id="relationships"><tr><th>Name</th><th>Description</th></tr><tr><td>Partial</td><td>The relationship that all incomplete messages from the endpoint will be sent to. Incomplete message is the message that doesn't end with 'End of message delimiter byte'. This can happen when 'Receive Buffer Size' is smaller then the incoming message. If that happens that the subsequent message that completes the previous incomplete message will also end up in this relationship, after which subsequent 'complete' messages will go to 'success'.</td></tr><tr><td>Success</td><td>The relationship that all suces
 sful messages from the endpoint will be sent to.</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>source.endpoint</td><td>The address of the source endpoint the message came from</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 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-update-attribute-nar/1.9.0/org.apache.nifi.processors.attributes.UpdateAttribute/additionalDetails.html
URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-update-attribute-nar/1.9.0/org.apache.nifi.processors.attributes.UpdateAttribute/additionalDetails.html?rev=1854109&view=auto
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-update-attribute-nar/1.9.0/org.apache.nifi.processors.attributes.UpdateAttribute/additionalDetails.html (added)
+++ nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-update-attribute-nar/1.9.0/org.apache.nifi.processors.attributes.UpdateAttribute/additionalDetails.html Fri Feb 22 01:03:44 2019
@@ -0,0 +1,396 @@
+<!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>UpdateAttribute</title>
+
+        <link rel="stylesheet" href="../../../../../css/component-usage.css" type="text/css" />
+    </head>
+
+    <body>
+        <!-- Processor Documentation ================================================== -->
+        <h2>Description:</h2>
+        <p>
+            This processor updates the attributes of a FlowFile using properties or rules that are added by the user. 
+            There are three ways to use this processor to add or modify attributes. One way is the "Basic Usage"; this allows you to set default attribute changes that affect
+            every FlowFile going through the processor. The second way is the "Advanced Usage"; this allows you to make conditional attribute changes that only affect a FlowFile if it 
+            meets certain conditions. It is possible to use both methods in the same processor at the same time.  The third way is the "Delete Attributes Expression"; this allows you to
+            provide a regular expression and any attributes with a matching name will be deleted.
+        </p>
+
+        <p>
+            Please note that "Delete Attributes Expression" supersedes any updates that occur. If an existing attribute matches the "Delete Attributes Expression", it will be removed whether it
+            was updated or not.  That said, the "Delete Attributes Expression" only applies to attributes that exist in the input FlowFile, if it is added by this processor, the "Delete Attributes Expression"
+            will not detect it.
+        </p>
+
+        <p>
+            <strong>Properties:</strong>
+        </p>
+        <p>
+            The properties in this processor are added by the user. The expression language is supported in user-added
+            properties for this processor. See the NiFi Expression Language Guide to learn how to formulate proper expression language statements to perform the desired functions.
+        </p>
+
+        <p>
+            If an Attribute is added with the name <strong>alternate.identifier</strong> and that attribute's value is a URI, an ADD_INFO Provenance Event will be registered,
+            correlating the FlowFile with the given alternate identifier.
+        </p>
+
+        <p>
+            <strong>Relationships:</strong>
+        </p>
+        <ul>
+            <li>success
+                <ul>
+                    <li>If the processor successfully updates the specified attribute(s), then the FlowFile follows this relationship.</li>
+                </ul>
+            </li>
+            <li>set state fail
+                <ul>
+                    <li>If the processor is running statefully, and fails to set the state after adding attributes to the FlowFile, then the FlowFile will be routed to this relationship.</li>
+                </ul>
+            </li>
+        </ul>
+
+        <p>
+            <strong>Basic Usage</strong>
+        </p>
+
+        <p>
+            For basic usage, changes are made by adding a new processor property and referencing as its name the attribute you want to change. Then enter the desired attribute 
+            value as the Value. The Value can be as simple as any text string or it can be a NiFi Expression Language statement that specifies how to formulate the value. 
+            (See the NiFi Expression Language Usage Guide for details on crafting NiFi Expression Language statements.)
+        </p>
+
+        <p>
+            As an example, to alter the standard "filename" attribute so that it has ".txt" appended to the end of it, add a new property and make the property 
+            name "filename" (to reference the desired attribute), and as the value, use the NiFi Expression Language statement shown below:
+        </p>
+
+        <ul>
+            <li><strong>Property</strong>: filename
+            </li>
+            <li><strong>Value</strong>: ${filename}.txt
+            </li>
+        </ul>
+
+        <p>
+            The preceding example illustrates how to modify an existing attribute. If an attribute does not already exist, this processor can also be used to add a new attribute. 
+            For example, the following property could be added to create a new attribute called myAttribute that has the value myValue:
+        </p>
+
+        <ul>
+            <li><strong>Property</strong>: myAttribute
+            </li>
+            <li><strong>Value</strong>: myValue
+            </li>
+        </ul>
+
+        <p>
+            In this example, all FlowFiles passing through this processor will receive an additional FlowFile attribute called myAttribute with the value myValue. 
+            This type of configuration might be used in a flow where you want to tag every FlowFile with an attribute so that it can be used later in the flow, 
+            such as for routing in a RouteOnAttribute processor.
+        </p>
+
+        <p><strong>Advanced Usage</strong>
+        </p>
+
+        <p>
+            The preceding examples illustrate how to make changes to every FlowFile that goes through the processor.  However, the UpdateAttribute processor 
+            may also be used to make conditional changes. 
+        </p>
+
+        <p>
+            To change attributes based on some condition, use the Advanced User Interface (UI) in the processor by clicking the <strong>Advanced</strong> button in the lower right corner.
+        </p>
+
+        <p>
+            Clicking the Advanced button displays the Advanced UI. In the Advanced UI, Conditions and their associated Actions are entered as "Rules".  
+            Each rule basically says, "If these conditions are met, then do this action." One or more conditions may be used in a given rule, 
+            and they all must be met in order for the designated action(s) to be taken. 
+        </p>
+
+        <p><strong>Adding Rules</strong>
+        </p>
+
+        <p>
+            To add rules and their associated conditions and actions, click on the buttons with the plus symbol located to the right of the "Rules", "Conditions", and "Actions" labels.
+        </p>
+
+        <p>
+            Upon adding a rule with its condition(s) and action(s), it is important to save it by clicking the <strong>Save</strong> button in the lower right corner.  
+            If you do not do so and attempt to add or navigate to another rule, an error message will appear, asking you if you want to save your changes.
+        </p>
+
+        <p><strong>Example Rules</strong>
+        </p>
+
+        <p>
+            This example has two rules: CheckForLargeFiles and CheckForGiantFiles. The CheckForLargeFiles rule has these conditions:
+        </p>
+
+        <ul>
+            <li>${filename:equals('fileOfInterest')}
+            </li>
+            <li>${fileSize:toNumber():ge(1048576)}
+            </li>
+            <li>${fileSize:toNumber():lt(1073741824)}
+            </li>
+        </ul>
+
+        <p>
+            Then it has this action for the filename attribute:
+        </p>
+        <ul>
+            <li>${filename}.meg
+            </li>
+        </ul>
+
+        <p>
+            Taken together, this rule says:
+        </p>
+        <ul>
+            <li>If the value of the filename attribute is fileOfInterest, <strong>and</strong>
+            </li>
+            <li>If the fileSize is greater than or equal to (ge) one megabyte (1,048,576 bytes), <strong>and</strong>
+            </li>
+            <li>If the fileSize is less than (lt) one gigabyte (1,073,741,824 bytes)
+            </li>
+            <li>Then change the value of the filename attribute by appending ".meg" to the filename.
+            </li>
+        </ul>
+
+        <p><strong>Adding another Rule</strong>
+        </p>
+
+        <p>
+            Continuing with this example, we can add another rule to check for files that are larger than one gigabyte. When we add this second rule, we can use the 
+            previous rule as a template, so to speak, by taking advantage of the "Copy from existing rule" option in the New Rule window. Simply start typing the name of 
+            an existing rule, and it will show up in a dropdown menu below the entry field.
+        </p>
+
+        <p>
+            In this example, the CheckForGiantFiles rule has these conditions:
+        </p>
+
+        <ul>
+            <li>${filename:equals('fileOfInterest')}
+            </li>
+            <li>${fileSize:toNumber():gt(1073741824)}
+            </li>
+        </ul>
+
+        <p>
+            Then it has this action for the filename attribute:
+        </p>
+
+        <ul>
+            <li>${filename}.gig
+            </li>
+        </ul>
+
+        <p>
+            Taken together, this rule says:
+        </p>
+        <ul>
+            <li>If the value of the filename attribute is fileOfInterest, <strong>and</strong>
+            </li>
+            <li>If the fileSize is greater than (gt) one gigabyte (1,073,741,824 bytes)
+            </li>
+            <li>Then change the value of the filename attribute by appending ".gig" to the filename.
+            </li>
+        </ul>
+
+        <p><strong>Combining the Basic Usage with the Advanced Usage</strong>
+        </p>
+
+        <p>
+            The UpdateAttribute processor allows you to make both basic usage changes (i.e., to every FlowFile) and advanced usage changes (i.e., conditional) 
+            at the same time; however, if they both affect the same attribute(s), then the conditional changes take precedence. This has the added benefit of supporting 
+            a type of "else" construct. In other words, if none of the rules match for the attribute, then the basic usage changes will be made.
+        </p>
+
+        <p><strong>Deleting Attributes</strong></p>
+
+        <p>
+            Deleting attributes is a simple as providing a regular expression for attribute names to be deleted.  This can be a simple regular expression that will
+            match a single attribute or more complex regular expression to match a group of similarly named attributes or even several individual attribute names.
+        </p>
+        <ul>
+            <li><strong>lastUser</strong> - will delete an attribute with the name "lastUser".
+            </li>
+            <li><strong>user.*</strong> - will delete attributes beginning with "user", including for example "username, "userName", "userID", and "users".  But
+                it will not delete "User" or "localuser".
+            </li>
+            <li><strong>(user.*|host.*|.*Date)</strong> - will delete "user", "username", "userName", "hostInfo", "hosts", and "updateDate", but not "User", "HOST", "update", or "updatedate".
+            </li>
+        </ul>
+
+        <p>
+            The delete attributes function does not produce a Provenance Event if the <strong>alternate.identified</strong> Attribute is deleted.
+        </p>
+
+        <p><strong>FlowFile Policy</strong>
+        </p>
+
+        <p>
+            Another setting in the Advanced UI is the FlowFile Policy. It is located in the upper-left corner of the UI, and it defines the processor's behavior when multiple rules 
+            match. It may be changed using the dropdown menu. By default, the FlowFile Policy is set to "use clone".
+        </p>
+
+        <p>
+            If the FlowFile policy is set to "use clone", and multiple rules match, then a copy of the incoming FlowFile is created, such that the number of outgoing FlowFiles 
+            is equal to the number of rules that match. In other words, if two rules (A and B) both match, then there will be two outgoing FlowFiles, one for Rule A and one for Rule B.  
+            This can be useful in situations where you want to add an attribute to use as a flag for routing later. In this example, there will be two copies of the file available, 
+            one to route for the A path, and one to route for the B path. 
+        </p>
+
+        <p>
+            If the FlowFile policy is set to "use original", then all matching rules are applied to the same incoming FlowFile, and there is only one outgoing FlowFile with all the 
+            attribute changes applied. In this case, the order of the rules matters and the action for each rule that matches will be applied in that order. If multiple rules contain
+            actions that update the same attribute, the action from the last matching rule will take precedence. Notably, you can drag and drop the rules into a certain order within 
+            the Rules list.
+        </p>
+
+        <p><strong>Filtering Rules</strong>
+        </p>
+
+        <p>
+            The Advanced UI supports the creation of an arbitrarily large number of rules.  In order to manage large rule sets, the listing of rules may be filtered using the 
+            Filter mechanism in the lower left corner. Rules may be filtered by any text in the name, condition, or action.
+        </p>
+
+        <p><strong>Closing the Advanced UI</strong>
+        </p>
+
+        <p>
+            Once all changes have been saved in the Advanced UI, the UI can be closed using the X in the top right corner.
+        </p>
+
+        <p>
+            <strong>Stateful Usage</strong>
+        </p>
+
+        <p>
+            By selecting "store state locally" option for the "Store State" property UpdateAttribute will not only store the evaluated properties as attributes of the FlowFile but
+            also as stateful variables to be referenced in a recursive fashion. This enables the processor to calculate things like the sum or count of incoming FlowFiles. A dynamic property can be
+            referenced as a stateful variable like so:
+        </p>
+
+            <ul>
+                <li>Dynamic Property
+                    <ul>
+                        <li>key : theCount</li>
+                        <li>value : ${getStateValue("theCount"):plus(1)}</li>
+                    </ul>
+                </li>
+            </ul>
+
+        <p>
+            This example will keep a count of the total number of FlowFiles that have passed through the processor. To use logic on top of State, simply use the "Advanced Usage" of UpdateAttribute.
+            All Actions will be stored as stateful attributes as well as being added to FlowFiles. Using the "Advanced Usage" it is possible to keep track of things like a maximum value of the
+            flow so far. This would be done by having a condition of "${getStateValue("maxValue"):lt(${value})}" and an action of attribute:"maxValue", value:"${value}".
+
+            The "Stateful Variables Initial Value" property is used to initialize the stateful variables and is required to be set if running statefully. Some logic rules will require a very high initial value, like using the Advanced rules to
+            determine the minimum value.
+
+            If stateful properties reference other stateful properties then the value for the other stateful properties will be an iteration behind. For example, attempting to calculate the
+            average of the incoming stream requires the sum and count. If all three properties are set in the same UpdateAttribute (like below) then the Average will always not include the most
+            recent values of count and sum:
+
+        </p>
+        <ul>
+            <li>Count
+                <ul>
+                    <li>key : theCount</li>
+                    <li>value : ${getStateValue("theCount"):plus(1)}</li>
+                </ul>
+            </li>
+
+            <li>Sum
+                <ul>
+                    <li>key : theSum</li>
+                    <li>value : ${getStateValue("theSum"):plus(${flowfileValue})}</li>
+                </ul>
+            </li>
+
+            <li>Average
+                <ul>
+                    <li>key : theAverage</li>
+                    <li>value : ${getStateValue("theSum"):divide(getStateValue("theCount"))}</li>
+                </ul>
+            </li>
+        </ul>
+        <p>
+            Instead, since average only relies on theCount and theSum attributes (which are added to the FlowFile as well) there should be a following Stateless UpdateAttribute which properly
+            calculates the average.
+
+            In the event that the processor is unable to get the state at the beginning of the onTrigger, the FlowFile will be pushed back to the originating relationship and the processor will yield.
+            If the processor is able to get the state at the beginning of the onTrigger but unable to set the state after adding attributes to the FlowFile, the FlowFile will be transferred to
+            "set state fail". This is normally due to the state not being the most up to date version (another thread has replaced the state with another version). In most use-cases this relationship
+            should loop back to the processor since the only affected attributes will be overwritten.
+
+            Note: Currently the only "stateful" option is to store state locally. This is done because the current implementation of clustered state relies on Zookeeper and Zookeeper isn't designed
+            for the type of load/throughput UpdateAttribute with state would demand. In the future, if/when multiple different clustered state options are added, UpdateAttribute will be updated.
+        </p>
+
+        <p>
+            <strong>Combining the Advanced Usage with Stateful</strong>
+        </p>
+
+        <p>
+            The UpdateAttribute processor allows you to use both advanced usage changes (i.e., conditional) in addition to storing the values in state at the same time. This allows UpdateAttribute to
+            act as a stateful rules engine to enable powerful concepts such as a Finite-State machine or keeping track of a min/max value.
+
+            Working with both is relatively simple, when the processor would normally update an attribute on the processor (ie. it matches a conditional rule) the same update is stored to state.
+            Referencing state via the advanced tab is done in the same way too, using "getStateValue".
+
+            Note: In the event the "use clone" policy is set and the state is failed to set, no clones will be generated and only the original FlowFile will be transferred to "set state fail".
+        </p>
+
+        <p>
+            <strong>Notes about Concurrency and Stateful Usage</strong></p>
+        <p>
+            When using the stateful option, concurrent tasks should be used with caution. If every incoming FlowFile will update state then it will be much more efficient to have only one
+            task. This is because the first thing the onTrigger does is get the state and the last thing it does is store the state if there are an updates. If it does not have the most up to date
+            initial state when it goes to update it will fail and send the FlowFile to "set state fail". This is done so that the update is successful when it was done with the most recent information.
+            If it didn't do it in this mock-atomic way, there'd be no guarantee that the state is accurate.
+
+            When considering Concurrency, the use-cases generally fall into one of three categories:
+        </p>
+        <ul>
+            <li>A data stream where each FlowFile updates state ex. updating a counter
+            </li>
+
+            <li>A data stream where a FlowFile doesn't always update state ex. a Finite-State machine
+            </li>
+
+            <li>A data stream that doesn't update state, and a second "control" stream that one updates every time but is rare compared to the data stream ex. a trigger
+            </li>
+        </ul>
+        <p>
+            The first and last cases are relatively clear-cut in their guidance. For the first, concurrency should not be used. Doing so will just waste CPU and any benefits of concurrency will be wiped
+            due to misses in state. For the last case, it can easily be done using concurrency. Since updates are rare in the first place it will be even more rare that two updates are processed at
+            the same time that cause problems.
+
+            The second case is a bit of a grey area. If updates are rare then concurrency can probably be used. If updates are frequent then concurrency would probably cause more problems than benefits.
+            Regardless, testing to determine the appropriate tuning is the only true answer.
+        </p>
+
+    </body>
+</html>

Added: nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-update-attribute-nar/1.9.0/org.apache.nifi.processors.attributes.UpdateAttribute/index.html
URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-update-attribute-nar/1.9.0/org.apache.nifi.processors.attributes.UpdateAttribute/index.html?rev=1854109&view=auto
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-update-attribute-nar/1.9.0/org.apache.nifi.processors.attributes.UpdateAttribute/index.html (added)
+++ nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-update-attribute-nar/1.9.0/org.apache.nifi.processors.attributes.UpdateAttribute/index.html Fri Feb 22 01:03:44 2019
@@ -0,0 +1 @@
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"></meta><title>UpdateAttribute</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;">UpdateAttribute</h1><h2>Description: </h2><p>Updates the Attributes for a FlowFile by using the Attribute Expression Language and/or deletes the attributes based on a regular expression</p><p><a href="additionalDetails.html">Additional Details...</a></p><h3>Tags: </h3><p>attributes, modification, update, delete, Attribute Expression Language, state</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 th
 e <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">Delete Attributes Expression</td><td id="default-value"></td><td id="allowable-values"></td><td id="description">Regular expression for attributes to be deleted from FlowFiles.  Existing attributes that match will be deleted regardless of whether they are updated by this processor.<br/><strong>Supports Expression Language: true (will be evaluated using flow file attributes and variable registry)</strong></td></tr><tr><td id="name"><strong>Store State</strong></td><td id="default-value">Do not store state</td><td id="allowable-values"><ul><li>Do not store state</li><li>Store state locally</li></ul></td><td id="description">Select whether or not state will be stored. Selecting 'Stateless' will offer the default functionality of purely updating the attributes on a
  FlowFile in a stateless manner. Selecting a stateful option will not only store the attributes on the FlowFile but also in the Processors state. See the 'Stateful Usage' topic of the 'Additional Details' section of this processor's documentation for more information</td></tr><tr><td id="name">Stateful Variables Initial Value</td><td id="default-value"></td><td id="allowable-values"></td><td id="description">If using state to set/reference variables then this value is used to set the initial value of the stateful variable. This will only be used in the @OnScheduled method when state does not contain a value for the variable. This is required if running statefully but can be empty if needed.</td></tr><tr><td id="name"><strong>Cache Value Lookup Cache Size</strong></td><td id="default-value">100</td><td id="allowable-values"></td><td id="description">Specifies how many canonical lookup values should be stored in the cache</td></tr></table><h3>Dynamic Properties: </h3><p>Dynamic Proper
 ties 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">A FlowFile attribute to update</td><td id="value">The value to set it to</td><td>Updates a FlowFile attribute specified by the Dynamic Property's key with the value specified by the Dynamic Property's value<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>success</td><td>All successful 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>See additional details</td><td>This processor may write or remove zero or more attributes as described in additional details</td><
 /tr></table><h3>State management: </h3><table id="stateful"><tr><th>Scope</th><th>Description</th></tr><tr><td>LOCAL</td><td>Gives the option to store values not only on the FlowFile but as stateful variables to be referenced in a recursive manner.</td></tr></table><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-websocket-processors-nar/1.9.0/org.apache.nifi.processors.websocket.ConnectWebSocket/index.html
URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-websocket-processors-nar/1.9.0/org.apache.nifi.processors.websocket.ConnectWebSocket/index.html?rev=1854109&view=auto
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-websocket-processors-nar/1.9.0/org.apache.nifi.processors.websocket.ConnectWebSocket/index.html (added)
+++ nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-websocket-processors-nar/1.9.0/org.apache.nifi.processors.websocket.ConnectWebSocket/index.html Fri Feb 22 01:03:44 2019
@@ -0,0 +1 @@
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"></meta><title>ConnectWebSocket</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;">ConnectWebSocket</h1><h2>Description: </h2><p>Acts as a WebSocket client endpoint to interact with a remote WebSocket server. FlowFiles are transferred to downstream relationships according to received message types as WebSocket client configured with this processor receives messages from remote WebSocket server.</p><h3>Tags: </h3><p>subscribe, WebSocket, consume, listen</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>WebSocket Client ControllerService</strong></td><td id="default-value"></td><td id="allowable-values"><strong>Controller Service API: </strong><br/>WebSocketClientService<br/><strong>Implementation: </strong><a href="../../../nifi-websocket-services-jetty-nar/1.9.0/org.apache.nifi.websocket.jetty.JettyWebSocketClient/index.html">JettyWebSocketClient</a></td><td id="description">A WebSocket CLIENT Controller Service which can connect to a WebSocket server.</td></tr><tr><td id="name"><strong>WebSocket Client Id</strong></td><td id="default-value"></td><td id="allowable-values"></td><td id="description">The client ID to identify WebSocket session. It should be unique within the WebSocket Client Controller Service. Otherwise, it throws WebSocketConfigurationException when it gets started.</td></tr></table><h3>Relationships: </h3><table id="relationships"><tr
 ><th>Name</th><th>Description</th></tr><tr><td>text message</td><td>The WebSocket text message output</td></tr><tr><td>binary message</td><td>The WebSocket binary message output</td></tr><tr><td>connected</td><td>The WebSocket session is established</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>websocket.controller.service.id</td><td>WebSocket Controller Service id.</td></tr><tr><td>websocket.session.id</td><td>Established WebSocket session id.</td></tr><tr><td>websocket.endpoint.id</td><td>WebSocket endpoint id.</td></tr><tr><td>websocket.local.address</td><td>WebSocket client address.</td></tr><tr><td>websocket.remote.address</td><td>WebSocket server address.</td></tr><tr><td>websocket.message.type</td><td>TEXT or BINARY.</td></tr></table><h3>State management: </h3>This component does not store state.<h3>Restricted: </h3>This component is not restricted.<h3>Inpu
 t 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-websocket-processors-nar/1.9.0/org.apache.nifi.processors.websocket.ListenWebSocket/index.html
URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-websocket-processors-nar/1.9.0/org.apache.nifi.processors.websocket.ListenWebSocket/index.html?rev=1854109&view=auto
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-websocket-processors-nar/1.9.0/org.apache.nifi.processors.websocket.ListenWebSocket/index.html (added)
+++ nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-websocket-processors-nar/1.9.0/org.apache.nifi.processors.websocket.ListenWebSocket/index.html Fri Feb 22 01:03:44 2019
@@ -0,0 +1 @@
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"></meta><title>ListenWebSocket</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;">ListenWebSocket</h1><h2>Description: </h2><p>Acts as a WebSocket server endpoint to accept client connections. FlowFiles are transferred to downstream relationships according to received message types as the WebSocket server configured with this processor receives client requests</p><h3>Tags: </h3><p>subscribe, WebSocket, consume, listen</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>WebSocket Server ControllerService</strong></td><td id="default-value"></td><td id="allowable-values"><strong>Controller Service API: </strong><br/>WebSocketServerService<br/><strong>Implementation: </strong><a href="../../../nifi-websocket-services-jetty-nar/1.9.0/org.apache.nifi.websocket.jetty.JettyWebSocketServer/index.html">JettyWebSocketServer</a></td><td id="description">A WebSocket SERVER Controller Service which can accept WebSocket requests.</td></tr><tr><td id="name"><strong>Server URL Path</strong></td><td id="default-value"></td><td id="allowable-values"></td><td id="description">The WetSocket URL Path on which this processor listens to. Must starts with '/', e.g. '/example'.</td></tr></table><h3>Relationships: </h3><table id="relationships"><tr><th>Name</th><th>Description</th></tr><tr><td>text message</td><td>The WebSocket text message output</td></tr><tr><td>binary message
 </td><td>The WebSocket binary message output</td></tr><tr><td>connected</td><td>The WebSocket session is established</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>websocket.controller.service.id</td><td>WebSocket Controller Service id.</td></tr><tr><td>websocket.session.id</td><td>Established WebSocket session id.</td></tr><tr><td>websocket.endpoint.id</td><td>WebSocket endpoint id.</td></tr><tr><td>websocket.local.address</td><td>WebSocket server address.</td></tr><tr><td>websocket.remote.address</td><td>WebSocket client address.</td></tr><tr><td>websocket.message.type</td><td>TEXT or BINARY.</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 does not allow an incoming relationship.<h3>System Resource Considerations:</h3>None specified.</b
 ody></html>
\ No newline at end of file

Added: nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-websocket-processors-nar/1.9.0/org.apache.nifi.processors.websocket.PutWebSocket/index.html
URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-websocket-processors-nar/1.9.0/org.apache.nifi.processors.websocket.PutWebSocket/index.html?rev=1854109&view=auto
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-websocket-processors-nar/1.9.0/org.apache.nifi.processors.websocket.PutWebSocket/index.html (added)
+++ nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-websocket-processors-nar/1.9.0/org.apache.nifi.processors.websocket.PutWebSocket/index.html Fri Feb 22 01:03:44 2019
@@ -0,0 +1 @@
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"></meta><title>PutWebSocket</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;">PutWebSocket</h1><h2>Description: </h2><p>Sends messages to a WebSocket remote endpoint using a WebSocket session that is established by either ListenWebSocket or ConnectWebSocket.</p><h3>Tags: </h3><p>WebSocket, publish, send</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>WebSocket Session Id</strong></td><td id="default-value">${websocket.session.id}</td><td id="allowable-values"></td><td id="description">A NiFi Expression to retrieve the session id. If not specified, a message will be sent to all connected WebSocket peers for the WebSocket controller service endpoint.<br/><strong>Supports Expression Language: true (will be evaluated using flow file attributes and variable registry)</strong></td></tr><tr><td id="name"><strong>WebSocket ControllerService Id</strong></td><td id="default-value">${websocket.controller.service.id}</td><td id="allowable-values"></td><td id="description">A NiFi Expression to retrieve the id of a WebSocket ControllerService.<br/><strong>Supports Expression Language: true (will be evaluated using flow file attributes and variable registry)</strong></td></tr><tr><td id="name"><strong>WebSocket Endpoint Id</strong></td><t
 d id="default-value">${websocket.endpoint.id}</td><td id="allowable-values"></td><td id="description">A NiFi Expression to retrieve the endpoint id of a WebSocket ControllerService.<br/><strong>Supports Expression Language: true (will be evaluated using flow file attributes and variable registry)</strong></td></tr><tr><td id="name"><strong>WebSocket Message Type</strong></td><td id="default-value">TEXT</td><td id="allowable-values"></td><td id="description">The type of message content: TEXT or BINARY<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>FlowFiles that are sent successfully to the destination are transferred to this relationship.</td></tr><tr><td>failure</td><td>FlowFiles that failed to send to the destination are transferred to this relationship.</td></tr></table><h
 3>Reads Attributes: </h3>None specified.<h3>Writes Attributes: </h3><table id="writes-attributes"><tr><th>Name</th><th>Description</th></tr><tr><td>websocket.controller.service.id</td><td>WebSocket Controller Service id.</td></tr><tr><td>websocket.session.id</td><td>Established WebSocket session id.</td></tr><tr><td>websocket.endpoint.id</td><td>WebSocket endpoint id.</td></tr><tr><td>websocket.message.type</td><td>TEXT or BINARY.</td></tr><tr><td>websocket.local.address</td><td>WebSocket server address.</td></tr><tr><td>websocket.remote.address</td><td>WebSocket client address.</td></tr><tr><td>websocket.failure.detail</td><td>Detail of the failure.</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></t
 r><tr><td>MEMORY</td><td>An instance of this component can cause high usage of this system resource.  Multiple instances or high concurrency settings may result a degradation of performance.</td></tr></table></body></html>
\ No newline at end of file

Added: nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-websocket-services-jetty-nar/1.9.0/org.apache.nifi.websocket.jetty.JettyWebSocketClient/index.html
URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-websocket-services-jetty-nar/1.9.0/org.apache.nifi.websocket.jetty.JettyWebSocketClient/index.html?rev=1854109&view=auto
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-websocket-services-jetty-nar/1.9.0/org.apache.nifi.websocket.jetty.JettyWebSocketClient/index.html (added)
+++ nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-websocket-services-jetty-nar/1.9.0/org.apache.nifi.websocket.jetty.JettyWebSocketClient/index.html Fri Feb 22 01:03:44 2019
@@ -0,0 +1 @@
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"></meta><title>JettyWebSocketClient</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;">JettyWebSocketClient</h1><h2>Description: </h2><p>Implementation of WebSocketClientService. This service uses Jetty WebSocket client module to provide WebSocket session management throughout the application.</p><h3>Tags: </h3><p>WebSocket, Jetty, client</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, whether a property supports the <a href="../../../../../html/expression-language-guide.html">NiFi Expression Language</a>, and
  whether a property is considered "sensitive", meaning that its value will be encrypted. Before entering a value in a sensitive property, ensure that the <strong>nifi.properties</strong> file has an entry for the property <strong>nifi.sensitive.props.key</strong>.</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>Input Buffer Size</strong></td><td id="default-value">4 kb</td><td id="allowable-values"></td><td id="description">The size of the input (read from network layer) buffer size.</td></tr><tr><td id="name"><strong>Max Text Message Size</strong></td><td id="default-value">64 kb</td><td id="allowable-values"></td><td id="description">The maximum size of a text message during parsing/generating.</td></tr><tr><td id="name"><strong>Max Binary Message Size</strong></td><td id="default-value">64 kb</td><td id="allowable-values"></td><td id="description">The maximum size of a binary message duri
 ng parsing/generating.</td></tr><tr><td id="name"><strong>WebSocket URI</strong></td><td id="default-value"></td><td id="allowable-values"></td><td id="description">The WebSocket URI this client connects to.<br/><strong>Supports Expression Language: true (will be evaluated using variable registry only)</strong></td></tr><tr><td id="name">SSL Context Service</td><td id="default-value"></td><td id="allowable-values"><strong>Controller Service API: </strong><br/>RestrictedSSLContextService<br/><strong>Implementation: </strong><a href="../../../nifi-ssl-context-service-nar/1.9.0/org.apache.nifi.ssl.StandardRestrictedSSLContextService/index.html">StandardRestrictedSSLContextService</a></td><td id="description">The SSL Context Service to use in order to secure the server. If specified, the server will accept only WSS requests; otherwise, the server will accept only WS requests</td></tr><tr><td id="name"><strong>Connection Timeout</strong></td><td id="default-value">3 sec</td><td id="allow
 able-values"></td><td id="description">The timeout to connect the WebSocket URI.<br/><strong>Supports Expression Language: true (will be evaluated using variable registry only)</strong></td></tr><tr><td id="name"><strong>Session Maintenance Interval</strong></td><td id="default-value">10 sec</td><td id="allowable-values"></td><td id="description">The interval between session maintenance activities. A WebSocket session established with a WebSocket server can be terminated due to different reasons including restarting the WebSocket server or timing out inactive sessions. This session maintenance activity is periodically executed in order to reconnect those lost sessions, so that a WebSocket client can reuse the same session id transparently after it reconnects successfully.  The maintenance activity is executed until corresponding processors or this controller service is stopped.<br/><strong>Supports Expression Language: true (will be evaluated using variable registry only)</strong></
 td></tr><tr><td id="name">User Name</td><td id="default-value"></td><td id="allowable-values"></td><td id="description">The user name for Basic Authentication.<br/><strong>Supports Expression Language: true (will be evaluated using variable registry only)</strong></td></tr><tr><td id="name">User Password</td><td id="default-value"></td><td id="allowable-values"></td><td id="description">The user password for Basic Authentication.<br/><strong>Sensitive Property: true</strong><br/><strong>Supports Expression Language: true (will be evaluated using variable registry only)</strong></td></tr><tr><td id="name"><strong>Authentication Header Charset</strong></td><td id="default-value">US-ASCII</td><td id="allowable-values"></td><td id="description">The charset for Basic Authentication header base64 string.<br/><strong>Supports Expression Language: true (will be evaluated using variable registry only)</strong></td></tr></table><h3>State management: </h3>This component does not store state.<h
 3>Restricted: </h3>This component is not restricted.<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-websocket-services-jetty-nar/1.9.0/org.apache.nifi.websocket.jetty.JettyWebSocketServer/index.html
URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-websocket-services-jetty-nar/1.9.0/org.apache.nifi.websocket.jetty.JettyWebSocketServer/index.html?rev=1854109&view=auto
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-websocket-services-jetty-nar/1.9.0/org.apache.nifi.websocket.jetty.JettyWebSocketServer/index.html (added)
+++ nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-websocket-services-jetty-nar/1.9.0/org.apache.nifi.websocket.jetty.JettyWebSocketServer/index.html Fri Feb 22 01:03:44 2019
@@ -0,0 +1 @@
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"></meta><title>JettyWebSocketServer</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;">JettyWebSocketServer</h1><h2>Description: </h2><p>Implementation of WebSocketServerService. This service uses Jetty WebSocket server module to provide WebSocket session management throughout the application.</p><h3>Tags: </h3><p>WebSocket, Jetty, server</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>Input Buffer Size</strong></td><td id="default-value">4 kb</td><td id="allowable-values"></td><td id="description">The size of the input (read from network layer) buffer size.</td></tr><tr><td id="name"><strong>Max Text Message Size</strong></td><td id="default-value">64 kb</td><td id="allowable-values"></td><td id="description">The maximum size of a text message during parsing/generating.</td></tr><tr><td id="name"><strong>Max Binary Message Size</strong></td><td id="default-value">64 kb</td><td id="allowable-values"></td><td id="description">The maximum size of a binary message during parsing/generating.</td></tr><tr><td id="name"><strong>Listen Port</strong></td><td id="default-value"></td><td id="allowable-values"></td><td id="description">The port number on which this WebSocketServer listens to.<br/><strong>Supports Expression Language: t
 rue (will be evaluated using variable registry only)</strong></td></tr><tr><td id="name">SSL Context Service</td><td id="default-value"></td><td id="allowable-values"><strong>Controller Service API: </strong><br/>RestrictedSSLContextService<br/><strong>Implementation: </strong><a href="../../../nifi-ssl-context-service-nar/1.9.0/org.apache.nifi.ssl.StandardRestrictedSSLContextService/index.html">StandardRestrictedSSLContextService</a></td><td id="description">The SSL Context Service to use in order to secure the server. If specified, the server will accept only WSS requests; otherwise, the server will accept only WS requests</td></tr><tr><td id="name"><strong>SSL Client Authentication</strong></td><td id="default-value">no</td><td id="allowable-values"><ul><li>No Authentication <img src="../../../../../html/images/iconInfo.png" alt="Processor will not authenticate clients. Anyone can communicate with this Processor anonymously" title="Processor will not authenticate clients. Anyone 
 can communicate with this Processor anonymously"></img></li><li>Want Authentication <img src="../../../../../html/images/iconInfo.png" alt="Processor will try to verify the client but if unable to verify will allow the client to communicate anonymously" title="Processor will try to verify the client but if unable to verify will allow the client to communicate anonymously"></img></li><li>Need Authentication <img src="../../../../../html/images/iconInfo.png" alt="Processor will reject communications from any client unless the client provides a certificate that is trusted by the TrustStore specified in the SSL Context Service" title="Processor will reject communications from any client unless the client provides a certificate that is trusted by the TrustStore specified in the SSL Context Service"></img></li></ul></td><td id="description">Specifies whether or not the Processor should authenticate client by its certificate. This value is ignored if the &lt;SSL Context Service&gt; Propert
 y is not specified or the SSL Context provided uses only a KeyStore and not a TrustStore.</td></tr><tr><td id="name"><strong>Enable Basic Authentication</strong></td><td id="default-value">false</td><td id="allowable-values"><ul><li>true</li><li>false</li></ul></td><td id="description">If enabled, client connection requests are authenticated with Basic authentication using the specified Login Provider.</td></tr><tr><td id="name">Basic Authentication Path Spec</td><td id="default-value">/*</td><td id="allowable-values"></td><td id="description">Specify a Path Spec to apply Basic Authentication.<br/><strong>Supports Expression Language: true (will be evaluated using variable registry only)</strong></td></tr><tr><td id="name">Basic Authentication Roles</td><td id="default-value">**</td><td id="allowable-values"></td><td id="description">The authenticated user must have one of specified role. Multiple roles can be set as comma separated string. '*' represents any role and so does '**' a
 ny role including no role.<br/><strong>Supports Expression Language: true (will be evaluated using variable registry only)</strong></td></tr><tr><td id="name">Login Service</td><td id="default-value">hash</td><td id="allowable-values"><ul><li>HashLoginService <img src="../../../../../html/images/iconInfo.png" alt="See http://www.eclipse.org/jetty/javadoc/current/org/eclipse/jetty/security/HashLoginService.html for detail." title="See http://www.eclipse.org/jetty/javadoc/current/org/eclipse/jetty/security/HashLoginService.html for detail."></img></li></ul></td><td id="description">Specify which Login Service to use for Basic Authentication.</td></tr><tr><td id="name">Users Properties File</td><td id="default-value"></td><td id="allowable-values"></td><td id="description">Specify a property file containing users for Basic Authentication using HashLoginService. See http://www.eclipse.org/jetty/documentation/current/configuring-security.html for detail.<br/><strong>Supports Expression L
 anguage: true (will be evaluated using variable registry only)</strong></td></tr></table><h3>State management: </h3>This component does not store state.<h3>Restricted: </h3>This component is not restricted.<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-windows-event-log-nar/1.9.0/org.apache.nifi.processors.windows.event.log.ConsumeWindowsEventLog/additionalDetails.html
URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-windows-event-log-nar/1.9.0/org.apache.nifi.processors.windows.event.log.ConsumeWindowsEventLog/additionalDetails.html?rev=1854109&view=auto
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-windows-event-log-nar/1.9.0/org.apache.nifi.processors.windows.event.log.ConsumeWindowsEventLog/additionalDetails.html (added)
+++ nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-windows-event-log-nar/1.9.0/org.apache.nifi.processors.windows.event.log.ConsumeWindowsEventLog/additionalDetails.html Fri Feb 22 01:03:44 2019
@@ -0,0 +1,74 @@
+<!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>ParseEvtx</title>
+
+        <link rel="stylesheet" href="../../../../../css/component-usage.css" type="text/css" />
+    </head>
+
+    <body>
+        <!-- Processor Documentation ================================================== -->
+        <h2>Description:</h2>
+        <p>This processor is used listen to Windows Event Log events. It has a success output that will contain an XML representation of the event.
+         </p>
+         <h2>Output XML Example:</h2>
+         <p>
+             <pre>
+&lt;Event xmlns=&quot;http://schemas.microsoft.com/win/2004/08/events/event&quot;&gt;
+  &lt;System&gt;
+    &lt;Provider Name=&quot;Service Control Manager&quot; Guid=&quot;{555908d1-a6d7-4695-8e1e-26931d2012f4}&quot; EventSourceName=&quot;Service Control Manager&quot;/&gt;
+    &lt;EventID Qualifiers=&quot;16384&quot;&gt;7036&lt;/EventID&gt;
+    &lt;Version&gt;0&lt;/Version&gt;
+    &lt;Level&gt;4&lt;/Level&gt;
+    &lt;Task&gt;0&lt;/Task&gt;
+    &lt;Opcode&gt;0&lt;/Opcode&gt;
+    &lt;Keywords&gt;0x8080000000000000&lt;/Keywords&gt;
+    &lt;TimeCreated SystemTime=&quot;2016-06-10T22:28:53.905233700Z&quot;/&gt;
+    &lt;EventRecordID&gt;34153&lt;/EventRecordID&gt;
+    &lt;Correlation/&gt;
+    &lt;Execution ProcessID=&quot;684&quot; ThreadID=&quot;3504&quot;/&gt;
+    &lt;Channel&gt;System&lt;/Channel&gt;
+    &lt;Computer&gt;WIN-O05CNUCF16M.hdf.local&lt;/Computer&gt;
+    &lt;Security/&gt;
+  &lt;/System&gt;
+  &lt;EventData&gt;
+    &lt;Data Name=&quot;param1&quot;&gt;Smart Card Device Enumeration Service&lt;/Data&gt;
+    &lt;Data Name=&quot;param2&quot;&gt;running&lt;/Data&gt;
+    &lt;Binary&gt;5300630044006500760069006300650045006E0075006D002F0034000000&lt;/Binary&gt;
+  &lt;/EventData&gt;
+&lt;/Event&gt;
+             </pre>
+        </p>
+        <h2>Permissions:</h2>
+        <p>
+            Your Windows User must have permissions to read the given Event Log.  This can be achieved through the following steps (Windows 2008 and newer):
+            <ol>
+                <li>Open a command prompt as your user.  Enter the command: wmic useraccount get name,sid</li>
+                <li>Note the SID of the user or group you'd like to allow to read a given channel</li>
+                <li>Open a command prompt as Administrator.  enter the command: wevtutil gl CHANNEL_NAME</li>
+                <li>Take the channelAccess Attribute starting with O:BAG, copy it into a text editor, and add (A;;0x1;;;YOUR_SID_FROM_BEFORE) to the end</li>
+                <li>Take that text and run the following command in your admin prompt (see below for example): wevtutil sl CHANNEL_NAME /ca:TEXT_FROM_PREVIOUS_STEP</li>
+            </ol>
+
+            <p>The following command is the exact one I used to add read access to the Security log for my user. (You can see all the possible channels with: wevtutil el):</p>
+            <p>wevtutil sl Security /ca:O:BAG:SYD:(A;;0xf0005;;;SY)(A;;0x5;;;BA)(A;;0x1;;;S-1-5-32-573)(A;;0x1;;;S-1-5-21-3589080292-3448680409-2446571098-1001)</p>
+
+            <p>These steps were adapted from <a href="https://blogs.technet.microsoft.com/janelewis/2010/04/30/giving-non-administrators-permission-to-read-event-logs-windows-2003-and-windows-2008/">this guide.</a></p>
+        </p>
+</body>
+</html>