diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 202e84564b9a8d5d6a1052faa52b8eeff510aa34..b5b27c52d141d3ce5053c3a7588fa34d0d82bfaf 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -270,10 +270,10 @@ ubuntu-qa-code-coverage:
       - /^release-[0-9]+\.[0-9]+$/
     variables:
       - $SONAR_OTB_TOKEN
-  image: $BUILD_IMAGE_REGISTRY/otb-ubuntu-superbuild-qa-headless:20.04
+  image: $BUILD_IMAGE_REGISTRY/otb-ubuntu-superbuild-qa:22.04
   script:
     - ctest -V -S CI/main_qa.cmake
-            -DIMAGE_NAME:string=ubuntu-20.04-llvm-qa
+            -DIMAGE_NAME:string=ubuntu-22.04-llvm-qa
             -DQA:BOOL=ON
     - ./CI/otb_coverage.sh
     - saxon-xslt -o build/ctest_report.xml
@@ -292,7 +292,7 @@ ubuntu-qa-static-analysis:
       - /^release-[0-9]+\.[0-9]+$/
     variables:
       - $SONAR_OTB_TOKEN
-  image: $BUILD_IMAGE_REGISTRY/otb-ubuntu-superbuild-qa-headless:20.04
+  image: $BUILD_IMAGE_REGISTRY/otb-ubuntu-superbuild-qa:22.04
   script:
     - find Modules -type f -regextype posix-extended -regex '.*\.(h|hxx)$' -exec dirname '{}' \; |
           grep -vE '^Modules/ThirdParty/' |
@@ -311,7 +311,7 @@ ubuntu-sonar-report:
   extends: .common
   variables:
     GIT_DEPTH: ""
-  image: $BUILD_IMAGE_REGISTRY/otb-ubuntu-superbuild-qa-headless:20.04
+  image: $BUILD_IMAGE_REGISTRY/otb-ubuntu-superbuild-qa:22.04
   stage: report
   only:
     refs:
@@ -362,7 +362,7 @@ deploy:
 update-archive:
   tags:
     - deploy
-  image: $BUILD_IMAGE_REGISTRY/otb-ubuntu-superbuild-base-headless:20.04
+  image: $BUILD_IMAGE_REGISTRY/otb-ubuntu-superbuild-base:22.04
   stage: deploy
   extends: .general
   only:
diff --git a/Modules/Core/Common/src/otbLogger.cxx b/Modules/Core/Common/src/otbLogger.cxx
index 91d331a655ebcc3cbf3ff04c4121ce70c9d05ff9..e82c78a8836bf5ec5be84b23cceb759d0d15f9ef 100644
--- a/Modules/Core/Common/src/otbLogger.cxx
+++ b/Modules/Core/Common/src/otbLogger.cxx
@@ -149,11 +149,11 @@ std::string Logger::BuildFormattedEntry(itk::LoggerBaseEnums::PriorityLevel leve
   // }
   if (strcmp(this->GetName(), "") == 0)
   {
-    return itksys::SystemTools::GetCurrentDateTime("%Y-%m-%d %H:%M:%S") + " " + levelString[(uint8_t)level] + ": " + content;
+    return itksys::SystemTools::GetCurrentDateTime("%Y-%m-%d %H:%M:%S") + " " + levelString[std::uint8_t(level)] + ": " + content;
   }
   else
   {
-    return itksys::SystemTools::GetCurrentDateTime("%Y-%m-%d %H:%M:%S") + " " + levelString[(uint8_t)level] + " " + this->GetName() + ": " + content;
+    return itksys::SystemTools::GetCurrentDateTime("%Y-%m-%d %H:%M:%S") + " " + levelString[std::uint8_t(level)] + " " + this->GetName() + ": " + content;
   }
 }
 
diff --git a/Modules/Core/Statistics/include/otbStreamingCompareImageFilter.h b/Modules/Core/Statistics/include/otbStreamingCompareImageFilter.h
index a407c71ee2048d1798bf3c41afcea4196027a56d..7062e06e8c42747347ec776220539e214e0b0b92 100644
--- a/Modules/Core/Statistics/include/otbStreamingCompareImageFilter.h
+++ b/Modules/Core/Statistics/include/otbStreamingCompareImageFilter.h
@@ -159,7 +159,7 @@ protected:
   /** Allows skipping the verification of physical space between
    *  the two input images (see flag m_PhysicalSpaceCheck)
    */
-  void VerifyInputInformation() ITKv5_CONST override;
+  void VerifyInputInformation() const override;
 
 private:
   PersistentCompareImageFilter(const Self&) = delete;
