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 2021/11/08 10:00:29 UTC

[nifi-minifi-cpp] branch main updated (1906671 -> 8914b0c)

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 1906671  MINIFICPP-1618 Create the ReplaceText processor
     new e99eefb  MINIFICPP-1674 fix azure-sdk target name, use install dir
     new 8914b0c  MINIFICPP-1681 DefragmentText should trigger when empty if Maximum Buffer Age is set

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:
 .github/workflows/ci.yml                           |  6 +--
 cmake/BundledAzureSdkCpp.cmake                     | 54 +++++++++++-----------
 .../processors/DefragmentText.cpp                  |  1 +
 win_build_vs.bat                                   |  3 +-
 4 files changed, 33 insertions(+), 31 deletions(-)

[nifi-minifi-cpp] 01/02: MINIFICPP-1674 fix azure-sdk target name, use install dir

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 e99eefb8555832cf316f8432ebb6c50d26f9d2c6
Author: Marton Szasz <sz...@apache.org>
AuthorDate: Mon Nov 8 10:57:37 2021 +0100

    MINIFICPP-1674 fix azure-sdk target name, use install dir
    
    Signed-off-by: Adam Debreceni <ad...@apache.org>
    
    This closes #1207
---
 .github/workflows/ci.yml       |  6 ++---
 cmake/BundledAzureSdkCpp.cmake | 54 +++++++++++++++++++++---------------------
 win_build_vs.bat               |  3 ++-
 3 files changed, 32 insertions(+), 31 deletions(-)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 23ec814..ce0518a 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -78,13 +78,13 @@ jobs:
         run: |
           PATH %PATH%;C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64
           PATH %PATH%;C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Roslyn
-          win_build_vs.bat build /64 /CI /S /A /PDH /K /L /R /Z /N /RO
+          win_build_vs.bat ..\b /64 /CI /S /A /PDH /K /L /R /Z /N /RO
         shell: cmd
       - name: test
-        run: cd build && ctest --timeout 300 --parallel 8 -C Release --output-on-failure
+        run: cd ..\b && ctest --timeout 300 --parallel 8 -C Release --output-on-failure
         shell: cmd
       - name: linter
-        run: cd build && msbuild linter.vcxproj
+        run: cd ..\b && msbuild linter.vcxproj
         shell: cmd
   ubuntu_20_04:
     name: "ubuntu-20.04"
diff --git a/cmake/BundledAzureSdkCpp.cmake b/cmake/BundledAzureSdkCpp.cmake
index 05bea72..ed3d318 100644
--- a/cmake/BundledAzureSdkCpp.cmake
+++ b/cmake/BundledAzureSdkCpp.cmake
@@ -20,22 +20,28 @@ function(use_bundled_libazure SOURCE_DIR BINARY_DIR)
     set(PC ${Bash_EXECUTABLE} -c "set -x && \
             (\"${Patch_EXECUTABLE}\" -p1 -R -s -f --dry-run -i \"${PATCH_FILE}\" || \"${Patch_EXECUTABLE}\" -p1 -N -i \"${PATCH_FILE}\")")
     # Define byproducts
+    set(INSTALL_DIR "${BINARY_DIR}/thirdparty/azure-sdk-cpp-install")
+    if (WIN32)
+        set(CMAKE_INSTALL_LIBDIR "lib")
+    else()
+        include(GNUInstallDirs)
+    endif()
     if (WIN32)
         set(SUFFIX "lib")
         set(PREFIX "")
