This is an automated email from the ASF dual-hosted git repository. martinzink pushed a commit to branch beke_2 in repository https://gitbox.apache.org/repos/asf/nifi-minifi-cpp.git
commit aebc96692018dabb89c628f0c3badd202fc57d0c Author: Martin Zink <[email protected]> AuthorDate: Wed Jun 17 17:45:02 2026 +0200 changes found from rust wrapper rebase --- Extensions.md | 4 ++-- .../cpp-extension-lib/include/api/core/ProcessContext.h | 2 ++ .../cpp-extension-lib/mocklib/include/MockProcessContext.h | 2 ++ extensions/gcp/ExtensionInitializer.cpp | 2 +- extensions/kafka/ConsumeKafka.cpp | 2 +- extensions/kafka/ExtensionInitializer.cpp | 2 +- extensions/llamacpp/ExtensionInitializer.cpp | 2 +- extensions/stable-api-sandbox/ExtensionInitializer.cpp | 2 +- libminifi/src/minifi-api.cpp | 4 ++-- .../integration/extension-verification-test/CApiExtension.cpp | 2 +- .../extension-verification-test/ExtensionVerificationTests.cpp | 4 ++-- minifi-api/include/minifi-c/minifi-api.h | 8 ++++---- 12 files changed, 20 insertions(+), 16 deletions(-) diff --git a/Extensions.md b/Extensions.md index 5fec72529..cebe83671 100644 --- a/Extensions.md +++ b/Extensions.md @@ -32,7 +32,7 @@ Unless otherwise specified, the following lifetime rules apply to all functions * Created Resources: The lifetime of resources created within these functions (e.g., a handle returned by `MinifiProcessSessionGet` inside `MinifiProcessorCallbacks::onTrigger`) is limited to the scope of the innermost callback. -(the return value of `MinifiRegisterExtension` is only valid during the execution of `minifi_init_extension`). +(the return value of `minifi_register_extension` is only valid during the execution of `minifi_init_extension`). Because of these scoping rules, all processor and controller service registrations must occur within the `minifi_init_extension` call. One possible example of this is: @@ -47,7 +47,7 @@ extern "C" void minifi_init_extension(MinifiExtensionContext* extension_context) .deinit = nullptr, .user_data = nullptr }; - auto* extension = MinifiRegisterExtension(extension_context, &extension_definition); + auto* extension = minifi_register_extension(extension_context, &extension_definition); minifi::api::core::useProcessorClassDefinition<minifi::extensions::llamacpp::processors::RunLlamaCppInference>([&] (const MinifiProcessorClassDefinition& definition) { MinifiRegisterProcessor(extension, &definition); }); diff --git a/extension-framework/cpp-extension-lib/include/api/core/ProcessContext.h b/extension-framework/cpp-extension-lib/include/api/core/ProcessContext.h index a1e528d88..e3f821cfd 100644 --- a/extension-framework/cpp-extension-lib/include/api/core/ProcessContext.h +++ b/extension-framework/cpp-extension-lib/include/api/core/ProcessContext.h @@ -48,6 +48,7 @@ class ProcessContext { [[nodiscard]] virtual std::expected<std::optional<utils::ProxyData>, std::error_code> getProxyData(const minifi::core::PropertyReference& prop) const = 0; [[nodiscard]] virtual std::expected<void, std::error_code> reportMetrics(const PublishedMetrics& metrics) const = 0; + [[nodiscard]] virtual std::expected<void, std::error_code> setTriggerWhenEmpty(bool) = 0; }; class CffiProcessContext : public ProcessContext { @@ -63,6 +64,7 @@ class CffiProcessContext : public ProcessContext { [[nodiscard]] std::expected<std::optional<utils::ProxyData>, std::error_code> getProxyData(const minifi::core::PropertyReference& prop) const override; [[nodiscard]] std::expected<void, std::error_code> reportMetrics(const PublishedMetrics& metrics) const override; + [[nodiscard]] std::expected<void, std::error_code> setTriggerWhenEmpty(bool) override; private: [[nodiscard]] std::expected<std::string, std::error_code> getProperty(std::string_view name, const FlowFile* flow_file) const; diff --git a/extension-framework/cpp-extension-lib/mocklib/include/MockProcessContext.h b/extension-framework/cpp-extension-lib/mocklib/include/MockProcessContext.h index 153068646..f133a32c8 100644 --- a/extension-framework/cpp-extension-lib/mocklib/include/MockProcessContext.h +++ b/extension-framework/cpp-extension-lib/mocklib/include/MockProcessContext.h @@ -39,6 +39,8 @@ class MockProcessContext : public api::core::ProcessContext { *last_published_metrics_ = metrics; } + [[nodiscard]] std::expected<void, std::error_code> setTriggerWhenEmpty(bool) override {} + std::map<std::string, std::string, std::less<>> properties_; std::unique_ptr<api::core::PublishedMetrics> last_published_metrics_ = std::make_unique<api::core::PublishedMetrics>(); diff --git a/extensions/gcp/ExtensionInitializer.cpp b/extensions/gcp/ExtensionInitializer.cpp index 26014afb4..267c5fed6 100644 --- a/extensions/gcp/ExtensionInitializer.cpp +++ b/extensions/gcp/ExtensionInitializer.cpp @@ -37,7 +37,7 @@ CEXTENSIONAPI void minifi_init_extension(minifi_extension_context* extension_con .deinit = nullptr, .user_data = nullptr }; - auto* extension = MinifiRegisterExtension(extension_context, &extension_definition); + auto* extension = minifi_register_extension(extension_context, &extension_definition); minifi::api::core::registerProcessors<minifi::extensions::gcp::DeleteGCSObject, minifi::extensions::gcp::FetchGCSObject, minifi::extensions::gcp::ListGCSBucket, diff --git a/extensions/kafka/ConsumeKafka.cpp b/extensions/kafka/ConsumeKafka.cpp index 3c1f9ae14..facc83cae 100644 --- a/extensions/kafka/ConsumeKafka.cpp +++ b/extensions/kafka/ConsumeKafka.cpp @@ -66,7 +66,7 @@ minifi_status ConsumeKafka::onScheduleImpl(api::core::ProcessContext& context) { configureNewConnection(context); if (commit_policy_ == consume_kafka::CommitPolicyEnum::CommitFromIncomingFlowFiles) { - // TODO(beke) setTriggerWhenEmpty(true); + context.setTriggerWhenEmpty(true); } return MINIFI_STATUS_SUCCESS; } diff --git a/extensions/kafka/ExtensionInitializer.cpp b/extensions/kafka/ExtensionInitializer.cpp index d95a3dbf7..d9d424b80 100644 --- a/extensions/kafka/ExtensionInitializer.cpp +++ b/extensions/kafka/ExtensionInitializer.cpp @@ -32,6 +32,6 @@ CEXTENSIONAPI void MinifiInitExtension(minifi_extension_context* extension_conte .version = minifi::api::utils::minifiStringView(MAKESTRING(EXTENSION_VERSION)), .deinit = nullptr, .user_data = nullptr}; - auto* extension = MinifiRegisterExtension(extension_context, &extension_definition); + auto* extension = minifi_register_extension(extension_context, &extension_definition); minifi::api::core::registerProcessors<minifi::processors::PublishKafka, minifi::processors::ConsumeKafka>(extension); } diff --git a/extensions/llamacpp/ExtensionInitializer.cpp b/extensions/llamacpp/ExtensionInitializer.cpp index 1152aa7e6..e2ee8b9f6 100644 --- a/extensions/llamacpp/ExtensionInitializer.cpp +++ b/extensions/llamacpp/ExtensionInitializer.cpp @@ -33,6 +33,6 @@ CEXTENSIONAPI void minifi_init_extension(minifi_extension_context* extension_con .deinit = nullptr, .user_data = nullptr }; - auto* extension = MinifiRegisterExtension(extension_context, &extension_definition); + auto* extension = minifi_register_extension(extension_context, &extension_definition); minifi::api::core::registerProcessors<minifi::extensions::llamacpp::processors::RunLlamaCppInference>(extension); } diff --git a/extensions/stable-api-sandbox/ExtensionInitializer.cpp b/extensions/stable-api-sandbox/ExtensionInitializer.cpp index 28a1cd7df..c47a04d5c 100644 --- a/extensions/stable-api-sandbox/ExtensionInitializer.cpp +++ b/extensions/stable-api-sandbox/ExtensionInitializer.cpp @@ -32,7 +32,7 @@ CEXTENSIONAPI void minifi_init_extension(minifi_extension_context* extension_con .version = minifi::api::utils::minifiStringView(MAKESTRING(EXTENSION_VERSION)), .deinit = nullptr, .user_data = nullptr}; - auto* extension = MinifiRegisterExtension(extension_context, &extension_definition); + auto* extension = minifi_register_extension(extension_context, &extension_definition); minifi::api::core::registerProcessors<minifi::api_testing::ZooProcessor>(extension); minifi::api::core::registerControllerServices<minifi::api_testing::DogController, minifi::api_testing::DuckController>(extension); } diff --git a/libminifi/src/minifi-api.cpp b/libminifi/src/minifi-api.cpp index 82cecd6d6..807e65df1 100644 --- a/libminifi/src/minifi-api.cpp +++ b/libminifi/src/minifi-api.cpp @@ -304,7 +304,7 @@ void useCControllerServiceClassDescription(const minifi_controller_service_class extern "C" { -minifi_extension* MinifiRegisterExtension(minifi_extension_context* extension_context, const minifi_extension_definition* extension_definition) { +minifi_extension* minifi_register_extension(minifi_extension_context* extension_context, const minifi_extension_definition* extension_definition) { gsl_Assert(extension_context); gsl_Assert(extension_definition); auto* extension = reinterpret_cast<org::apache::nifi::minifi::core::extension::Extension::Context*>(extension_context)->create(org::apache::nifi::minifi::core::extension::Extension::Info{ @@ -365,7 +365,7 @@ minifi_status minifi_register_controller_service(minifi_extension* extension, co minifi_extension* MINIFI_REGISTER_EXTENSION_FN(minifi_extension_context* extension_context, const minifi_extension_definition* extension_definition) { - return MinifiRegisterExtension(extension_context, extension_definition); + return minifi_register_extension(extension_context, extension_definition); } minifi_status minifi_process_context_set_trigger_when_empty(minifi_process_context* context, bool trigger_when_empty) { diff --git a/libminifi/test/integration/extension-verification-test/CApiExtension.cpp b/libminifi/test/integration/extension-verification-test/CApiExtension.cpp index a1ae261b0..efa5d2007 100644 --- a/libminifi/test/integration/extension-verification-test/CApiExtension.cpp +++ b/libminifi/test/integration/extension-verification-test/CApiExtension.cpp @@ -49,7 +49,7 @@ CEXTENSIONAPI void minifi_init_extension(minifi_extension_context* extension_con .deinit = nullptr, .user_data = nullptr }; - auto extension = MinifiRegisterExtension(extension_context, &extension_definition); + auto extension = minifi_register_extension(extension_context, &extension_definition); minifi::api::core::useProcessorClassDefinition<DummyCProcessor>([&] (const minifi_processor_class_definition& definition) { minifi_register_processor(extension, &definition); }); diff --git a/libminifi/test/integration/extension-verification-test/ExtensionVerificationTests.cpp b/libminifi/test/integration/extension-verification-test/ExtensionVerificationTests.cpp index 40d358e0d..ab4814c7e 100644 --- a/libminifi/test/integration/extension-verification-test/ExtensionVerificationTests.cpp +++ b/libminifi/test/integration/extension-verification-test/ExtensionVerificationTests.cpp @@ -29,7 +29,7 @@ extern "C" { minifi_extension* MinifiRegisterCppExtension_MatchingBuildId(minifi_extension_context* extension_context, const minifi_extension_definition* extension_definition) { - return MinifiRegisterExtension(extension_context, extension_definition); + return minifi_register_extension(extension_context, extension_definition); } } // extern "C" @@ -93,7 +93,7 @@ TEST_CASE("Can't load c-api extensions with no minifi_init_extension function") REQUIRE(minifi::test::utils::verifyLogLinePresenceInPollTime(0s, "Failed to load as c extension 'test-extension-loading-missing-init'")); } -TEST_CASE("Can't load c-api extensions with no MinifiRegisterExtension call") { +TEST_CASE("Can't load c-api extensions with no minifi_register_extension call") { ExtensionLoadingTestController controller{"*test-extension-loading-create-not-called*"}; REQUIRE(minifi::test::utils::verifyLogLinePresenceInPollTime(0s, "Failed to initialize extension 'test-extension-loading-create-not-called'")); } diff --git a/minifi-api/include/minifi-c/minifi-api.h b/minifi-api/include/minifi-c/minifi-api.h index 142c5652f..149e88806 100644 --- a/minifi-api/include/minifi-c/minifi-api.h +++ b/minifi-api/include/minifi-c/minifi-api.h @@ -38,7 +38,7 @@ extern "C" { #define MINIFI_NULLABLE #ifndef MINIFI_REGISTER_EXTENSION_FN -#define MINIFI_REGISTER_EXTENSION_FN MinifiRegisterExtension +#define MINIFI_REGISTER_EXTENSION_FN minifi_register_extension #endif /// To declare a processor property that expects an SSLContextService, @@ -221,7 +221,7 @@ struct minifi_extension_definition { // When directly linking against the agent library (legacy c++ extension) this declares a build identifier dependent function // which prevents loading extensions from different builds (e.g. the agent provides MinifiRegisterCppExtension_123 but the extension -// expects MinifiRegisterCppExtension_567). Otherwise, it declares MinifiRegisterExtension. +// expects MinifiRegisterCppExtension_567). Otherwise, it declares minifi_register_extension. struct minifi_extension* MINIFI_REGISTER_EXTENSION_FN(struct minifi_extension_context* extension_context, const struct minifi_extension_definition* extension_definition); @@ -288,7 +288,7 @@ struct minifi_ssl_data { }; enum minifi_status minifi_process_context_get_ssl_data_from_property(struct minifi_process_context* process_context, - struct minifi_string_view property_name, void (*cb)(void* user_ctx, const minifi_ssl_data* ssl_data), void* user_ctx); + struct minifi_string_view property_name, void (*cb)(void* user_ctx, const struct minifi_ssl_data* ssl_data), void* user_ctx); enum minifi_proxy_type : uint8_t { MINIFI_PROXY_TYPE_DIRECT, @@ -296,7 +296,7 @@ enum minifi_proxy_type : uint8_t { }; struct minifi_proxy_data { - minifi_proxy_type proxy_type; + enum minifi_proxy_type proxy_type; struct minifi_string_view hostname; uint16_t port; struct minifi_string_view* username;
