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();
+}