From 92845043865ceddffe37ecd2f3afd6087b0e2faf Mon Sep 17 00:00:00 2001
From: amichelo <andrea.michelotti@lnf.infn.it>
Date: Thu, 26 Jan 2023 16:07:35 +0100
Subject: [PATCH] post as JSON

---
 CMakeLists.txt                                |  1 -
 ChaosMetadataService/CMakeLists.txt           | 22 +++++++++----------
 .../cache_system/MemcachedCacheDriver.cpp     |  8 +++----
 .../object_storage/influxDB/InfluxDB.cpp      |  1 -
 .../influxDB/InfluxDBLogStorageDriver.cpp     |  8 +++----
 .../object_storage/posixFile/PosixFile.cpp    | 10 ++++-----
 .../data_access/SnapshotDataAccess.cpp        |  1 -
 .../data_access/TreeGroupDataAccess.cpp       | 14 ++++++------
 .../mongodb/MongoDBLoggingDataAccess.cpp      |  2 +-
 .../mongodb/MongoDBScriptDataAccess.cpp       | 12 +++++-----
 .../mongodb/MongoDBTreeGroupDataAccess.cpp    |  2 +-
 .../persistence/mongodb/mongo_db_constants.h  |  2 --
 JNIChaos/CMakeLists.txt                       |  2 +-
 chaos/common/CMakeLists.txt                   |  3 +--
 .../configuration/GlobalConfiguration.cpp     | 10 ++++-----
 chaos/common/direct_io/DirectIOClient.cpp     |  2 +-
 .../direct_io/DirectIOClientConnection.cpp    |  2 +-
 .../common/direct_io/DirectIOURLManagment.cpp |  3 +--
 .../common/direct_io/impl/ZMQSocketFeeder.cpp |  9 ++++----
 chaos/common/io/IODirectIODriver.cpp          |  2 +-
 chaos/common/network/URL.cpp                  |  4 ++--
 chaos/common/network/URL.h                    |  6 ++---
 chaos/common/utility/InetUtility.h            |  2 +-
 .../persistence/mongodb/MongoDBAccessor.cpp   |  1 +
 .../mongodb/MongoDBHAConnectionManager.cpp    |  1 -
 config/CMakeChaos.txt                         |  8 +++----
 config/CMakeChaosWin.txt                      |  2 +-
 27 files changed, 66 insertions(+), 74 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4f0243d21..85ea21443 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -69,7 +69,6 @@ ENDIF()
 
 ###### Required Libraries
 if (NOT WIN32)
-# CheckConfigureBuild(jsoncpp jsoncpp "-DJSONCPP_WITH_TESTS=OFF;-DJSONCPP_WITH_POST_BUILD_UNITTEST=OFF" https://github.com/bisegni )
 if(CHAOS_MDS)
   SET(CDSLIB ON)
 
diff --git a/ChaosMetadataService/CMakeLists.txt b/ChaosMetadataService/CMakeLists.txt
index da85cb61a..0221fc295 100644
--- a/ChaosMetadataService/CMakeLists.txt
+++ b/ChaosMetadataService/CMakeLists.txt
@@ -118,7 +118,6 @@ IF (COMPILE_HAZELCAST_LIVE_DRIVER)
      MESG("${HAZELCAST_LIBRARY}")
 ENDIF()
 
-set (CMAKE_CXX_STANDARD 14)
 
 
 MESG("Install c mongodb driver")
@@ -221,12 +220,11 @@ SET(cnd_src
             QueryDataMsgPSConsumer.cpp
             )
 
