Modified: nifi/site/trunk/docs/nifi-docs/html/developer-guide.html URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/html/developer-guide.html?rev=1736720&r1=1736719&r2=1736720&view=diff ============================================================================== --- nifi/site/trunk/docs/nifi-docs/html/developer-guide.html (original) +++ nifi/site/trunk/docs/nifi-docs/html/developer-guide.html Sun Mar 27 04:51:17 2016 @@ -1220,21 +1220,29 @@ relied upon for critical business logic. <div class="paragraph"> <p>From the ProcessContext, ReportingContext, and ControllerServiceInitializationContext, components are able to call the <code>getStateManager()</code> method. This State Manager is responsible for providing a simple API -for storing and retrieving state. As such, the API is designed to be quite similar to the ConcurrentMap -API, which most Java developers are already familiar with.</p> +for storing and retrieving state. This mechanism is intended to provide developers with the ability to +very easily store a set of key/value pairs, retrieve those values, and update them atomically. The state +can be stored local to the node or across all nodes in a cluster. It is important to note, however, that +this mechanism is intended only to provide a mechanism for storing very <em>simple</em> state. As such, the API +simply allows a <code>Map<String, String></code> to be stored and retrieved and for the entire Map to be atomically +replaced. Moreover, the only implementation that is currently supported for storing cluster-wide state is +backed by ZooKeeper. As such, the entire State Map must be less than 1 MB in size, after being serialized. +Attempting to store more than this will result in an Exception being thrown. If the interactions required +by the Processor for managing state are more complex than this (e.g., large amounts of data must be stored +and retrieved, or individual keys must be stored and fetched individually) than a different mechanism should +be used (e.g., communicating with an external database).</p> </div> <div class="sect3"> <h4 id="state_scope"><a class="anchor" href="#state_scope"></a>Scope</h4> <div class="paragraph"> -<p>One very notable difference between the StateManager API and the ConcurrentMap API, however, is the presence -of a Scope object on each method call of the StateManager. This Scope will either be <code>Scope.NODE</code> or <code>Scope.CLUSTER</code>. -If NiFi is run in a cluster, this Scope provides important information to the framework about how the operation should -occur.</p> +<p>When communicating with the State Manager, all method calls require that a Scope be provided. This Scope will +either be <code>Scope.NODE</code> or <code>Scope.CLUSTER</code>. If NiFi is run in a cluster, this Scope provides important information +to the framework about how the operation should occur.</p> </div> <div class="paragraph"> <p>If state as stored using <code>Scope.CLUSTER</code>, then all nodes in the cluster will be communicating with the same -state storage mechanism, as if all nodes were to share a single ConcurrentMap. If state is stored and retrieved using -<code>Scope.NODE</code>, then each node will see a different representation of the state.</p> +state storage mechanism. If state is stored and retrieved using <code>Scope.NODE</code>, then each node will see a different +representation of the state.</p> </div> <div class="paragraph"> <p>It is also worth noting that if NiFi is configured to run as a standalone instance, rather than running in a cluster, @@ -1246,13 +1254,12 @@ that the instance is clustered and write <div class="sect3"> <h4 id="storing-and-retrieving-state"><a class="anchor" href="#storing-and-retrieving-state"></a>Storing and Retrieving State</h4> <div class="paragraph"> -<p>State is stored using the StateManager’s <code>set</code>, <code>replace</code>, <code>putIfAbsent</code>, <code>remove</code>, and <code>clear</code> methods. All of these methods, -with the exception of <code>clear</code> take as the first argument the key to be set. The key that is used is unique only to the same -instance of the component and for the same Scope. That is, if two Processors store a value using the key <em>My Key</em>, those Processors -will not conflict with each other, even if both Processors are of the same type (e.g., both are of type ListFile) and scope. Furthermore, -if a Processor stores a value with the key of <em>My Key</em> using the <code>Scope.CLUSTER</code> scope, and then attempts to retrieve the value -using the <code>Scope.NODE</code> scope, the value retrieved will be <code>null</code>. Each Processor’s state, then, is stored in isolation from other -Processors' state. A unique key can be thought of as a triple of <Processor Instance, Key, Scope>.</p> +<p>State is stored using the StateManager’s <code>getState</code>, <code>setState</code>, <code>replace</code>, and <code>clear</code> methods. All of these methods +require that a Scope be provided. It should be noted that the state that is stored with the Local scope is entirely different +than state stored with a Cluster scope. If a Processor stores a value with the key of <em>My Key</em> using the <code>Scope.CLUSTER</code> scope, +and then attempts to retrieve the value using the <code>Scope.NODE</code> scope, the value retrieved will be <code>null</code> (unless a value was +also stored with the same key using the <code>Scope.CLUSTER</code> scope). Each Processor’s state, is stored in isolation from other +Processors' state.</p> </div> <div class="paragraph"> <p>It follows, then, that two Processors cannot share the same state. There are, however, some circumstances in which it is very @@ -1272,14 +1279,8 @@ defined by the <code>StateManager</code> <div class="paragraph"> <p>First, the <code>MockStateManager</code> implements the <code>StateManager</code> interface, so all of the state can be examined from within a unit test. Additionally, the <code>MockStateManager</code> exposes a handful of <code>assert*</code> methods to perform assertions that the State is set as expected. -There are times, however, that state could be updated multiple times during the run of a single invocation of a Processor’s <code>onTrigger</code> -method. In this case, inspecting the values after running the Processor may not be sufficient. Additionally, we must always remember at each -step to check the value of the stored state, which can become error-prone and burdensome for the developer.</p> -</div> -<div class="paragraph"> -<p>For these reasons, the <code>MockStateManager</code> provides an additional method, named <code>failIfStateSet</code>. This method instructs the State Manager that -the unit test should immediately fail if the state for a given key is ever set, or if it is set to a specific value. The <code>doNotFailIfStateSet</code> -method can then be used to instruct the Mock Framework to clear this state and allow state to be set to any value.</p> +The <code>MockStateManager</code> also provides the ability to indicate that the unit test should immediately fail if state is updated for a particular +<code>Scope</code>.</p> </div> </div> </div> @@ -3167,7 +3168,7 @@ worry about bothering us. Just ping the </div> <div id="footer"> <div id="footer-text"> -Last updated 2016-02-23 18:48:07 EST +Last updated 2016-03-23 18:55:20 -04:00 </div> </div> </body>
Modified: nifi/site/trunk/docs/nifi-docs/html/expression-language-guide.html URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/html/expression-language-guide.html?rev=1736720&r1=1736719&r2=1736720&view=diff ============================================================================== --- nifi/site/trunk/docs/nifi-docs/html/expression-language-guide.html (original) +++ nifi/site/trunk/docs/nifi-docs/html/expression-language-guide.html Sun Mar 27 04:51:17 2016 @@ -3175,7 +3175,7 @@ an embedded Expression, though it does n </div> <div id="footer"> <div id="footer-text"> -Last updated 2016-02-23 18:48:07 EST +Last updated 2016-03-23 18:55:20 -04:00 </div> </div> </body> Modified: nifi/site/trunk/docs/nifi-docs/html/getting-started.html URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/html/getting-started.html?rev=1736720&r1=1736719&r2=1736720&view=diff ============================================================================== --- nifi/site/trunk/docs/nifi-docs/html/getting-started.html (original) +++ nifi/site/trunk/docs/nifi-docs/html/getting-started.html Sun Mar 27 04:51:17 2016 @@ -1576,7 +1576,7 @@ work back to the Apache NiFi community s </div> <div id="footer"> <div id="footer-text"> -Last updated 2016-02-23 18:48:07 EST +Last updated 2016-03-23 18:55:20 -04:00 </div> </div> </body> Modified: nifi/site/trunk/docs/nifi-docs/html/overview.html URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/html/overview.html?rev=1736720&r1=1736719&r2=1736720&view=diff ============================================================================== --- nifi/site/trunk/docs/nifi-docs/html/overview.html (original) +++ nifi/site/trunk/docs/nifi-docs/html/overview.html Sun Mar 27 04:51:17 2016 @@ -875,7 +875,7 @@ about loading, and to exchange data on s </div> <div id="footer"> <div id="footer-text"> -Last updated 2016-02-23 18:48:07 EST +Last updated 2016-03-23 18:55:20 -04:00 </div> </div> </body> Modified: nifi/site/trunk/docs/nifi-docs/html/user-guide.html URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/html/user-guide.html?rev=1736720&r1=1736719&r2=1736720&view=diff ============================================================================== --- nifi/site/trunk/docs/nifi-docs/html/user-guide.html (original) +++ nifi/site/trunk/docs/nifi-docs/html/user-guide.html Sun Mar 27 04:51:17 2016 @@ -1551,8 +1551,8 @@ to a Stop icon, indicating that the Proc <h3 id="site-to-site"><a class="anchor" href="#site-to-site"></a>Site-to-Site</h3> <div class="paragraph"> <p>When sending data from one instance of NiFi to another, there are many different protocols that can be used. The preferred -protocol, though, is the NiFi Site-to-Site Protocol. Site-to-Site makes it easy to transfer data from one NiFi instance to -another easily, efficiently, and securely.</p> +protocol, though, is the NiFi Site-to-Site Protocol. Site-to-Site makes it easy to securely and efficiently transfer data to/from nodes in +one NiFi instance or data producing application to nodes in another NiFi instance or other consuming application.</p> </div> <div class="paragraph"> <p>Using Site-to-Site provides the following benefits:</p> @@ -2754,7 +2754,7 @@ lineage graph and select "Find parents" </div> <div id="footer"> <div id="footer-text"> -Last updated 2016-02-23 18:48:07 EST +Last updated 2016-03-23 18:55:20 -04:00 </div> </div> </body> Modified: nifi/site/trunk/docs/nifi-docs/index.html URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/index.html?rev=1736720&r1=1736719&r2=1736720&view=diff ============================================================================== --- nifi/site/trunk/docs/nifi-docs/index.html (original) +++ nifi/site/trunk/docs/nifi-docs/index.html Sun Mar 27 04:51:17 2016 @@ -51,6 +51,8 @@ <li class="component-item"><a class="component-link" href="components/org.apache.nifi.amqp.processors.ConsumeAMQP/index.html" target="component-usage">ConsumeAMQP</a></li> + <li class="component-item"><a class="component-link" href="components/org.apache.nifi.jms.processors.ConsumeJMS/index.html" target="component-usage">ConsumeJMS</a></li> + <li class="component-item"><a class="component-link" href="components/org.apache.nifi.processors.standard.ControlRate/index.html" target="component-usage">ControlRate</a></li> <li class="component-item"><a class="component-link" href="components/org.apache.nifi.processors.kite.ConvertAvroSchema/index.html" target="component-usage">ConvertAvroSchema</a></li> @@ -153,6 +155,8 @@ <li class="component-item"><a class="component-link" href="components/org.apache.nifi.processors.solr.GetSolr/index.html" target="component-usage">GetSolr</a></li> + <li class="component-item"><a class="component-link" href="components/org.apache.nifi.processors.splunk.GetSplunk/index.html" target="component-usage">GetSplunk</a></li> + <li class="component-item"><a class="component-link" href="components/org.apache.nifi.processors.aws.sqs.GetSQS/index.html" target="component-usage">GetSQS</a></li> <li class="component-item"><a class="component-link" href="components/org.apache.nifi.processors.twitter.GetTwitter/index.html" target="component-usage">GetTwitter</a></li> @@ -179,6 +183,8 @@ <li class="component-item"><a class="component-link" href="components/org.apache.nifi.processors.standard.ListenSyslog/index.html" target="component-usage">ListenSyslog</a></li> + <li class="component-item"><a class="component-link" href="components/org.apache.nifi.processors.standard.ListenTCP/index.html" target="component-usage">ListenTCP</a></li> + <li class="component-item"><a class="component-link" href="components/org.apache.nifi.processors.standard.ListenUDP/index.html" target="component-usage">ListenUDP</a></li> <li class="component-item"><a class="component-link" href="components/org.apache.nifi.processors.standard.ListFile/index.html" target="component-usage">ListFile</a></li> @@ -203,8 +209,12 @@ <li class="component-item"><a class="component-link" href="components/org.apache.nifi.amqp.processors.PublishAMQP/index.html" target="component-usage">PublishAMQP</a></li> + <li class="component-item"><a class="component-link" href="components/org.apache.nifi.jms.processors.PublishJMS/index.html" target="component-usage">PublishJMS</a></li> + <li class="component-item"><a class="component-link" href="components/org.apache.nifi.processors.azure.eventhub.PutAzureEventHub/index.html" target="component-usage">PutAzureEventHub</a></li> + <li class="component-item"><a class="component-link" href="components/org.apache.nifi.processors.cassandra.PutCassandraQL/index.html" target="component-usage">PutCassandraQL</a></li> + <li class="component-item"><a class="component-link" href="components/org.apache.nifi.processors.couchbase.PutCouchbaseKey/index.html" target="component-usage">PutCouchbaseKey</a></li> <li class="component-item"><a class="component-link" href="components/org.apache.nifi.processors.standard.PutDistributedMapCache/index.html" target="component-usage">PutDistributedMapCache</a></li> @@ -229,6 +239,10 @@ <li class="component-item"><a class="component-link" href="components/org.apache.nifi.processors.kafka.PutKafka/index.html" target="component-usage">PutKafka</a></li> + <li class="component-item"><a class="component-link" href="components/org.apache.nifi.processors.aws.kinesis.firehose.PutKinesisFirehose/index.html" target="component-usage">PutKinesisFirehose</a></li> + + <li class="component-item"><a class="component-link" href="components/org.apache.nifi.processors.aws.lambda.PutLambda/index.html" target="component-usage">PutLambda</a></li> + <li class="component-item"><a class="component-link" href="components/org.apache.nifi.processors.mongodb.PutMongo/index.html" target="component-usage">PutMongo</a></li> <li class="component-item"><a class="component-link" href="components/org.apache.nifi.processors.riemann.PutRiemann/index.html" target="component-usage">PutRiemann</a></li> @@ -241,12 +255,18 @@ <li class="component-item"><a class="component-link" href="components/org.apache.nifi.processors.solr.PutSolrContentStream/index.html" target="component-usage">PutSolrContentStream</a></li> + <li class="component-item"><a class="component-link" href="components/org.apache.nifi.processors.splunk.PutSplunk/index.html" target="component-usage">PutSplunk</a></li> + <li class="component-item"><a class="component-link" href="components/org.apache.nifi.processors.standard.PutSQL/index.html" target="component-usage">PutSQL</a></li> <li class="component-item"><a class="component-link" href="components/org.apache.nifi.processors.aws.sqs.PutSQS/index.html" target="component-usage">PutSQS</a></li> <li class="component-item"><a class="component-link" href="components/org.apache.nifi.processors.standard.PutSyslog/index.html" target="component-usage">PutSyslog</a></li> + <li class="component-item"><a class="component-link" href="components/org.apache.nifi.processors.cassandra.QueryCassandra/index.html" target="component-usage">QueryCassandra</a></li> + + <li class="component-item"><a class="component-link" href="components/org.apache.nifi.processors.standard.QueryDatabaseTable/index.html" target="component-usage">QueryDatabaseTable</a></li> + <li class="component-item"><a class="component-link" href="components/org.apache.nifi.processors.standard.ReplaceText/index.html" target="component-usage">ReplaceText</a></li> <li class="component-item"><a class="component-link" href="components/org.apache.nifi.processors.standard.ReplaceTextWithMapping/index.html" target="component-usage">ReplaceTextWithMapping</a></li> @@ -277,6 +297,8 @@ <li class="component-item"><a class="component-link" href="components/org.apache.nifi.processors.standard.SplitXml/index.html" target="component-usage">SplitXml</a></li> + <li class="component-item"><a class="component-link" href="components/org.apache.nifi.spring.SpringContextProcessor/index.html" target="component-usage">SpringContextProcessor</a></li> + <li class="component-item"><a class="component-link" href="components/org.apache.nifi.processors.kite.StoreInKiteDataset/index.html" target="component-usage">StoreInKiteDataset</a></li> <li class="component-item"><a class="component-link" href="components/org.apache.nifi.processors.standard.TailFile/index.html" target="component-usage">TailFile</a></li> @@ -321,6 +343,8 @@ <li class="component-item"><a class="component-link" href="components/org.apache.nifi.hbase.HBase_1_1_2_ClientService/index.html" target="component-usage">HBase_1_1_2_ClientService</a></li> + <li class="component-item"><a class="component-link" href="components/org.apache.nifi.jms.cf.JMSConnectionFactoryProvider/index.html" target="component-usage">JMSConnectionFactoryProvider</a></li> + <li class="component-item"><a class="component-link" href="components/org.apache.nifi.http.StandardHttpContextMap/index.html" target="component-usage">StandardHttpContextMap</a></li> <li class="component-item"><a class="component-link" href="components/org.apache.nifi.ssl.StandardSSLContextService/index.html" target="component-usage">StandardSSLContextService</a></li> @@ -372,7 +396,7 @@ <input type="text" id="component-filter"/> </div> <div id="component-filter-stats"> - Displaying <span id="displayed-components">145</span> of 145 + Displaying <span id="displayed-components">157</span> of 157 </div> </div> <div id="component-usage-container"> Modified: nifi/site/trunk/docs/nifi-docs/rest-api/index.html URL: http://svn.apache.org/viewvc/nifi/site/trunk/docs/nifi-docs/rest-api/index.html?rev=1736720&r1=1736719&r2=1736720&view=diff ============================================================================== --- nifi/site/trunk/docs/nifi-docs/rest-api/index.html (original) +++ nifi/site/trunk/docs/nifi-docs/rest-api/index.html Sun Mar 27 04:51:17 2016 @@ -15,7 +15,7 @@ --> <html> <head> - <title>NiFi Rest Api-0.5.1</title> + <title>NiFi Rest Api-0.6.0</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <link rel="shortcut icon" href="images/nifi16.ico"/> <script type="text/javascript" src="../../nifi/js/jquery/jquery-2.1.1.min.js"></script> @@ -460,7 +460,7 @@ <div class="header"> <img class="logo" src="images/bgNifiLogo.png" alt="NiFi Logo"/> <div class="title">/nifi-api</div> - <div class="sub-title">NiFi Rest Api 0.5.1</div> + <div class="sub-title">NiFi Rest Api 0.6.0</div> <div class="clear"></div> </div> <div class="clear"></div> @@ -904,6 +904,123 @@ </tr> </tbody> + </table> + <div class="title">Authorization</div> + <div class="authorization details"> + + </div> +</div> + </div> + + + + +</div> + + +<div class="endpoints"> + <span class="path hidden">/access/kerberos</span> + + <div class="endpoint post"> + <div class="operation-handle"> + <div class="method">POST</div> + <div class="path mono"></div> + <div class="summary">Creates a token for accessing the REST API via Kerberos ticket exchange / SPNEGO negotiation</div> + <div class="clear"></div> + </div> + +<div class="operation hidden"> + + <div class="description"> + The token returned is formatted as a JSON Web Token (JWT). The token is base64 encoded and comprised of three parts. The header, the body, and the signature. The expiration of the token is a contained within the body. The token can be used in the Authorization header in the format 'Authorization: Bearer <token>'. + </div> + + <div class="title">Request</div> + <div class="mediatypes details"> + + <div class="mediatype"><div class="title">consumes:</div><div class="mono">text/plain</div><div class="clear"></div></div> + + </div> + + + + <div class="title">Response</div> + <div class="mediatypes details"> + + <div class="mediatype"><div class="title">produces:</div><div class="mono">text/plain</div><div class="clear"></div></div> + + </div> + <table> + <thead> + <tr> + <th>Status Code</th> + <th>Type</th> + <th>Description</th> + </tr> + </thead> + <tbody> + + <tr> + <td>200</td> + <td> + + + + </td> + <td>successful operation</td> + </tr> + + <tr> + <td>400</td> + <td> + + string + + </td> + <td>NiFi was unable to complete the request because it was invalid. The request should not be retried without modification.</td> + </tr> + + <tr> + <td>401</td> + <td> + + string + + </td> + <td>NiFi was unable to complete the request because it did not contain a valid Kerberos ticket in the Authorization header. Retry this request after initializing a ticket with kinit and ensuring your browser is configured to support SPNEGO.</td> + </tr> + + <tr> + <td>403</td> + <td> + + string + + </td> + <td>Client is not authorized to make this request.</td> + </tr> + + <tr> + <td>409</td> + <td> + + string + + </td> + <td>Unable to create access token because NiFi is not in the appropriate state. (i.e. may not be configured to support Kerberos login.</td> + </tr> + + <tr> + <td>500</td> + <td> + + string + + </td> + <td>Unable to create access token because an unexpected error occurred.</td> + </tr> + + </tbody> </table> <div class="title">Authorization</div> <div class="authorization details">