This is an automated email from the ASF dual-hosted git repository. martinzink pushed a commit to branch minifi-api-property in repository https://gitbox.apache.org/repos/asf/nifi-minifi-cpp.git
commit 9b36fa3c2d3c74ea125a4810ed09a30aac0de175 Author: Martin Zink <[email protected]> AuthorDate: Fri Mar 14 10:18:44 2025 +0100 rebase fixes --- .../tests/unit/FlowJsonTests.cpp | 12 ++++------- .../tests/unit/SegmentContentTests.cpp | 2 +- .../tests/unit/SplitContentTests.cpp | 2 +- .../tests/unit/SplitTextTests.cpp | 2 +- .../tests/unit/YamlConfigurationTests.cpp | 12 ++++------- libminifi/include/core/ParameterProvider.h | 2 +- libminifi/src/core/ParameterProvider.cpp | 4 ++-- .../EnvironmentVariableParameterProvider.cpp | 8 ++++---- .../EnvironmentVariableParameterProviderTest.cpp | 24 +++++++++++----------- 9 files changed, 30 insertions(+), 38 deletions(-) diff --git a/extensions/standard-processors/tests/unit/FlowJsonTests.cpp b/extensions/standard-processors/tests/unit/FlowJsonTests.cpp index 359b13199..48c5630e9 100644 --- a/extensions/standard-processors/tests/unit/FlowJsonTests.cpp +++ b/extensions/standard-processors/tests/unit/FlowJsonTests.cpp @@ -1490,15 +1490,11 @@ TEST_CASE("Parameter providers can be used for parameter values") { std::unique_ptr<core::ProcessGroup> flow = config.getRootFromPayload(CONFIG_JSON); REQUIRE(flow); - auto* proc = flow->findProcessorByName("MyProcessor"); + auto* proc = dynamic_cast<core::ProcessorImpl*>(flow->findProcessorByName("MyProcessor")); REQUIRE(proc); - REQUIRE(proc->getProperty("Simple Property") == "value1"); - core::Property property("My Dynamic Property Sequence", ""); - proc->getDynamicProperty("My Dynamic Property Sequence", property); - auto values = property.getValues(); - REQUIRE(values.size() == 2); - CHECK(values[0] == "value2"); - CHECK(values[1] == "value3"); + auto values = proc->getAllDynamicPropertyValues("My Dynamic Property Sequence"); + CHECK((*values)[0] == "value2"); + CHECK((*values)[1] == "value3"); } TEST_CASE("Parameter providers can be configured to select which parameters to be sensitive") { diff --git a/extensions/standard-processors/tests/unit/SegmentContentTests.cpp b/extensions/standard-processors/tests/unit/SegmentContentTests.cpp index 1c14e658a..741e9fbb1 100644 --- a/extensions/standard-processors/tests/unit/SegmentContentTests.cpp +++ b/extensions/standard-processors/tests/unit/SegmentContentTests.cpp @@ -61,7 +61,7 @@ TEST_CASE("Invalid segmentSize tests") { SECTION("foo") { REQUIRE_NOTHROW(segment_content->setProperty(SegmentContent::SegmentSize.name, "foo"), "General Operation: Segment Size value validation failed"); - REQUIRE_THROWS_WITH(controller.trigger("bar"), "Expected parsable data size from SegmentContent::Segment Size"); + REQUIRE_THROWS_WITH(controller.trigger("bar"), "Expected parsable data size from SegmentContent::Segment Size: parsing error: GeneralParsingError (0)"); } SECTION("10 foo") { REQUIRE_NOTHROW(segment_content->setProperty(SegmentContent::SegmentSize.name, "10 foo"), "General Operation: Segment Size value validation failed"); diff --git a/extensions/standard-processors/tests/unit/SplitContentTests.cpp b/extensions/standard-processors/tests/unit/SplitContentTests.cpp index 64899ad5a..25fa95d27 100644 --- a/extensions/standard-processors/tests/unit/SplitContentTests.cpp +++ b/extensions/standard-processors/tests/unit/SplitContentTests.cpp @@ -37,7 +37,7 @@ TEST_CASE("WithoutByteSequence") { split_content->setProperty(SplitContent::KeepByteSequence.name, "true"); split_content->setProperty(SplitContent::ByteSequenceLocationProperty.name, std::string{magic_enum::enum_name(SplitContent::ByteSequenceLocation::Leading)}); - REQUIRE_THROWS_WITH(controller.trigger("rub-a-dub-dub"), "Expected valid value from SplitContent::Byte Sequence"); + REQUIRE_THROWS_WITH(controller.trigger("rub-a-dub-dub"), "Expected valid value from SplitContent::Byte Sequence: property error: PropertyNotSet (2)"); } TEST_CASE("EmptyFlowFile") { diff --git a/extensions/standard-processors/tests/unit/SplitTextTests.cpp b/extensions/standard-processors/tests/unit/SplitTextTests.cpp index 3553361ab..3d56232c5 100644 --- a/extensions/standard-processors/tests/unit/SplitTextTests.cpp +++ b/extensions/standard-processors/tests/unit/SplitTextTests.cpp @@ -189,7 +189,7 @@ void runSplitTextTest(const std::string& input, const std::vector<ExpectedSplitT TEST_CASE("Line Split Count property is required") { SingleProcessorTestController controller{std::make_unique<processors::SplitText>("SplitText")}; - REQUIRE_THROWS_WITH(controller.trigger("", {}), "Expected parsable uint64_t from SplitText::Line Split Count"); + REQUIRE_THROWS_WITH(controller.trigger("", {}), "Expected parsable uint64_t from SplitText::Line Split Count: property error: PropertyNotSet (2)"); } TEST_CASE("Line Split Count property can only be 0 if Maximum Fragment Size is set") { diff --git a/extensions/standard-processors/tests/unit/YamlConfigurationTests.cpp b/extensions/standard-processors/tests/unit/YamlConfigurationTests.cpp index 808de010b..09ecab861 100644 --- a/extensions/standard-processors/tests/unit/YamlConfigurationTests.cpp +++ b/extensions/standard-processors/tests/unit/YamlConfigurationTests.cpp @@ -2147,15 +2147,11 @@ Parameter Context Name: dummycontext std::unique_ptr<core::ProcessGroup> flow = yaml_config.getRootFromPayload(TEST_CONFIG_YAML); REQUIRE(flow); - auto* proc = flow->findProcessorByName("DummyProcessor"); + auto* proc = dynamic_cast<core::ProcessorImpl*>(flow->findProcessorByName("DummyProcessor")); REQUIRE(proc); - REQUIRE(proc->getProperty("Simple Property") == "value1"); - core::Property property("My Dynamic Property Sequence", ""); - proc->getDynamicProperty("My Dynamic Property Sequence", property); - auto values = property.getValues(); - REQUIRE(values.size() == 2); - CHECK(values[0] == "value2"); - CHECK(values[1] == "value3"); + auto values = proc->getAllDynamicPropertyValues("My Dynamic Property Sequence"); + CHECK((*values)[0] == "value2"); + CHECK((*values)[1] == "value3"); } TEST_CASE("Parameter providers can be configured to select which parameters to be sensitive", "[YamlConfiguration]") { diff --git a/libminifi/include/core/ParameterProvider.h b/libminifi/include/core/ParameterProvider.h index f756feb10..c09220671 100644 --- a/libminifi/include/core/ParameterProvider.h +++ b/libminifi/include/core/ParameterProvider.h @@ -23,7 +23,7 @@ #include <unordered_set> #include "core/Core.h" -#include "core/ConfigurableComponent.h" +#include "core/ConfigurableComponentImpl.h" #include "core/ParameterContext.h" #include "core/PropertyDefinitionBuilder.h" diff --git a/libminifi/src/core/ParameterProvider.cpp b/libminifi/src/core/ParameterProvider.cpp index b79066b17..22d067309 100644 --- a/libminifi/src/core/ParameterProvider.cpp +++ b/libminifi/src/core/ParameterProvider.cpp @@ -22,7 +22,7 @@ namespace org::apache::nifi::minifi::core { ParameterProviderConfig ParameterProvider::readParameterProviderConfig() const { ParameterProviderConfig config; - auto sensitive_parameter_scope_str = getProperty(SensitiveParameterScope); + auto sensitive_parameter_scope_str = getProperty(SensitiveParameterScope.name); if (!sensitive_parameter_scope_str) { throw ParameterException("Sensitive Parameter Scope is required"); } @@ -33,7 +33,7 @@ ParameterProviderConfig ParameterProvider::readParameterProviderConfig() const { config.sensitive_parameter_scope = sensitive_parameter_scope.value(); if (config.sensitive_parameter_scope == SensitiveParameterScopeOptions::selected) { - if (auto sensitive_parameter_list = getProperty(SensitiveParameterList)) { + if (auto sensitive_parameter_list = getProperty(SensitiveParameterList.name)) { for (const auto& sensitive_parameter : minifi::utils::string::splitAndTrimRemovingEmpty(*sensitive_parameter_list, ",")) { config.sensitive_parameters.insert(sensitive_parameter); } diff --git a/libminifi/src/parameter-providers/EnvironmentVariableParameterProvider.cpp b/libminifi/src/parameter-providers/EnvironmentVariableParameterProvider.cpp index e98af5bda..b24ce6ce9 100644 --- a/libminifi/src/parameter-providers/EnvironmentVariableParameterProvider.cpp +++ b/libminifi/src/parameter-providers/EnvironmentVariableParameterProvider.cpp @@ -24,7 +24,7 @@ namespace org::apache::nifi::minifi::parameter_providers { std::string EnvironmentVariableParameterProvider::readParameterGroupName() const { - auto parameter_group_name = getProperty(ParameterGroupName); + auto parameter_group_name = getProperty(ParameterGroupName.name); if (!parameter_group_name || parameter_group_name.value().empty()) { throw core::ParameterException("Parameter Group Name is required"); } @@ -33,7 +33,7 @@ std::string EnvironmentVariableParameterProvider::readParameterGroupName() const } EnvironmentVariableInclusionStrategyOptions EnvironmentVariableParameterProvider::readEnvironmentVariableInclusionStrategy() const { - auto env_variable_inclusion_strategy_str = getProperty(EnvironmentVariableInclusionStrategy); + auto env_variable_inclusion_strategy_str = getProperty(EnvironmentVariableInclusionStrategy.name); if (!env_variable_inclusion_strategy_str) { throw core::ParameterException("Environment Variable Inclusion Strategy is required"); } @@ -47,7 +47,7 @@ EnvironmentVariableInclusionStrategyOptions EnvironmentVariableParameterProvider void EnvironmentVariableParameterProvider::filterEnvironmentVariablesByCommaSeparatedList(std::unordered_map<std::string, std::string>& environment_variables) const { std::unordered_set<std::string> included_environment_variables; - if (auto incuded_environment_variables_str = getProperty(IncludeEnvironmentVariables)) { + if (auto incuded_environment_variables_str = getProperty(IncludeEnvironmentVariables.name)) { for (const auto& included_environment_variable : minifi::utils::string::splitAndTrimRemovingEmpty(*incuded_environment_variables_str, ",")) { included_environment_variables.insert(included_environment_variable); } @@ -63,7 +63,7 @@ void EnvironmentVariableParameterProvider::filterEnvironmentVariablesByCommaSepa } void EnvironmentVariableParameterProvider::filterEnvironmentVariablesByRegularExpression(std::unordered_map<std::string, std::string>& environment_variables) const { - auto env_variable_regex_str = getProperty(IncludeEnvironmentVariables); + auto env_variable_regex_str = getProperty(IncludeEnvironmentVariables.name); if (env_variable_regex_str && !env_variable_regex_str->empty()) { logger_->log_debug("Filtering environment variables using regular expression: {}", *env_variable_regex_str); utils::Regex regex(*env_variable_regex_str); diff --git a/libminifi/test/unit/EnvironmentVariableParameterProviderTest.cpp b/libminifi/test/unit/EnvironmentVariableParameterProviderTest.cpp index 58bad6da6..9f4c91ce2 100644 --- a/libminifi/test/unit/EnvironmentVariableParameterProviderTest.cpp +++ b/libminifi/test/unit/EnvironmentVariableParameterProviderTest.cpp @@ -26,7 +26,7 @@ TEST_CASE("Parameter Group Name is required", "[parameterProviders]") { utils::Environment::setEnvironmentVariable("MINIFI_DATA", "minifi_data_value"); parameter_providers::EnvironmentVariableParameterProvider provider("EnvironmentVariableParameterProvider"); provider.initialize(); - provider.setProperty(parameter_providers::EnvironmentVariableParameterProvider::ParameterGroupName, ""); + provider.setProperty(parameter_providers::EnvironmentVariableParameterProvider::ParameterGroupName.name, ""); REQUIRE_THROWS_WITH(provider.createParameterContexts(), "Parameter Operation: Parameter Group Name is required"); } @@ -34,7 +34,7 @@ TEST_CASE("Test EnvironmentVariableParameterProvider with default options", "[pa utils::Environment::setEnvironmentVariable("MINIFI_DATA", "minifi_data_value"); parameter_providers::EnvironmentVariableParameterProvider provider("EnvironmentVariableParameterProvider"); provider.initialize(); - provider.setProperty(parameter_providers::EnvironmentVariableParameterProvider::ParameterGroupName, "environment-variable-parameter-context"); + provider.setProperty(parameter_providers::EnvironmentVariableParameterProvider::ParameterGroupName.name, "environment-variable-parameter-context"); auto contexts = provider.createParameterContexts(); REQUIRE(contexts.size() == 1); REQUIRE(contexts[0]->getName() == "environment-variable-parameter-context"); @@ -49,9 +49,9 @@ TEST_CASE("Create parameter context with selected environment variables", "[para utils::Environment::setEnvironmentVariable("MINIFI_NEW_DATA", "minifi_new_data_value"); parameter_providers::EnvironmentVariableParameterProvider provider("EnvironmentVariableParameterProvider"); provider.initialize(); - provider.setProperty(parameter_providers::EnvironmentVariableParameterProvider::ParameterGroupName, "environment-variable-parameter-context"); - provider.setProperty(parameter_providers::EnvironmentVariableParameterProvider::EnvironmentVariableInclusionStrategy, "Comma-Separated"); - provider.setProperty(parameter_providers::EnvironmentVariableParameterProvider::IncludeEnvironmentVariables, "MINIFI_DATA,MINIFI_NEW_DATA"); + provider.setProperty(parameter_providers::EnvironmentVariableParameterProvider::ParameterGroupName.name, "environment-variable-parameter-context"); + provider.setProperty(parameter_providers::EnvironmentVariableParameterProvider::EnvironmentVariableInclusionStrategy.name, "Comma-Separated"); + provider.setProperty(parameter_providers::EnvironmentVariableParameterProvider::IncludeEnvironmentVariables.name, "MINIFI_DATA,MINIFI_NEW_DATA"); auto contexts = provider.createParameterContexts(); REQUIRE(contexts.size() == 1); REQUIRE(contexts[0]->getName() == "environment-variable-parameter-context"); @@ -66,8 +66,8 @@ TEST_CASE("Create parameter context with selected environment variables", "[para TEST_CASE("Environment variable list must be defined if Comma-Separated inclusion strategy is set", "[parameterProviders]") { parameter_providers::EnvironmentVariableParameterProvider provider("EnvironmentVariableParameterProvider"); provider.initialize(); - provider.setProperty(parameter_providers::EnvironmentVariableParameterProvider::ParameterGroupName, "environment-variable-parameter-context"); - provider.setProperty(parameter_providers::EnvironmentVariableParameterProvider::EnvironmentVariableInclusionStrategy, "Comma-Separated"); + provider.setProperty(parameter_providers::EnvironmentVariableParameterProvider::ParameterGroupName.name, "environment-variable-parameter-context"); + provider.setProperty(parameter_providers::EnvironmentVariableParameterProvider::EnvironmentVariableInclusionStrategy.name, "Comma-Separated"); REQUIRE_THROWS_WITH(provider.createParameterContexts(), "Parameter Operation: Environment Variable Inclusion Strategy is set to Comma-Separated, " "but no value is defined in Include Environment Variables property"); } @@ -77,9 +77,9 @@ TEST_CASE("Create parameter context with regex matching environment variables", utils::Environment::setEnvironmentVariable("MINIFI_NEW_DATA", "minifi_new_data_value"); parameter_providers::EnvironmentVariableParameterProvider provider("EnvironmentVariableParameterProvider"); provider.initialize(); - provider.setProperty(parameter_providers::EnvironmentVariableParameterProvider::ParameterGroupName, "environment-variable-parameter-context"); - provider.setProperty(parameter_providers::EnvironmentVariableParameterProvider::EnvironmentVariableInclusionStrategy, "Regular Expression"); - provider.setProperty(parameter_providers::EnvironmentVariableParameterProvider::IncludeEnvironmentVariables, "MINIFI_DATA_.*"); + provider.setProperty(parameter_providers::EnvironmentVariableParameterProvider::ParameterGroupName.name, "environment-variable-parameter-context"); + provider.setProperty(parameter_providers::EnvironmentVariableParameterProvider::EnvironmentVariableInclusionStrategy.name, "Regular Expression"); + provider.setProperty(parameter_providers::EnvironmentVariableParameterProvider::IncludeEnvironmentVariables.name, "MINIFI_DATA_.*"); auto contexts = provider.createParameterContexts(); REQUIRE(contexts.size() == 1); REQUIRE(contexts[0]->getName() == "environment-variable-parameter-context"); @@ -92,8 +92,8 @@ TEST_CASE("Create parameter context with regex matching environment variables", TEST_CASE("Regex must be defined if regex inclusion strategy is set", "[parameterProviders]") { parameter_providers::EnvironmentVariableParameterProvider provider("EnvironmentVariableParameterProvider"); provider.initialize(); - provider.setProperty(parameter_providers::EnvironmentVariableParameterProvider::ParameterGroupName, "environment-variable-parameter-context"); - provider.setProperty(parameter_providers::EnvironmentVariableParameterProvider::EnvironmentVariableInclusionStrategy, "Regular Expression"); + provider.setProperty(parameter_providers::EnvironmentVariableParameterProvider::ParameterGroupName.name, "environment-variable-parameter-context"); + provider.setProperty(parameter_providers::EnvironmentVariableParameterProvider::EnvironmentVariableInclusionStrategy.name, "Regular Expression"); REQUIRE_THROWS_WITH(provider.createParameterContexts(), "Parameter Operation: Environment Variable Inclusion Strategy is set to Regular Expression, " "but no regex is defined in Include Environment Variables property"); }