diff --git a/Modules/Core/Statistics/include/otbStreamingCompareImageFilter.hxx b/Modules/Core/Statistics/include/otbStreamingCompareImageFilter.hxx
index d632b48a7823f248608a95054c437e2cb5febf2b..3aaa8e537b54d7d20614acab3be5544744e665a9 100644
--- a/Modules/Core/Statistics/include/otbStreamingCompareImageFilter.hxx
+++ b/Modules/Core/Statistics/include/otbStreamingCompareImageFilter.hxx
@@ -269,7 +269,7 @@ void PersistentCompareImageFilter<TInputImage>::Reset()
 }
 
 template <class TInputImage>
-void PersistentCompareImageFilter<TInputImage>::VerifyInputInformation() ITKv5_CONST
+void PersistentCompareImageFilter<TInputImage>::VerifyInputInformation() const
 {
   if (m_PhysicalSpaceCheck)
     Superclass::VerifyInputInformation();
diff --git a/Modules/Core/Streaming/include/otbPersistentImageFilter.h b/Modules/Core/Streaming/include/otbPersistentImageFilter.h
index 1d17489d76d211acf3e93e531317f8fcb9b053a5..3173af4e4a6ae5d9916d16988ca369e01922dfcc 100644
--- a/Modules/Core/Streaming/include/otbPersistentImageFilter.h
+++ b/Modules/Core/Streaming/include/otbPersistentImageFilter.h
@@ -83,7 +83,7 @@ protected:
     Superclass::PrintSelf(os, indent);
   }
 
-  virtual void VerifyInputInformation() ITKv5_CONST {};
+  virtual void VerifyInputInformation() const {};
 
 private:
   PersistentImageFilter(const Self&) = delete;
diff --git a/Modules/Core/VectorDataBase/include/otbVectorData.h b/Modules/Core/VectorDataBase/include/otbVectorData.h
index 0aa9b6a0d881cdebb95cae2c521d75f62885578a..6e549ef3915ead1087ee90c54eb50845bb1858d8 100644
--- a/Modules/Core/VectorDataBase/include/otbVectorData.h
+++ b/Modules/Core/VectorDataBase/include/otbVectorData.h
@@ -160,11 +160,13 @@ public:
     {
       if(m_DataTree[*it] == parentNode)
       {
-        typename boost::graph_traits<DataTreeType>::adjacency_iterator ai, a_end; 
-        boost::tie(ai, a_end) = boost::adjacent_vertices(*it, m_DataTree);
-        for (; ai != a_end; ai++) { 
-            childrenslist.push_back(m_DataTree[*ai]);
+        auto iterloop = it;
+        while(iterloop != it_end)
+        {
+           childrenslist.push_back(m_DataTree[*iterloop]);
+           iterloop++;
         }
+        break;
       }
     }
     return childrenslist;
diff --git a/Modules/FeaturesExtraction/Filtering/Wavelet/include/otbWaveletFilterBank.h b/Modules/FeaturesExtraction/Filtering/Wavelet/include/otbWaveletFilterBank.h
index 6acfe7b0c8477fda77830c7bb81892f5d1971ae7..6b5b0893dcf2eb83a8baa94ea7c13ad6067581a2 100644
--- a/Modules/FeaturesExtraction/Filtering/Wavelet/include/otbWaveletFilterBank.h
+++ b/Modules/FeaturesExtraction/Filtering/Wavelet/include/otbWaveletFilterBank.h
@@ -396,7 +396,7 @@ protected:
   {
   }
 
-  void VerifyInputInformation() ITKv5_CONST override
+  void VerifyInputInformation() const override
   {
   }
 
diff --git a/Modules/StereoProcessing/DisparityMap/include/otbDisparityMapTo3DFilter.h b/Modules/StereoProcessing/DisparityMap/include/otbDisparityMapTo3DFilter.h
index e6436dfc0696fc9c4a72ea175d7aa072d09b03be..12c632e928dc499db58bc8ed3e192c4cd7834fbe 100644
--- a/Modules/StereoProcessing/DisparityMap/include/otbDisparityMapTo3DFilter.h
+++ b/Modules/StereoProcessing/DisparityMap/include/otbDisparityMapTo3DFilter.h
@@ -159,7 +159,7 @@ protected:
     *
     * \sa ProcessObject::VerifyInputInformation
     */
-  void VerifyInputInformation() ITKv5_CONST override
+  void VerifyInputInformation() const override
   {
   }
 
diff --git a/Modules/StereoProcessing/DisparityMap/include/otbDisparityMapToDEMFilter.h b/Modules/StereoProcessing/DisparityMap/include/otbDisparityMapToDEMFilter.h
index 16a719bf957b4965525bf1cebb45b5e89a6c6682..059268a737519beed64b824910acf1c485d494c2 100644
--- a/Modules/StereoProcessing/DisparityMap/include/otbDisparityMapToDEMFilter.h
+++ b/Modules/StereoProcessing/DisparityMap/include/otbDisparityMapToDEMFilter.h
@@ -169,7 +169,7 @@ protected:
     *
     * \sa ProcessObject::VerifyInputInformation
     */
-  void VerifyInputInformation() ITKv5_CONST override
+  void VerifyInputInformation() const override
   {
   }
 
diff --git a/Modules/StereoProcessing/DisparityMap/include/otbDisparityTranslateFilter.h b/Modules/StereoProcessing/DisparityMap/include/otbDisparityTranslateFilter.h
index 5f4551f523ee614ab51f58b486c06e8fab9b3853..2254c3d1b8e6448f83b145c7cccb3bca99b67f4e 100644
--- a/Modules/StereoProcessing/DisparityMap/include/otbDisparityTranslateFilter.h
+++ b/Modules/StereoProcessing/DisparityMap/include/otbDisparityTranslateFilter.h
@@ -133,7 +133,7 @@ protected:
     *
     * \sa ProcessObject::VerifyInputInformation
     */
-  void VerifyInputInformation() ITKv5_CONST override
+  void VerifyInputInformation() const override
   {
   }
 
diff --git a/Modules/StereoProcessing/DisparityMap/include/otbSubPixelDisparityImageFilter.h b/Modules/StereoProcessing/DisparityMap/include/otbSubPixelDisparityImageFilter.h
index 5984d21c7adc68938432dff023581a51324b16eb..a50a6289a5c8c6c5edd8887da79a945cc8a4f945 100644
--- a/Modules/StereoProcessing/DisparityMap/include/otbSubPixelDisparityImageFilter.h
+++ b/Modules/StereoProcessing/DisparityMap/include/otbSubPixelDisparityImageFilter.h
@@ -210,7 +210,7 @@ protected:
    * This method needs to be re-implemented from ImageToImageFilter since
    * the initial images and disparity maps may not have the same size
    */
-  void VerifyInputInformation() ITKv5_CONST override;
+  void VerifyInputInformation() const override;
 
   /** Generate output information */
   void GenerateOutputInformation() override;
diff --git a/Modules/StereoProcessing/DisparityMap/include/otbSubPixelDisparityImageFilter.hxx b/Modules/StereoProcessing/DisparityMap/include/otbSubPixelDisparityImageFilter.hxx
index 91f3f82f097963e64cf0319e9e20c1e6da5c63c2..642a89e24ccc12a9de531954cf7489a2e3607837 100644
--- a/Modules/StereoProcessing/DisparityMap/include/otbSubPixelDisparityImageFilter.hxx
+++ b/Modules/StereoProcessing/DisparityMap/include/otbSubPixelDisparityImageFilter.hxx
@@ -284,7 +284,7 @@ void SubPixelDisparityImageFilter<TInputImage, TOutputMetricImage, TDisparityIma
 }
 
 template <class TInputImage, class TOutputMetricImage, class TDisparityImage, class TMaskImage, class TBlockMatchingFunctor>
