Remove boost dependency 72/303072/5
authorSangyoon Jang <jeremy.jang@samsung.com>
Wed, 20 Dec 2023 00:54:22 +0000 (09:54 +0900)
committerSangyoon Jang <jeremy.jang@samsung.com>
Fri, 16 Feb 2024 08:09:52 +0000 (17:09 +0900)
Change-Id: I43af7a2db73ba6f422ad71ec7f7c4ebcd0c5f216
Signed-off-by: Sangyoon Jang <jeremy.jang@samsung.com>
23 files changed:
CMakeLists.txt
packaging/manifest-parser.spec
src/delta/delta_parser.cc
src/delta/delta_parser.h
src/examples/CMakeLists.txt
src/examples/main.cc
src/manifest_parser/CMakeLists.txt
src/manifest_parser/manifest_parser.cc
src/manifest_parser/manifest_parser.h
src/manifest_parser/manifest_parser_impl.cc
src/manifest_parser/manifest_parser_impl.h
src/manifest_parser/manifest_util.cc
src/manifest_parser/manifest_util.h
src/manifest_parser/utils/CMakeLists.txt
src/manifest_parser/utils/language_tag_validator.cc
src/manifest_parser/utils/string_util.cc
src/manifest_parser/utils/string_util.h
src/manifest_parser/utils/version_number.cc
src/manifest_parser/utils/w3c_languages.cc
src/manifest_parser/values.cc
src/unit_tests/CMakeLists.txt
src/unit_tests/parser_manifest_handler_unittest.cc
src/unit_tests/parser_unittest.cc

index b731e9255c16258a313ca9cf9b90fb89a6776f82..105e8ae1d6509c58919c0baf435e756665eb923e 100644 (file)
@@ -14,12 +14,12 @@ ENDIF(NOT CMAKE_BUILD_TYPE)
 # Compiler flags
 SET(EXTRA_FLAGS "-Wall -Wextra")
 SET(CMAKE_C_FLAGS_PROFILING    "-O2 ${EXTRA_FLAGS}")
-SET(CMAKE_CXX_FLAGS_PROFILING  "-O2 -std=c++14 ${EXTRA_FLAGS}")
+SET(CMAKE_CXX_FLAGS_PROFILING  "-O2 -std=c++17 ${EXTRA_FLAGS}")
 SET(CMAKE_C_FLAGS_DEBUG        "-O0 -g ${EXTRA_FLAGS}")
-SET(CMAKE_CXX_FLAGS_DEBUG      "-O0 -std=c++14 -g ${EXTRA_FLAGS}")
+SET(CMAKE_CXX_FLAGS_DEBUG      "-O0 -std=c++17 -g ${EXTRA_FLAGS}")
 SET(CMAKE_C_FLAGS_RELEASE      "-O2 -g ${EXTRA_FLAGS}")
-SET(CMAKE_CXX_FLAGS_RELEASE    "-O2 -std=c++14 -g ${EXTRA_FLAGS}")
-SET(CMAKE_CXX_FLAGS_CCOV       "-O0 -std=c++14 -g --coverage ${EXTRA_FLAGS}")
+SET(CMAKE_CXX_FLAGS_RELEASE    "-O2 -std=c++17 -g ${EXTRA_FLAGS}")
+SET(CMAKE_CXX_FLAGS_CCOV       "-O0 -std=c++17 -g --coverage ${EXTRA_FLAGS}")
 
 # Linker flags
 SET(EXTRA_LINKER_FLAGS "-Wl,--as-needed")
@@ -45,7 +45,6 @@ PKG_CHECK_MODULES(LIBIRI_DEPS REQUIRED libiri)
 PKG_CHECK_MODULES(DLOG_DEPS REQUIRED dlog)
 
 FIND_PACKAGE(GTest REQUIRED)
-FIND_PACKAGE(Boost REQUIRED COMPONENTS system filesystem)
 
 # xmlsec1 - choose crypto library which to use
 ADD_DEFINITIONS("-DXMLSEC_CRYPTO_OPENSSL")
index d8bb1b0f5d282e244e79b911c5bdd3d5c0c01df6..a6f80499834432d98871c0130e76f084b21fd892 100644 (file)
@@ -7,7 +7,6 @@ License:        Apache-2.0 and BSD-3-Clause
 Source0:        %{name}-%{version}.tar.gz
 Source100:      %{name}.manifest
 
-BuildRequires:  boost-devel
 BuildRequires:  cmake
 BuildRequires:  gtest-devel
 BuildRequires:  pkgconfig(dlog)
