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 2025/09/08 15:29:44 UTC
(nifi-minifi-cpp) 05/06: MINIFICPP-2620 DatabaseContentRepository should be the default
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
commit 54000432ac3af2390f93f22573be67db2477ebca
Author: Martin Zink <ma...@apache.org>
AuthorDate: Mon Sep 8 16:17:57 2025 +0200
MINIFICPP-2620 DatabaseContentRepository should be the default
Based on [CONFIGURE.md](https://github.com/apache/nifi-minifi-cpp/blob/main/CONFIGURE.md#configuring-repositories) DatabaseContentRepository should be the default.
We even had a [test](https://github.com/apache/nifi-minifi-cpp/blob/main/docker/test/integration/features/core_functionality.feature#L50-L55) to verify this, but it was explicitly set [here](https://github.com/apache/nifi-minifi-cpp/blob/main/minifi_main/MiNiFiMain.cpp#L310) so it didnt test it properly.
Closes #2021
Signed-off-by: Marton Szasz <sz...@apache.org>
---
.../integration/resources/minifi/minifi.properties | 1 -
minifi_main/MiNiFiMain.cpp | 21 +++++++++++----------
2 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/docker/test/integration/resources/minifi/minifi.properties b/docker/test/integration/resources/minifi/minifi.properties
index 68dbec03c..c5ba7cf8e 100644
--- a/docker/test/integration/resources/minifi/minifi.properties
+++ b/docker/test/integration/resources/minifi/minifi.properties
@@ -3,5 +3,4 @@ nifi.bored.yield.duration=100 millis
nifi.provenance.repository.max.storage.time=1 MIN
nifi.provenance.repository.max.storage.size=1 MB
nifi.database.content.repository.directory.default=${MINIFI_HOME}/content_repository
-nifi.content.repository.class.name=DatabaseContentRepository
nifi.flow.engine.threads=5
diff --git a/minifi_main/MiNiFiMain.cpp b/minifi_main/MiNiFiMain.cpp
index 33249767c..3a111fbd4 100644
--- a/minifi_main/MiNiFiMain.cpp
+++ b/minifi_main/MiNiFiMain.cpp
@@ -40,6 +40,7 @@
#include <csignal>
#include <atomic>
+#include <algorithm>
#include <cstdlib>
#include <iostream>
#include <vector>
@@ -63,13 +64,13 @@
#include "core/repository/VolatileContentRepository.h"
#include "core/repository/VolatileFlowFileRepository.h"
#include "core/state/MetricsPublisherStore.h"
-#include "core/state/nodes/ResponseNodeLoader.h"
#include "properties/Decryptor.h"
#include "utils/Environment.h"
#include "utils/FileMutex.h"
#include "utils/file/AssetManager.h"
#include "utils/file/FileUtils.h"
#include "utils/file/PathUtils.h"
+#include "range/v3/algorithm/min_element.hpp"
namespace minifi = org::apache::nifi::minifi;
namespace core = minifi::core;
@@ -84,7 +85,7 @@ static std::atomic_flag process_running;
*
* Semaphores are a portable choice when using signal handlers. Threads,
* mutexes, and condition variables are not guaranteed to work within
- * a signal handler. Consequently we will use the semaphore to avoid thread
+ * a signal handler. Consequently, we will use the semaphore to avoid thread
* safety issues.
*/
@@ -308,7 +309,7 @@ int main(int argc, char **argv) {
std::string prov_repo_class = "provenancerepository";
std::string flow_repo_class = "flowfilerepository";
std::string nifi_configuration_class_name = "adaptiveconfiguration";
- std::string content_repo_class = "filesystemrepository";
+ std::string content_repo_class = "DatabaseContentRepository";
auto log_properties = std::make_shared<core::logging::LoggerProperties>(locations->logs_dir_);
log_properties->loadConfigureFile(locations->log_properties_path_, "nifi.log.");
@@ -418,22 +419,22 @@ int main(int argc, char **argv) {
if (disk_space_watchdog_enable) {
try {
const auto repo_paths = [&] {
- std::vector<std::string> repo_paths;
- repo_paths.reserve(3);
+ std::vector<std::string> paths;
+ paths.reserve(3);
// REPOSITORY_DIRECTORY is a dummy path used by noop repositories
const auto path_valid = [](const std::string& p) { return !p.empty() && p != org::apache::nifi::minifi::core::REPOSITORY_DIRECTORY; };
auto prov_repo_path = prov_repo->getDirectory();
auto flow_repo_path = flow_repo->getDirectory();
auto content_repo_storage_path = content_repo->getStoragePath();
- if (!prov_repo->isNoop() && path_valid(prov_repo_path)) { repo_paths.push_back(std::move(prov_repo_path)); }
- if (!flow_repo->isNoop() && path_valid(flow_repo_path)) { repo_paths.push_back(std::move(flow_repo_path)); }
- if (path_valid(content_repo_storage_path)) { repo_paths.push_back(std::move(content_repo_storage_path)); }
- return repo_paths;
+ if (!prov_repo->isNoop() && path_valid(prov_repo_path)) { paths.push_back(std::move(prov_repo_path)); }
+ if (!flow_repo->isNoop() && path_valid(flow_repo_path)) { paths.push_back(std::move(flow_repo_path)); }
+ if (path_valid(content_repo_storage_path)) { paths.push_back(std::move(content_repo_storage_path)); }
+ return paths;
}();
const auto available_spaces = minifi::disk_space_watchdog::check_available_space(repo_paths, logger.get());
const auto config = minifi::disk_space_watchdog::read_config(*configure);
const auto min_space = [](const std::vector<std::uintmax_t>& spaces) {
- const auto it = std::min_element(std::begin(spaces), std::end(spaces));
+ const auto it = std::ranges::min_element(spaces);
return it != spaces.end() ? *it : (std::numeric_limits<std::uintmax_t>::max)();
};
if (min_space(available_spaces) <= config.stop_threshold_bytes) {