-        set(AZURE_CORE_LIB "${BINARY_DIR}/thirdparty/azure-sdk-cpp-src/sdk/core/azure-core/${CMAKE_BUILD_TYPE}/${PREFIX}azure-core.${SUFFIX}")
-        set(AZURE_STORAGE_COMMON_LIB "${BINARY_DIR}/thirdparty/azure-sdk-cpp-src/sdk/storage/azure-storage-common/${CMAKE_BUILD_TYPE}/${PREFIX}azure-storage-common.${SUFFIX}")
-        set(AZURE_STORAGE_BLOBS_LIB "${BINARY_DIR}/thirdparty/azure-sdk-cpp-src/sdk/storage/azure-storage-blobs/${CMAKE_BUILD_TYPE}/${PREFIX}azure-storage-blobs.${SUFFIX}")
-        set(AZURE_IDENTITY_LIB "${BINARY_DIR}/thirdparty/azure-sdk-cpp-src/sdk/identity/azure-identity/${CMAKE_BUILD_TYPE}/${PREFIX}azure-identity.${SUFFIX}")
-        set(AZURE_STORAGE_FILES_DATALAKE_LIB "${BINARY_DIR}/thirdparty/azure-sdk-cpp-src/sdk/storage/azure-storage-files-datalake/${CMAKE_BUILD_TYPE}/${PREFIX}azure-storage-files-datalake.${SUFFIX}")
+        set(AZURE_CORE_LIB "${INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/${PREFIX}azure-core.${SUFFIX}")
+        set(AZURE_STORAGE_COMMON_LIB "${INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/${PREFIX}azure-storage-common.${SUFFIX}")
+        set(AZURE_STORAGE_BLOBS_LIB "${INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/${PREFIX}azure-storage-blobs.${SUFFIX}")
+        set(AZURE_IDENTITY_LIB "${INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/${PREFIX}azure-identity.${SUFFIX}")
+        set(AZURE_STORAGE_FILES_DATALAKE_LIB "${INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/${PREFIX}azure-storage-files-datalake.${SUFFIX}")
     else()
         set(SUFFIX "a")
         set(PREFIX "lib")
-        set(AZURE_CORE_LIB "${BINARY_DIR}/thirdparty/azure-sdk-cpp-src/sdk/core/azure-core/${PREFIX}azure-core.${SUFFIX}")
-        set(AZURE_STORAGE_COMMON_LIB "${BINARY_DIR}/thirdparty/azure-sdk-cpp-src/sdk/storage/azure-storage-common/${PREFIX}azure-storage-common.${SUFFIX}")
-        set(AZURE_STORAGE_BLOBS_LIB "${BINARY_DIR}/thirdparty/azure-sdk-cpp-src/sdk/storage/azure-storage-blobs/${PREFIX}azure-storage-blobs.${SUFFIX}")
-        set(AZURE_IDENTITY_LIB "${BINARY_DIR}/thirdparty/azure-sdk-cpp-src/sdk/identity/azure-identity/${PREFIX}azure-identity.${SUFFIX}")
-        set(AZURE_STORAGE_FILES_DATALAKE_LIB "${BINARY_DIR}/thirdparty/azure-sdk-cpp-src/sdk/storage/azure-storage-files-datalake/${PREFIX}azure-storage-files-datalake.${SUFFIX}")
+        set(AZURE_CORE_LIB "${INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/${PREFIX}azure-core.${SUFFIX}")
+        set(AZURE_STORAGE_COMMON_LIB "${INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/${PREFIX}azure-storage-common.${SUFFIX}")
+        set(AZURE_STORAGE_BLOBS_LIB "${INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/${PREFIX}azure-storage-blobs.${SUFFIX}")
+        set(AZURE_IDENTITY_LIB "${INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/${PREFIX}azure-identity.${SUFFIX}")
+        set(AZURE_STORAGE_FILES_DATALAKE_LIB "${INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/${PREFIX}azure-storage-files-datalake.${SUFFIX}")
     endif()
 
     set(AZURESDK_LIBRARIES_LIST
@@ -46,36 +52,30 @@ function(use_bundled_libazure SOURCE_DIR BINARY_DIR)
             "${AZURE_STORAGE_FILES_DATALAKE_LIB}")
 
     set(AZURE_SDK_CMAKE_ARGS ${PASSTHROUGH_CMAKE_ARGS}
-        -DWARNINGS_AS_ERRORS=OFF)
+        -DWARNINGS_AS_ERRORS=OFF
+        -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR})
     append_third_party_passthrough_args(AZURE_SDK_CMAKE_ARGS "${AZURE_SDK_CMAKE_ARGS}")
 
     # Build project
     ExternalProject_Add(
-            azure-sdk-cpp-external
+            asdkext  # short for azure-sdk-cpp-external due to windows MAX_PATH limitations
             URL https://github.com/Azure/azure-sdk-for-cpp/archive/refs/tags/azure-storage-files-datalake_12.2.0.tar.gz
             URL_HASH "SHA256=d4e80ea5e786dc689ddd04825d97ab91f5e1ef2787fa88a3d5ee00f0b820433f"
-            BUILD_IN_SOURCE true
             SOURCE_DIR "${BINARY_DIR}/thirdparty/azure-sdk-cpp-src"
+            INSTALL_DIR "${BINARY_DIR}/thirdparty/azure-sdk-cpp-install"
             BUILD_BYPRODUCTS "${AZURESDK_LIBRARIES_LIST}"
             EXCLUDE_FROM_ALL TRUE
-            STEP_TARGETS build
             CMAKE_ARGS ${AZURE_SDK_CMAKE_ARGS}
             LIST_SEPARATOR % # This is needed for passing semicolon-separated lists
             PATCH_COMMAND ${PC}
     )
 
     # Set dependencies
