Added: 
nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-stateful-analysis-nar/1.2.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.2.0/org.apache.nifi.processors.stateful.analysis.AttributeRollingWindow/index.html?rev=1794596&view=auto
==============================================================================
--- 
nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-stateful-analysis-nar/1.2.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.2.0/org.apache.nifi.processors.stateful.analysis.AttributeRollingWindow/index.html
 Tue May  9 15:27:39 2017
@@ -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</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, values 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.</body></html>
\ No newline at end of file

Added: 
nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-tcp-nar/1.2.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.2.0/org.apache.nifi.processors.gettcp.GetTCP/index.html?rev=1794596&view=auto
==============================================================================
--- 
nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-tcp-nar/1.2.0/org.apache.nifi.processors.gettcp.GetTCP/index.html
 (added)
+++ 
nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-tcp-nar/1.2.0/org.apache.nifi.processors.gettcp.GetTCP/index.html
 Tue May  9 15:27:39 2017
@@ -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.</body></html>
\ No newline at end of file

Added: 
nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-update-attribute-nar/1.2.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.2.0/org.apache.nifi.processors.attributes.UpdateAttribute/additionalDetails.html?rev=1794596&view=auto
==============================================================================
--- 
nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-update-attribute-nar/1.2.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.2.0/org.apache.nifi.processors.attributes.UpdateAttribute/additionalDetails.html
 Tue May  9 15:27:39 2017
@@ -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.2.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.2.0/org.apache.nifi.processors.attributes.UpdateAttribute/index.html?rev=1794596&view=auto
==============================================================================
--- 
nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-update-attribute-nar/1.2.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.2.0/org.apache.nifi.processors.attributes.UpdateAttribute/index.html
 Tue May  9 15:27:39 2017
@@ -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</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></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">A FlowFile attribute to update</td><td id="value">The value to set 
it to</td><td>Updates a FlowFile attribute specified by the Dy
 namic Property's key with the value specified by the Dynamic Property's 
value<br/><strong>Supports Expression Language: 
true</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.</body></html>
\ No newline at end of file

Added: 
nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-websocket-processors-nar/1.2.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.2.0/org.apache.nifi.processors.websocket.ConnectWebSocket/index.html?rev=1794596&view=auto
==============================================================================
--- 
nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-websocket-processors-nar/1.2.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.2.0/org.apache.nifi.processors.websocket.ConnectWebSocket/index.html
 Tue May  9 15:27:39 2017
@@ -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><br/><a
 
href="../../../nifi-websocket-services-jetty-nar/1.2.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.</bo
 dy></html>
\ No newline at end of file

Added: 
nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-websocket-processors-nar/1.2.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.2.0/org.apache.nifi.processors.websocket.ListenWebSocket/index.html?rev=1794596&view=auto
==============================================================================
--- 
nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-websocket-processors-nar/1.2.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.2.0/org.apache.nifi.processors.websocket.ListenWebSocket/index.html
 Tue May  9 15:27:39 2017
@@ -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><br/><a
 
href="../../../nifi-websocket-services-jetty-nar/1.2.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 mes
 sage</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.</body></html>
\ No newline at end of file

Added: 
nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-websocket-processors-nar/1.2.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.2.0/org.apache.nifi.processors.websocket.PutWebSocket/index.html?rev=1794596&view=auto
==============================================================================
--- 
nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-websocket-processors-nar/1.2.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.2.0/org.apache.nifi.processors.websocket.PutWebSocket/index.html
 Tue May  9 15:27:39 2017
@@ -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</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</strong></td></tr><tr><td id="name"><strong>WebSocket Endpoint 
Id</strong></td><td id="default-value">${websocket.endpoint.id}</td><td 
id="allowable-values"></td><td id="description">A NiFi Expression to retrieve 
the en
 dpoint id of a WebSocket ControllerService.<br/><strong>Supports Expression 
Language: true</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</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><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>Establish
 ed 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.</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.2.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.2.0/org.apache.nifi.websocket.jetty.JettyWebSocketClient/index.html?rev=1794596&view=auto
==============================================================================
--- 
nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-websocket-services-jetty-nar/1.2.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.2.0/org.apache.nifi.websocket.jetty.JettyWebSocketClient/index.html
 Tue May  9 15:27:39 2017
