Made some progess on loading the lua files from modules directory. In my
case all my lua files and .so files are in modules diretory. I placed the
directory in nifi installation folder.

Eg: lua_modules/common_log_format.lua

in my script i am calling the luascript as follows:

local clf = *require 'lua_modules.common_log_format'*

*It is reading the lua script without any issue, now the problem is
**common_log_format.lua
is dependent on lpeg module which is .so file ( lpeg.so). The question is,
Can we read .so files in nifi luaj libarary. If so how can i parse .so
files?*


On Wed, Apr 20, 2016 at 5:21 PM, Madhukar Thota <[email protected]>
wrote:

> I am trying to read the lua file this way, but its not working. How to
> read the lua files from module directory and use it in execution?
>
> luajava.LuaState = luajava.LuaStateFactory.newLuaState()
>
>
> luajava.LuaState.openLibs()
> luajava.LuaState.LdoFile("common_log_format.lua");
>
>
> On Wed, Apr 20, 2016 at 4:29 PM, Madhukar Thota <[email protected]>
> wrote:
>
>> Thanks Matt. This will be helpful to get started. I will definitely
>> contribute back to community once i have working script. One more question,
>> Can i call the lua modues in the script with require statement like this 
>> local
>> lpeg = require "lpeg"?
>>
>> -Madhu
>>
>>
>>
>> On Wed, Apr 20, 2016 at 3:11 PM, Matt Burgess <[email protected]>
>> wrote:
>>
>>> Madhu,
>>>
>>> I know very little about Lua, so I haven't tried making a Lua version of
>>> my JSON-to-JSON scripts/blogs (funnifi.blogspot.com), but here's
>>> something that works to get you started. The following Luaj script creates
>>> a flow file, writes to it, adds an attribute, then transfers it to success.
>>> Hopefully you can use your Lua scripts inline by calling their functions
>>> and such from the OutputStreamCallback proxy (the process method below). If
>>> you get something working and would like to share, I would very much
>>> appreciate it!
>>>
>>> local writecb =
>>> luajava.createProxy("org.apache.nifi.processor.io.OutputStreamCallback", {
>>> process = function(outputStream)
>>> outputStream:write("This is flow file content from Lua")
>>> end
>>> })
>>> flowFile = session:create()
>>> flowFile = session:putAttribute(flowFile, "lua.attrib", "Hello from
>>> Lua!")
>>> flowFile = session:write(flowFile, writecb)
>>> session:transfer(flowFile, REL_SUCCESS)
>>>
>>>
>>> Regards,
>>> Matt
>>>
>>> On Tue, Apr 19, 2016 at 1:15 PM, Madhukar Thota <
>>> [email protected]> wrote:
>>>
>>>> Friends,
>>>>
>>>> Can anyone share an sample example on how to use Lua in ExecuteScript
>>>> Processor? We have bunch of lua scripts which we would like to use for data
>>>> processing.
>>>>
>>>> Any help is appreciated.
>>>>
>>>> Thanks
>>>> Madhu
>>>>
>>>
>>>
>>
>

Reply via email to