-    add_dependencies(azure-sdk-cpp-external-build CURL::libcurl LibXml2::LibXml2 OpenSSL::Crypto OpenSSL::SSL)
+    add_dependencies(asdkext CURL::libcurl LibXml2::LibXml2 OpenSSL::Crypto OpenSSL::SSL)
 
     # Set variables
     set(LIBAZURE_FOUND "YES" CACHE STRING "" FORCE)
-    set(LIBAZURE_INCLUDE_DIRS
-            "${BINARY_DIR}/thirdparty/azure-sdk-cpp-src/sdk/core/azure-core/inc/"
-            "${BINARY_DIR}/thirdparty/azure-sdk-cpp-src/sdk/storage/azure-storage-blobs/inc/"
-            "${BINARY_DIR}/thirdparty/azure-sdk-cpp-src/sdk/storage/azure-storage-common/inc/"
-            "${BINARY_DIR}/thirdparty/azure-sdk-cpp-src/sdk/identity/azure-identity/inc/"
-            "${BINARY_DIR}/thirdparty/azure-sdk-cpp-src/sdk/storage/azure-storage-files-datalake/inc/"
-            CACHE STRING "" FORCE)
+    set(LIBAZURE_INCLUDE_DIRS "${INSTALL_DIR}/include" CACHE STRING "" FORCE)
     set(LIBAZURE_LIBRARIES ${AZURESDK_LIBRARIES_LIST} CACHE STRING "" FORCE)
 
     # Create imported targets
@@ -85,7 +85,7 @@ function(use_bundled_libazure SOURCE_DIR BINARY_DIR)
 
     add_library(AZURE::azure-core STATIC IMPORTED)
     set_target_properties(AZURE::azure-core PROPERTIES IMPORTED_LOCATION "${AZURE_CORE_LIB}")
-    add_dependencies(AZURE::azure-core azure-sdk-cpp-external-build)
+    add_dependencies(AZURE::azure-core asdkext)
     target_include_directories(AZURE::azure-core INTERFACE ${LIBAZURE_INCLUDE_DIRS})
     target_link_libraries(AZURE::azure-core INTERFACE CURL::libcurl OpenSSL::Crypto OpenSSL::SSL)
     if (WIN32)
@@ -94,22 +94,22 @@ function(use_bundled_libazure SOURCE_DIR BINARY_DIR)
 
     add_library(AZURE::azure-identity STATIC IMPORTED)
     set_target_properties(AZURE::azure-identity PROPERTIES IMPORTED_LOCATION "${AZURE_IDENTITY_LIB}")
-    add_dependencies(AZURE::azure-identity azure-sdk-cpp-external-build)
+    add_dependencies(AZURE::azure-identity asdkext)
     target_include_directories(AZURE::azure-identity INTERFACE ${LIBAZURE_INCLUDE_DIRS})
 
     add_library(AZURE::azure-storage-common STATIC IMPORTED)
     set_target_properties(AZURE::azure-storage-common PROPERTIES IMPORTED_LOCATION "${AZURE_STORAGE_COMMON_LIB}")
-    add_dependencies(AZURE::azure-storage-common azure-sdk-cpp-external-build)
+    add_dependencies(AZURE::azure-storage-common asdkext)
     target_include_directories(AZURE::azure-storage-common INTERFACE ${LIBAZURE_INCLUDE_DIRS})
     target_link_libraries(AZURE::azure-storage-common INTERFACE LibXml2::LibXml2)
 
     add_library(AZURE::azure-storage-blobs STATIC IMPORTED)
     set_target_properties(AZURE::azure-storage-blobs PROPERTIES IMPORTED_LOCATION "${AZURE_STORAGE_BLOBS_LIB}")
-    add_dependencies(AZURE::azure-storage-blobs azure-sdk-cpp-external-build)
+    add_dependencies(AZURE::azure-storage-blobs asdkext)
     target_include_directories(AZURE::azure-storage-blobs INTERFACE ${LIBAZURE_INCLUDE_DIRS})
 
     add_library(AZURE::azure-storage-files-datalake STATIC IMPORTED)
     set_target_properties(AZURE::azure-storage-files-datalake PROPERTIES IMPORTED_LOCATION "${AZURE_STORAGE_FILES_DATALAKE_LIB}")
