[
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)