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