You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by ad...@apache.org on 2021/10/26 09:57:48 UTC
[nifi-minifi-cpp] 01/02: MINIFICPP-1671 Load the extensions earlier
This is an automated email from the ASF dual-hosted git repository.
adebreceni pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi-minifi-cpp.git
commit a024b778f59f78bf9efd2b7e35f73b8320292041
Author: Ferenc Gerlits <fg...@gmail.com>
AuthorDate: Tue Oct 26 11:54:48 2021 +0200
MINIFICPP-1671 Load the extensions earlier
Signed-off-by: Adam Debreceni <ad...@apache.org>
This closes #1206
---
controller/Controller.h | 3 +++
docker/test/integration/features/core_functionality.feature | 7 +++++++
libminifi/src/core/FlowConfiguration.cpp | 5 ++---
main/MiNiFiMain.cpp | 4 ++--
4 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/controller/Controller.h b/controller/Controller.h
index 3bb5b85..5d8a39a 100644
--- a/controller/Controller.h
+++ b/controller/Controller.h
@@ -20,6 +20,7 @@
#include "core/RepositoryFactory.h"
#include "core/ConfigurationFactory.h"
+#include "core/extension/ExtensionManager.h"
#include "io/ClientSocket.h"
#include "c2/ControllerSocketProtocol.h"
#include "utils/gsl.h"
@@ -238,6 +239,8 @@ std::shared_ptr<core::controller::ControllerService> getControllerService(const
std::string nifi_configuration_class_name = "yamlconfiguration";
std::string content_repo_class = "filesystemrepository";
+ minifi::core::extension::ExtensionManager::get().initialize(configuration);
+
configuration->get(minifi::Configure::nifi_provenance_repository_class_name, prov_repo_class);
// Create repos for flow record and provenance
std::shared_ptr<core::Repository> prov_repo = core::createRepository(prov_repo_class, true, "provenance");
diff --git a/docker/test/integration/features/core_functionality.feature b/docker/test/integration/features/core_functionality.feature
index 0a98d8f..b29a537 100644
--- a/docker/test/integration/features/core_functionality.feature
+++ b/docker/test/integration/features/core_functionality.feature
@@ -22,3 +22,10 @@ Feature: Core flow functionalities
Then at least one flowfile with the content "first_custom_text" is placed in the monitored directory in less than 20 seconds
And at least one flowfile with the content "second_custom_text" is placed in the monitored directory in less than 20 seconds
+
+
+ Scenario: The default configuration uses RocksDB for both the flow file and content repositories
+ Given a GenerateFlowFile processor with the "Data Format" property set to "Text"
+ When the MiNiFi instance starts up
+ Then the Minifi logs contain the following message: "Using plaintext FlowFileRepository" in less than 5 seconds
+ And the Minifi logs contain the following message: "Using plaintext DatabaseContentRepository" in less than 1 second
diff --git a/libminifi/src/core/FlowConfiguration.cpp b/libminifi/src/core/FlowConfiguration.cpp
index c097f80..d6ebd1b 100644
--- a/libminifi/src/core/FlowConfiguration.cpp
+++ b/libminifi/src/core/FlowConfiguration.cpp
@@ -17,13 +17,14 @@
*/
#include "core/FlowConfiguration.h"
+
#include <memory>
#include <vector>
#include <string>
+
#include "core/ClassLoader.h"
#include "utils/StringUtils.h"
#include "processors/ProcessorUtils.h"
-#include "core/extension/ExtensionManager.h"
namespace org {
namespace apache {
@@ -60,8 +61,6 @@ FlowConfiguration::FlowConfiguration(
}
checksum_calculator_.setFileLocation(*config_path_);
}
-
- extension::ExtensionManager::get().initialize(configuration_);
}
static_initializers &get_static_functions() {
diff --git a/main/MiNiFiMain.cpp b/main/MiNiFiMain.cpp
index 4e1414a..c0228f6 100644
--- a/main/MiNiFiMain.cpp
+++ b/main/MiNiFiMain.cpp
@@ -218,14 +218,14 @@ int main(int argc, char **argv) {
configure->setHome(minifiHome);
configure->loadConfigureFile(DEFAULT_NIFI_PROPERTIES_FILE);
+ minifi::core::extension::ExtensionManager::get().initialize(configure);
+
if (argc >= 3 && std::string("docs") == argv[1]) {
if (utils::file::FileUtils::create_dir(argv[2]) != 0) {
std::cerr << "Working directory doesn't exist and cannot be created: " << argv[2] << std::endl;
exit(1);
}
- minifi::core::extension::ExtensionManager::get().initialize(configure);
-
std::cerr << "Dumping docs to " << argv[2] << std::endl;
if (argc == 4) {
std::string filepath, filename;