You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "Dmitry Lukyanov (Jira)" <ji...@apache.org> on 2020/01/14 16:36:00 UTC
[jira] [Updated] (NIFI-7016) Make groovy File functions available
for FlowFile to simplify scripting [modified]
[ https://issues.apache.org/jira/browse/NIFI-7016?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dmitry Lukyanov updated NIFI-7016:
----------------------------------
Description:
Currently the following methods implemented but they differ from groovy flavor.
All those methods should return the object returned by Closure and streams/readers/writers must be closed after closure finished.
Check of this kind of methods - they all returns the value returned by closure.
The idea of usage like this:
{code:java}
def jsonData = flowFile.withReader("UTF-8"){ new JsonSlurper().parse(it) }
{code}
methods to be fixed according to groovy behavior:
{code:java}
Object withInputStream(Closure closure)
// Creates a new InputStream for this file and passes it into the closure.
// Input stream must be closed after closure finished
// Returns value returned by closure
Object withOutputStream(Closure closure)
// Creates a new OutputStream for this file and passes it into the closure.
// OutputStream must be closed after closure finished.
// Returns value returned by closure
Object withReader(String charset, Closure closure)
// Creates a new BufferedReader for this file using the specified charset and then passes it into the closure, ensuring the reader is closed after the closure returns.
// Returns value returned by closure
Object withWriter(String charset, Closure closure)
// Creates a new BufferedWriter for this file, passes it to the closure, and ensures the stream is flushed and closed after the closure returns.
// Returns value returned by closure
{code}
was:
I'd like to add groovy File functions to a FlowFile class insige groovy script to make work with flowfie streams similar like we work with File in groovy.
Object withInputStream(Closure closure)
Create a new InputStream for this file and passes it into the closure.
Object withOutputStream(Closure closure)
Creates a new OutputStream for this file and passes it into the closure.
Object withReader(String charset, Closure closure)
Create a new BufferedReader for this file using the specified charset and then passes it into the closure, ensuring the reader is closed after the closure returns.
Object withWriter(String charset, Closure closure)
Creates a new BufferedWriter for this file, passes it to the closure, and ensures the stream is flushed and closed after the closure returns.
etc...
----
ready to contribute
> Make groovy File functions available for FlowFile to simplify scripting [modified]
> ----------------------------------------------------------------------------------
>
> Key: NIFI-7016
> URL: https://issues.apache.org/jira/browse/NIFI-7016
> Project: Apache NiFi
> Issue Type: New Feature
> Reporter: Dmitry Lukyanov
> Assignee: Matt Burgess
> Priority: Minor
> Fix For: 1.10.0
>
>
> Currently the following methods implemented but they differ from groovy flavor.
> All those methods should return the object returned by Closure and streams/readers/writers must be closed after closure finished.
> Check of this kind of methods - they all returns the value returned by closure.
> The idea of usage like this:
> {code:java}
> def jsonData = flowFile.withReader("UTF-8"){ new JsonSlurper().parse(it) }
> {code}
> methods to be fixed according to groovy behavior:
> {code:java}
> Object withInputStream(Closure closure)
> // Creates a new InputStream for this file and passes it into the closure.
> // Input stream must be closed after closure finished
> // Returns value returned by closure
> Object withOutputStream(Closure closure)
> // Creates a new OutputStream for this file and passes it into the closure.
> // OutputStream must be closed after closure finished.
> // Returns value returned by closure
> Object withReader(String charset, Closure closure)
> // Creates a new BufferedReader for this file using the specified charset and then passes it into the closure, ensuring the reader is closed after the closure returns.
> // Returns value returned by closure
> Object withWriter(String charset, Closure closure)
> // Creates a new BufferedWriter for this file, passes it to the closure, and ensures the stream is flushed and closed after the closure returns.
> // Returns value returned by closure
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)