You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by ma...@apache.org on 2026/06/22 09:50:15 UTC
(nifi-minifi-cpp) 02/09: changes found from rust wrapper rebase
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 <ma...@apache.org>
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;