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 <[email protected]>
AuthorDate: Thu Oct 7 18:07:11 2021 +0200
MINIFICPP-1660 Add default extension path
Closes #1193
Signed-off-by: Marton Szasz <[email protected]>
---
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) {