@@ -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, 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>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</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/>SSLContextService<br/><strong>Implementation:</strong><br/><a 
href="../../../nifi-ssl-context-service-nar/1.2.0/org.apache.nifi.ssl.StandardSSLContextService/index.html">StandardSSLContextService</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="allowable-values"></td><td id="description">The timeout to connect the 
WebSocket URI.<br/><strong>Supports Expression Language: 
true</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 
maintenanc
 e 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</strong></td></tr></table><h3>State management: </h3>This component does 
not store state.<h3>Restricted: </h3>This component is not 
restricted.</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.2.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.2.0/org.apache.nifi.websocket.jetty.JettyWebSocketServer/index.html?rev=1794596&view=auto
==============================================================================
--- 
nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-websocket-services-jetty-nar/1.2.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.2.0/org.apache.nifi.websocket.jetty.JettyWebSocketServer/index.html
 Tue May  9 15:27:39 2017
@@ -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</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/>SSLContextService<br/><strong>Implementation:</strong><br/><a 
href="../../../nifi-ssl-context-service-nar/1.2.0/org.apache.nifi.ssl.StandardSSLContextService/index.html">StandardSSLContextService</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>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 Authentica
 tion <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 TrustStorespecified in the SSL Context Service" title="Processor 
will reject communications from any client unless the client provides a 
certificate that is trusted by the TrustStorespecified in the SSL Context 
Service"></img></li></ul></td><td id="description">Specifies whether or not the 
Processor should authenticate clients. This value is ignored if the &lt;SSL 
Context Service&gt; Property is not specified or the SSL Context provided uses 
only a KeyStore and not a TrustStore.</td></tr>
 </table><h3>State management: </h3>This component does not store 
state.<h3>Restricted: </h3>This component is not restricted.</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.2.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.2.0/org.apache.nifi.processors.windows.event.log.ConsumeWindowsEventLog/additionalDetails.html?rev=1794596&view=auto
==============================================================================
--- 
nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-windows-event-log-nar/1.2.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.2.0/org.apache.nifi.processors.windows.event.log.ConsumeWindowsEventLog/additionalDetails.html
 Tue May  9 15:27:39 2017
@@ -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>

Added: 
nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-windows-event-log-nar/1.2.0/org.apache.nifi.processors.windows.event.log.ConsumeWindowsEventLog/index.html
URL: 
http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-windows-event-log-nar/1.2.0/org.apache.nifi.processors.windows.event.log.ConsumeWindowsEventLog/index.html?rev=1794596&view=auto
==============================================================================
--- 
nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-windows-event-log-nar/1.2.0/org.apache.nifi.processors.windows.event.log.ConsumeWindowsEventLog/index.html
 (added)
+++ 
nifi/site/trunk/docs/nifi-docs/components/org.apache.nifi/nifi-windows-event-log-nar/1.2.0/org.apache.nifi.processors.windows.event.log.ConsumeWindowsEventLog/index.html
 Tue May  9 15:27:39 2017
@@ -0,0 +1 @@
+<!DOCTYPE html><html lang="en"><head><meta 
charset="utf-8"></meta><title>ConsumeWindowsEventLog</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;">ConsumeWindowsEventLog</h1><h2>Description: </h2><p>Registers a Windows 
Event Log Subscribe Callback to receive FlowFiles from Events on Windows.  
These can be filtered via channel and XPath.</p><p><a 
href="additionalDetails.html">Additional Details...</a></p><h3>Tags: 
</h3><p>ingest, event, windows</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>Allowabl
 e Values</th><th>Description</th></tr><tr><td 
id="name"><strong>Channel</strong></td><td id="default-value">System</td><td 
id="allowable-values"></td><td id="description">The Windows Event Log Channel 
to listen to.</td></tr><tr><td id="name"><strong>XPath Query</strong></td><td 
id="default-value">*</td><td id="allowable-values"></td><td 
id="description">XPath Query to filter events. (See 
https://msdn.microsoft.com/en-us/library/windows/desktop/dd996910(v=vs.85).aspx 
for examples.)</td></tr><tr><td id="name"><strong>Maximum Buffer 
Size</strong></td><td id="default-value">1048576</td><td 
id="allowable-values"></td><td id="description">The individual Event Log XMLs 
are rendered to a buffer.  This specifies the maximum size in bytes that the 
buffer will be allowed to grow to. (Limiting the maximum size of an individual 
Event XML.)</td></tr><tr><td id="name"><strong>Maximum queue 
size</strong></td><td id="default-value">1024</td><td 
id="allowable-values"></td><td id="description">Events 
 are received asynchronously and must be output as FlowFiles when the processor 
