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

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

commit 68deb181a619fee9cd07291d12e19a0229a0f9e4
Author: Gabor Gyimesi <[email protected]>
AuthorDate: Thu Oct 26 16:17:22 2023 +0200

    MINIFICPP-1891 Integrate google clang-tidy checks in CI
    
    Closes #1671
    
    Signed-off-by: Marton Szasz <[email protected]>
---
 .clang-tidy                                        | 16 ++++++-
 .../tests/ExpressionLanguageTests.cpp              |  2 +-
 extensions/http-curl/client/HTTPClient.cpp         |  2 +-
 extensions/http-curl/tests/unit/AlertTests.cpp     |  2 +-
 extensions/librdkafka/ConsumeKafka.cpp             |  2 +-
 extensions/python/tests/PythonManifestTests.cpp    |  2 +-
 extensions/rocksdb-repos/RocksDbRepository.cpp     |  2 +-
 extensions/rocksdb-repos/RocksDbStream.cpp         |  2 +-
 extensions/sftp/client/SFTPClient.cpp              | 10 ++--
 extensions/sftp/tests/PutSFTPTests.cpp             |  5 +-
 .../tests/QuerySplunkIndexingStatusTests.cpp       |  2 +-
 extensions/sql/data/JSONSQLWriter.cpp              |  4 +-
 extensions/sql/data/SociConnectors.cpp             |  8 ++--
 .../standard-processors/tests/unit/PutTCPTests.cpp |  2 +-
 extensions/systemd/libwrapper/DlopenWrapper.cpp    | 10 +---
 extensions/systemd/libwrapper/DlopenWrapper.h      | 10 +---
 libminifi/include/core/ProcessSession.h            |  4 +-
 libminifi/src/c2/C2Agent.cpp                       |  2 +-
 libminifi/src/core/ProcessSession.cpp              | 21 ++++----
 .../src/core/flow/StructuredConfiguration.cpp      | 10 ++--
 libminifi/src/provenance/Provenance.cpp            | 23 +++++----
 libminifi/src/sitetosite/RawSocketProtocol.cpp     | 56 ++++++++++++----------
 libminifi/src/sitetosite/SiteToSiteClient.cpp      | 28 +++++------
 libminifi/src/utils/Cron.cpp                       |  6 +--
 libminifi/src/utils/TimeUtil.cpp                   |  2 +-
 libminifi/src/utils/file/FileUtils.cpp             | 18 ++++---
 libminifi/test/unit/CronTests.cpp                  |  4 +-
 libminifi/test/unit/ExtensionVerificationTests.cpp |  2 +-
 libminifi/test/unit/FileUtilsTests.cpp             | 51 ++++++++++----------
 libminifi/test/unit/LoggerTests.cpp                |  8 ++--
 libminifi/test/unit/MinifiConcurrentQueueTests.cpp | 47 ++++++++----------
 libminifi/test/unit/NetUtilsTest.cpp               |  6 +--
 libminifi/test/unit/PropertyValidationTests.cpp    | 45 +++++++++--------
 libminifi/test/unit/StreamTests.cpp                |  8 ++--
 libminifi/test/unit/TimeUtilTests.cpp              | 21 ++++----
 35 files changed, 222 insertions(+), 221 deletions(-)

diff --git a/.clang-tidy b/.clang-tidy
index cef17b1ab..de57fee56 100644
--- a/.clang-tidy
+++ b/.clang-tidy
@@ -188,5 +188,19 @@ Checks: >
   cppcoreguidelines-rvalue-reference-param-not-moved,
   cppcoreguidelines-slicing,
   cppcoreguidelines-virtual-class-destructor,
-  cppcoreguidelines-macro-usage
+  cppcoreguidelines-macro-usage,
+  google-build-explicit-make-pair,
+  google-build-namespaces,
+  google-build-using-namespace,
+  google-explicit-constructor,
+  google-global-names-in-headers,
+  google-objc-avoid-nsobject-new,
+  google-objc-avoid-throwing-exception,
+  google-objc-function-naming,
+  google-objc-global-variable-declaration,
+  google-readability-avoid-underscore-in-googletest-name,
+  google-readability-todo,
+  google-runtime-int,
+  google-runtime-operator,
+  google-upgrade-googletest-case
 FormatStyle: 'file'
