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 2022/02/23 07:09:16 UTC

[nifi-minifi-cpp] branch main updated (94ece10 -> 11daede)

This is an automated email from the ASF dual-hosted git repository.

adebreceni pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/nifi-minifi-cpp.git.


    from 94ece10  MINIFICPP-1663 Add FetchAzureBlobStorage processor
     new afd5b37  MINIFICPP-1753 Remove the possibility of multiple initialization
     new 11daede  MINIFICPP-1756 fix libstdc++10 issue

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 extensions/coap/controllerservice/CoapConnector.cpp         | 6 +++---
 extensions/coap/controllerservice/CoapConnector.h           | 2 +-
 extensions/jni/jvm/JavaControllerService.cpp                | 6 +++---
 extensions/jni/jvm/JavaControllerService.h                  | 4 +---
 extensions/mqtt/controllerservice/MQTTControllerService.cpp | 6 +++---
 extensions/mqtt/controllerservice/MQTTControllerService.h   | 2 +-
 extensions/sql/services/DatabaseService.cpp                 | 3 ++-
 extensions/sql/services/DatabaseService.h                   | 2 +-
 libminifi/CMakeLists.txt                                    | 2 +-
 libminifi/include/c2/C2Client.h                             | 3 ++-
 libminifi/include/controllers/SSLContextService.h           | 2 +-
 libminifi/include/utils/TimeUtil.h                          | 2 ++
 libminifi/src/c2/C2Client.cpp                               | 8 ++++++--
 libminifi/src/controllers/SSLContextService.cpp             | 6 +++---
 libminifi/test/unit/TimeUtilTests.cpp                       | 2 +-
 15 files changed, 31 insertions(+), 25 deletions(-)

[nifi-minifi-cpp] 02/02: MINIFICPP-1756 fix libstdc++10 issue

Posted by ad...@apache.org.
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 11daede7452bae5f4afb48ca4a0b5abd8abb99b2
Author: Marton Szasz <sz...@apache.org>
AuthorDate: Wed Feb 23 08:08:31 2022 +0100

    MINIFICPP-1756 fix libstdc++10 issue
    
    Signed-off-by: Adam Debreceni <ad...@apache.org>
    
    This closes #1263
---
 libminifi/CMakeLists.txt              | 2 +-
 libminifi/include/utils/TimeUtil.h    | 2 ++
 libminifi/test/unit/TimeUtilTests.cpp | 2 +-
 3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/libminifi/CMakeLists.txt b/libminifi/CMakeLists.txt
index e5f1c08..00eec75 100644
--- a/libminifi/CMakeLists.txt
+++ b/libminifi/CMakeLists.txt
@@ -98,7 +98,7 @@ if(NOT EXCLUDE_BOOST)
 endif()
 
 include(RangeV3)
-list(APPEND LIBMINIFI_LIBRARIES yaml-cpp ZLIB::ZLIB concurrentqueue RapidJSON spdlog cron Threads::Threads gsl-lite libsodium range-v3 expected-lite)
+list(APPEND LIBMINIFI_LIBRARIES yaml-cpp ZLIB::ZLIB concurrentqueue RapidJSON spdlog cron Threads::Threads gsl-lite libsodium range-v3 expected-lite date::date)
 if(NOT WIN32)
 	list(APPEND LIBMINIFI_LIBRARIES OSSP::libuuid++)
 endif()
diff --git a/libminifi/include/utils/TimeUtil.h b/libminifi/include/utils/TimeUtil.h
index 0f83e19..b7d723f 100644
--- a/libminifi/include/utils/TimeUtil.h
+++ b/libminifi/include/utils/TimeUtil.h
@@ -31,6 +31,8 @@
 #include <functional>
 #include <algorithm>
 