is triggered.  This specifies the maximum number of events to queue for 
transformation into FlowFiles.</td></tr></table><h3>Relationships: </h3><table 
id="relationships"><tr><th>Name</th><th>Description</th></tr><tr><td>success</td><td>Relationship
 for successfully consumed events.</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>Will
 set a MIME type value of application/xml.</td></tr></table><h3>State 
management: </h3>This component does not store state.<h3>Restricted: </h3>This 
component is not restricted.</body></html>
\ No newline at end of file

Added: nifi/site/trunk/docs/nifi-docs/css/component-usage.css
URL: 
http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/css/component-usage.css?rev=1794596&view=auto
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/css/component-usage.css (added)
+++ nifi/site/trunk/docs/nifi-docs/css/component-usage.css Tue May  9 15:27:39 
2017
@@ -0,0 +1,177 @@
+/*
+ * 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.
+ */
+
+@import 
"https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic|Noto+Serif:400,400italic,700,700italic|Droid+Sans+Mono:400";
+
+html, html a {
+    -webkit-font-smoothing: antialiased;
+    text-shadow: 1px 1px 1px rgba(0,0,0,0.004);
+}
+
+body {
+    margin: 0 auto;
+    display: block;
+    font-family: "Open Sans","DejaVu Sans",sans-serif;
+}
+
+.title {
+    font-weight: bold;
+    color: #7a2518;
+    font-size: 18px;
+}
+
+.hidden {
+    display: none;
+}
+
+/* tables */
+
+table {
+       color:#666;
+       font-size:14px;
+       background:#eaebec;     
+       border:#ccc 1px solid;
+       -webkit-border-radius:3px;
+       border-radius:3px;
+       width: 100%;
+}
+
+table th {
+       padding:11px 15px 12px 15px;
+       border-top:1px solid #fafafa;
+       border-bottom:1px solid #e0e0e0;
+
+       background: #ededed;
+}
+
+table th:first-child {
+       text-align: left;
+       padding-left:10px;
+}
+
+table th:last-child {
+       text-align: left;
+       padding-left:10px;
+}
+
+table tr:first-child th:first-child {
+       border-top-left-radius:3px;
+}
+
+table tr:first-child th:last-child {
+       border-top-right-radius:3px;
+}
+
+table tr {
+       text-align: center;
+       padding-left:10px;
+}
+
+table td:first-child {
+       text-align: left;
+       padding-left:10px;
+       border-left: 0;
+}
+
+table td:last-child {
+       text-align: left;
+       padding-left:10px;
+       border-left: 0;
+       vertical-align: top;
+       
+}
+
+table td {
+       padding:12px;
+       background: #fafafa;
+}
+
+table tr:last-child td {
+       border-bottom:0;
+}
+
+table tr:last-child td:first-child {
+       border-bottom-left-radius:3px;
+}
+
+table tr:last-child td:last-child {
+       border-bottom-right-radius:3px;
+}
+
+td#allowable-values, td#default-value, td#name, td#value {
+}
+
+/* links */
+
+a, a:link, a:visited {
+    cursor: pointer;
+    color: #2156a5;
+    text-decoration: none;
+    border: none;
+}
+
+a:hover, a:active {
+    color: #2156a5;
+    text-decoration: none;
+    border: none;
+}
+
+.clear {
+    clear: both;
+}
+
+/* p */
+
+p {
+    font-family: 'Noto Serif', 'DejaVu Serif', serif;
+    font-size: 16px;
+}
+
+p strong {
+    font-weight: bold;
+}
+
+/* ul li */
+td ul {
+       margin: 0px 0px 0px 0px;
+       padding-left: 20px;
+}
+ul li {
+       text-align: left;
+       display: list-item;    
+}
+
+ul li strong {
+    font-weight: bold;
+}
+
+h2 {
+    font-weight: normal;
+    color: #ba3925;
+}
+
+/* pre */
+
+pre {
+    font-size: 14px;
+    background-color: #fefefe;
+    border: 1px solid #ccc;
+    border-left: 6px solid #ccc;
+    color: #555;
+    margin-bottom: 10px;
+    padding: 5px 8px;
+}
\ No newline at end of file