-void SubPixelDisparityImageFilter<TInputImage, TOutputMetricImage, TDisparityImage, TMaskImage, TBlockMatchingFunctor>::VerifyInputInformation() ITKv5_CONST
+void SubPixelDisparityImageFilter<TInputImage, TOutputMetricImage, TDisparityImage, TMaskImage, TBlockMatchingFunctor>::VerifyInputInformation() const
 {
   // Retrieve input pointers
   const TInputImage*     inLeftPtr      = this->GetLeftInput();
diff --git a/Modules/StereoProcessing/Stereo/include/otbMulti3DMapToDEMFilter.h b/Modules/StereoProcessing/Stereo/include/otbMulti3DMapToDEMFilter.h
index 6fc6efdabaddad689920b58c158debde33f2d6c0..fc80ddb8d0c5118e7db879c1ca4eb53443ecc35c 100644
--- a/Modules/StereoProcessing/Stereo/include/otbMulti3DMapToDEMFilter.h
+++ b/Modules/StereoProcessing/Stereo/include/otbMulti3DMapToDEMFilter.h
@@ -246,7 +246,7 @@ protected:
     *
     * \sa ProcessObject::VerifyInputInformation
     */
-  void VerifyInputInformation() ITKv5_CONST override
+  void VerifyInputInformation() const override
   {
   }
 
diff --git a/Modules/StereoProcessing/Stereo/include/otbStereoSensorModelToElevationMapFilter.h b/Modules/StereoProcessing/Stereo/include/otbStereoSensorModelToElevationMapFilter.h
index 92e6466157770ee801f294df93e3043a12e6e21c..2f1ffae404d421718e34a89ae5afe7e44b2c9003 100644
--- a/Modules/StereoProcessing/Stereo/include/otbStereoSensorModelToElevationMapFilter.h
+++ b/Modules/StereoProcessing/Stereo/include/otbStereoSensorModelToElevationMapFilter.h
@@ -204,7 +204,7 @@ protected:
       *
       * \sa ProcessObject::VerifyInputInformation
       */
-  void VerifyInputInformation() ITKv5_CONST override
+  void VerifyInputInformation() const override
   {
   }