diff --git a/extensions/expression-language/tests/ExpressionLanguageTests.cpp 
b/extensions/expression-language/tests/ExpressionLanguageTests.cpp
index d17f728db..8992a647d 100644
--- a/extensions/expression-language/tests/ExpressionLanguageTests.cpp
+++ b/extensions/expression-language/tests/ExpressionLanguageTests.cpp
@@ -1321,7 +1321,7 @@ TEST_CASE("Now Date", "[expressionNowDate]") {
 TEST_CASE("Parse RFC3339 with Expression Language toDate") {
   using date::sys_days;
   using org::apache::nifi::minifi::utils::timeutils::parseRfc3339;
-  using namespace date::literals;
+  using namespace date::literals;  // NOLINT(google-build-using-namespace)
   using namespace std::literals::chrono_literals;
   using std::chrono::milliseconds;
 
diff --git a/extensions/http-curl/client/HTTPClient.cpp 
b/extensions/http-curl/client/HTTPClient.cpp
index d62c30765..b9933ea09 100644
--- a/extensions/http-curl/client/HTTPClient.cpp
+++ b/extensions/http-curl/client/HTTPClient.cpp
@@ -389,7 +389,7 @@ bool HTTPClient::submit() {
   if (read_callback_ == nullptr) {
     content_.close();
   }
-  long http_code = 0;  // NOLINT(runtime/int) long due to libcurl API
+  long http_code = 0;  // NOLINT(runtime/int,google-runtime-int) long due to 
libcurl API
   curl_easy_getinfo(http_session_.get(), CURLINFO_RESPONSE_CODE, &http_code);
   response_data_.response_code = http_code;
   curl_easy_getinfo(http_session_.get(), CURLINFO_CONTENT_TYPE, 
&response_data_.response_content_type);
diff --git a/extensions/http-curl/tests/unit/AlertTests.cpp 
b/extensions/http-curl/tests/unit/AlertTests.cpp
index 20774156b..5a573fedf 100644
--- a/extensions/http-curl/tests/unit/AlertTests.cpp
+++ b/extensions/http-curl/tests/unit/AlertTests.cpp
@@ -73,7 +73,7 @@ TEST_CASE("Alert system forwards logs") {
   utils::timeutils::setClock(clock);
 
   TempDirectory dir;
-  auto flow_config_file = std::filesystem::path(dir.getPath()) / "config.yml";
+  auto flow_config_file = dir.getPath() / "config.yml";
   std::ofstream(flow_config_file) << empty_flow;
 
   std::string agent_id = "test-agent-1";
diff --git a/extensions/librdkafka/ConsumeKafka.cpp 
b/extensions/librdkafka/ConsumeKafka.cpp
index 785b8bf7c..3b84869b5 100644
--- a/extensions/librdkafka/ConsumeKafka.cpp
+++ b/extensions/librdkafka/ConsumeKafka.cpp
@@ -293,7 +293,7 @@ std::vector<std::string> 
ConsumeKafka::get_matching_headers(const rd_kafka_messa
   for (std::size_t header_idx = 0;; ++header_idx) {
     const char* value = nullptr;  // Not to be freed
     std::size_t size = 0;
-    if (RD_KAFKA_RESP_ERR_NO_ERROR != rd_kafka_header_get(headers_raw, 
header_idx, header_name.c_str(), (const void**)(&value), &size)) {
+    if (RD_KAFKA_RESP_ERR_NO_ERROR != rd_kafka_header_get(headers_raw, 
header_idx, header_name.c_str(), reinterpret_cast<const void**>(&value), 
&size)) {
       break;
     }
     if (size < 200) {
diff --git a/extensions/python/tests/PythonManifestTests.cpp 
b/extensions/python/tests/PythonManifestTests.cpp
index 5ec989ae9..e6e2185eb 100644
--- a/extensions/python/tests/PythonManifestTests.cpp
+++ b/extensions/python/tests/PythonManifestTests.cpp
@@ -47,7 +47,7 @@ const SerializedResponseNode& getNode(const 
std::vector<SerializedResponseNode>&
 TEST_CASE("Python processor's description is part of the manifest") {
   TestControllerWithFlow controller(empty_flow, false /* DEFER FLOW SETUP */);
 
-  auto python_dir = 
std::filesystem::path(controller.configuration_->getHome()) / "minifi-python";
+  auto python_dir = controller.configuration_->getHome() / "minifi-python";
   utils::file::create_dir(python_dir);
   std::ofstream{python_dir / "MyPyProc.py"} <<
     "def describe(proc):\n"
diff --git a/extensions/rocksdb-repos/RocksDbRepository.cpp 
b/extensions/rocksdb-repos/RocksDbRepository.cpp
index 409388327..5f44050f1 100644
--- a/extensions/rocksdb-repos/RocksDbRepository.cpp
+++ b/extensions/rocksdb-repos/RocksDbRepository.cpp
@@ -51,7 +51,7 @@ bool RocksDbRepository::Put(const std::string& key, const 
uint8_t *buf, size_t b
   if (!opendb) {
     return false;
   }
-  rocksdb::Slice value((const char *) buf, bufLen);
+  rocksdb::Slice value(reinterpret_cast<const char *>(buf), bufLen);
   auto operation = [&key, &value, &opendb]() { return 
opendb->Put(rocksdb::WriteOptions(), key, value); };
   return ExecuteWithRetry(operation);
 }
diff --git a/extensions/rocksdb-repos/RocksDbStream.cpp 
b/extensions/rocksdb-repos/RocksDbStream.cpp
index a0bbcde41..2dfaa0e4f 100644
--- a/extensions/rocksdb-repos/RocksDbStream.cpp
+++ b/extensions/rocksdb-repos/RocksDbStream.cpp
@@ -60,7 +60,7 @@ size_t RocksDbStream::write(const uint8_t *value, size_t 
size) {
   if (!opendb) {
     return STREAM_ERROR;
   }
-  rocksdb::Slice slice_value((const char*)value, size);
+  rocksdb::Slice slice_value(reinterpret_cast<const char*>(value), size);
   rocksdb::Status status;
   size_ += size;
   if (batch_ != nullptr) {
diff --git a/extensions/sftp/client/SFTPClient.cpp 
b/extensions/sftp/client/SFTPClient.cpp
index badea3ae9..d9ee21069 100644
--- a/extensions/sftp/client/SFTPClient.cpp
+++ b/extensions/sftp/client/SFTPClient.cpp
@@ -32,7 +32,7 @@
 
 namespace org::apache::nifi::minifi::utils {
 
-static const char* sftp_strerror(unsigned long err) {  // NOLINT(runtime/int) 
unsigned long comes from libssh2 API
+static const char* sftp_strerror(unsigned long err) {  // 
NOLINT(runtime/int,google-runtime-int) unsigned long comes from libssh2 API
   switch (err) {
     case LIBSSH2_FX_OK:
       return "LIBSSH2_FX_OK";
@@ -83,7 +83,7 @@ static const char* sftp_strerror(unsigned long err) {  // 
NOLINT(runtime/int) un
   }
 }
 
-static SFTPError libssh2_sftp_error_to_sftp_error(unsigned long 
libssh2_sftp_error) {  // NOLINT(runtime/int) unsigned long comes from libssh2 
API
+static SFTPError libssh2_sftp_error_to_sftp_error(unsigned long 
libssh2_sftp_error) {  // NOLINT(runtime/int,google-runtime-int) unsigned long 
comes from libssh2 API
   switch (libssh2_sftp_error) {
     case LIBSSH2_FX_OK:
       return SFTPError::Ok;
@@ -123,7 +123,7 @@ LastSFTPError::LastSFTPError()
     , sftp_error_(SFTPError::Ok) {
 }
 
-LastSFTPError& LastSFTPError::setLibssh2Error(unsigned long 
libssh2_sftp_error) {  // NOLINT(runtime/int) unsigned long comes from libssh2 
API
+LastSFTPError& LastSFTPError::setLibssh2Error(unsigned long 
libssh2_sftp_error) {  // NOLINT(runtime/int,google-runtime-int) unsigned long 
comes from libssh2 API
   sftp_error_set_ = false;
   libssh2_sftp_error_ = libssh2_sftp_error;
   return *this;
@@ -135,7 +135,7 @@ LastSFTPError& LastSFTPError::setSftpError(const SFTPError& 
sftp_error) {
   return *this;
 }
 
-LastSFTPError::operator unsigned long() const {  // NOLINT(runtime/int) 
unsigned long comes from libssh2 API
+LastSFTPError::operator unsigned long() const {  // 
NOLINT(runtime/int,google-runtime-int) unsigned long comes from libssh2 API
   if (sftp_error_set_) {
     return LIBSSH2_FX_OK;
   } else {
@@ -300,7 +300,7 @@ bool SFTPClient::connect() {
 #ifdef WIN32
   curl_socket_t sockfd;
 #else
-  long sockfd = 0;  // NOLINT(runtime/int) long due to libcurl API
+  long sockfd = 0;  // NOLINT(runtime/int,google-runtime-int) long due to 
libcurl API
 #endif
   curl_res = curl_easy_getinfo(easy_, CURLINFO_ACTIVESOCKET, &sockfd);
   if (curl_res != CURLE_OK) {
diff --git a/extensions/sftp/tests/PutSFTPTests.cpp 
b/extensions/sftp/tests/PutSFTPTests.cpp
index 3cf38f437..e7904873f 100644
--- a/extensions/sftp/tests/PutSFTPTests.cpp
+++ b/extensions/sftp/tests/PutSFTPTests.cpp
@@ -201,7 +201,7 @@ class PutSFTPTestsFixture {
 
 namespace {
 std::size_t directoryContentCount(const std::filesystem::path& dir) {
-  return (std::size_t)std::distance(std::filesystem::directory_iterator{dir}, 
std::filesystem::directory_iterator{});
+  return 
gsl::narrow<std::size_t>(std::distance(std::filesystem::directory_iterator{dir},
 std::filesystem::directory_iterator{}));
 }
 }  // namespace
 
@@ -501,8 +501,7 @@ TEST_CASE_METHOD(PutSFTPTestsFixture, "PutSFTP set mtime", 
"[PutSFTP]") {
   testController.runSession(plan, true);
 
   testFile("nifi_test/tstFile1.ext", "content 1");
-  using namespace std::chrono;  // NOLINT(build/namespaces)
-  system_clock::time_point modification_time = date::sys_days(date::January / 
24 / 2065) + 5h + 20min;
+  std::chrono::system_clock::time_point modification_time = 
date::sys_days(date::January / 24 / 2065) + 5h + 20min;
   testModificationTime("nifi_test/tstFile1.ext", 
utils::file::from_sys(modification_time));
 }
 
diff --git a/extensions/splunk/tests/QuerySplunkIndexingStatusTests.cpp 
b/extensions/splunk/tests/QuerySplunkIndexingStatusTests.cpp
index 49a025b97..29716ad9e 100644
--- a/extensions/splunk/tests/QuerySplunkIndexingStatusTests.cpp
+++ b/extensions/splunk/tests/QuerySplunkIndexingStatusTests.cpp
@@ -87,7 +87,7 @@ TEST_CASE("QuerySplunkIndexingStatus tests", 
"[querysplunkindexingstatus]") {
 
     write_to_flow_file->setContent("");
     plan->reset();
-    std::this_thread::sleep_for(std::chrono::milliseconds(100ms));
+    std::this_thread::sleep_for(100ms);
     test_controller.runSession(plan);
 
     CHECK(read_from_failure->numberOfFlowFilesRead() == 0);
diff --git a/extensions/sql/data/JSONSQLWriter.cpp 
b/extensions/sql/data/JSONSQLWriter.cpp
index d77ff2741..2a2df6912 100644
--- a/extensions/sql/data/JSONSQLWriter.cpp
+++ b/extensions/sql/data/JSONSQLWriter.cpp
@@ -58,11 +58,11 @@ void JSONSQLWriter::processColumn(const std::string& name, 
int value) {
   addToJSONRow(name, rapidjson::Value(value));
 }
 
-void JSONSQLWriter::processColumn(const std::string& name, long long value) {
+void JSONSQLWriter::processColumn(const std::string& name, long long value) {  
// NOLINT(google-runtime-int)
   addToJSONRow(name, rapidjson::Value(gsl::narrow<int64_t>(value)));
 }
 
-void JSONSQLWriter::processColumn(const std::string& name, unsigned long long 
value) {
+void JSONSQLWriter::processColumn(const std::string& name, unsigned long long 
value) {  // NOLINT(google-runtime-int)
   addToJSONRow(name, rapidjson::Value(gsl::narrow<uint64_t>(value)));
 }
 
diff --git a/extensions/sql/data/SociConnectors.cpp 
b/extensions/sql/data/SociConnectors.cpp
index 7b6c371e4..9bdc626e8 100644
--- a/extensions/sql/data/SociConnectors.cpp
+++ b/extensions/sql/data/SociConnectors.cpp
@@ -83,12 +83,12 @@ int SociRow::getInteger(std::size_t index) const {
   return current_->get<int>(index);
 }
 
-long long SociRow::getLongLong(std::size_t index) const {
-  return current_->get<long long>(index);
+long long SociRow::getLongLong(std::size_t index) const {  // 
NOLINT(google-runtime-int)
+  return current_->get<long long>(index);  // NOLINT(google-runtime-int)
 }
 
-unsigned long long SociRow::getUnsignedLongLong(std::size_t index) const {
-  return current_->get<unsigned long long>(index);
+unsigned long long SociRow::getUnsignedLongLong(std::size_t index) const {  // 
NOLINT(google-runtime-int)
+  return current_->get<unsigned long long>(index);  // 
NOLINT(google-runtime-int)
 }
 
 std::tm SociRow::getDate(std::size_t index) const {
diff --git a/extensions/standard-processors/tests/unit/PutTCPTests.cpp 
b/extensions/standard-processors/tests/unit/PutTCPTests.cpp
index 9a38a146a..9956527bc 100644
--- a/extensions/standard-processors/tests/unit/PutTCPTests.cpp
+++ b/extensions/standard-processors/tests/unit/PutTCPTests.cpp
@@ -166,7 +166,7 @@ class PutTCPTestFixture {
   }
 
   void addSSLContextToPutTCP(const std::filesystem::path& ca_cert, const 
std::optional<std::filesystem::path>& client_cert, const 
std::optional<std::filesystem::path>& client_cert_key) {
-    const std::filesystem::path ca_dir = 
std::filesystem::path(minifi::utils::file::FileUtils::get_executable_dir()) / 
"resources";
+    const std::filesystem::path ca_dir = 
minifi::utils::file::FileUtils::get_executable_dir() / "resources";
     auto ssl_context_service_node = 
controller_.plan->addController("SSLContextService", "SSLContextService");
     REQUIRE(controller_.plan->setProperty(ssl_context_service_node, 
SSLContextService::CACertificate, (ca_dir / ca_cert).string()));
     if (client_cert) {
diff --git a/extensions/systemd/libwrapper/DlopenWrapper.cpp 
b/extensions/systemd/libwrapper/DlopenWrapper.cpp
index 355370f64..b4e6e90e4 100644
--- a/extensions/systemd/libwrapper/DlopenWrapper.cpp
+++ b/extensions/systemd/libwrapper/DlopenWrapper.cpp
@@ -24,7 +24,7 @@
 
 struct sd_journal;
 
-namespace org { namespace apache { namespace nifi { namespace minifi { 
namespace extensions { namespace systemd { namespace libwrapper {
+namespace org::apache::nifi::minifi::extensions::systemd::libwrapper {
 
 namespace {
 struct dlclose_deleter {
@@ -101,10 +101,4 @@ std::unique_ptr<Journal> DlopenWrapper::openJournal(const 
JournalType type) {
   return std::make_unique<DlopenJournal>(type);
 }
 
-}  // namespace libwrapper
-}  // namespace systemd
-}  // namespace extensions
-}  // namespace minifi
-}  // namespace nifi
-}  // namespace apache
-}  // namespace org
+}  // namespace org::apache::nifi::minifi::extensions::systemd::libwrapper
diff --git a/extensions/systemd/libwrapper/DlopenWrapper.h 
b/extensions/systemd/libwrapper/DlopenWrapper.h
index 88ae6901a..82267eab6 100644
--- a/extensions/systemd/libwrapper/DlopenWrapper.h
+++ b/extensions/systemd/libwrapper/DlopenWrapper.h
@@ -19,16 +19,10 @@
 #include "LibWrapper.h"
 #include <memory>
 
-namespace org { namespace apache { namespace nifi { namespace minifi { 
namespace extensions { namespace systemd { namespace libwrapper {
+namespace org::apache::nifi::minifi::extensions::systemd::libwrapper {
 
 struct DlopenWrapper : LibWrapper {
   std::unique_ptr<Journal> openJournal(JournalType) override;
 };
 
-}  // namespace libwrapper
-}  // namespace systemd
-}  // namespace extensions
-}  // namespace minifi
-}  // namespace nifi
-}  // namespace apache
-}  // namespace org
+}  // namespace org::apache::nifi::minifi::extensions::systemd::libwrapper
diff --git a/libminifi/include/core/ProcessSession.h 
b/libminifi/include/core/ProcessSession.h
index 86fe5cf9e..85a25ad76 100644
--- a/libminifi/include/core/ProcessSession.h
+++ b/libminifi/include/core/ProcessSession.h
@@ -124,8 +124,8 @@ class ProcessSession : public ReferenceContainer {
   void importFrom(io::InputStream&& stream, const 
std::shared_ptr<core::FlowFile> &flow);
 
   // import from the data source.
-  void import(std::string source, const std::shared_ptr<core::FlowFile> &flow, 
bool keepSource = true, uint64_t offset = 0);
-  DEPRECATED(/*deprecated in*/ 0.7.0, /*will remove in */ 2.0) void 
import(std::string source, std::vector<std::shared_ptr<FlowFile>> &flows, bool 
keepSource, uint64_t offset, char inputDelimiter); // NOLINT
+  void import(const std::string& source, const std::shared_ptr<core::FlowFile> 
&flow, bool keepSource = true, uint64_t offset = 0);
+  DEPRECATED(/*deprecated in*/ 0.7.0, /*will remove in */ 2.0) void 
import(const std::string& source, std::vector<std::shared_ptr<FlowFile>> 
&flows, bool keepSource, uint64_t offset, char inputDelimiter); // NOLINT
   DEPRECATED(/*deprecated in*/ 0.8.0, /*will remove in */ 2.0) void 
import(const std::string& source, std::vector<std::shared_ptr<FlowFile>> 
&flows, uint64_t offset, char inputDelimiter);
 
   /**
diff --git a/libminifi/src/c2/C2Agent.cpp b/libminifi/src/c2/C2Agent.cpp
index 3bd7bc0e5..bfb12cf09 100644
--- a/libminifi/src/c2/C2Agent.cpp
+++ b/libminifi/src/c2/C2Agent.cpp
@@ -941,7 +941,7 @@ void C2Agent::handleAssetUpdate(const C2ContentResponse& 
resp) {
     response.setRawData(as_bytes(std::span(error.begin(), error.end())));
     enqueue_c2_response(std::move(response));
   };
-  std::filesystem::path asset_dir = 
std::filesystem::path(configuration_->getHome()) / "asset";
+  std::filesystem::path asset_dir = configuration_->getHome() / "asset";
   if (auto asset_dir_str = 
configuration_->get(Configuration::nifi_asset_directory)) {
     asset_dir = asset_dir_str.value();
   }
diff --git a/libminifi/src/core/ProcessSession.cpp 
b/libminifi/src/core/ProcessSession.cpp
index a2e733c35..4b7507234 100644
--- a/libminifi/src/core/ProcessSession.cpp
+++ b/libminifi/src/core/ProcessSession.cpp
@@ -175,7 +175,7 @@ std::shared_ptr<core::FlowFile> 
ProcessSession::cloneDuringTransfer(const std::s
 }
 
 std::shared_ptr<core::FlowFile> ProcessSession::clone(const 
std::shared_ptr<core::FlowFile> &parent, int64_t offset, int64_t size) {
-  if ((uint64_t) (offset + size) > parent->getSize()) {
+  if (gsl::narrow<uint64_t>(offset + size) > parent->getSize()) {
     // Set offset and size
     logger_->log_error("clone offset {} and size {} exceed parent size {}", 
offset, size, parent->getSize());
     return nullptr;
@@ -484,7 +484,7 @@ void ProcessSession::importFrom(io::InputStream &stream, 
const std::shared_ptr<c
   }
 }
 
-void ProcessSession::import(std::string source, const 
std::shared_ptr<FlowFile> &flow, bool keepSource, uint64_t offset) {
+void ProcessSession::import(const std::string& source, const 
std::shared_ptr<FlowFile> &flow, bool keepSource, uint64_t offset) {
   std::shared_ptr<ResourceClaim> claim = content_session_->create();
   size_t size = getpagesize();
   std::vector<uint8_t> charBuffer(size);
@@ -502,14 +502,14 @@ void ProcessSession::import(std::string source, const 
std::shared_ptr<FlowFile>
       bool invalidWrite = false;
       // Open the source file and stream to the flow file
       if (offset != 0) {
-        input.seekg(offset);
+        input.seekg(gsl::narrow<std::streamoff>(offset));
         if (!input.good()) {
           logger_->log_error("Seeking to {} failed for file {} (does 
file/filesystem support seeking?)", offset, source);
           invalidWrite = true;
         }
       }
       while (input.good()) {
-        input.read(reinterpret_cast<char*>(charBuffer.data()), size);
+        input.read(reinterpret_cast<char*>(charBuffer.data()), 
gsl::narrow<std::streamsize>(size));
         if (input) {
           if (io::isError(stream->write(charBuffer.data(), size))) {
             invalidWrite = true;
@@ -533,8 +533,9 @@ void ProcessSession::import(std::string source, const 
std::shared_ptr<FlowFile>
 
         stream->close();
         input.close();
-        if (!keepSource)
-          std::remove(source.c_str());
+        if (!keepSource) {
+          (void)std::remove(source.c_str());
+        }
         std::stringstream details;
         details << process_context_->getProcessorNode()->getName() << " modify 
flow record content " << flow->getUUIDStr();
         auto duration = 
std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::steady_clock::now()
 - start_time);
@@ -569,14 +570,14 @@ void ProcessSession::import(const std::string& source, 
std::vector<std::shared_p
       throw Exception(FILE_OPERATION_EXCEPTION, 
utils::StringUtils::join_pack("File Import Error: failed to open file \'", 
source, "\'"));
     }
     if (offset != 0U) {
-      input.seekg(offset, std::ifstream::beg);
+      input.seekg(gsl::narrow<std::streamoff>(offset), std::ifstream::beg);
       if (!input.good()) {
         logger_->log_error("Seeking to {} failed for file {} (does 
file/filesystem support seeking?)", offset, source);
         throw Exception(FILE_OPERATION_EXCEPTION, 
utils::StringUtils::join_pack("File Import Error: Couldn't seek to offset ", 
std::to_string(offset)));
       }
     }
     while (input.good()) {
-      input.read(reinterpret_cast<char*>(buffer.data()), buffer.size());
+      input.read(reinterpret_cast<char*>(buffer.data()), 
gsl::narrow<std::streamsize>(buffer.size()));
       std::streamsize read = input.gcount();
       if (read < 0) {
         throw Exception(FILE_OPERATION_EXCEPTION, "std::ifstream::gcount 
returned negative value");
@@ -656,7 +657,7 @@ void ProcessSession::import(const std::string& source, 
std::vector<std::shared_p
   }
 }
 
-void ProcessSession::import(std::string source, 
std::vector<std::shared_ptr<FlowFile>> &flows, bool keepSource, uint64_t 
offset, char inputDelimiter) {
+void ProcessSession::import(const std::string& source, 
std::vector<std::shared_ptr<FlowFile>> &flows, bool keepSource, uint64_t 
offset, char inputDelimiter) {
 // this function calls a deprecated function, but it is itself deprecated, so 
suppress warnings
 #if defined(__clang__)
 #pragma clang diagnostic push
@@ -678,7 +679,7 @@ void ProcessSession::import(std::string source, 
std::vector<std::shared_ptr<Flow
 #endif
   logger_->log_trace("Closed input {}, keeping source ? {}", source, 
keepSource);
   if (!keepSource) {
-    std::remove(source.c_str());
+    (void)std::remove(source.c_str());
   }
 }
 
diff --git a/libminifi/src/core/flow/StructuredConfiguration.cpp 
b/libminifi/src/core/flow/StructuredConfiguration.cpp
index 5435e4143..1234b634d 100644
--- a/libminifi/src/core/flow/StructuredConfiguration.cpp
+++ b/libminifi/src/core/flow/StructuredConfiguration.cpp
@@ -266,10 +266,10 @@ void StructuredConfiguration::parseProcessorNode(const 
Node& processors_node, co
       logger_->log_debug("setting scheduling strategy as {}", 
procCfg.schedulingStrategy);
     }
 
-    int32_t maxConcurrentTasks;
+    uint8_t maxConcurrentTasks = 0;
     if (core::Property::StringToInt(procCfg.maxConcurrentTasks, 
maxConcurrentTasks)) {
       logger_->log_debug("parseProcessorNode: maxConcurrentTasks => [{}]", 
maxConcurrentTasks);
-      processor->setMaxConcurrentTasks((uint8_t) maxConcurrentTasks);
+      processor->setMaxConcurrentTasks(maxConcurrentTasks);
     }
 
     if (core::Property::StringToInt(procCfg.runDurationNanos, 
runDurationNanos)) {
@@ -366,7 +366,7 @@ void StructuredConfiguration::parseRemoteProcessGroup(const 
Node& rpg_node_seq,
           }
           if (currRpgNode[schema_.rpg_proxy_port]) {
             auto http_proxy_port = 
currRpgNode[schema_.rpg_proxy_port].getIntegerAsString().value();
-            int32_t port;
+            int32_t port = 0;
             if (core::Property::StringToInt(http_proxy_port, port)) {
               logger_->log_debug("parseRemoteProcessGroup: proxy port => 
[{}]", port);
               group->setHttpProxyPort(port);
@@ -436,7 +436,7 @@ void 
StructuredConfiguration::parseProvenanceReporting(const Node& node, core::P
     throw std::invalid_argument("Invalid scheduling strategy " + 
schedulingStrategyStr);
   }
 
-  int64_t lvalue;
+  int64_t lvalue = 0;
   if (node["host"] && node["port"]) {
     auto hostStr = node["host"].getString().value();
 
@@ -610,7 +610,7 @@ void StructuredConfiguration::parseRPGPort(const Node& 
port_node, core::ProcessG
 
   if (auto tasksNode = port_node[schema_.max_concurrent_tasks]) {
     std::string rawMaxConcurrentTasks = tasksNode.getIntegerAsString().value();
-    int32_t maxConcurrentTasks;
+    int32_t maxConcurrentTasks = 0;
     if (core::Property::StringToInt(rawMaxConcurrentTasks, 
maxConcurrentTasks)) {
       processor.setMaxConcurrentTasks(maxConcurrentTasks);
     }
diff --git a/libminifi/src/provenance/Provenance.cpp 
b/libminifi/src/provenance/Provenance.cpp
index 163a1ee69..aaa98c704 100644
--- a/libminifi/src/provenance/Provenance.cpp
+++ b/libminifi/src/provenance/Provenance.cpp
@@ -37,8 +37,8 @@ namespace org::apache::nifi::minifi::provenance {
 std::shared_ptr<utils::IdGenerator> ProvenanceEventRecord::id_generator_ = 
utils::IdGenerator::getIdGenerator();
 std::shared_ptr<core::logging::Logger> ProvenanceEventRecord::logger_ = 
core::logging::LoggerFactory<ProvenanceEventRecord>::getLogger();
 
-const char *ProvenanceEventRecord::ProvenanceEventTypeStr[REPLAY + 1] = { 
"CREATE", "RECEIVE", "FETCH", "SEND", "DOWNLOAD", "DROP", "EXPIRE", "FORK", 
"JOIN", "CLONE", "CONTENT_MODIFIED",
-    "ATTRIBUTES_MODIFIED", "ROUTE", "ADDINFO", "REPLAY" };
+const char *ProvenanceEventRecord::ProvenanceEventTypeStr[REPLAY + 1] = { 
"CREATE", "RECEIVE", "FETCH", "SEND", "DOWNLOAD",  // 
NOLINT(cppcoreguidelines-avoid-c-arrays)
+    "DROP", "EXPIRE", "FORK", "JOIN", "CLONE", "CONTENT_MODIFIED", 
"ATTRIBUTES_MODIFIED", "ROUTE", "ADDINFO", "REPLAY" };
 
 
ProvenanceEventRecord::ProvenanceEventRecord(ProvenanceEventRecord::ProvenanceEventType
 event, std::string componentId, std::string componentType)
     : core::SerializableComponent(core::className<ProvenanceEventRecord>()),
@@ -50,7 +50,7 @@ 
ProvenanceEventRecord::ProvenanceEventRecord(ProvenanceEventRecord::ProvenanceEv
 
 bool ProvenanceEventRecord::loadFromRepository(const 
std::shared_ptr<core::Repository> &repo) {
   std::string value;
-  bool ret;
+  bool ret = false;
 
   if (nullptr == repo || uuid_.isNil()) {
     logger_->log_error("Repo could not be assigned");
@@ -249,7 +249,7 @@ bool ProvenanceEventRecord::deserialize(io::InputStream 
&input_stream) {
     }
   }
 
-  uint32_t eventType;
+  uint32_t eventType = 0;
   {
     const auto ret = input_stream.read(eventType);
     if (ret != 4) {
@@ -257,9 +257,14 @@ bool ProvenanceEventRecord::deserialize(io::InputStream 
&input_stream) {
     }
   }
 
-  this->_eventType = (ProvenanceEventRecord::ProvenanceEventType) eventType;
+  if (auto event_type_opt = 
magic_enum::enum_cast<ProvenanceEventRecord::ProvenanceEventType>(eventType)) {
+    _eventType = *event_type_opt;
+  } else {
+    return false;
+  }
+
   {
-    uint64_t event_time_in_ms;
+    uint64_t event_time_in_ms = 0;
     const auto ret = input_stream.read(event_time_in_ms);
     if (ret != 8) {
       return false;
@@ -268,7 +273,7 @@ bool ProvenanceEventRecord::deserialize(io::InputStream 
&input_stream) {
   }
 
   {
-    uint64_t entry_date_in_ms;
+    uint64_t entry_date_in_ms = 0;
     const auto ret = input_stream.read(entry_date_in_ms);
     if (ret != 8) {
       return false;
@@ -277,7 +282,7 @@ bool ProvenanceEventRecord::deserialize(io::InputStream 
&input_stream) {
   }
 
   {
-    uint64_t event_duration_ms;
+    uint64_t event_duration_ms = 0;
     const auto ret = input_stream.read(event_duration_ms);
     if (ret != 8) {
       return false;
@@ -286,7 +291,7 @@ bool ProvenanceEventRecord::deserialize(io::InputStream 
&input_stream) {
   }
 
   {
-    uint64_t lineage_start_date_in_ms;
+    uint64_t lineage_start_date_in_ms = 0;
     const auto ret = input_stream.read(lineage_start_date_in_ms);
     if (ret != 8) {
       return false;
diff --git a/libminifi/src/sitetosite/RawSocketProtocol.cpp 
b/libminifi/src/sitetosite/RawSocketProtocol.cpp
index 3e8ec0bb8..307a9092c 100644
--- a/libminifi/src/sitetosite/RawSocketProtocol.cpp
+++ b/libminifi/src/sitetosite/RawSocketProtocol.cpp
@@ -36,7 +36,7 @@ namespace org::apache::nifi::minifi::sitetosite {
 std::shared_ptr<utils::IdGenerator> RawSiteToSiteClient::id_generator_ = 
utils::IdGenerator::getIdGenerator();
 std::shared_ptr<utils::IdGenerator> Transaction::id_generator_ = 
utils::IdGenerator::getIdGenerator();
 
-const char *RawSiteToSiteClient::HandShakePropertyStr[MAX_HANDSHAKE_PROPERTY] 
= {
+const char *RawSiteToSiteClient::HandShakePropertyStr[MAX_HANDSHAKE_PROPERTY] 
= {  // NOLINT(cppcoreguidelines-avoid-c-arrays)
 /**
  * Boolean value indicating whether or not the contents of a FlowFile should
  * be GZipped when transferred.
@@ -126,7 +126,7 @@ bool RawSiteToSiteClient::initiateResourceNegotiation() {
     }
   }
 
-  uint8_t statusCode;
+  uint8_t statusCode = 0;
   {
     const auto ret = peer_->read(statusCode);
     if (ret == 0 || io::isError(ret)) {
@@ -136,11 +136,12 @@ bool RawSiteToSiteClient::initiateResourceNegotiation() {
   }
   logger_->log_debug("status code is {}", statusCode);
   switch (statusCode) {
-    case RESOURCE_OK:
+    case RESOURCE_OK: {
       logger_->log_debug("Site2Site Protocol Negotiate protocol version OK");
       return true;
-    case DIFFERENT_RESOURCE_VERSION:
-      uint32_t serverVersion;
+    }
+    case DIFFERENT_RESOURCE_VERSION: {
+      uint32_t serverVersion = 0;
       {
         const auto ret = peer_->read(serverVersion);
         if (ret == 0 || io::isError(ret)) {
@@ -153,18 +154,21 @@ bool RawSiteToSiteClient::initiateResourceNegotiation() {
       for (unsigned int i = (_currentVersionIndex + 1); i < 
sizeof(_supportedVersion) / sizeof(uint32_t); i++) {
         if (serverVersion >= _supportedVersion[i]) {
           _currentVersion = _supportedVersion[i];
-          _currentVersionIndex = i;
+          _currentVersionIndex = gsl::narrow<int>(i);
           return initiateResourceNegotiation();
         }
       }
       logger_->log_error("Site2Site Negotiate protocol failed to find a common 
version with server");
       return false;
-    case NEGOTIATED_ABORT:
+    }
+    case NEGOTIATED_ABORT: {
       logger_->log_error("Site2Site Negotiate protocol response ABORT");
       return false;
-    default:
+    }
+    default: {
       logger_->log_error("Negotiate protocol response unknown code {}", 
statusCode);
       return false;
+    }
   }
 }
 
@@ -193,7 +197,7 @@ bool 
RawSiteToSiteClient::initiateCodecResourceNegotiation() {
     }
   }
 
-  uint8_t statusCode;
+  uint8_t statusCode = 0;
   {
     const auto ret = peer_->read(statusCode);
     if (ret == 0 || io::isError(ret)) {
@@ -201,11 +205,12 @@ bool 
RawSiteToSiteClient::initiateCodecResourceNegotiation() {
     }
   }
   switch (statusCode) {
-    case RESOURCE_OK:
+    case RESOURCE_OK: {
       logger_->log_trace("Site2Site Codec Negotiate version OK");
       return true;
-    case DIFFERENT_RESOURCE_VERSION:
-      uint32_t serverVersion;
+    }
+    case DIFFERENT_RESOURCE_VERSION: {
+      uint32_t serverVersion = 0;
       {
         const auto ret = peer_->read(serverVersion);
         if (ret == 0 || io::isError(ret)) {
@@ -217,18 +222,21 @@ bool 
RawSiteToSiteClient::initiateCodecResourceNegotiation() {
       for (unsigned int i = (_currentCodecVersionIndex + 1); i < 
sizeof(_supportedCodecVersion) / sizeof(uint32_t); i++) {
         if (serverVersion >= _supportedCodecVersion[i]) {
           _currentCodecVersion = _supportedCodecVersion[i];
-          _currentCodecVersionIndex = i;
+          _currentCodecVersionIndex = gsl::narrow<int>(i);
           return initiateCodecResourceNegotiation();
         }
       }
       logger_->log_error("Site2Site Negotiate codec failed to find a common 
version with server");
       return false;
-    case NEGOTIATED_ABORT:
+    }
+    case NEGOTIATED_ABORT: {
       logger_->log_error("Site2Site Codec Negotiate response ABORT");
       return false;
-    default:
+    }
+    default: {
       logger_->log_error("Negotiate Codec response unknown code {}", 
statusCode);
       return false;
+    }
   }
 }
 
@@ -292,7 +300,7 @@ bool RawSiteToSiteClient::handShake() {
     logger_->log_debug("Site2Site Protocol Send handshake properties {} {}", 
it->first, it->second);
   }
 
-  RespondCode code;
+  RespondCode code = RESERVED;
   std::string message;
 
   {
@@ -348,7 +356,7 @@ bool 
RawSiteToSiteClient::getPeerList(std::vector<PeerStatus> &peers) {
       return false;
     }
 
-    uint32_t number_of_peers;
+    uint32_t number_of_peers = 0;
     {
       const auto ret = peer_->read(number_of_peers);
       if (ret == 0 || io::isError(ret)) {
@@ -366,7 +374,7 @@ bool 
RawSiteToSiteClient::getPeerList(std::vector<PeerStatus> &peers) {
           return false;
         }
       }
-      uint32_t port;
+      uint32_t port = 0;
       {
         const auto ret = peer_->read(port);
         if (ret == 0 || io::isError(ret)) {
@@ -374,7 +382,7 @@ bool 
RawSiteToSiteClient::getPeerList(std::vector<PeerStatus> &peers) {
           return false;
         }
       }
-      uint8_t secure;
+      uint8_t secure = 0;
       {
         const auto ret = peer_->read(secure);
         if (ret == 0 || io::isError(ret)) {
@@ -382,7 +390,7 @@ bool 
RawSiteToSiteClient::getPeerList(std::vector<PeerStatus> &peers) {
           return false;
         }
       }
-      uint32_t count;
+      uint32_t count = 0;
       {
         const auto ret = peer_->read(count);
         if (ret == 0 || io::isError(ret)) {
@@ -419,7 +427,7 @@ bool 
RawSiteToSiteClient::getPeerList(std::vector<PeerStatus> &peers) {
 
     for (int i = NEGOTIATE_FLOWFILE_CODEC; i <= SHUTDOWN; i++) {
       if (SiteToSiteRequest::RequestTypeStr[i] == requestTypeStr) {
-        type = (RequestType) i;
+        type = static_cast<RequestType>(i);
         return static_cast<int>(ret);
       }
     }
@@ -480,8 +488,8 @@ bool RawSiteToSiteClient::bootstrap() {
 }
 
 std::shared_ptr<Transaction> 
RawSiteToSiteClient::createTransaction(TransferDirection direction) {
-  int ret;
-  bool dataAvailable;
+  int ret = 0;
+  bool dataAvailable = false;
   std::shared_ptr<Transaction> transaction = nullptr;
 
   if (peer_state_ != READY) {
@@ -499,7 +507,7 @@ std::shared_ptr<Transaction> 
RawSiteToSiteClient::createTransaction(TransferDire
       return transaction;
     }
 
-    RespondCode code;
+    RespondCode code = RESERVED;
     std::string message;
 
     ret = readRespond(nullptr, code, message);
diff --git a/libminifi/src/sitetosite/SiteToSiteClient.cpp 
b/libminifi/src/sitetosite/SiteToSiteClient.cpp
index d7d37dced..3eb000af0 100644
--- a/libminifi/src/sitetosite/SiteToSiteClient.cpp
+++ b/libminifi/src/sitetosite/SiteToSiteClient.cpp
@@ -27,28 +27,28 @@
 namespace org::apache::nifi::minifi::sitetosite {
 
 int SiteToSiteClient::readResponse(const std::shared_ptr<Transaction>& 
/*transaction*/, RespondCode &code, std::string &message) {
-  uint8_t firstByte;
+  uint8_t firstByte = 0;
   {
     const auto ret = peer_->read(firstByte);
     if (ret == 0 || io::isError(ret) || firstByte != CODE_SEQUENCE_VALUE_1)
       return -1;
   }
 
-  uint8_t secondByte;
+  uint8_t secondByte = 0;
   {
     const auto ret = peer_->read(secondByte);
     if (ret == 0 || io::isError(ret) || secondByte != CODE_SEQUENCE_VALUE_2)
       return -1;
   }
 
-  uint8_t thirdByte;
+  uint8_t thirdByte = 0;
   {
     const auto ret = peer_->read(thirdByte);
     if (ret == 0 || io::isError(ret))
       return static_cast<int>(ret);
   }
 
-  code = (RespondCode) thirdByte;
+  code = static_cast<RespondCode>(thirdByte);
   RespondCodeContext *resCode = this->getRespondCodeContext(code);
   if (!resCode) {
     return -1;
@@ -82,8 +82,8 @@ int SiteToSiteClient::writeResponse(const 
std::shared_ptr<Transaction>& /*transa
   }
 
   {
-    const uint8_t codeSeq[3] { CODE_SEQUENCE_VALUE_1, CODE_SEQUENCE_VALUE_2, 
static_cast<uint8_t>(code) };
-    const auto ret = peer_->write(codeSeq, 3);
+    const std::array<uint8_t, 3> codeSeq = { CODE_SEQUENCE_VALUE_1, 
CODE_SEQUENCE_VALUE_2, static_cast<uint8_t>(code) };
+    const auto ret = peer_->write(codeSeq.data(), 3);
     if (ret != 3)
       return -1;
   }
@@ -190,7 +190,7 @@ bool SiteToSiteClient::transferFlowFiles(const 
std::shared_ptr<core::ProcessCont
 }
 
 bool SiteToSiteClient::confirm(const utils::Identifier& transactionID) {
-  int ret;
+  int ret = 0;
   std::shared_ptr<Transaction> transaction;
 
   if (peer_state_ != READY) {
@@ -236,7 +236,7 @@ bool SiteToSiteClient::confirm(const utils::Identifier& 
transactionID) {
     ret = writeResponse(transaction, CONFIRM_TRANSACTION, crc);
     if (ret <= 0)
       return false;
-    RespondCode code;
+    RespondCode code = RESERVED;
     std::string message;
     readResponse(transaction, code, message);
     if (ret <= 0)
@@ -259,7 +259,7 @@ bool SiteToSiteClient::confirm(const utils::Identifier& 
transactionID) {
     if (ret <= 0) {
       return false;
     }
-    RespondCode code;
+    RespondCode code = RESERVED;
     std::string message;
     readResponse(transaction, code, message);
 
@@ -337,7 +337,7 @@ void SiteToSiteClient::error(const utils::Identifier& 
transactionID) {
 
 // Complete the transaction
 bool SiteToSiteClient::complete(const utils::Identifier& transactionID) {
-  int ret;
+  int ret = 0;
   std::shared_ptr<Transaction> transaction = nullptr;
 
   if (peer_state_ != READY) {
@@ -374,7 +374,7 @@ bool SiteToSiteClient::complete(const utils::Identifier& 
transactionID) {
       }
     }
   } else {
-    RespondCode code;
+    RespondCode code = RESERVED;
     std::string message;
 
     ret = readResponse(transaction, code, message);
@@ -553,7 +553,7 @@ bool SiteToSiteClient::receive(const utils::Identifier& 
transactionID, DataPacke
 
   if (transaction->current_transfers_ > 0) {
     // if we already has transfer before, check to see whether another one is 
available
-    RespondCode code;
+    RespondCode code = RESERVED;
     std::string message;
 
     if (readResponse(transaction, code, message) <= 0) {
@@ -580,7 +580,7 @@ bool SiteToSiteClient::receive(const utils::Identifier& 
transactionID, DataPacke
   }
 
   // start to read the packet
-  uint32_t numAttributes;
+  uint32_t numAttributes = 0;
   {
     const auto ret = transaction->getStream().read(numAttributes);
     if (ret == 0 || io::isError(ret) || numAttributes > MAX_NUM_ATTRIBUTES) {
@@ -609,7 +609,7 @@ bool SiteToSiteClient::receive(const utils::Identifier& 
transactionID, DataPacke
     logger_->log_debug("Site2Site transaction {} receives attribute key {} 
value {}", transactionID.to_string(), key, value);
   }
 
-  uint64_t len;
+  uint64_t len = 0;
   {
     const auto ret = transaction->getStream().read(len);
     if (ret == 0 || io::isError(ret)) {
diff --git a/libminifi/src/utils/Cron.cpp b/libminifi/src/utils/Cron.cpp
index 5fa8d9ecd..44e51e451 100644
--- a/libminifi/src/utils/Cron.cpp
+++ b/libminifi/src/utils/Cron.cpp
@@ -292,8 +292,8 @@ class LastNthDayInMonthField : public CronField {
 
   [[nodiscard]] bool matches(local_seconds tp) const override {
     year_month_day date(floor<days>(tp));
-    auto last_day = date.year()/date.month()/last;
-    auto target_date = local_days(last_day)-offset_;
+    auto last_day = date.year() / date.month() / last;
+    auto target_date = local_days(last_day) - offset_;
     return local_days(date) == target_date;
   }
 
@@ -307,7 +307,7 @@ class NthWeekdayField : public CronField {
 
   [[nodiscard]] bool matches(local_seconds tp) const override {
     year_month_day date(floor<days>(tp));
-    auto target_date = date.year()/date.month()/(weekday_[n_]);
+    auto target_date = date.year() / date.month() / (weekday_[n_]);
     return local_days(date) == local_days(target_date);
   }
 
diff --git a/libminifi/src/utils/TimeUtil.cpp b/libminifi/src/utils/TimeUtil.cpp
index 1bde905d2..0ae167e62 100644
--- a/libminifi/src/utils/TimeUtil.cpp
+++ b/libminifi/src/utils/TimeUtil.cpp
@@ -44,7 +44,7 @@ std::optional<std::chrono::system_clock::time_point> 
parseRfc3339(const std::str
     return std::nullopt;
 
   constexpr std::string_view accepted_delimiters = "tT_ ";
-  char delimiter_char;
+  char delimiter_char = 0;
   stream.get(delimiter_char);
 
   if (stream.fail() || !ranges::contains(accepted_delimiters, delimiter_char))
diff --git a/libminifi/src/utils/file/FileUtils.cpp 
b/libminifi/src/utils/file/FileUtils.cpp
index a011802f7..55db62364 100644
--- a/libminifi/src/utils/file/FileUtils.cpp
+++ b/libminifi/src/utils/file/FileUtils.cpp
@@ -71,32 +71,30 @@ bool contains(const std::filesystem::path& file_path, 
std::string_view text_to_s
 }
 
 std::chrono::system_clock::time_point 
to_sys(std::chrono::file_clock::time_point file_time) {
-  using namespace std::chrono;  // NOLINT(build/namespaces)
 #if defined(WIN32)
   // workaround for https://github.com/microsoft/STL/issues/2446
   // clock_cast can fail on older windows versions
-  constexpr file_clock::duration 
clock_epoch_diff{std::filesystem::__std_fs_file_time_epoch_adjustment};
-  return system_clock::time_point(file_time.time_since_epoch() - 
clock_epoch_diff);
+  constexpr std::chrono::file_clock::duration 
clock_epoch_diff{std::filesystem::__std_fs_file_time_epoch_adjustment};
+  return std::chrono::system_clock::time_point(file_time.time_since_epoch() - 
clock_epoch_diff);
 #elif(defined(_LIBCPP_VERSION) && (_LIBCPP_VERSION < 14000))
   // relies on file_clock and system_clock having the same epoch
-  return 
system_clock::time_point(duration_cast<system_clock::duration>(file_time.time_since_epoch()));
+  return 
std::chrono::system_clock::time_point(duration_cast<std::chrono::system_clock::duration>(file_time.time_since_epoch()));
 #else
-  return 
time_point_cast<system_clock::duration>(file_clock::to_sys(file_time));
+  return 
time_point_cast<std::chrono::system_clock::duration>(std::chrono::file_clock::to_sys(file_time));
 #endif
 }
 
 std::chrono::file_clock::time_point 
from_sys(std::chrono::system_clock::time_point sys_time) {
-  using namespace std::chrono;  // NOLINT(build/namespaces)
 #if defined(WIN32)
   // workaround for https://github.com/microsoft/STL/issues/2446
   // clock_cast can fail on older windows versions
-  constexpr file_clock::duration 
clock_epoch_diff{std::filesystem::__std_fs_file_time_epoch_adjustment};
-  return file_clock::time_point(sys_time.time_since_epoch() + 
clock_epoch_diff);
+  constexpr std::chrono::file_clock::duration 
clock_epoch_diff{std::filesystem::__std_fs_file_time_epoch_adjustment};
+  return std::chrono::file_clock::time_point(sys_time.time_since_epoch() + 
clock_epoch_diff);
 #elif(defined(_LIBCPP_VERSION) && (_LIBCPP_VERSION < 14000))
   // relies on file_clock and system_clock having the same epoch
-  return 
file_clock::time_point(duration_cast<file_clock::duration>(sys_time.time_since_epoch()));
+  return 
std::chrono::file_clock::time_point(duration_cast<std::chrono::file_clock::duration>(sys_time.time_since_epoch()));
 #else
-  return time_point_cast<file_clock::duration>(file_clock::from_sys(sys_time));
+  return 
time_point_cast<std::chrono::file_clock::duration>(std::chrono::file_clock::from_sys(sys_time));
 #endif
 }
 
diff --git a/libminifi/test/unit/CronTests.cpp 
b/libminifi/test/unit/CronTests.cpp
index 4d8fa5669..3b7c6118a 100644
--- a/libminifi/test/unit/CronTests.cpp
+++ b/libminifi/test/unit/CronTests.cpp
@@ -129,7 +129,7 @@ TEST_CASE("Cron allowed nonnumerical inputs", "[cron]") {
 
 TEST_CASE("Cron::calculateNextTrigger", "[cron]") {
   using date::sys_days;
-  using namespace date::literals;
+  using namespace date::literals;  // NOLINT(google-build-using-namespace)
   using namespace std::literals::chrono_literals;
 #ifdef WIN32
   date::set_install(TZ_DATA_DIR);
@@ -415,7 +415,7 @@ TEST_CASE("Cron::calculateNextTrigger with timezones", 
"[cron]") {
   using date::local_days;
   using date::locate_zone;
   using date::zoned_time;
-  using namespace date::literals;
+  using namespace date::literals;  // NOLINT(google-build-using-namespace)
   using namespace std::literals::chrono_literals;
 #ifdef WIN32
   date::set_install(TZ_DATA_DIR);
diff --git a/libminifi/test/unit/ExtensionVerificationTests.cpp 
b/libminifi/test/unit/ExtensionVerificationTests.cpp
index f05b71c3a..9fdd06a5b 100644
--- a/libminifi/test/unit/ExtensionVerificationTests.cpp
+++ b/libminifi/test/unit/ExtensionVerificationTests.cpp
@@ -40,7 +40,7 @@ const std::string extension_file = "libextension.so";
 
 struct Fixture : public TestController {
   Fixture() {
-    extension_ = std::filesystem::path(createTempDirectory()) / extension_file;
+    extension_ = createTempDirectory() / extension_file;
   }
   std::filesystem::path extension_;
 };
diff --git a/libminifi/test/unit/FileUtilsTests.cpp 
b/libminifi/test/unit/FileUtilsTests.cpp
index 0a1420068..5e9af4f67 100644
--- a/libminifi/test/unit/FileUtilsTests.cpp
+++ b/libminifi/test/unit/FileUtilsTests.cpp
@@ -30,6 +30,8 @@
 #include "utils/gsl.h"
 #include "utils/TimeUtil.h"
 
+using namespace std::literals::chrono_literals;
+
 namespace FileUtils = org::apache::nifi::minifi::utils::file;
 
 TEST_CASE("TestFileUtils::get_executable_path", "[TestGetExecutablePath]") {
@@ -183,10 +185,8 @@ TEST_CASE("TestFileUtils::addFilesMatchingExtension", 
"[TestAddFilesMatchingExte
 }
 
 TEST_CASE("FileUtils::last_write_time and last_write_time_point work", 
"[last_write_time][last_write_time_point]") {
-  using namespace std::chrono;
-
-  auto time_before_write = file_clock::now();
-  auto time_point_before_write = time_point_cast<seconds>(file_clock::now());
+  auto time_before_write = std::chrono::file_clock::now();
+  auto time_point_before_write = 
std::chrono::time_point_cast<std::chrono::seconds>(std::chrono::file_clock::now());
 
   TestController testController;
 
@@ -194,15 +194,15 @@ TEST_CASE("FileUtils::last_write_time and 
last_write_time_point work", "[last_wr
 
   auto test_file = dir / "test.txt";
   REQUIRE_FALSE(FileUtils::last_write_time(test_file).has_value());  // non 
existent file should not return last w.t.
-  REQUIRE(FileUtils::last_write_time_point(test_file) == 
(time_point<file_clock, seconds>{}));
+  REQUIRE(FileUtils::last_write_time_point(test_file) == 
(std::chrono::time_point<std::chrono::file_clock, std::chrono::seconds>{}));
 
   std::this_thread::sleep_for(std::chrono::milliseconds(10));
   std::ofstream test_file_stream(test_file);
   test_file_stream << "foo\n";
   test_file_stream.flush();
 
-  auto time_after_first_write = file_clock::now();
-  auto time_point_after_first_write = 
time_point_cast<seconds>(file_clock::now());
+  auto time_after_first_write = std::chrono::file_clock::now();
+  auto time_point_after_first_write = 
std::chrono::time_point_cast<std::chrono::seconds>(std::chrono::file_clock::now());
 
   auto first_mtime = FileUtils::last_write_time(test_file).value();
   REQUIRE(first_mtime >= time_before_write);
@@ -216,8 +216,8 @@ TEST_CASE("FileUtils::last_write_time and 
last_write_time_point work", "[last_wr
   test_file_stream << "bar\n";
   test_file_stream.flush();
 
-  auto time_after_second_write = file_clock::now();
-  auto time_point_after_second_write = 
time_point_cast<seconds>(file_clock::now());
+  auto time_after_second_write = std::chrono::file_clock::now();
+  auto time_point_after_second_write = 
time_point_cast<std::chrono::seconds>(std::chrono::file_clock::now());
 
   auto second_mtime = FileUtils::last_write_time(test_file).value();
   REQUIRE(second_mtime >= first_mtime);
@@ -365,7 +365,7 @@ TEST_CASE("FileUtils::set_permissions and get_permissions", 
"[TestSetPermissions
   std::ofstream outfile(path, std::ios::out | std::ios::binary);
 
   REQUIRE(FileUtils::set_permissions(path, 0644) == 0);
-  uint32_t perms;
+  uint32_t perms = 0;
   REQUIRE(FileUtils::get_permissions(path, perms));
   REQUIRE(perms == 0644);
 }
@@ -515,32 +515,33 @@ TEST_CASE("FileUtils::path_size", "[TestPathSize]") {
 }
 
 TEST_CASE("file_clock to system_clock conversion tests") {
-  using namespace std::chrono;
-
-  static_assert(system_clock::period::num == file_clock::period::num);
-  constexpr auto lowest_den = std::min(file_clock::period::den, 
system_clock::period::den);
-  using LeastPreciseDurationType = 
duration<std::common_type_t<system_clock::duration::rep, 
file_clock::duration::rep>, std::ratio<system_clock::period::num, lowest_den>>;
+  static_assert(std::chrono::system_clock::period::num == 
std::chrono::file_clock::period::num);
+  constexpr auto lowest_den = std::min(std::chrono::file_clock::period::den, 
std::chrono::system_clock::period::den);
+  using LeastPreciseDurationType = 
std::chrono::duration<std::common_type_t<std::chrono::system_clock::duration::rep,
 std::chrono::file_clock::duration::rep>,
+    std::ratio<std::chrono::system_clock::period::num, lowest_den>>;
 
   {
-    system_clock::time_point system_now = system_clock::now();
-    file_clock::time_point converted_system_now = 
FileUtils::from_sys(system_now);
-    system_clock::time_point double_converted_system_now = 
FileUtils::to_sys(converted_system_now);
+    std::chrono::system_clock::time_point system_now = 
std::chrono::system_clock::now();
+    std::chrono::file_clock::time_point converted_system_now = 
FileUtils::from_sys(system_now);
+    std::chrono::system_clock::time_point double_converted_system_now = 
FileUtils::to_sys(converted_system_now);
 
-    
CHECK(time_point_cast<LeastPreciseDurationType>(system_now).time_since_epoch().count()
 == 
time_point_cast<LeastPreciseDurationType>(double_converted_system_now).time_since_epoch().count());
+    
CHECK(std::chrono::time_point_cast<LeastPreciseDurationType>(system_now).time_since_epoch().count()
 ==
+      
std::chrono::time_point_cast<LeastPreciseDurationType>(double_converted_system_now).time_since_epoch().count());
   }
 
   {
-    file_clock::time_point file_now = file_clock ::now();
-    system_clock::time_point converted_file_now = FileUtils::to_sys(file_now);
-    file_clock::time_point double_converted_file_now = 
FileUtils::from_sys(converted_file_now);
+    std::chrono::file_clock::time_point file_now = std::chrono::file_clock 
::now();
+    std::chrono::system_clock::time_point converted_file_now = 
FileUtils::to_sys(file_now);
+    std::chrono::file_clock::time_point double_converted_file_now = 
FileUtils::from_sys(converted_file_now);
 
-    
CHECK(time_point_cast<LeastPreciseDurationType>(file_now).time_since_epoch().count()
 == 
time_point_cast<LeastPreciseDurationType>(double_converted_file_now).time_since_epoch().count());
+    
CHECK(std::chrono::time_point_cast<LeastPreciseDurationType>(file_now).time_since_epoch().count()
 ==
+      
std::chrono::time_point_cast<LeastPreciseDurationType>(double_converted_file_now).time_since_epoch().count());
   }
 
   {
     // t0 <= t1
-    auto sys_time_t0 = system_clock::now();
-    auto file_time_t1 = file_clock ::now();
+    auto sys_time_t0 = std::chrono::system_clock::now();
+    auto file_time_t1 = std::chrono::file_clock ::now();
 
     auto file_time_from_t0 = FileUtils::from_sys(sys_time_t0);
     auto sys_time_from_t1 = FileUtils::to_sys(file_time_t1);
diff --git a/libminifi/test/unit/LoggerTests.cpp 
b/libminifi/test/unit/LoggerTests.cpp
index bd270325c..beb06c706 100644
--- a/libminifi/test/unit/LoggerTests.cpp
+++ b/libminifi/test/unit/LoggerTests.cpp
@@ -201,12 +201,10 @@ TEST_CASE("Test ShortenNames", "[ttl8]") {
   LogTestController::getInstance().reset();
 }
 
-using namespace minifi::io;
-
-std::string decompress(const std::unique_ptr<InputStream>& input) {
+std::string decompress(const std::unique_ptr<minifi::io::InputStream>& input) {
   input->seek(0);
-  auto output = std::make_unique<BufferStream>();
-  auto decompressor = 
std::make_shared<ZlibDecompressStream>(gsl::make_not_null(output.get()));
+  auto output = std::make_unique<minifi::io::BufferStream>();
+  auto decompressor = 
std::make_shared<minifi::io::ZlibDecompressStream>(gsl::make_not_null(output.get()));
   minifi::internal::pipe(*input, *decompressor);
   decompressor->close();
   return utils::span_to<std::string>(utils::as_span<const 
char>(output->getBuffer()));
diff --git a/libminifi/test/unit/MinifiConcurrentQueueTests.cpp 
b/libminifi/test/unit/MinifiConcurrentQueueTests.cpp
index a0decc244..d152aecdf 100644
--- a/libminifi/test/unit/MinifiConcurrentQueueTests.cpp
+++ b/libminifi/test/unit/MinifiConcurrentQueueTests.cpp
@@ -168,8 +168,6 @@ namespace MinifiConcurrentQueueTestProducersConsumers {
 }  // namespace MinifiConcurrentQueueTestProducersConsumers
 
 TEST_CASE("TestConcurrentQueue", "[TestConcurrentQueue]") {
-  using namespace MinifiConcurrentQueueTestProducersConsumers;
-
   utils::ConcurrentQueue<std::string> queue;
 
   SECTION("empty queue") {
@@ -228,7 +226,6 @@ TEST_CASE("TestConcurrentQueue", "[TestConcurrentQueue]") {
 }
 
 TEST_CASE("TestConcurrentQueue: test simple producer and consumer", 
"[ProducerConsumer]") {
-  using namespace MinifiConcurrentQueueTestProducersConsumers;
   utils::ConcurrentQueue<std::string> queue;
   std::vector<std::string> results;
 
@@ -236,18 +233,18 @@ TEST_CASE("TestConcurrentQueue: test simple producer and 
consumer", "[ProducerCo
     std::thread producer;
     std::thread consumer;
     SECTION("using tryDequeue") {
-        producer = getSimpleProducerThread(queue);
-        consumer = getSimpleTryDequeConsumerThread(queue, results);
+        producer = 
MinifiConcurrentQueueTestProducersConsumers::getSimpleProducerThread(queue);
+        consumer = 
MinifiConcurrentQueueTestProducersConsumers::getSimpleTryDequeConsumerThread(queue,
 results);
       }
     SECTION("using consume") {
-        producer = getSimpleProducerThread(queue);
-        consumer = getSimpleConsumeConsumerThread(queue, results);
+        producer = 
MinifiConcurrentQueueTestProducersConsumers::getSimpleProducerThread(queue);
+        consumer = 
MinifiConcurrentQueueTestProducersConsumers::getSimpleConsumeConsumerThread(queue,
 results);
     }
     /* In this testcase the consumer thread puts back all items to the queue 
to consume again
     * Even in this case the ones inserted later by the producer should be 
consumed */
     SECTION("with readd") {
-      producer = getSimpleProducerThread(queue);
-      consumer = getSpinningReaddingDequeueConsumerThread(queue, results);
+      producer = 
MinifiConcurrentQueueTestProducersConsumers::getSimpleProducerThread(queue);
+      consumer = 
MinifiConcurrentQueueTestProducersConsumers::getSpinningReaddingDequeueConsumerThread(queue,
 results);
     }
     producer.join();
     consumer.join();
@@ -257,21 +254,20 @@ TEST_CASE("TestConcurrentQueue: test simple producer and 
consumer", "[ProducerCo
 }
 
 TEST_CASE("TestConcurrentQueue: test timed waiting consumers", 
"[ProducerConsumer]") {
-  using namespace MinifiConcurrentQueueTestProducersConsumers;
   utils::ConditionConcurrentQueue<std::string> queue(true);
   std::vector<std::string> results;
 
-  std::thread producer { getSimpleProducerThread(queue) };
+  std::thread producer { 
MinifiConcurrentQueueTestProducersConsumers::getSimpleProducerThread(queue) };
   std::thread consumer;
 
   SECTION("using dequeueWaitFor") {
-    consumer = getDequeueWaitForConsumerThread(queue, results);
+    consumer = 
MinifiConcurrentQueueTestProducersConsumers::getDequeueWaitForConsumerThread(queue,
 results);
   }
   SECTION("using dequeueWaitUntil") {
-    consumer = getDequeueWaitUntilConsumerThread(queue, results);
+    consumer = 
MinifiConcurrentQueueTestProducersConsumers::getDequeueWaitUntilConsumerThread(queue,
 results);
   }
   SECTION("using consumeWaitFor") {
-    consumer = getConsumeWaitForConsumerThread(queue, results);
+    consumer = 
MinifiConcurrentQueueTestProducersConsumers::getConsumeWaitForConsumerThread(queue,
 results);
   }
 
   producer.join();
@@ -281,18 +277,17 @@ TEST_CASE("TestConcurrentQueue: test timed waiting 
consumers", "[ProducerConsume
 }
 
 TEST_CASE("TestConcurrentQueue: test untimed waiting consumers", 
"[ProducerConsumer]") {
-  using namespace MinifiConcurrentQueueTestProducersConsumers;
   utils::ConditionConcurrentQueue<std::string> queue(true);
   std::vector<std::string> results;
 
-  std::thread producer { getSimpleProducerThread(queue) };
+  std::thread producer { 
MinifiConcurrentQueueTestProducersConsumers::getSimpleProducerThread(queue) };
   std::thread consumer;
 
   SECTION("using dequeueWait") {
-    consumer = getDequeueWaitConsumerThread(queue, results);
+    consumer = 
MinifiConcurrentQueueTestProducersConsumers::getDequeueWaitConsumerThread(queue,
 results);
   }
   SECTION("using consumeWait") {
-    consumer = getConsumeWaitConsumerThread(queue, results);
+    consumer = 
MinifiConcurrentQueueTestProducersConsumers::getConsumeWaitConsumerThread(queue,
 results);
   }
 
   producer.join();
@@ -307,14 +302,13 @@ TEST_CASE("TestConcurrentQueue: test untimed waiting 
consumers", "[ProducerConsu
 }
 
 TEST_CASE("TestConcurrentQueue: test the readding dequeue consumer", 
"[ProducerConsumer]") {
-  using namespace MinifiConcurrentQueueTestProducersConsumers;
   utils::ConditionConcurrentQueue<std::string> queue(true);
   std::vector<std::string> results;
 
   std::atomic_int results_size{0};
-  std::thread consumer { getReaddingDequeueConsumerThread(queue, results, 
results_size) };
+  std::thread consumer { 
MinifiConcurrentQueueTestProducersConsumers::getReaddingDequeueConsumerThread(queue,
 results, results_size) };
   std::this_thread::sleep_for(std::chrono::milliseconds(1));
-  std::thread producer { getSimpleProducerThread(queue) };
+  std::thread producer { 
MinifiConcurrentQueueTestProducersConsumers::getSimpleProducerThread(queue) };
 
   auto we_have_all_results = [&results_size]() { return results_size >= 3; };
   REQUIRE(utils::verifyEventHappenedInPollTime(std::chrono::seconds(1), 
we_have_all_results));
@@ -327,19 +321,18 @@ TEST_CASE("TestConcurrentQueue: test the readding dequeue 
consumer", "[ProducerC
 }
 
 TEST_CASE("TestConcurrentQueue: test waiting consumers with blocked producer", 
"[ProducerConsumer]") {
-  using namespace MinifiConcurrentQueueTestProducersConsumers;
   utils::ConditionConcurrentQueue<std::string> queue(true);
   std::vector<std::string> results;
 
   std::mutex mutex;
   std::unique_lock<std::mutex> lock(mutex);
-  std::thread producer{ getBlockedProducerThread(queue, mutex) };
+  std::thread producer{ 
MinifiConcurrentQueueTestProducersConsumers::getBlockedProducerThread(queue, 
mutex) };
   std::thread consumer;
   SECTION("using dequeueWaitFor") {
-    consumer = getDequeueWaitForConsumerThread(queue, results);
+    consumer = 
MinifiConcurrentQueueTestProducersConsumers::getDequeueWaitForConsumerThread(queue,
 results);
   }
   SECTION("using consumeWaitFor") {
-    consumer = getConsumeWaitForConsumerThread(queue, results);
+    consumer = 
MinifiConcurrentQueueTestProducersConsumers::getConsumeWaitForConsumerThread(queue,
 results);
   }
   consumer.join();
   lock.unlock();
@@ -368,7 +361,7 @@ TEST_CASE("TestConcurrentQueues::highLoad", 
"[TestConcurrentQueuesHighLoad]") {
   std::thread relay([&queue, &cqueue]() {
     size_t cnt = 0;
     while (cnt < 50000) {
-      int i;
+      int i = 0;
       if (queue.tryDequeue(i)) {
         cnt++;
         cqueue.enqueue(i);
@@ -377,7 +370,7 @@ TEST_CASE("TestConcurrentQueues::highLoad", 
"[TestConcurrentQueuesHighLoad]") {
   });
 
   std::thread consumer([&cqueue, &target]() {
-    int i;
+    int i = 0;
     while (cqueue.dequeueWait(i)) {
       target.push_back(i);
     }
diff --git a/libminifi/test/unit/NetUtilsTest.cpp 
b/libminifi/test/unit/NetUtilsTest.cpp
index 17403eab3..10b7b2cb0 100644
--- a/libminifi/test/unit/NetUtilsTest.cpp
+++ b/libminifi/test/unit/NetUtilsTest.cpp
@@ -66,7 +66,7 @@ TEST_CASE("utils::net::getSslContext") {
   auto ssl_context_node = plan->addController("SSLContextService", 
"ssl_context_service");
   auto ssl_context_service = 
std::dynamic_pointer_cast<minifi::controllers::SSLContextService>(ssl_context_node->getControllerServiceImplementation());
 
-  const std::filesystem::path cert_dir = 
std::filesystem::path(minifi::utils::file::FileUtils::get_executable_dir()) / 
"resources";
+  const std::filesystem::path cert_dir = 
minifi::utils::file::FileUtils::get_executable_dir() / "resources";
 
   
REQUIRE(ssl_context_service->setProperty(minifi::controllers::SSLContextService::CACertificate,
 (cert_dir / "ca_A.crt").string()));
 
@@ -107,7 +107,7 @@ TEST_CASE("utils::net::getSslContext passphrase problems") {
   auto ssl_context_node = plan->addController("SSLContextService", 
"ssl_context_service");
   auto ssl_context_service = 
std::dynamic_pointer_cast<minifi::controllers::SSLContextService>(ssl_context_node->getControllerServiceImplementation());
 
-  const std::filesystem::path cert_dir = 
std::filesystem::path(minifi::utils::file::FileUtils::get_executable_dir()) / 
"resources";
+  const std::filesystem::path cert_dir = 
minifi::utils::file::FileUtils::get_executable_dir() / "resources";
 
   
REQUIRE(ssl_context_service->setProperty(minifi::controllers::SSLContextService::CACertificate,
 (cert_dir / "ca_A.crt").string()));
   
REQUIRE(ssl_context_service->setProperty(minifi::controllers::SSLContextService::ClientCertificate,
 (cert_dir / "alice_by_A.pem").string()));
@@ -138,7 +138,7 @@ TEST_CASE("utils::net::getSslContext missing CA") {
   auto ssl_context_node = plan->addController("SSLContextService", 
"ssl_context_service");
   auto ssl_context_service = 
std::dynamic_pointer_cast<minifi::controllers::SSLContextService>(ssl_context_node->getControllerServiceImplementation());
 
-  const std::filesystem::path cert_dir = 
std::filesystem::path(minifi::utils::file::FileUtils::get_executable_dir()) / 
"resources";
+  const std::filesystem::path cert_dir = 
minifi::utils::file::FileUtils::get_executable_dir() / "resources";
 
   
REQUIRE(ssl_context_service->setProperty(minifi::controllers::SSLContextService::ClientCertificate,
 (cert_dir / "alice_by_A.pem").string()));
   
REQUIRE(ssl_context_service->setProperty(minifi::controllers::SSLContextService::PrivateKey,
 (cert_dir / "alice.key").string()));
diff --git a/libminifi/test/unit/PropertyValidationTests.cpp 
b/libminifi/test/unit/PropertyValidationTests.cpp
index 348114965..8e56101a9 100644
--- a/libminifi/test/unit/PropertyValidationTests.cpp
+++ b/libminifi/test/unit/PropertyValidationTests.cpp
@@ -24,14 +24,13 @@
 
 namespace org::apache::nifi::minifi::core {
 
-using namespace utils::internal;
 /**
  * This Tests checks a deprecated behavior that should be removed
  * in the next major release.
  */
 TEST_CASE("Some default values get coerced to typed variants") {
   auto prop = Property("prop", "d", "true");
-  REQUIRE_THROWS_AS(prop.setValue("banana"), ConversionException);
+  REQUIRE_THROWS_AS(prop.setValue("banana"), 
utils::internal::ConversionException);
 
   const std::string SPACE = " ";
   auto prop2 = Property("prop", "d", SPACE + "true");
@@ -44,9 +43,9 @@ TEST_CASE("Converting invalid PropertyValue") {
       .withDefaultValue("0")
       .build();
   Property property{property_definition};
-  REQUIRE_THROWS_AS(property.setValue("not int"), ParseException);
+  REQUIRE_THROWS_AS(property.setValue("not int"), 
utils::internal::ParseException);
   auto cast_check = [&]{ return static_cast<int>(property.getValue()) == 0; }; 
 // To avoid unused-value warning
-  REQUIRE_THROWS_AS(cast_check(), InvalidValueException);
+  REQUIRE_THROWS_AS(cast_check(), utils::internal::InvalidValueException);
 }
 
 TEST_CASE("Parsing int has baggage after") {
@@ -55,7 +54,7 @@ TEST_CASE("Parsing int has baggage after") {
       .withDefaultValue("0")
       .build();
   Property property{property_definition};
-  REQUIRE_THROWS_AS(property.setValue("55almost int"), ParseException);
+  REQUIRE_THROWS_AS(property.setValue("55almost int"), 
utils::internal::ParseException);
 }
 
 TEST_CASE("Parsing int has spaces") {
@@ -74,7 +73,7 @@ TEST_CASE("Parsing int out of range") {
       .withDefaultValue("0")
       .build();
   Property property{property_definition};
-  REQUIRE_THROWS_AS(property.setValue("  5000000000  "), ParseException);
+  REQUIRE_THROWS_AS(property.setValue("  5000000000  "), 
utils::internal::ParseException);
 }
 
 TEST_CASE("Parsing bool has baggage after") {
@@ -83,7 +82,7 @@ TEST_CASE("Parsing bool has baggage after") {
       .withDefaultValue("true")
       .build();
   Property property{property_definition};
-  REQUIRE_THROWS_AS(property.setValue("false almost bool"), ParseException);
+  REQUIRE_THROWS_AS(property.setValue("false almost bool"), 
utils::internal::ParseException);
 }
 
 class TestConfigurableComponent : public ConfigurableComponent {
@@ -144,7 +143,7 @@ TEST_CASE("Missing Required Without Default") {
   TestConfigurableComponent component;
   component.setSupportedProperties(std::array<PropertyReference, 
1>{property_definition});
   std::string value;
-  REQUIRE_THROWS_AS(component.getProperty(property.getName(), value), 
RequiredPropertyMissingException);
+  REQUIRE_THROWS_AS(component.getProperty(property.getName(), value), 
utils::internal::RequiredPropertyMissingException);
 }
 
 TEST_CASE("Missing Optional Without Default") {
@@ -180,9 +179,9 @@ TEST_CASE("Invalid With Default") {
   Property property{property_definition};
   TestConfigurableComponent component;
   component.setSupportedProperties(std::array<PropertyReference, 
1>{property_definition});
-  REQUIRE_THROWS_AS(component.setProperty("prop", "banana"), ParseException);
+  REQUIRE_THROWS_AS(component.setProperty("prop", "banana"), 
utils::internal::ParseException);
   std::string value;
-  REQUIRE_THROWS_AS(component.getProperty(property.getName(), value), 
InvalidValueException);
+  REQUIRE_THROWS_AS(component.getProperty(property.getName(), value), 
utils::internal::InvalidValueException);
 }
 
 TEST_CASE("Valid With Default") {
@@ -207,7 +206,7 @@ TEST_CASE("Invalid conversion") {
   TestConfigurableComponent component;
   component.setSupportedProperties(std::array<PropertyReference, 
1>{property_definition});
   bool value = false;
-  REQUIRE_THROWS_AS(component.getProperty(property.getName(), value), 
ConversionException);
+  REQUIRE_THROWS_AS(component.getProperty(property.getName(), value), 
utils::internal::ConversionException);
 }
 
 TEST_CASE("Write Invalid Then Override With Valid") {
@@ -219,7 +218,7 @@ TEST_CASE("Write Invalid Then Override With Valid") {
   Property property{property_definition};
   TestConfigurableComponent component;
   component.setSupportedProperties(std::array<PropertyReference, 
1>{property_definition});
-  REQUIRE_THROWS_AS(component.setProperty(property.getName(), "banana"), 
ConversionException);
+  REQUIRE_THROWS_AS(component.setProperty(property.getName(), "banana"), 
utils::internal::ConversionException);
   component.setProperty(property.getName(), "98");
   int value = 0;
   REQUIRE(component.getProperty(property.getName(), value));
@@ -238,7 +237,7 @@ TEST_CASE("Property Change notification gets called even on 
erroneous assignment
   component.setPropertyModifiedCallback([&](const Property &, const Property 
&) {
     ++callbackCount;
   });
-  REQUIRE_THROWS_AS(component.setProperty(property.getName(), "banana"), 
ConversionException);
+  REQUIRE_THROWS_AS(component.setProperty(property.getName(), "banana"), 
utils::internal::ConversionException);
   REQUIRE(callbackCount == 1);
 }
 
@@ -255,7 +254,7 @@ TEST_CASE("Correctly Typed Property With Invalid 
Validation") {
   component.setPropertyModifiedCallback([&](const Property &, const Property 
&) {
     ++callbackCount;
   });
-  REQUIRE_THROWS_AS(component.setProperty(property.getName(), "20"), 
InvalidValueException);
+  REQUIRE_THROWS_AS(component.setProperty(property.getName(), "20"), 
utils::internal::InvalidValueException);
   REQUIRE(callbackCount == 1);
 }
 
@@ -271,7 +270,7 @@ TEST_CASE("TimePeriodValue Property") {
   TimePeriodValue time_period_value;
   REQUIRE(component.getProperty(property.getName(), time_period_value));
   CHECK(time_period_value.getMilliseconds() == 10min);
-  REQUIRE_THROWS_AS(component.setProperty(property.getName(), "20"), 
ParseException);
+  REQUIRE_THROWS_AS(component.setProperty(property.getName(), "20"), 
utils::internal::ParseException);
 }
 
 TEST_CASE("TimePeriodValue Property without validator") {
@@ -286,7 +285,7 @@ TEST_CASE("TimePeriodValue Property without validator") {
   REQUIRE(component.getProperty(property.getName(), time_period_value));
   CHECK(time_period_value.getMilliseconds() == 1h);
   REQUIRE_NOTHROW(component.setProperty(property.getName(), "20"));
-  REQUIRE_THROWS_AS(component.getProperty(property.getName(), 
time_period_value), ValueException);
+  REQUIRE_THROWS_AS(component.getProperty(property.getName(), 
time_period_value), utils::internal::ValueException);
 }
 
 TEST_CASE("Validating listener port property") {
@@ -295,9 +294,9 @@ TEST_CASE("Validating listener port property") {
       .build();
   Property property{property_definition};
   REQUIRE_NOTHROW(property.setValue("1234"));
-  REQUIRE_THROWS_AS(property.setValue("banana"), InvalidValueException);
-  REQUIRE_THROWS_AS(property.setValue("65536"), InvalidValueException);
-  REQUIRE_THROWS_AS(property.setValue("-1"), InvalidValueException);
+  REQUIRE_THROWS_AS(property.setValue("banana"), 
utils::internal::InvalidValueException);
+  REQUIRE_THROWS_AS(property.setValue("65536"), 
utils::internal::InvalidValueException);
+  REQUIRE_THROWS_AS(property.setValue("-1"), 
utils::internal::InvalidValueException);
 }
 
 TEST_CASE("Validating data transfer speed property with default value") {
@@ -318,9 +317,9 @@ TEST_CASE("Validating data transfer speed property with 
default value") {
   REQUIRE(component.getProperty(property.getName(), 
data_transfer_speed_value));
   CHECK(data_transfer_speed_value.getValue() == 1_TiB);
   REQUIRE_NOTHROW(component.setProperty(property.getName(), 
"1KBinvalidsuffix"));
-  REQUIRE_THROWS_AS(component.getProperty(property.getName(), 
data_transfer_speed_value), ValueException);
+  REQUIRE_THROWS_AS(component.getProperty(property.getName(), 
data_transfer_speed_value), utils::internal::ValueException);
   REQUIRE_NOTHROW(component.setProperty(property.getName(), "1KB"));
-  REQUIRE_THROWS_AS(component.getProperty(property.getName(), 
data_transfer_speed_value), ValueException);
+  REQUIRE_THROWS_AS(component.getProperty(property.getName(), 
data_transfer_speed_value), utils::internal::ValueException);
 }
 
 TEST_CASE("Validating data transfer speed property without default value") {
@@ -336,8 +335,8 @@ TEST_CASE("Validating data transfer speed property without 
default value") {
   REQUIRE_NOTHROW(component.setProperty(property.getName(), "1TB/S "));
   REQUIRE(component.getProperty(property.getName(), 
data_transfer_speed_value));
   CHECK(data_transfer_speed_value.getValue() == 1_TiB);
-  REQUIRE_THROWS_AS(component.setProperty(property.getName(), 
"1KBinvalidsuffix"), ValueException);
-  REQUIRE_THROWS_AS(component.setProperty(property.getName(), "1KB"), 
ValueException);
+  REQUIRE_THROWS_AS(component.setProperty(property.getName(), 
"1KBinvalidsuffix"), utils::internal::ValueException);
+  REQUIRE_THROWS_AS(component.setProperty(property.getName(), "1KB"), 
utils::internal::ValueException);
 }
 
 }  // namespace org::apache::nifi::minifi::core
diff --git a/libminifi/test/unit/StreamTests.cpp 
b/libminifi/test/unit/StreamTests.cpp
index 420ee3b0d..f68872cba 100644
--- a/libminifi/test/unit/StreamTests.cpp
+++ b/libminifi/test/unit/StreamTests.cpp
@@ -31,7 +31,7 @@
 
 TEST_CASE("TestReadData", "[testread]") {
   auto base = std::make_shared<minifi::io::BufferStream>();
-  base->write((const uint8_t*)"\x01\x02\x03\x04\x05\x06\x07\x08", 8);
+  base->write(reinterpret_cast<const 
uint8_t*>("\x01\x02\x03\x04\x05\x06\x07\x08"), 8);
   uint64_t c = 0;
   REQUIRE(8 == base->read(c));
   REQUIRE(c == 0x0102030405060708);
@@ -75,7 +75,7 @@ TEST_CASE("TestRead4", "[testread]") {
 
 TEST_CASE("TestWrite1", "[testwrite]") {
   auto base = std::make_shared<minifi::io::BufferStream>();
-  base->write((uint64_t)0x0102030405060708);
+  base->write(static_cast<uint64_t>(0x0102030405060708));
   std::string bytes(8, '\0');
   REQUIRE(8 == base->read(as_writable_bytes(std::span(bytes))));
   REQUIRE(bytes == "\x01\x02\x03\x04\x05\x06\x07\x08");
@@ -83,7 +83,7 @@ TEST_CASE("TestWrite1", "[testwrite]") {
 
 TEST_CASE("InvalidStreamSliceTest", "[teststreamslice]") {
   std::shared_ptr<minifi::io::BaseStream> base = 
std::make_shared<minifi::io::BufferStream>();
-  base->write((const uint8_t*)"\x01\x02\x03\x04\x05\x06\x07\x08", 8);
+  base->write(reinterpret_cast<const 
uint8_t*>("\x01\x02\x03\x04\x05\x06\x07\x08"), 8);
   auto input_stream = std::static_pointer_cast<minifi::io::InputStream>(base);
   REQUIRE_THROWS_WITH(std::make_shared<minifi::io::StreamSlice>(input_stream, 
0, 9), "StreamSlice is bigger than the Stream, Stream size: 8, StreamSlice 
size: 9, offset: 0");
   REQUIRE_THROWS_WITH(std::make_shared<minifi::io::StreamSlice>(input_stream, 
7, 3), "StreamSlice is bigger than the Stream, Stream size: 8, StreamSlice 
size: 3, offset: 7");
@@ -91,7 +91,7 @@ TEST_CASE("InvalidStreamSliceTest", "[teststreamslice]") {
 
 TEST_CASE("StreamSliceTest1", "[teststreamslice]") {
   std::shared_ptr<minifi::io::BaseStream> base = 
std::make_shared<minifi::io::BufferStream>();
-  base->write((const uint8_t*)"\x01\x02\x03\x04\x05\x06\x07\x08", 8);
+  base->write(reinterpret_cast<const 
uint8_t*>("\x01\x02\x03\x04\x05\x06\x07\x08"), 8);
   auto input_stream = std::static_pointer_cast<minifi::io::InputStream>(base);
   std::shared_ptr<minifi::io::InputStream> stream_slice = 
std::make_shared<minifi::io::StreamSlice>(input_stream, 2, 4);
   std::vector<std::byte> buffer;
diff --git a/libminifi/test/unit/TimeUtilTests.cpp 
b/libminifi/test/unit/TimeUtilTests.cpp
index 9b9eb727f..cd7c6f344 100644
--- a/libminifi/test/unit/TimeUtilTests.cpp
+++ b/libminifi/test/unit/TimeUtilTests.cpp
@@ -70,7 +70,7 @@ TEST_CASE("getDateTimeStr() works correctly", 
"[getDateTimeStr]") {
 }
 
 TEST_CASE("getRFC2616Format() works correctly", "[getRFC2616Format]") {
-  using namespace date::literals;
+  using namespace date::literals;  // NOLINT(google-build-using-namespace)
   using namespace std::literals::chrono_literals;
   using date::year_month_day;
   using date::sys_days;
@@ -89,7 +89,7 @@ TEST_CASE("Test time conversion", "[testtimeconversion]") {
 }
 
 TEST_CASE("Test DateTime Conversion", "[testDateTime]") {
-  using namespace date::literals;
+  using namespace date::literals;  // NOLINT(google-build-using-namespace)
   using namespace std::literals::chrono_literals;
   using date::year_month_day;
   using date::sys_days;
@@ -110,20 +110,18 @@ TEST_CASE("Test DateTime Conversion", "[testDateTime]") {
 }
 
 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 = 
date::sys_days(date::January / 24 / 2065) + 5h + 20min;
+  std::chrono::time_point<std::chrono::system_clock> epoch;
+  std::chrono::time_point<std::chrono::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);
 }
 
 #ifdef WIN32
 TEST_CASE("Test windows file_clock duration period and epoch") {
-  using namespace std::chrono;
   static_assert(std::ratio_equal_v<std::chrono::file_clock::duration::period, 
std::ratio<1, 10000000>>, "file_clock duration tick period must be 100 
nanoseconds");
   auto file_clock_epoch = std::chrono::file_clock::time_point{};
   auto file_clock_epoch_as_sys_time = utils::file::to_sys(file_clock_epoch);
-  system_clock::time_point expected_windows_file_epoch = 
date::sys_days(date::January / 1 / 1601);
+  std::chrono::system_clock::time_point expected_windows_file_epoch = 
date::sys_days(date::January / 1 / 1601);
   CHECK(file_clock_epoch_as_sys_time == expected_windows_file_epoch);
 }
 
@@ -142,10 +140,9 @@ TEST_CASE("Test windows FILETIME epoch") {
 #endif
 
 TEST_CASE("Test clock resolutions", "[clockresolutiontests]") {
-  using namespace std::chrono;
-  CHECK(std::is_constructible<system_clock::duration, 
std::chrono::microseconds>::value);  // The resolution of the system_clock is 
at least microseconds
-  CHECK(std::is_constructible<steady_clock::duration, 
std::chrono::microseconds>::value);  // The resolution of the steady_clock is 
at least microseconds
-  CHECK(std::is_constructible<high_resolution_clock::duration, 
std::chrono::nanoseconds>::value);  // The resolution of the 
high_resolution_clock is at least nanoseconds
+  CHECK(std::is_constructible<std::chrono::system_clock::duration, 
std::chrono::microseconds>::value);  // The resolution of the system_clock is 
at least microseconds
+  CHECK(std::is_constructible<std::chrono::steady_clock::duration, 
std::chrono::microseconds>::value);  // The resolution of the steady_clock is 
at least microseconds
+  CHECK(std::is_constructible<std::chrono::high_resolution_clock::duration, 
std::chrono::nanoseconds>::value);  // The resolution of the 
high_resolution_clock is at least nanoseconds
 }
 
 TEST_CASE("Test string to duration conversion", "[timedurationtests]") {
@@ -292,7 +289,7 @@ TEST_CASE("Test roundToNextSecond", "[roundingTests]") {
 TEST_CASE("Parse RFC3339", "[parseRfc3339]") {
   using date::sys_days;
   using org::apache::nifi::minifi::utils::timeutils::parseRfc3339;
-  using namespace date::literals;
+  using namespace date::literals;  // NOLINT(google-build-using-namespace)
   using namespace std::literals::chrono_literals;
 
   auto expected_second = sys_days(2023_y / 03 / 01) + 19h + 04min + 55s;

Reply via email to