-SET(service_src  ../chaos_service_common/persistence/mongodb/MongoDBHAConnectionManager.cpp
+ SET(service_src  ../chaos_service_common/persistence/mongodb/MongoDBHAConnectionManager.cpp
                   ../chaos_service_common/persistence/mongodb/MongoDBAccessor.cpp
                   ../chaos_service_common/DriverPoolManager.cpp ../chaos_service_common/health_system/HealtManagerDirect.cpp)
 
-SET(service_src  ${service_src} ../chaos_service_common/persistence/mongodb/mongodb_cxx/MongoDBCXXDriver.cpp)
-
+ SET(service_src  ${service_src} ../chaos_service_common/persistence/mongodb/mongodb_cxx/MongoDBCXXDriver.cpp)
 
 SET(service_src  ${service_src} ../chaos_service_common/persistence/data_access/AbstractDataAccess.cpp
 						../chaos_service_common/persistence/data_access/AbstractPersistenceDriver.cpp
@@ -467,10 +465,10 @@ ENDIF(CHAOS_PROMETHEUS)
 
 IF (BUILD_FORCE_STATIC  )
   ADD_LIBRARY(chaos_cds STATIC ${cnd_src} ${api_src} ${service_src} ${posix_src})
-  TARGET_LINK_LIBRARIES(chaos_cds chaos_common couchbase mongoclient mongocxx bsoncxx)
+  TARGET_LINK_LIBRARIES(chaos_cds chaos_common couchbase mongoclient mongocxx bsoncxx )
 ELSE (BUILD_FORCE_STATIC)
-  ADD_LIBRARY(chaos_cds SHARED ${cnd_src} ${api_src} ${service_src} ${posix_src})
-  set_target_properties(chaos_cds PROPERTIES VERSION 1.0.0 SOVERSION 1)
+  ADD_LIBRARY(chaos_cds SHARED    ${posix_src} ${service_src}  ${api_src} ${cnd_src}) #   
+ # set_target_properties(chaos_cds PROPERTIES VERSION 1.0.0 SOVERSION 1)
 ENDIF (BUILD_FORCE_STATIC)
 
 ADD_EXECUTABLE(${PROJECT_NAME} main.cpp )
@@ -493,13 +491,15 @@ IF(BUILD_FORCE_STATIC)
   SET(CMAKE_EXE_LINKER_FLAGS "-static -Wl,--whole-archive -lchaos_common -Wl,--no-whole-archive")
 ENDIF()
 
-SET(BUILD_LIBRARY ${FrameworkLib} boost_iostreams)
+SET(BUILD_LIBRARY  boost_iostreams boost_regex)
+# SET(BUILD_LIBRARY )
+
 SET(BUILD_LIBRARY ${BUILD_LIBRARY} lz4)
 
 SET(BUILD_LIBRARY ${BUILD_LIBRARY} chaos_common)
-SET(BUILD_LIBRARY ${BUILD_LIBRARY} boost_random)
+# SET(BUILD_LIBRARY ${BUILD_LIBRARY} boost_random)
 SET(BUILD_LIBRARY ${BUILD_LIBRARY} couchbase)
-SET(BUILD_LIBRARY ${BUILD_LIBRARY} mongoclient)
+SET(BUILD_LIBRARY ${BUILD_LIBRARY} mongoclient )
 
 
 #IF(CERN_ROOT)
@@ -516,7 +516,7 @@ target_compile_definitions(chaos_cds PRIVATE USE_MONGODB3_DRIVER=1)
 # SET(BUILD_LIBRARY ${BUILD_LIBRARY} uv)
 # SET(BUILD_LIBRARY ${BUILD_LIBRARY} cassandra)
 # target_compile_definitions(${PROJECT_NAME} PRIVATE USE_CASSANDRA_DRIVER=1)
-TARGET_LINK_LIBRARIES(chaos_cds ${BUILD_LIBRARY} )
+TARGET_LINK_LIBRARIES(chaos_cds ${BUILD_LIBRARY})
 
 TARGET_LINK_LIBRARIES(${PROJECT_NAME} chaos_cds ${BUILD_LIBRARY})
 
diff --git a/ChaosMetadataService/cache_system/MemcachedCacheDriver.cpp b/ChaosMetadataService/cache_system/MemcachedCacheDriver.cpp
index 170aa5647..fcbe67158 100644
--- a/ChaosMetadataService/cache_system/MemcachedCacheDriver.cpp
+++ b/ChaosMetadataService/cache_system/MemcachedCacheDriver.cpp
@@ -10,14 +10,14 @@
 
 #include <string>
 
-#include <boost/regex.hpp>
+#include <regex>
 #include <boost/lexical_cast.hpp>
 #include <boost/algorithm/string.hpp>
 
 //! Regular expression for check server endpoint with the sintax hostname:[priority_port:service_port]
-static const boost::regex MemcachedHostNameRegExp("[a-zA-Z0-9]+(.[a-zA-Z0-9]+)+:[0-9]{4,5}");
+static const std::regex MemcachedHostNameRegExp("[a-zA-Z0-9]+(.[a-zA-Z0-9]+)+:[0-9]{4,5}");
 //! Regular expression for check server endpoint with the sintax ip:[priority_port:service_port]
-static const boost::regex MemcachedIPAndPortRegExp("\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b:[0-9]{4,5}");
+static const std::regex MemcachedIPAndPortRegExp("\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b:[0-9]{4,5}");
 
 
 using namespace chaos::data_service::cache_system;
@@ -64,7 +64,7 @@ bool MemcachedCacheDriver::validateString(std::string& server_description, std::
 	std::string normalized_server_desc = boost::algorithm::to_lower_copy(server_description);
 	
 	//check if the description is well formed
-	if(!regex_match(normalized_server_desc, MemcachedHostNameRegExp) && !regex_match(normalized_server_desc, MemcachedIPAndPortRegExp)) return false;
+	if(!std::regex_match(normalized_server_desc, MemcachedHostNameRegExp) && !std::regex_match(normalized_server_desc, MemcachedIPAndPortRegExp)) return false;
 	
 	boost::algorithm::split(tokens, normalized_server_desc, boost::algorithm::is_any_of(":"), boost::algorithm::token_compress_on);
 	return true;
diff --git a/ChaosMetadataService/object_storage/influxDB/InfluxDB.cpp b/ChaosMetadataService/object_storage/influxDB/InfluxDB.cpp
index 42cdc1f6d..012975d0b 100644
--- a/ChaosMetadataService/object_storage/influxDB/InfluxDB.cpp
+++ b/ChaosMetadataService/object_storage/influxDB/InfluxDB.cpp
@@ -23,7 +23,6 @@
 #include <chaos/common/configuration/GlobalConfiguration.h>
 #include <boost/algorithm/string/join.hpp>
 #include <boost/filesystem.hpp>
-#include <boost/regex.hpp>
 #define INFO INFO_LOG(InfluxDB)
 #define DBG DBG_LOG(InfluxDB)
 #define ERR ERR_LOG(InfluxDB)
diff --git a/ChaosMetadataService/object_storage/influxDB/InfluxDBLogStorageDriver.cpp b/ChaosMetadataService/object_storage/influxDB/InfluxDBLogStorageDriver.cpp
index 921b2a0d6..60f73ed3e 100644
--- a/ChaosMetadataService/object_storage/influxDB/InfluxDBLogStorageDriver.cpp
+++ b/ChaosMetadataService/object_storage/influxDB/InfluxDBLogStorageDriver.cpp
@@ -24,7 +24,7 @@
 #include "../../ChaosMetadataService.h"
 #include <boost/algorithm/string.hpp>
 #include <chaos_service_common/DriverPoolManager.h>
-
+#include <regex>
 #include "InfluxDBLogStorageDriver.h"
 #include "InfluxDB.h"
 using namespace chaos;
@@ -69,9 +69,9 @@ void InfluxDBLogStorageDriver::init(void *init_data)  {
     int port=8086;
     if(url_list.size()>0){
         std::vector<std::string> ele;
-        boost::regex expr{"(.+):(\\d+)/*(.*)"};
-        boost::smatch what;
-        if (boost::regex_search(url_list[0], what, expr)){
+        std::regex expr{"(.+):(\\d+)/*(.*)"};
+        std::smatch what;
+        if (std::regex_search(url_list[0], what, expr)){
             
             servername=what[1];
             port=atoi(what[2].str().c_str());
diff --git a/ChaosMetadataService/object_storage/posixFile/PosixFile.cpp b/ChaosMetadataService/object_storage/posixFile/PosixFile.cpp
index d4e25b471..d04ddc063 100644
--- a/ChaosMetadataService/object_storage/posixFile/PosixFile.cpp
+++ b/ChaosMetadataService/object_storage/posixFile/PosixFile.cpp
@@ -23,7 +23,7 @@
 #include <chaos/common/configuration/GlobalConfiguration.h>
 #include <boost/algorithm/string/join.hpp>
 #include <boost/filesystem.hpp>
-#include <boost/regex.hpp>
+#include <regex>
 #define INFO INFO_LOG(PosixFile)
 #define DBG DBG_LOG(PosixFile)
 #define ERR ERR_LOG(PosixFile)
@@ -109,7 +109,7 @@ static int lz4compress(const std::string& src, const std::string& dst) {
   }
   return 0;
 }
-std::vector<std::string> searchFile(const std::string& p, const boost::regex& my_filter) {
+std::vector<std::string> searchFile(const std::string& p, const std::regex& my_filter) {
   std::vector<std::string> all_matching_files;
 
   boost::filesystem::directory_iterator end_itr;  // Default ctor yields past-the-end
@@ -117,12 +117,12 @@ std::vector<std::string> searchFile(const std::string& p, const boost::regex& my
     // Skip if not a file
     if (!boost::filesystem::is_regular_file(i->status())) continue;
 
-    boost::smatch what;
+    std::smatch what;
 
     // Skip if no match for V2:
-    if (!boost::regex_match(i->path().filename().string(), what, my_filter)) continue;
+    if (!std::regex_match(i->path().filename().string(), what, my_filter)) continue;
     // For V3:
-    //if( !boost::regex_match( i->path().filename().string(), what, my_filter ) ) continue;
+    //if( !std::regex_match( i->path().filename().string(), what, my_filter ) ) continue;
 
     // File matches, store it
     all_matching_files.push_back(i->path().string());
diff --git a/ChaosMetadataService/persistence/data_access/SnapshotDataAccess.cpp b/ChaosMetadataService/persistence/data_access/SnapshotDataAccess.cpp
index 8e610076b..e170d71ee 100644
--- a/ChaosMetadataService/persistence/data_access/SnapshotDataAccess.cpp
+++ b/ChaosMetadataService/persistence/data_access/SnapshotDataAccess.cpp
@@ -26,7 +26,6 @@
 #include <chaos/common/network/NetworkBroker.h>
 #include <chaos/common/chaos_types.h>
 
-#include <boost/format.hpp>
 
 using namespace chaos::common::io;
 using namespace chaos::common::utility;
diff --git a/ChaosMetadataService/persistence/data_access/TreeGroupDataAccess.cpp b/ChaosMetadataService/persistence/data_access/TreeGroupDataAccess.cpp
index 9589a748a..506c301b9 100644
--- a/ChaosMetadataService/persistence/data_access/TreeGroupDataAccess.cpp
+++ b/ChaosMetadataService/persistence/data_access/TreeGroupDataAccess.cpp
@@ -23,15 +23,15 @@
 
 #include <chaos/common/global.h>
 
-#include <boost/regex.hpp>
+#include <regex>
 #include <boost/algorithm/string.hpp>
 
 #define SDA_INFO INFO_LOG(TreeGroupDataAccess)
 #define SDA_DBG  DBG_LOG(TreeGroupDataAccess)
 #define SDA_ERR  ERR_LOG(TreeGroupDataAccess)
 
-const boost::regex NodePathRegularExpression("(\\/[a-zA-Z0-9_.]+)+");
-const boost::regex NodeNameRegularExpression("([a-zA-Z0-9_.])+");
+const std::regex NodePathRegularExpression("(\\/[a-zA-Z0-9_.]+)+");
+const std::regex NodeNameRegularExpression("([a-zA-Z0-9_.])+");
 
 
 using namespace chaos::metadata_service::persistence::data_access;
@@ -50,8 +50,8 @@ TreeGroupDataAccess::~TreeGroupDataAccess(){}
 //check the three path
 bool TreeGroupDataAccess::checkPathSintax(const std::string& tree_path) {
     bool result = false;
-    boost::cmatch what;
-    if(!(result = boost::regex_match(tree_path.c_str(), what, NodePathRegularExpression))) {
+    std::cmatch what;
+    if(!(result = std::regex_match(tree_path.c_str(), what, NodePathRegularExpression))) {
         //error recognizing the path
         SDA_ERR << "The tree path " << tree_path << " is not well formed";
     }
@@ -61,8 +61,8 @@ bool TreeGroupDataAccess::checkPathSintax(const std::string& tree_path) {
 //check the three path
 bool TreeGroupDataAccess::checkNodeNameSintax(const std::string& node_name) {
     bool result = false;
-    boost::cmatch what;
-    if(!(result = boost::regex_match(node_name.c_str(), what, NodeNameRegularExpression))) {
+    std::cmatch what;
+    if(!(result = std::regex_match(node_name.c_str(), what, NodeNameRegularExpression))) {
         //error recognizing the path
         SDA_ERR << "The node name " << node_name << " is not well formed";
     }
diff --git a/ChaosMetadataService/persistence/mongodb/MongoDBLoggingDataAccess.cpp b/ChaosMetadataService/persistence/mongodb/MongoDBLoggingDataAccess.cpp
index 714958580..ef1d36ab1 100644
--- a/ChaosMetadataService/persistence/mongodb/MongoDBLoggingDataAccess.cpp
+++ b/ChaosMetadataService/persistence/mongodb/MongoDBLoggingDataAccess.cpp
@@ -26,7 +26,6 @@
 #include <chaos/common/global.h>
 #include <mongo/client/dbclient.h>
 
-#include <boost/lexical_cast.hpp>
 #include <boost/algorithm/string.hpp>
 
 #define MDBLDA_INFO INFO_LOG(MongoDBLoggingDataAccess)
@@ -256,6 +255,7 @@ int MongoDBLoggingDataAccess::searchEntryAdvanced(LogEntryList& entry_list,
                      search_string,
                      boost::is_any_of(" "),
                      boost::token_compress_on);
+
         if(criteria_token.size()) {
             for (std::vector<std::string>::iterator it = criteria_token.begin();
                  it != criteria_token.end();
diff --git a/ChaosMetadataService/persistence/mongodb/MongoDBScriptDataAccess.cpp b/ChaosMetadataService/persistence/mongodb/MongoDBScriptDataAccess.cpp
index 071830ecc..14f52c479 100644
--- a/ChaosMetadataService/persistence/mongodb/MongoDBScriptDataAccess.cpp
+++ b/ChaosMetadataService/persistence/mongodb/MongoDBScriptDataAccess.cpp
@@ -25,7 +25,7 @@
 #include <chaos/common/additional_lib/base64.h>
 #include <chaos/common/utility/TimingUtil.h>
 
-#include <boost/regex.hpp>
+#include <regex>
 #include <boost/foreach.hpp>
 #include <boost/algorithm/string.hpp>
 
@@ -45,8 +45,8 @@ using namespace chaos::metadata_service::persistence::data_access;
 #define SDA_ERR     ERR_LOG(MongoDBScriptDataAccess)
 
 static const std::string    ESCAPE_REPLACE_STRING("\\\\&");
-static const boost::regex   ESCAPE_REPLACE_SEARCH_REGEXP("([\\^\\.\\$\\|\\(\\)\\[\\]\\*\\+\\?\\/\\\\])");
-static const boost::regex   REGEX_EXECUTION_POOL_VALIDATION("[A-Za-z0-9_]+:[A-Za-z0-9\\/_]+");
+static const std::regex   ESCAPE_REPLACE_SEARCH_REGEXP("([\\^\\.\\$\\|\\(\\)\\[\\]\\*\\+\\?\\/\\\\])");
+static const std::regex   REGEX_EXECUTION_POOL_VALIDATION("[A-Za-z0-9_]+:[A-Za-z0-9\\/_]+");
 
 MongoDBScriptDataAccess::MongoDBScriptDataAccess(const ChaosSharedPtr<service_common::persistence::mongodb::MongoDBHAConnectionManager>& _connection):
 MongoDBAccessor(_connection),
@@ -640,14 +640,14 @@ int MongoDBScriptDataAccess::getScriptForExecutionPoolPathList(const ChaosString
     mongo::BSONArrayBuilder bson_find_in;
     try {
         BOOST_FOREACH( std::string pool_path_element, pool_path ) {
-            if(boost::regex_match(pool_path_element,
+            if(std::regex_match(pool_path_element,
                                   REGEX_EXECUTION_POOL_VALIDATION) == false) continue;
             
             //escape xecution ppool path for earchunder the path
-            const std::string result = boost::regex_replace(pool_path_element,
+            const std::string result = std::regex_replace(pool_path_element,
                                                             ESCAPE_REPLACE_SEARCH_REGEXP,
                                                             ESCAPE_REPLACE_STRING,
-                                                            boost::match_default | boost::format_sed);
+                                                             std::regex_constants::match_default |  std::regex_constants::format_sed);
             bson_find_in.appendRegex(CHAOS_FORMAT("%1%[A-Za-z0-9\\/_]*",%result));
         }
         mongo::Query q = BSON("execution_pool_list" << BSON("$in"<< bson_find_in.arr()) <<
diff --git a/ChaosMetadataService/persistence/mongodb/MongoDBTreeGroupDataAccess.cpp b/ChaosMetadataService/persistence/mongodb/MongoDBTreeGroupDataAccess.cpp
index 16247ad5f..e335c4d2f 100644
--- a/ChaosMetadataService/persistence/mongodb/MongoDBTreeGroupDataAccess.cpp
+++ b/ChaosMetadataService/persistence/mongodb/MongoDBTreeGroupDataAccess.cpp
@@ -26,7 +26,7 @@
 
 #include <mongo/client/dbclient.h>
 
-#include <boost/regex.hpp>
+#include <regex>
 #include <boost/algorithm/string.hpp>
 
 #define MDBTGDA_INFO INFO_LOG(MongoDBTreeGroupDataAccess)
diff --git a/ChaosMetadataService/persistence/mongodb/mongo_db_constants.h b/ChaosMetadataService/persistence/mongodb/mongo_db_constants.h
index 97713579d..cc2bc70db 100644
--- a/ChaosMetadataService/persistence/mongodb/mongo_db_constants.h
+++ b/ChaosMetadataService/persistence/mongodb/mongo_db_constants.h
@@ -8,8 +8,6 @@
 
 #include <chaos/common/chaos_constants.h>
 
-#include <boost/format.hpp>
-
 #ifndef CHAOSFramework_mongo_db_constants_h
 #define CHAOSFramework_mongo_db_constants_h
 
diff --git a/JNIChaos/CMakeLists.txt b/JNIChaos/CMakeLists.txt
index 075713ae8..054b5baae 100644
--- a/JNIChaos/CMakeLists.txt
+++ b/JNIChaos/CMakeLists.txt
@@ -29,7 +29,7 @@ SET(jnichaos_src JNIChaos.cc)
 ADD_LIBRARY(jnichaos SHARED ${jnichaos_src})
 #set_target_properties(jnichaos PROPERTIES VERSION 1.0.0 SOVERSION 1)
 
-SET(jnichaos_lib boost_program_options boost_system boost_thread boost_chrono boost_regex boost_log boost_log_setup boost_filesystem memcached zmq uv dl)
+SET(jnichaos_lib boost_program_options boost_system boost_thread boost_chrono boost_log boost_log_setup boost_filesystem memcached zmq uv dl)
 separate_arguments(jnichaos_lib)
 TARGET_LINK_LIBRARIES(jnichaos chaos_uitoolkit  chaos_common ${jnichaos_lib})
 
diff --git a/chaos/common/CMakeLists.txt b/chaos/common/CMakeLists.txt
index ad7a4089e..4b504996f 100644
--- a/chaos/common/CMakeLists.txt
+++ b/chaos/common/CMakeLists.txt
@@ -18,7 +18,7 @@ if(WIN32)
 	 jsonCpp
 	 GIT_REPOSITORY https://github.com/open-source-parsers/jsoncpp.git
 	 
-	 GIT_TAG 1.9.2
+//	 GIT_TAG 1.9.2
      PREFIX "${CMAKE_BINARY_DIR}/ext_dep/libjsoncpp-prefix"
 	 SOURCE_DIR "${CMAKE_BINARY_DIR}/ext_dep/libjsoncpp-src"
 	 BINARY_DIR "${CMAKE_BINARY_DIR}/ext_dep/libjsoncpp-build"
@@ -503,7 +503,6 @@ SET(common_lib_src ${common_lib_src}
                     )
 ENDIF()
 IF(KAFKA_ASIO_ENABLE)
-SET(CMAKE_CXX_STANDARD 11)
 INCLUDE_DIRECTORIES(${CMAKE_INSTALL_PREFIX}/snappy/include message/impl/kafka/asio/ )
 SET(common_lib_src ${common_lib_src} message/impl/kafka/asio/MessagePSKafkaAsioProducer.cpp message/impl/kafka/asio/MessagePSKafkaAsio.cpp message/impl/kafka/asio/MessagePSKafkaAsioConsumer.cpp)
 link_directories(${CMAKE_INSTALL_PREFIX}/snappy/lib ${CMAKE_INSTALL_PREFIX}/snappy/lib64)
diff --git a/chaos/common/configuration/GlobalConfiguration.cpp b/chaos/common/configuration/GlobalConfiguration.cpp
index 360d5855c..d305314ed 100644
--- a/chaos/common/configuration/GlobalConfiguration.cpp
+++ b/chaos/common/configuration/GlobalConfiguration.cpp
@@ -24,10 +24,10 @@
 
 #include <chaos/common/log/LogManager.h>
 
-#include <boost/regex.hpp>
+
 #include <boost/filesystem.hpp>
 #include <boost/algorithm/string.hpp>
-
+#include <regex>
 #include "GlobalConfiguration.h"
 #include <chaos/common/version.h>
 #include <chaos/common/external_unit/external_unit.h>
@@ -51,7 +51,7 @@ namespace chaos{
                                           const std::string& regex) {
     //no cache server provided
     //clear previosly pair
-    const boost::regex rx(regex);
+    const std::regex rx(regex);
     for(std::vector<std::string>::const_iterator it = kv_vector.begin(),
         end = kv_vector.end();
         it != end;
@@ -60,7 +60,7 @@ namespace chaos{
         const std::string& kv_param_value = *it;
         
         /*if(regex.size() && kv_param_value.size()&&
-           !boost::regex_match(kv_param_value,rx)) {
+           !std::regex_match(kv_param_value,rx)) {
                std::stringstream ss;
                ss<<"Malformed kv parameter string:"<<kv_param_value<<" regex:"<<regex;
                LERR_<<ss.str();
@@ -95,7 +95,7 @@ void GlobalConfiguration::preParseStartupParameters()  {
         addOption<std::string>(InitOption::OPT_CONF_FILE,"File configuration path");
         addOption(InitOption::OPT_VERSION, "Printout version");
         addOption(InitOption::OPT_NODE_DESC, po::value< std::string >()->default_value(""), "A string containing a brief description of the node");
-        addOption(InitOption::OPT_DATA_DIR, po::value< std::string >()->default_value("."), "A data directory where the node can dump data and check points");
+        addOption(InitOption::OPT_DATA_DIR, po::value< std::string >()->default_value("/tmp"), "A data directory where the node can dump data and check points");
 
         addOption(InitOption::OPT_LOG_ON_CONSOLE, po::value< bool >()->zero_tokens(), "Specify when the log must be forwarded on console");
         addOption(InitOption::OPT_LOG_ON_SYSLOG, po::value< bool >()->zero_tokens(), "Specify when the log must be forwarded on syslog server");
diff --git a/chaos/common/direct_io/DirectIOClient.cpp b/chaos/common/direct_io/DirectIOClient.cpp
index b3356af57..e77b5c2d0 100644
--- a/chaos/common/direct_io/DirectIOClient.cpp
+++ b/chaos/common/direct_io/DirectIOClient.cpp
@@ -28,7 +28,7 @@
 #ifdef CHAOS_PROMETHEUS
 #include <chaos/common/direct_io/DirectIOClientConnectionMetricCollector.h>
 #endif
-#include <boost/regex.hpp>
+#include <regex>
 #include <boost/format.hpp>
 #include <boost/algorithm/string.hpp>
 #include <boost/lexical_cast.hpp>
diff --git a/chaos/common/direct_io/DirectIOClientConnection.cpp b/chaos/common/direct_io/DirectIOClientConnection.cpp
index eba53adc3..ae649a44d 100644
--- a/chaos/common/direct_io/DirectIOClientConnection.cpp
+++ b/chaos/common/direct_io/DirectIOClientConnection.cpp
@@ -24,7 +24,7 @@
 #include <chaos/common/direct_io/DirectIOClientConnection.h>
 #include <chaos/common/utility/UUIDUtil.h>
 
-#include <boost/regex.hpp>
+#include <regex>
 #include <boost/format.hpp>
 #include <boost/algorithm/string.hpp>
 
diff --git a/chaos/common/direct_io/DirectIOURLManagment.cpp b/chaos/common/direct_io/DirectIOURLManagment.cpp
index e4936b223..4a30b889f 100644
--- a/chaos/common/direct_io/DirectIOURLManagment.cpp
+++ b/chaos/common/direct_io/DirectIOURLManagment.cpp
@@ -24,7 +24,7 @@
 #include <regex>
 using namespace std;
 #else
-#include <boost/regex.hpp>
+#include <regex>
 using namespace boost;
 #endif
 #include <boost/format.hpp>
@@ -53,7 +53,6 @@ bool checkURL(const std::string& url){
 
 	regex DirectIOHostIPAndEndpointRegExp(_DirectIOHostIPAndEndpoint);
     regex DirectIOServerDescriptionHostAndEndpointRegExp(_DirectIOServerDescriptionHostAndEndpoint);
-	//boost::smatch match0,match1;
 	return	regex_match(url,DirectIOHostIPAndEndpointRegExp) || regex_match(url,DirectIOServerDescriptionHostAndEndpointRegExp);
 	
 return true;
diff --git a/chaos/common/direct_io/impl/ZMQSocketFeeder.cpp b/chaos/common/direct_io/impl/ZMQSocketFeeder.cpp
index cd1c0ae57..68070dd3b 100644
--- a/chaos/common/direct_io/impl/ZMQSocketFeeder.cpp
+++ b/chaos/common/direct_io/impl/ZMQSocketFeeder.cpp
@@ -26,7 +26,8 @@
 #include <chaos/common/data/cache/FastHash.h>
 #include <chaos/common/direct_io/impl/ZMQSocketFeeder.h>
 
-#include <boost/regex.hpp>
+//#include <regex>
+#include <regex>
 #include <boost/format.hpp>
 #include <boost/algorithm/string.hpp>
 
@@ -37,9 +38,9 @@
 using namespace chaos::common::direct_io::impl;
 
 //! Regular expression for check server endpoint with the sintax hostname:[priority_port:service_port]
-static const boost::regex DirectIOHostNameRegExp("[a-zA-Z0-9]+(.[a-zA-Z0-9]+)+:[0-9]{4,5}:[0-9]{4,5}");
+static const std::regex DirectIOHostNameRegExp("[a-zA-Z0-9]+(.[a-zA-Z0-9]+)+:[0-9]{4,5}:[0-9]{4,5}");
 //! Regular expression for check server endpoint with the sintax ip:[priority_port:service_port]
-static const boost::regex DirectIOIPAndPortRegExp("\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b:[0-9]{4,5}:[0-9]{4,5}");
+static const std::regex DirectIOIPAndPortRegExp("\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b:[0-9]{4,5}:[0-9]{4,5}");
 
 ZMQSocketFeeder::ZMQSocketFeeder():socket_slot(NULL), socket_allocated(0) {
 		//allocate array space
@@ -85,7 +86,7 @@ bool ZMQSocketFeeder::addServer(std::string server_desc) {
 	std::string normalized_server_desc = boost::algorithm::to_lower_copy(server_desc);
 	
 	//check if the description is well formed
-	if(!regex_match(server_desc, DirectIOHostNameRegExp) && !regex_match(server_desc, DirectIOIPAndPortRegExp)) return false;
+	if(!std::regex_match(server_desc, DirectIOHostNameRegExp) && !std::regex_match(server_desc, DirectIOIPAndPortRegExp)) return false;
 	
 	//decoplue endpoints
 	decoupleServerDescription(server_desc, socket_slot[socket_allocated]);
diff --git a/chaos/common/io/IODirectIODriver.cpp b/chaos/common/io/IODirectIODriver.cpp
index 2f50fb37f..22182b823 100644
--- a/chaos/common/io/IODirectIODriver.cpp
+++ b/chaos/common/io/IODirectIODriver.cpp
@@ -21,7 +21,7 @@
 
 #include <boost/algorithm/string.hpp>
 #include <boost/lexical_cast.hpp>
-#include <boost/regex.hpp>
+#include <regex>
 #include <boost/lexical_cast.hpp>
 
 #include <chaos/common/network/NetworkBroker.h>
diff --git a/chaos/common/network/URL.cpp b/chaos/common/network/URL.cpp
index 0c6cef7e1..9b668e836 100644
--- a/chaos/common/network/URL.cpp
+++ b/chaos/common/network/URL.cpp
@@ -27,7 +27,7 @@ URL::URL() {
     
 }
 
-URL::URL(const std::vector<boost::regex>& _url_reg,
+URL::URL(const std::vector<std::regex>& _url_reg,
 		 const std::string& _url):
 url(_url),
 url_reg(_url_reg) {
@@ -44,7 +44,7 @@ URL::URL(const URL & _orig_url) {
 
 bool URL::ok() {
     bool result = false;
-    for (std::vector<boost::regex>::iterator it = url_reg.begin();
+    for (std::vector<std::regex>::iterator it = url_reg.begin();
          it != url_reg.end() && !result;
          it++) {
         result = regex_match(url, *it);
diff --git a/chaos/common/network/URL.h b/chaos/common/network/URL.h
index af6fe049a..d0de40a3e 100644
--- a/chaos/common/network/URL.h
+++ b/chaos/common/network/URL.h
@@ -24,7 +24,7 @@
 
 #include <string>
 #include <vector>
-#include <boost/regex.hpp>
+#include <regex>
 
 namespace chaos {
     namespace common {
@@ -39,14 +39,14 @@ namespace chaos {
                     //!url description
                 std::string url;
                     //regexp for the lexical checking of the url
-                std::vector<boost::regex> url_reg;
+                std::vector<std::regex> url_reg;
             public:
                     //! Default contructor
                 URL();
                     //! Default contructor
                 URL(const std::string& _url);
                     //! constructor with regular expression for check server hostname and port
-                URL(const std::vector<boost::regex>& _url_reg,
+                URL(const std::vector<std::regex>& _url_reg,
 					const std::string& _url);
                 
                     //! Default contructor
diff --git a/chaos/common/utility/InetUtility.h b/chaos/common/utility/InetUtility.h
index 4ffc524cf..c099090b2 100644
--- a/chaos/common/utility/InetUtility.h
+++ b/chaos/common/utility/InetUtility.h
@@ -43,7 +43,7 @@
 #include <stdlib.h>
 #include <chaos/common/global.h>
 
-#include <boost/regex.hpp>
+#include <regex>
 #include <boost/asio.hpp>
 #include <boost/algorithm/string/predicate.hpp>
 #define SERVERHOSTNAME "[a-zA-Z0-9]+(.[a-zA-Z0-9]+)+:[0-9]{4,5}"
diff --git a/chaos_service_common/persistence/mongodb/MongoDBAccessor.cpp b/chaos_service_common/persistence/mongodb/MongoDBAccessor.cpp
index b785797d2..c9eaff43b 100644
--- a/chaos_service_common/persistence/mongodb/MongoDBAccessor.cpp
+++ b/chaos_service_common/persistence/mongodb/MongoDBAccessor.cpp
@@ -75,6 +75,7 @@ mongo::BSONArray MongoDBAccessor::getSearchTokenOnFiled(const std::string& searc
     boost::split(criteria_token, search_string,
                  boost::is_any_of(" "),
                  boost::token_compress_on);
+    
     for (std::vector<std::string>::iterator it = criteria_token.begin();
          it != criteria_token.end();
          it++) {
diff --git a/chaos_service_common/persistence/mongodb/MongoDBHAConnectionManager.cpp b/chaos_service_common/persistence/mongodb/MongoDBHAConnectionManager.cpp
index b8cdbd433..41539cdff 100644
--- a/chaos_service_common/persistence/mongodb/MongoDBHAConnectionManager.cpp
+++ b/chaos_service_common/persistence/mongodb/MongoDBHAConnectionManager.cpp
@@ -11,7 +11,6 @@
 #include <chaos/common/utility/TimingUtil.h>
 #include <chaos/common/chaos_constants.h>
 
-#include <boost/format.hpp>
 
 #define RETRIVE_MIN_TIME 500
 #define RETRIVE_MAX_TIME 10000
diff --git a/config/CMakeChaos.txt b/config/CMakeChaos.txt
index 91d5d90b5..2499e2e49 100644
--- a/config/CMakeChaos.txt
+++ b/config/CMakeChaos.txt
@@ -44,7 +44,7 @@ option(CHAOS_DEBUG "Enable Debug" OFF)
 option(CHAOS_ENABLE_C11 "Enable C11" ON)
 option(CHAOS_DISABLE_EVENTFD "Disable EventFD" OFF)
 option(CHAOS_BUILD_CACHE "Keep third part sources" ON)
-option(CHAOS_BOOST_VERSION "Use a predefined boost version" 66)
+option(CHAOS_BOOST_VERSION "Use a predefined boost version" 64)
 option(CHAOS_BOOST_MINOR_VERSION "Use a predefined boost minor version" 0)
 option(CHAOS_BOOST_DYNAMIC "compile and use dynamic boost" OFF)
 option(CHAOS_BUILD_UNITSERVER "Automatically build an Unit Server that includes all CUs found in distribution" ON)
@@ -140,7 +140,6 @@ ENDIF()
 
 set (BOOST_CXX_ADDITIONAL_FLAGS "")
 IF(CHAOS_ENABLE_C11 AND NOT CHAOS_TARGET)
-#    set (CHAOS_CXX_FLAGS "${CHAOS_CXX_FLAGS} -std=c++14")
 #    set (BOOST_CXX_ADDITIONAL_FLAGS "-fvisibility=default")
   ELSE()
 #   set (BOOST_CXX_ADDITIONAL_FLAGS "-fvisibility=default")
@@ -186,7 +185,7 @@ set(Boost_USE_STATIC_RUNTIME ON)
 IF(${SYSTEM_NAME} MATCHES "Darwin")
   # Mac OS X specific code
   MESG("enabling MAC compilation")
-  SET(FrameworkLib boost_program_options boost_date_time boost_system  boost_chrono boost_regex boost_log_setup boost_log boost_filesystem boost_thread boost_atomic boost_random jsoncpp pthread dl ${GCC_COVERAGE_LINK_LIB})
+  SET(FrameworkLib boost_program_options boost_date_time boost_system  boost_chrono  boost_log_setup boost_log boost_filesystem boost_thread boost_atomic boost_random jsoncpp pthread dl ${GCC_COVERAGE_LINK_LIB})
   SET(CHAOS_BOOST_FLAGS toolset=clang)
   CheckCompiler("CXX" clang++)
   CheckCompiler("C" clang)
@@ -196,7 +195,7 @@ IF(${SYSTEM_NAME} MATCHES "Darwin")
 
 ELSE()
 
-  SET(FrameworkLib boost_program_options boost_date_time boost_system  boost_chrono boost_regex boost_log_setup boost_log boost_filesystem boost_thread boost_atomic boost_random jsoncpp pthread rt dl ${GCC_COVERAGE_LINK_LIB})
+  SET(FrameworkLib boost_program_options boost_date_time boost_system  boost_chrono  boost_log_setup boost_log boost_filesystem boost_thread boost_atomic boost_random jsoncpp pthread rt dl ${GCC_COVERAGE_LINK_LIB})
 
 ENDIF()
 
@@ -426,7 +425,6 @@ ENDIF()
 FILE(COPY ${CMAKE_CURRENT_LIST_DIR}/Findchaos.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}/)
 FILE(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeMacroUtils.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/)
 unset(Boost_FOUND CACHE)
-#find_package( Boost COMPONENTS program_options regex date_time system chrono regex log_setup log filesystem thread atomic)
 unset(LIB_NEED CACHE)
 find_library(LIB_NEED NAMES boost_program_options boost_regex boost_date_time boost_system boost_chrono boost_log_setup boost_log boost_filesystem boost_thread boost_atomic boost_random PATHS ${CMAKE_INSTALL_PREFIX}/lib NO_DEFAULT_PATH)
 if(LIB_NEED)
diff --git a/config/CMakeChaosWin.txt b/config/CMakeChaosWin.txt
index 0a1301bb8..696ebafd4 100644
--- a/config/CMakeChaosWin.txt
+++ b/config/CMakeChaosWin.txt
@@ -132,7 +132,7 @@ IF(CHAOS_TARGET)
 ELSE()
   SET(CHAOS_POSTFIX "${CHAOS_SYSTEM_MACHINE}-${CHAOS_SYSTEM_NAME}")
 ENDIF()
-SET(FrameworkLib boost_program_options boost_date_time boost_system  boost_chrono boost_regex boost_log_setup boost_log boost_filesystem boost_thread boost_atomic boost_random jsoncpp pthreadVC2)
+SET(FrameworkLib boost_program_options boost_date_time boost_system  boost_chrono  boost_log_setup boost_log boost_filesystem boost_thread boost_atomic boost_random jsoncpp pthreadVC2)
 
 IF ( NOT CMAKE_INSTALL_PREFIX AND DEFINED ENV{CHAOS_PREFIX} )
   set(CMAKE_INSTALL_PREFIX $ENV{CHAOS_PREFIX} CACHE FILEPATH "path")
-- 
GitLab