Added: nifi/site/trunk/docs/nifi-docs/css/main.css
URL: 
http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/css/main.css?rev=1794596&view=auto
==============================================================================
--- nifi/site/trunk/docs/nifi-docs/css/main.css (added)
+++ nifi/site/trunk/docs/nifi-docs/css/main.css Tue May  9 15:27:39 2017
@@ -0,0 +1,216 @@
+/*
+ * 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.
+ */
+* {
+    margin: 0;
+    padding: 0;
+}
+
+#documentation-body {
+    width: 100%;
+    position: absolute;
+    top: 0;
+    right: 0;
+    bottom: 0;
+    left: 0;
+}
+
+/* banners */
+
+div.main-banner-header {
+    display: none;
+    font-weight: bold;
+    font-size: 1em;
+    text-align: center;
+    line-height: 15px;
+    color: #7e7e7e;
+    margin: 0px auto;
+    width: 100%;
+    height: 1em;
+    background-color: #fff;
+    background-image: url(../images/bgHeader.png);
+    background-position: center;
+    background-repeat: no-repeat;
+}
+
+div.main-banner-footer {
+    display: none;
+    color: #fff;
+    text-align: center;
+    font-weight: bold;
+    font-size: 1em;
+    overflow: visible;
+    background-color: #9eb9c7;
+    background-image: url(../images/bgBannerFoot.png);
+    background-repeat: repeat-x;
+    background-position: left top;
+}
+
+/* documentation */
+
+div.documentation-header {
+    border-bottom: 1px solid #d1dee5;
+    color: #365c6a;
+    font-size: 13px;
+    display: flex;
+}
+
+#component-list-toggle-link {
+    padding: 4px;
+    font-size: 14px;
+    font-weight: bold;
+    color: #264c58;
+    cursor: pointer;
+    width: 12px;
+    text-align: center;
+    align-self: flex-end;
+}
+
+#header-contents {
+    display: flex;
+    flex-wrap: wrap;
+}
+
+#nf-title {
+    font-size: 20px;
+    margin: 5px 5px 0px 5px;
+}
+
+#nf-version {
+    font-size: 14px;
+    margin: 11px 5px 0px 5px;
+    flex-grow: 1;
+}
+
+.version {
+    font-style: italic;
+    color: #aaa;
+}
+
+#selected-component {
+    font-size: 20px;
+    margin: 5px 5px 0px 5px;
+}
+
+/* content flex-box containers */
+
+#component-root-container {
+    display: flex;
+    flex-wrap: wrap;
+    align-items: stretch;
+    width: 100%;
+}
+
+#component-listing-container {
+    flex-grow: 1;
+    min-width: 312px;
+    padding: 0px 4px 0px 4px;
+}
+
+#component-usage-container {
+    flex-grow: 4;
+    min-width: 300px;
+    padding: 0px 4px 0px 4px;
+}
+
+/* component listing */
+
+div.component-listing {
+    overflow: auto;
+    font-size: 16px;
+}
+
+div.component-listing div.section {
+    margin-bottom: 15px;
+}
+
+div.component-listing div.header {
+    font-weight: bold;
+    color: #264c58;
+}
+
+div.component-links ul {
+    list-style: none;
+}
+
+li.component-item {
+    padding: 2px;
+    padding-left: 4px;
+    border-left: 8px solid transparent;
+    font-family: "Open Sans","DejaVu Sans",sans-serif;
+    font-size: 15px;
+}
+
+li.component-item a {
+    color: #1e373f;
+}
+
+li.component-item:hover {
+    border-left: 8px solid #d1dee5;
+}
+
+li.component-item:hover a {
+    color: #264c58;
+}
+
+li.component-item.selected {
+    border-left: 8px solid #7098ad;
+}
+
+div.component-links span.no-components {
+    font-style: italic;
+    color: #777;
+}
+
+/* component filter control */
+
+#component-filter-controls {
+}
+
+#component-filter-container {
+    margin-left: 2px;
+}
+
+#component-filter {
+    font-size: 12px;
+    height: 18px;
+    line-height: 20px;
+    width: 98%;
+    float: left;
+}
+
+input.component-filter-list {
+    color: #888;
+    font-style: italic;
+}
+
+#component-filter-stats {
+    font-size: 9px;
+    font-weight: bold;
+    color: #9f6000;
+    clear: left; 
+    line-height: normal;
+    margin-left: 7px;
+}
+
+/* component usage */
+
+#component-usage {
+    overflow: auto;
+    width: 100%;
+    height: 100%;
+    position: absolute;
+}
\ No newline at end of file


Reply via email to