You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by sz...@apache.org on 2021/10/07 16:10:52 UTC

[nifi-minifi-cpp] branch main updated: MINIFICPP-1660 Add default extension path

This is an automated email from the ASF dual-hosted git repository.

szaszm pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi-minifi-cpp.git


The following commit(s) were added to refs/heads/main by this push:
     new cf6fc13  MINIFICPP-1660 Add default extension path
cf6fc13 is described below

commit cf6fc139baf8f7eee52badceab296593fade0ec5
Author: Adam Debreceni <ad...@apache.org>
AuthorDate: Thu Oct 7 18:07:11 2021 +0200

    MINIFICPP-1660 Add default extension path
    
    Closes #1193
    Signed-off-by: Marton Szasz <sz...@apache.org>
---
 libminifi/src/core/extension/ExtensionManager.cpp | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/libminifi/src/core/extension/ExtensionManager.cpp b/libminifi/src/core/extension/ExtensionManager.cpp
index b2b7d10..fb0af5e 100644
--- a/libminifi/src/core/extension/ExtensionManager.cpp
+++ b/libminifi/src/core/extension/ExtensionManager.cpp
@@ -86,14 +86,25 @@ ExtensionManager& ExtensionManager::get() {
   return instance;
 }
 
+constexpr const char* DEFAULT_EXTENSION_PATH = "../extensions/*";
+
 bool ExtensionManager::initialize(const std::shared_ptr<Configure>& config) {
   static bool initialized = ([&] {
     logger_->log_trace("Initializing extensions");
     // initialize executable
     active_module_->initialize(config);
-    std::optional<std::string> pattern = config ? config->get(nifi_extension_path) : std::nullopt;
-    if (!pattern) return;
-    auto candidates = utils::file::match(utils::file::FilePattern(pattern.value(), [&] (std::string_view subpattern, std::string_view error_msg) {
+    if (!config) {
+      logger_->log_error("Missing configuration");
+      return;
+    }
+    std::string pattern = [&] {
+      auto opt_pattern = config->get(nifi_extension_path);
+      if (!opt_pattern) {
+        logger_->log_warn("No extension path is provided, using default: '%s'", DEFAULT_EXTENSION_PATH);
+      }
+      return opt_pattern.value_or(DEFAULT_EXTENSION_PATH);
+    }();
+    auto candidates = utils::file::match(utils::file::FilePattern(pattern, [&] (std::string_view subpattern, std::string_view error_msg) {
       logger_->log_error("Error in subpattern '%s': %s", std::string{subpattern}, std::string{error_msg});
     }));
     for (const auto& candidate : candidates) {