@@ -23,7 +22,6 @@ This is a meta package that installs manifest parser.
 Summary:    Manifest parser development files
 Group:      Application Framework/Package Management
 Requires:   %{name} = %{version}
-Requires:   boost-devel
 Provides:   manifest-parser-devel
 
 %description devel
index 8b2fec3a3f8c167e99539ce9468c49fd6040b864..b0321cbd94913aea56dd6de84a5668d6fdd6e585 100644 (file)
@@ -4,6 +4,7 @@
 
 #include "delta/delta_parser.h"
 
+#include <filesystem>
 #include <utility>
 #include <vector>
 
@@ -34,7 +35,7 @@ const std::string& DeltaParser::GetErrorMessage() const {
   return parser_->GetErrorMessage();
 }
 
-bool DeltaParser::ParseManifest(const boost::filesystem::path& path) {
+bool DeltaParser::ParseManifest(const std::filesystem::path& path) {
   if (!parser_->ParseManifest(path))
     return false;
 
index 1e520b9d61ba515584652a44aca42541c434e0fc..a35092df9a7d95cdd2f0067a89064bdaa0294c1f 100644 (file)
@@ -5,8 +5,7 @@
 #ifndef DELTA_DELTA_PARSER_H_
 #define DELTA_DELTA_PARSER_H_
 
-#include <boost/filesystem/path.hpp>
-
+#include <filesystem>
 #include <memory>
 #include <string>
 
@@ -37,7 +36,7 @@ class DeltaParser {
   std::shared_ptr<const parser::ManifestData> GetManifestData(
       const std::string& key);
   const std::string& GetErrorMessage() const;
-  bool ParseManifest(const boost::filesystem::path& path);
+  bool ParseManifest(const std::filesystem::path& path);
 
  private:
   std::unique_ptr<parser::ManifestParser> parser_;
index 133c26e048c1784b99a49b1327a3cff5426b4e11..1f951b512c2ae67a81a758bbe6610518cecae0f4 100644 (file)
@@ -11,11 +11,6 @@ ADD_EXECUTABLE(${TARGET_EXAMPLES} ${SRCS})
 # Target - includes
 TARGET_INCLUDE_DIRECTORIES(${TARGET_EXAMPLES} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/")
 
-# Target - deps
-APPLY_PKG_CONFIG(${TARGET_EXAMPLES} PUBLIC
-  Boost
-)
-
 TARGET_LINK_LIBRARIES(${TARGET_EXAMPLES} PUBLIC ${TARGET_LIBNAME_PARSER})
 
 INSTALL(FILES config.xml DESTINATION ${SHAREDIR}/manifest-parser)
index 6701bb738c000ad1bf8e45358f7cd19381105e55..0f6d841e904ad3d3cc82d522b201941b750d168c 100644 (file)
@@ -6,8 +6,8 @@
 #include <manifest_parser/manifest_parser.h>
 // Include manifest handler, which is packaged with manifest parser
 
-#include <boost/filesystem/path.hpp>
 #include <cassert>
+#include <cstring>
 #include <memory>
 
 #include "custom_handlers/handler_constants.h"
@@ -16,7 +16,7 @@
 #include "custom_handlers/item_handler.h"
 
 int main() {
-  boost::filesystem::path manifest_path =
+  std::filesystem::path manifest_path =
       "/usr/share/manifest-parser/config.xml";
 
   // Create manifest handler registry
index 082d47522a28f880b8d1013b458ccae364f1bc61..28905fe31f1920e20cbef3340978ae11c29f9cd2 100644 (file)
@@ -8,7 +8,6 @@ TARGET_INCLUDE_DIRECTORIES(${TARGET_LIBNAME_PARSER} PUBLIC "${CMAKE_CURRENT_SOUR
 # Target - deps
 APPLY_PKG_CONFIG(${TARGET_LIBNAME_PARSER} PUBLIC
   LIBXML_DEPS
-  Boost
 )
 
 # Extra
index 9b197f56de8a644ae237dcce957be6dafdfee2ae..97d76f5f5f204ad779a7dfe01e6784a28eb0ca64 100644 (file)
@@ -13,7 +13,7 @@
 #include "manifest_parser/permission_types.h"
 #include "manifest_parser/values.h"
 
-namespace bf = boost::filesystem;
+namespace fs = std::filesystem;
 
 namespace parser {
 
@@ -29,7 +29,7 @@ const std::string& ManifestParser::GetErrorMessage() const {
   return impl_->GetErrorMessage();
 }
 
-bool ManifestParser::ParseManifest(const boost::filesystem::path& path,
+bool ManifestParser::ParseManifest(const std::filesystem::path& path,
     std::shared_ptr<ManifestConstraints> constraints) {
   return impl_->ParseManifest(path, constraints);
 }
index 068bb7338d0b5761a3d7c187d0251c41d83fade0..28bfe0646cf1d8f1c8d53d52efb17d97a07d9065 100644 (file)
@@ -6,8 +6,7 @@
 #ifndef MANIFEST_PARSER_MANIFEST_PARSER_H_
 #define MANIFEST_PARSER_MANIFEST_PARSER_H_
 
-#include <boost/filesystem/path.hpp>
-
+#include <filesystem>
 #include <memory>
 #include <string>
 
@@ -27,7 +26,7 @@ class ManifestParser final {
   virtual const std::string& GetErrorMessage() const;
 
   // Parses manifest file to manfiest_ object
-  bool ParseManifest(const boost::filesystem::path& path,
+  bool ParseManifest(const std::filesystem::path& path,
       std::shared_ptr<ManifestConstraints> constraints = nullptr);
 
   std::shared_ptr<const ManifestData> GetManifestData(
index 9d62c1126d385b5c63f59efe440cb2cbb7b21c1e..8725659a3d69baeb4fa1f8145f7382a0b0c43a09 100644 (file)
@@ -4,9 +4,8 @@
 
 #include "manifest_parser/manifest_parser_impl.h"
 
-#include <boost/filesystem/operations.hpp>
-#include <boost/filesystem/path.hpp>
-
+#include <filesystem>
+#include <system_error>
 #include <utility>
 
 #include "manifest_parser/manifest_util.h"
@@ -14,8 +13,7 @@
 #include "manifest_parser/values.h"
 #include "manifest_parser/utils/logging.h"
 
-namespace bf = boost::filesystem;
-namespace bs = boost::system;
+namespace fs = std::filesystem;
 
 namespace {
 
@@ -45,14 +43,14 @@ const std::string& ManifestParserImpl::GetErrorMessage() const {
   return error_;
 }
 
-bool ManifestParserImpl::ParseManifest(const bf::path& manifest_path,
+bool ManifestParserImpl::ParseManifest(const fs::path& manifest_path,
     std::shared_ptr<ManifestConstraints> constraints) {
   error_.clear();
   if (manifest_path.empty()) {
     SetError(kErrMsgNoPath, &error_);
     return false;
   }
-  bs::error_code ec;
+  std::error_code ec;
   if (!exists(manifest_path, ec)) {
     SetError(kErrMsgInvalidPath, &error_);
     if (ec)
index 8a310814dcb006bde11d4944101be702c77a0131..48fde5f8c30a9a33380ef16f48fcd1818e933676 100644 (file)
@@ -5,8 +5,7 @@
 #ifndef MANIFEST_PARSER_MANIFEST_PARSER_IMPL_H_
 #define MANIFEST_PARSER_MANIFEST_PARSER_IMPL_H_
 
-#include <boost/filesystem/path.hpp>
-
+#include <filesystem>
 #include <map>
 #include <memory>
 #include <set>
@@ -32,7 +31,7 @@ class ManifestParserImpl {
    * @param constraints
    * @return true on success
    */
-  bool ParseManifest(const boost::filesystem::path& path,
+  bool ParseManifest(const std::filesystem::path& path,
       std::shared_ptr<ManifestConstraints> constraints = nullptr);
 
   /**
index 0a30f540b6ba2a6b35908a467df1df9e4d14b1fd..aefeb4bd1e0992d813f85a6fc53d35d6f74d56a5 100644 (file)
@@ -5,10 +5,9 @@
 
 #include "manifest_parser/manifest_util.h"
 
-#include <boost/filesystem/operations.hpp>
-
 #include <algorithm>
 #include <cassert>
+#include <filesystem>
 #include <map>
 #include <regex>
 #include <vector>
@@ -20,7 +19,7 @@
 #include "manifest_parser/utils/string_util.h"
 #include "manifest_parser/values.h"
 
-namespace bf = boost::filesystem;
+namespace fs = std::filesystem;
 
 namespace {
 
@@ -342,22 +341,22 @@ std::shared_ptr<Manifest> LoadManifest(const std::string& manifest_path,
   return std::make_shared<parser::Manifest>(std::move(result));
 }
 
-bf::path ApplicationURLToRelativeFilePath(const std::string& url) {
+fs::path ApplicationURLToRelativeFilePath(const std::string& url) {
   std::string url_path = url;
   if (url_path.empty() || url_path[0] != '/')
-    return bf::path();
+    return fs::path();
 
   std::string file_path = utils::DecodePercentEscapedCharacter(url_path);
   if (file_path.empty())
-    return bf::path();
+    return fs::path();
 
-  bf::path path(file_path);
+  fs::path path(file_path);
 
   // It's still possible for someone to construct an annoying URL whose path
   // would still wind up not being considered relative at this point.
   // For example: app://id/c:////foo.html
   if (path.is_absolute())
-    return bf::path();
+    return fs::path();
 
   return path;
 }
index e58cf67a0f8daa93dfe3a37da158d2ee83b67747..2f8006024f2cf266e4302955a6edbced9a25ca1c 100644 (file)
@@ -6,7 +6,6 @@
 #ifndef MANIFEST_PARSER_MANIFEST_UTIL_H_
 #define MANIFEST_PARSER_MANIFEST_UTIL_H_
 
-#include <boost/filesystem/path.hpp>
 #include <libxml2/libxml/tree.h>
 
 #include <string>
index c69b432d98c102b1fd54940c7103c2f906b959df..b2742fb88db243fd151cfb7a4332cfe7e9d36ad0 100644 (file)
@@ -9,7 +9,6 @@ TARGET_INCLUDE_DIRECTORIES(${TARGET_LIBNAME_UTILS} PUBLIC "${CMAKE_CURRENT_SOURC
 APPLY_PKG_CONFIG(${TARGET_LIBNAME_UTILS} PUBLIC
   LIBIRI_DEPS
   DLOG_DEPS
-  Boost
 )
 
 # Extra
index e67732707bd87109a3c610703ac0c665c911ca39..403f443541d4223c28fe01a6f377984580602538 100644 (file)
@@ -4,36 +4,40 @@
 
 #include "manifest_parser/utils/language_tag_validator.h"
 
-#include <boost/algorithm/string.hpp>
+#include <algorithm>
+#include <cctype>
+#include <string>
 #include <vector>
 
 #include "manifest_parser/utils/w3c_languages.h"
-
-namespace ba = boost::algorithm;
+#include "manifest_parser/utils/string_util.h"
 
 namespace {
 
-const char kTagDelimiter[] = "-";
+const char kTagDelimiter = '-';
 const int kSingletonTagSize = 1;
 const int kMaximumExtensionTagSize = 16;
 const int kMaximumPrivateTagSize = 8;
 
 std::string Capitalized(const std::string& input) {
   std::string output = input;
-  ba::to_lower(output);
-  output[0] = toupper(output[0]);
+  std::transform(output.begin(), output.end(), output.begin(),
+      [](unsigned char c) { return std::tolower(c); });
+  output[0] = std::toupper(output[0]);
   return output;
 }
 
 std::string ToLower(const std::string& input) {
   std::string output = input;
-  ba::to_lower(output);
+  std::transform(output.begin(), output.end(), output.begin(),
+      [](unsigned char c) { return std::tolower(c); });
   return output;
 }
 
 std::string ToUpper(const std::string& input) {
   std::string output = input;
-  ba::to_upper(output);
+  std::transform(output.begin(), output.end(), output.begin(),
+      [](unsigned char c) { return std::toupper(c); });
   return output;
 }
 bool CheckSingleton(std::vector<std::string>::iterator * current_item,
@@ -140,7 +144,7 @@ bool ValidateLanguageTag(const std::string& tag, std::string* error) {
       *error = "tag is empty";
     return false;
   }
-  boost::split(splitted_tag, tag, boost::is_any_of(kTagDelimiter));
+  parser::utils::Split(splitted_tag, tag, kTagDelimiter);
   auto current_item = splitted_tag.begin();
   // main language validation
   if (current_item != splitted_tag.end() &&
@@ -198,5 +202,3 @@ bool ValidateLanguageTag(const std::string& tag, std::string* error) {
 
 }  // namespace w3c_languages
 }  // namespace utils
-
-
index 543b4df154888b17b280a491fc811854d07f7b32..502cc060bfb6e601cb54224e89f8a2e893259c94 100644 (file)
@@ -5,8 +5,12 @@
 
 #include "manifest_parser/utils/string_util.h"
 
+#include <algorithm>
 #include <cstdlib>
 #include <map>
+#include <string>
+#include <sstream>
+#include <iterator>
 #include <vector>
 
 namespace {
@@ -209,5 +213,40 @@ std::string DecodePercentEscapedCharacter(const std::string& text) {
   return std::string(output.begin(), output.end());
 }
 
+std::string Join(const std::vector<std::string> strings, const char* delim) {
+  std::ostringstream oss;
+  std::copy(strings.begin(), strings.end(),
+      std::ostream_iterator<std::string>(oss, delim));
+
+  std::string result = oss.str();
+  result.pop_back();
+  return result;
+}
+
+// trim from both ends (in place)
+void Trim(std::string &s) {
+  // trim from start (in place)
+  s.erase(s.begin(), std::find_if(s.begin(), s.end(), [](unsigned char ch) {
+      return !std::isspace(ch);
+  }));
+
+  // trim from end (in place)
+  s.erase(std::find_if(s.rbegin(), s.rend(), [](unsigned char ch) {
+      return !std::isspace(ch);
+  }).base(), s.end());
+}
+
+void Split(std::vector<std::string>& tokens, const std::string& str,
+    const char delim) {
+  const char* ptr = str.data();
+  do {
+    const char* begin = ptr;
+    while (*ptr != delim && *ptr)
+      ptr++;
+    tokens.emplace_back(begin, ptr);
+  } while (*ptr++ != 0);
+}
+
+
 }  // namespace utils
 }  // namespace parser
index 0f5815cc32b1df0c5ca5a460f5bd1d0773f03b65..6b4df365a4c5bc6695f8171d9cfa9ba6b73d64d6 100644 (file)
@@ -7,6 +7,7 @@
 #define MANIFEST_PARSER_UTILS_STRING_UTIL_H_
 
 #include <string>
+#include <vector>
 
 namespace parser {
 namespace utils {
@@ -86,6 +87,35 @@ std::string GetDirUTF8End();
  */
 std::string DecodePercentEscapedCharacter(const std::string& text);
 
+/**
+ * @brief Join
+ *        Concatenates all strings in vector into single string.
+ *
+ * @param strings vector of strings
+ * @param delim  delimiter between strings
+ * @return concatenated string
+ */
+std::string Join(const std::vector<std::string> strings, const char* delim);
+
+/**
+ * @brief Trim
+ *        Removes leading and trailing whitespaces from string.
+ *
+ * @param str string to be trimmed
+ */
+void Trim(std::string& str);
+
+/**
+ * @brief Split
+ *        Splits string into substrings using given delimiter.
+ *
+ * @param tokens output vector of substrings
+ * @param str string to be split
+ * @param delim delimiter
+ */
+void Split(std::vector<std::string>& tokens, const std::string& str,
+    const char delim);
+
 }  // namespace utils
 }  // namespace parser
 
index 1aca1dd2286f09733a73a8064f2c4d91b887b49f..5e482950885d9d251b743a10aba4778293d064cb 100644 (file)
@@ -4,15 +4,13 @@
 
 #include "manifest_parser/utils/version_number.h"
 
-#include <boost/algorithm/string/classification.hpp>
-#include <boost/algorithm/string/join.hpp>
-#include <boost/algorithm/string/split.hpp>
-#include <boost/algorithm/string/trim.hpp>
-
 #include <algorithm>
 #include <cstdlib>
+#include <string>
+#include <vector>
 
 #include "manifest_parser/utils/logging.h"
+#include "manifest_parser/utils/string_util.h"
 
 namespace {
 
@@ -20,20 +18,13 @@ constexpr int TIZEN_VERSION_DIGIT = 3;
 
 }  // namespace
 
-namespace ba = boost::algorithm;
-
 namespace utils {
 
 VersionNumber::VersionNumber(const std::string& str) {
   std::string number = str;
-  ba::trim(number);
+  parser::utils::Trim(number);
   std::vector<std::string> tokens;
-  try {
-    ba::split(tokens, number, ba::is_any_of("."));
-  } catch (const boost::exception& /*exc*/) {
-    LOG(ERROR) << "boost::algorithm::split failed";
-    return;
-  }
+  parser::utils::Split(tokens, number, '.');
   for (auto& token : tokens) {
     char* end = nullptr;
     int value = strtol(token.c_str(), &end, 10);
@@ -104,7 +95,7 @@ std::string VersionNumber::ToString() const {
   std::vector<std::string> strings;
   std::transform(parts_.begin(), parts_.end(), std::back_inserter(strings),
                  static_cast<std::string(*)(int)>(&std::to_string));
-  return ba::join(strings, ".");
+  return parser::utils::Join(strings, ".");
 }
 
 bool VersionNumber::IsValidTizenPackageVersion() const {
index 8c73b770b8c1ac03b78cf0af26d5de02ac43af78..a8ce87865ddfe6bc1453f5ccecfd92ef2dc0502a 100644 (file)
@@ -4,18 +4,18 @@
 
 #include "manifest_parser/utils/w3c_languages.h"
 
-#include <boost/filesystem.hpp>
 #include <algorithm>
+#include <filesystem>
 #include <fstream>
 #include <vector>
 
 #include "manifest_parser/utils/logging.h"
 
-namespace bf = boost::filesystem;
+namespace fs = std::filesystem;
 namespace {
 
-const bf::path kLanguagesFile =
-    bf::path(SHAREDIR)
+const fs::path kLanguagesFile =
+    fs::path(SHAREDIR)
         / "manifest-parser/languages-only.txt";
 const int kLanguagesNumber = 8094;
 
@@ -30,7 +30,7 @@ std::vector<std::string> w3c_languages;
 bool InitializeLanguageSet() {
   if (!w3c_languages.empty())
     return true;
-  if (!bf::exists(kLanguagesFile)) {
+  if (!fs::exists(kLanguagesFile)) {
     LOG(ERROR) << "File does not exist";
     return false;
   }
index bed1e321fc514adca7738e4cce6f7516170a7b85..96b9cb9ac83dd4ebbeb1f2c6608bbc393e6348e8 100644 (file)
@@ -5,7 +5,6 @@
 
 #include "manifest_parser/values.h"
 
-#include <boost/regex.hpp>
 #include <string.h>
 
 #include <algorithm>
index 5ec4ffe07afb0b3c1fae1a0292243103f038d3f2..ed187af9af4bd83d45f34185421e8b19fc5782f8 100644 (file)
@@ -32,7 +32,6 @@ INSTALL(DIRECTORY test_samples/ DESTINATION ${SHAREDIR}/${DESTINATION_DIR}/test_
 
 FOREACH(test ${TESTS})
 APPLY_PKG_CONFIG(${test} PUBLIC
-  Boost
   GTEST
 )
 ENDFOREACH(test)
index 702d31ae539f9088bcf104192818e4eec73f24a4..29751069d0c3eef1eab25b60efa5726ef8e4dced 100644 (file)
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE-xwalk file.
 
-#include <boost/filesystem/path.hpp>
 #include <gtest/gtest.h>
 
+#include <filesystem>
 #include <memory>
 #include <string>
 #include <vector>
@@ -15,7 +15,7 @@
 
 namespace parser {
 
-namespace bf = boost::filesystem;
+namespace fs = std::filesystem;
 
 class ManifestHandlerTest : public testing::Test {
  public:
index e36ad0223ea6d510ea74ccc1e375eec3365ff3a4..f1a478049c1d3e3dde4c37b0d27aef46e0c74280 100644 (file)
@@ -2,14 +2,14 @@
 // Use of this source code is governed by an apache 2.0 license that can be
 // found in the LICENSE file.
 
-#include <boost/filesystem/path.hpp>
 #include <gtest/gtest.h>
 
+#include <filesystem>
 #include <utility>
 
 #include "manifest_parser/manifest_parser.h"
 
-namespace bf = boost::filesystem;
+namespace fs = std::filesystem;
 
 namespace wgt {
 namespace parse {
@@ -134,7 +134,7 @@ class ParseManifestTest : public testing::Test {
 
 // Tests manifest parser with proper manifest
 TEST_F(ParseManifestTest, HandlesProperManifestFile) {
-  bf::path path =
+  fs::path path =
       "/usr/share/manifest-parser-ut/test_samples/good_manifest.xml";
   std::vector<std::shared_ptr<parser::ManifestHandler>> handlers = {
     std::make_shared<wgt::parse::TizenApplicationHandler>(),
@@ -157,7 +157,7 @@ TEST_F(ParseManifestTest, HandlesProperManifestFile) {
 
 // Tests manifest parser with broken manifest
 TEST_F(ParseManifestTest, HandlesBrokenManifestFile) {
-  bf::path path = "/usr/share/manifest-parser-ut/test_samples/bad_manifest.xml";
+  fs::path path = "/usr/share/manifest-parser-ut/test_samples/bad_manifest.xml";
   std::vector<std::shared_ptr<parser::ManifestHandler>> handlers = {
       std::make_shared<wgt::parse::TizenApplicationHandler>(),
   };