-    add_dependencies(AZURE::azure-storage-files-datalake azure-sdk-cpp-external-build)
+    add_dependencies(AZURE::azure-storage-files-datalake asdkext)
     target_include_directories(AZURE::azure-storage-files-datalake INTERFACE ${LIBAZURE_INCLUDE_DIRS})
 endfunction(use_bundled_libazure)
diff --git a/win_build_vs.bat b/win_build_vs.bat
index 9700f5a..91991f6 100755
--- a/win_build_vs.bat
+++ b/win_build_vs.bat
@@ -20,6 +20,7 @@ TITLE Apache NiFi MiNiFi C++ Windows Build Helper
 if [%1]==[] goto usage
 
 set builddir=%1
+set scriptdir=%~dp0
 set skiptests=OFF
 set skiptestrun=OFF
 set cmake_build_type=Release
@@ -72,7 +73,7 @@ for %%x in (%*) do (
 mkdir %builddir%
 pushd %builddir%\
 
-cmake -G %generator% -A %build_platform% -DINSTALLER_MERGE_MODULES=%installer_merge_modules% -DTEST_CUSTOM_WEL_PROVIDER=%test_custom_wel_provider% -DENABLE_SQL=%build_SQL% -DUSE_REAL_ODBC_TEST_DRIVER=%real_odbc% -DCMAKE_BUILD_TYPE_INIT=%cmake_build_type% -DCMAKE_BUILD_TYPE=%cmake_build_type% -DWIN32=WIN32 -DENABLE_LIBRDKAFKA=%build_kafka% -DENABLE_JNI=%build_jni% -DOPENSSL_OFF=OFF -DENABLE_COAP=%build_coap% -DENABLE_AWS=%build_AWS% -DENABLE_PDH=%build_PDH% -DENABLE_AZURE=%build_azure% -D [...]
+cmake -G %generator% -A %build_platform% -DINSTALLER_MERGE_MODULES=%installer_merge_modules% -DTEST_CUSTOM_WEL_PROVIDER=%test_custom_wel_provider% -DENABLE_SQL=%build_SQL% -DUSE_REAL_ODBC_TEST_DRIVER=%real_odbc% -DCMAKE_BUILD_TYPE_INIT=%cmake_build_type% -DCMAKE_BUILD_TYPE=%cmake_build_type% -DWIN32=WIN32 -DENABLE_LIBRDKAFKA=%build_kafka% -DENABLE_JNI=%build_jni% -DOPENSSL_OFF=OFF -DENABLE_COAP=%build_coap% -DENABLE_AWS=%build_AWS% -DENABLE_PDH=%build_PDH% -DENABLE_AZURE=%build_azure% -D [...]
 IF %ERRORLEVEL% NEQ 0 EXIT /b %ERRORLEVEL%
 if [%cpack%] EQU [ON] (
     cpack -C %cmake_build_type%

[nifi-minifi-cpp] 02/02: MINIFICPP-1681 DefragmentText should trigger when empty if Maximum Buffer Age is set

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 8914b0cc2c9459761a0bf1b57e0df0c459066d16
Author: Martin Zink <ma...@protonmail.com>
AuthorDate: Mon Nov 8 10:59:37 2021 +0100

    MINIFICPP-1681 DefragmentText should trigger when empty if Maximum Buffer Age is set
    
    Signed-off-by: Adam Debreceni <ad...@apache.org>
    
    This closes #1210
---
 extensions/standard-processors/processors/DefragmentText.cpp | 1 +
 1 file changed, 1 insertion(+)

diff --git a/extensions/standard-processors/processors/DefragmentText.cpp b/extensions/standard-processors/processors/DefragmentText.cpp
index 04c6f0e..d473445 100644
--- a/extensions/standard-processors/processors/DefragmentText.cpp
+++ b/extensions/standard-processors/processors/DefragmentText.cpp
@@ -69,6 +69,7 @@ void DefragmentText::onSchedule(core::ProcessContext* context, core::ProcessSess
     uint64_t max_buffer_age;
     if (core::Property::StringToTime(max_buffer_age_str, max_buffer_age, unit) && core::Property::ConvertTimeUnitToMS(max_buffer_age, unit, max_buffer_age)) {
       buffer_.setMaxAge(std::chrono::milliseconds(max_buffer_age));
+      setTriggerWhenEmpty(true);
       logger_->log_trace("The Buffer maximum age is configured to be %" PRIu64 " ms", max_buffer_age);
     }
   }