+#include "date/date.h"
+
 #define TIME_FORMAT "%Y-%m-%d %H:%M:%S"
 
 namespace org {
diff --git a/libminifi/test/unit/TimeUtilTests.cpp b/libminifi/test/unit/TimeUtilTests.cpp
index abb86af..574cc83 100644
--- a/libminifi/test/unit/TimeUtilTests.cpp
+++ b/libminifi/test/unit/TimeUtilTests.cpp
@@ -99,7 +99,7 @@ TEST_CASE("Test time conversion", "[testtimeconversion]") {
 TEST_CASE("Test system_clock epoch", "[systemclockepoch]") {
   using namespace std::chrono;
   time_point<system_clock> epoch;
-  time_point<system_clock> unix_epoch_plus_3e9_sec = sys_days(January / 24 / 2065) + 5h + 20min;
+  time_point<system_clock> unix_epoch_plus_3e9_sec = date::sys_days(date::January / 24 / 2065) + 5h + 20min;
   REQUIRE(epoch.time_since_epoch() == 0s);
   REQUIRE(unix_epoch_plus_3e9_sec.time_since_epoch() == 3000000000s);
 }

[nifi-minifi-cpp] 01/02: MINIFICPP-1753 Remove the possibility of multiple initialization

Posted by ad...@apache.org.
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 afd5b3702b6f8254100b32439f08aca1aaf086ad
Author: Gabor Gyimesi <ga...@gmail.com>
AuthorDate: Wed Feb 23 08:06:53 2022 +0100

    MINIFICPP-1753 Remove the possibility of multiple initialization
    
    Signed-off-by: Adam Debreceni <ad...@apache.org>
    
    This closes #1265
---
 extensions/coap/controllerservice/CoapConnector.cpp         | 6 +++---
 extensions/coap/controllerservice/CoapConnector.h           | 2 +-
 extensions/jni/jvm/JavaControllerService.cpp                | 6 +++---
 extensions/jni/jvm/JavaControllerService.h                  | 4 +---
 extensions/mqtt/controllerservice/MQTTControllerService.cpp | 6 +++---
 extensions/mqtt/controllerservice/MQTTControllerService.h   | 2 +-
 extensions/sql/services/DatabaseService.cpp                 | 3 ++-
 extensions/sql/services/DatabaseService.h                   | 2 +-
 libminifi/include/c2/C2Client.h                             | 3 ++-
 libminifi/include/controllers/SSLContextService.h           | 2 +-
 libminifi/src/c2/C2Client.cpp                               | 8 ++++++--
 libminifi/src/controllers/SSLContextService.cpp             | 6 +++---
 12 files changed, 27 insertions(+), 23 deletions(-)

diff --git a/extensions/coap/controllerservice/CoapConnector.cpp b/extensions/coap/controllerservice/CoapConnector.cpp
index 881797d..da6fc03 100644
--- a/extensions/coap/controllerservice/CoapConnector.cpp
+++ b/extensions/coap/controllerservice/CoapConnector.cpp
@@ -47,13 +47,13 @@ core::Property CoapConnectorService::MaxQueueSize(
     core::PropertyBuilder::createProperty("Max Queue Size")->withDescription("Max queue size for received data ")->withDefaultValue<uint64_t>(1000)->isRequired(false)->build());
 
 void CoapConnectorService::initialize() {
-  if (initialized_)
+  std::lock_guard<std::mutex> lock(initialization_mutex_);
+  if (initialized_) {
     return;
+  }
 
   CoapMessaging::getInstance();
 
-  std::lock_guard<std::mutex> lock(initialization_mutex_);
-
   ControllerService::initialize();
 
   initializeProperties();
diff --git a/extensions/coap/controllerservice/CoapConnector.h b/extensions/coap/controllerservice/CoapConnector.h
index ac023ea..cba303e 100644
--- a/extensions/coap/controllerservice/CoapConnector.h
+++ b/extensions/coap/controllerservice/CoapConnector.h
@@ -97,7 +97,7 @@ class CoapConnectorService : public core::controller::ControllerService {
   // initialization mutex.
   std::mutex initialization_mutex_;
 
-  std::atomic<bool> initialized_{ false };
+  bool initialized_ = false;
 
  private:
   // host connecting to.
diff --git a/extensions/jni/jvm/JavaControllerService.cpp b/extensions/jni/jvm/JavaControllerService.cpp
index 560e8a7..933e27c 100644
--- a/extensions/jni/jvm/JavaControllerService.cpp
+++ b/extensions/jni/jvm/JavaControllerService.cpp
@@ -59,10 +59,10 @@ core::Property JavaControllerService::NarDocumentDirectory(
     core::PropertyBuilder::createProperty("Nar Document Directory")->withDescription("Directory in which documents will be deployed")->isRequired(true)->supportsExpressionLanguage(false)->build());
 
 void JavaControllerService::initialize() {
-  if (initialized_)
-    return;
-
   std::lock_guard<std::mutex> lock(initialization_mutex_);
+  if (initialized_) {
+    return;
+  }
 
   ControllerService::initialize();
 
diff --git a/extensions/jni/jvm/JavaControllerService.h b/extensions/jni/jvm/JavaControllerService.h
index 0a42683..9b8c278 100644
--- a/extensions/jni/jvm/JavaControllerService.h
+++ b/extensions/jni/jvm/JavaControllerService.h
@@ -48,12 +48,10 @@ class JavaControllerService : public core::controller::ControllerService, public
  public:
   explicit JavaControllerService(const std::string &name, const utils::Identifier &uuid = {})
       : ControllerService(name, uuid) {
-    initialized_ = false;
   }
 
   explicit JavaControllerService(const std::string &name, const std::shared_ptr<Configure> &configuration)
       : ControllerService(name) {
-    initialized_ = false;
     setConfiguration(configuration);
     initialize();
   }
@@ -144,7 +142,7 @@ class JavaControllerService : public core::controller::ControllerService, public
 
   std::mutex initialization_mutex_;
 
-  std::atomic<bool> initialized_;
+  bool initialized_ = false;
 
   std::vector<std::string> classpaths_;
 
diff --git a/extensions/mqtt/controllerservice/MQTTControllerService.cpp b/extensions/mqtt/controllerservice/MQTTControllerService.cpp
index 27d5c68..c5333b5 100644
--- a/extensions/mqtt/controllerservice/MQTTControllerService.cpp
+++ b/extensions/mqtt/controllerservice/MQTTControllerService.cpp
@@ -45,10 +45,10 @@ core::Property MQTTControllerService::Topic("Topic", "The topic to publish the m
 core::Property MQTTControllerService::SecurityProtocol("Security Protocol", "Protocol used to communicate with brokers", "");
 
 void MQTTControllerService::initialize() {
-  if (initialized_)
-    return;
-
   std::lock_guard<std::mutex> lock(initialization_mutex_);
+  if (initialized_) {
+    return;
+  }
 
   ControllerService::initialize();
 
diff --git a/extensions/mqtt/controllerservice/MQTTControllerService.h b/extensions/mqtt/controllerservice/MQTTControllerService.h
index 798b39c..b7ca764 100644
--- a/extensions/mqtt/controllerservice/MQTTControllerService.h
+++ b/extensions/mqtt/controllerservice/MQTTControllerService.h
@@ -288,7 +288,7 @@ class MQTTControllerService : public core::controller::ControllerService {
   virtual void initializeProperties();
 
   std::mutex initialization_mutex_;
-  std::atomic<bool> initialized_;
+  bool initialized_;
 
   MQTTClient client_;
   std::string uri_;
diff --git a/extensions/sql/services/DatabaseService.cpp b/extensions/sql/services/DatabaseService.cpp
index 459724b..fe9cd4c 100644
--- a/extensions/sql/services/DatabaseService.cpp
+++ b/extensions/sql/services/DatabaseService.cpp
@@ -43,8 +43,9 @@ core::Property DatabaseService::ConnectionString(core::PropertyBuilder::createPr
 void DatabaseService::initialize() {
   std::lock_guard<std::recursive_mutex> lock(initialization_mutex_);
 
-  if (initialized_)
+  if (initialized_) {
     return;
+  }
 
   ControllerService::initialize();
 
diff --git a/extensions/sql/services/DatabaseService.h b/extensions/sql/services/DatabaseService.h
index 7d4e612..1161132 100644
--- a/extensions/sql/services/DatabaseService.h
+++ b/extensions/sql/services/DatabaseService.h
@@ -80,7 +80,7 @@ class DatabaseService : public core::controller::ControllerService {
   // initialization mutex.
   std::recursive_mutex initialization_mutex_;
 
-  bool initialized_{};
+  bool initialized_;
 
   std::string connection_string_;
 
diff --git a/libminifi/include/c2/C2Client.h b/libminifi/include/c2/C2Client.h
index 08d242d..24e2338 100644
--- a/libminifi/include/c2/C2Client.h
+++ b/libminifi/include/c2/C2Client.h
@@ -73,7 +73,8 @@ class C2Client : public core::Flow, public state::response::NodeReporter {
 
  private:
   std::unique_ptr<C2Agent> c2_agent_;
-  std::atomic_bool initialized_{false};
+  std::mutex initialization_mutex_;
+  bool initialized_ = false;
   std::shared_ptr<core::logging::Logger> logger_;
 
   mutable std::mutex metrics_mutex_;
diff --git a/libminifi/include/controllers/SSLContextService.h b/libminifi/include/controllers/SSLContextService.h
index a1975b8..a3ef480 100644
--- a/libminifi/include/controllers/SSLContextService.h
+++ b/libminifi/include/controllers/SSLContextService.h
@@ -189,7 +189,7 @@ class SSLContextService : public core::controller::ControllerService {
   virtual void initializeProperties();
 
   std::mutex initialization_mutex_;
-  std::atomic<bool> initialized_;
+  bool initialized_;
   std::atomic<bool> valid_;
   std::string certificate_;
   std::string private_key_;
diff --git a/libminifi/src/c2/C2Client.cpp b/libminifi/src/c2/C2Client.cpp
index a90fedf..d738a92 100644
--- a/libminifi/src/c2/C2Client.cpp
+++ b/libminifi/src/c2/C2Client.cpp
@@ -70,8 +70,11 @@ void C2Client::initialize(core::controller::ControllerServiceProvider *controlle
 
   configuration_->setFallbackAgentIdentifier(getControllerUUID().to_string());
 
-  if (initialized_ && !flow_update_) {
-    return;
+  {
+    std::lock_guard<std::mutex> lock(initialization_mutex_);
+    if (initialized_ && !flow_update_) {
+      return;
+    }
   }
 
   // root_response_nodes_ was not cleared before, it is unclear if that was intentional
@@ -123,6 +126,7 @@ void C2Client::initialize(core::controller::ControllerServiceProvider *controlle
 
   loadC2ResponseConfiguration("nifi.c2.root.class.definitions");
 
+  std::lock_guard<std::mutex> lock(initialization_mutex_);
   if (!initialized_) {
     // C2Agent is initialized once, meaning that a C2-triggered flow/configuration update
     // might not be equal to a fresh restart
diff --git a/libminifi/src/controllers/SSLContextService.cpp b/libminifi/src/controllers/SSLContextService.cpp
index eb385da..e410a5e 100644
--- a/libminifi/src/controllers/SSLContextService.cpp
+++ b/libminifi/src/controllers/SSLContextService.cpp
@@ -119,10 +119,10 @@ const core::Property SSLContextService::ClientCertKeyUsage(
 #endif  // WIN32
 
 void SSLContextService::initialize() {
-  if (initialized_)
-    return;
-
   std::lock_guard<std::mutex> lock(initialization_mutex_);
+  if (initialized_) {
+    return;
+  }
 
   ControllerService::initialize();