You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by ph...@apache.org on 2017/11/07 14:32:43 UTC
nifi-minifi-cpp git commit: MINIFI-291 Added standard Lua packages to
scripting environment
Repository: nifi-minifi-cpp
Updated Branches:
refs/heads/master a95e17873 -> b9ec9b6a2
MINIFI-291 Added standard Lua packages to scripting environment
This closes #178.
Signed-off-by: Marc Parisi <ph...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/commit/b9ec9b6a
Tree: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/tree/b9ec9b6a
Diff: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/diff/b9ec9b6a
Branch: refs/heads/master
Commit: b9ec9b6a28d14585b7e24e90ebab4dad00e3181d
Parents: a95e178
Author: Andrew I. Christianson <an...@andyic.org>
Authored: Sat Nov 4 16:54:58 2017 -0400
Committer: Marc Parisi <ph...@apache.org>
Committed: Tue Nov 7 09:24:39 2017 -0500
----------------------------------------------------------------------
extensions/script/ExecuteScript.cpp | 4 +--
extensions/script/lua/LuaScriptEngine.cpp | 9 ++++++
.../test/script-tests/LuaExecuteScriptTests.cpp | 34 ++++++++++++++++++++
3 files changed, 45 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/b9ec9b6a/extensions/script/ExecuteScript.cpp
----------------------------------------------------------------------
diff --git a/extensions/script/ExecuteScript.cpp b/extensions/script/ExecuteScript.cpp
index 5590d30..2751267 100644
--- a/extensions/script/ExecuteScript.cpp
+++ b/extensions/script/ExecuteScript.cpp
@@ -94,7 +94,7 @@ void ExecuteScript::onTrigger(const std::shared_ptr<core::ProcessContext> &conte
// Use an existing engine, if one is available
if (script_engine_q_.try_dequeue(engine)) {
- logger_->log_info("Using available %s script engine instance", script_engine_);
+ logger_->log_debug("Using available %s script engine instance", script_engine_);
} else {
logger_->log_info("Creating new %s script instance", script_engine_);
logger_->log_info("Approximately %d %s script instances created for this processor",
@@ -144,7 +144,7 @@ void ExecuteScript::onTrigger(const std::shared_ptr<core::ProcessContext> &conte
// Make engine available for use again
if (script_engine_q_.size_approx() < getMaxConcurrentTasks()) {
- logger_->log_info("Releasing %s script engine", script_engine_);
+ logger_->log_debug("Releasing %s script engine", script_engine_);
script_engine_q_.enqueue(engine);
} else {
logger_->log_info("Destroying script engine because it is no longer needed");
http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/b9ec9b6a/extensions/script/lua/LuaScriptEngine.cpp
----------------------------------------------------------------------
diff --git a/extensions/script/lua/LuaScriptEngine.cpp b/extensions/script/lua/LuaScriptEngine.cpp
index 718014b..9d1a7f5 100644
--- a/extensions/script/lua/LuaScriptEngine.cpp
+++ b/extensions/script/lua/LuaScriptEngine.cpp
@@ -31,6 +31,15 @@ namespace lua {
LuaScriptEngine::LuaScriptEngine()
: lua_() {
+ lua_.open_libraries(sol::lib::base,
+ sol::lib::os,
+ sol::lib::coroutine,
+ sol::lib::math,
+ sol::lib::io,
+ sol::lib::string,
+ sol::lib::table,
+ sol::lib::utf8,
+ sol::lib::package);
lua_.new_usertype<core::logging::Logger>(
"Logger",
"info", &core::logging::Logger::log_info<>);
http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/b9ec9b6a/libminifi/test/script-tests/LuaExecuteScriptTests.cpp
----------------------------------------------------------------------
diff --git a/libminifi/test/script-tests/LuaExecuteScriptTests.cpp b/libminifi/test/script-tests/LuaExecuteScriptTests.cpp
index 57bcda1..fa294dc 100644
--- a/libminifi/test/script-tests/LuaExecuteScriptTests.cpp
+++ b/libminifi/test/script-tests/LuaExecuteScriptTests.cpp
@@ -336,3 +336,37 @@ TEST_CASE("Lua: Test Create", "[executescriptLuaCreate]") { // NOLINT
logTestController.reset();
}
+
+TEST_CASE("Lua: Test Require", "[executescriptLuaRequire]") { // NOLINT
+ TestController testController;
+
+ LogTestController &logTestController = LogTestController::getInstance();
+ logTestController.setDebug<TestPlan>();
+ logTestController.setDebug<minifi::processors::ExecuteScript>();
+
+ auto plan = testController.createPlan();
+
+ auto executeScript = plan->addProcessor("ExecuteScript",
+ "executeScript");
+
+ plan->setProperty(executeScript, processors::ExecuteScript::ScriptEngine.getName(), "lua");
+ plan->setProperty(executeScript, processors::ExecuteScript::ScriptBody.getName(), R"(
+ require 'os'
+ require 'coroutine'
+ require 'math'
+ require 'io'
+ require 'string'
+ require 'table'
+ require 'package'
+
+ log:info('OK')
+ )");
+
+ plan->reset();
+
+ testController.runSession(plan, false);
+
+ REQUIRE(LogTestController::getInstance().contains("[info] OK"));
+
+ logTestController.reset();
+}