docs: public CmsADEConfigCacheState readCompleteConfiguration() {
  
          long beginTime = System.currentTimeMillis();
          Map<CmsUUID, CmsADEConfigDataInternal> siteConfigurations = Maps.newHashMap();
          if (m_cms.existsResource("/")) {
              try {
                  @SuppressWarnings("deprecation")
                  List<CmsResource> configFileCandidates = m_cms.readResources(
                      "/",
                      CmsResourceFilter.DEFAULT.addRequireType(m_configType.getTypeId()));
                  CmsLog.INIT.info(
                      ". Reading "
                          + configFileCandidates.size()
                          + " config resources of type: "
                          + m_configType.getTypeName()
                          + " from the "
                          + (m_cms.getRequestContext().getCurrentProject().isOnlineProject() ? "online" : "offline")
                          + " project.");
                  if (OpenCms.getResourceManager().hasResourceType(TYPE_SITEMAP_MASTER_CONFIG)) {
                      List<CmsResource> masterCandidates = m_cms.readResources(
                          "/",
                          CmsResourceFilter.DEFAULT.addRequireType(
                              OpenCms.getResourceManager().getResourceType(TYPE_SITEMAP_MASTER_CONFIG)));
                      configFileCandidates.addAll(masterCandidates);
                  }
                  for (CmsResource candidate : configFileCandidates) {
                      if (isSitemapConfiguration(candidate.getRootPath(), candidate.getTypeId())) {
                          try {
                              CmsConfigurationReader reader = new CmsConfigurationReader(m_cms);
                              String basePath = getBasePath(candidate.getRootPath());
                              CmsADEConfigDataInternal data = reader.parseSitemapConfiguration(basePath, candidate);
                              siteConfigurations.put(candidate.getStructureId(), data);
                          } catch (Exception e) {
                              LOG.error(
                                  "Error processing sitemap configuration "
                                      + candidate.getRootPath()
                                      + ": "
                                      + e.getLocalizedMessage(),
                                  e);
                          }
  
                      }
                  }
  
              } catch (Exception e) {
                  LOG.error(e.getLocalizedMessage(), e);
              }
          }
          CmsLog.INIT.info(
              ". Reading "
                  + (m_cms.getRequestContext().getCurrentProject().isOnlineProject() ? "online" : "offline")
                  + " module configurations.");
          List<CmsADEConfigDataInternal> moduleConfigs = loadModuleConfiguration();
          CmsLog.INIT.info(
              ". Reading "
                  + (m_cms.getRequestContext().getCurrentProject().isOnlineProject() ? "online" : "offline")
                  + " element views.");
          Map<CmsUUID, CmsElementView> elementViews = loadElementViews();
          CmsADEConfigCacheState result = new CmsADEConfigCacheState(
              m_cms,
              siteConfigurations,
              moduleConfigs,
              elementViews);
          long endTime = System.currentTimeMillis();
          if (LOG.isDebugEnabled()) {
              LOG.debug("readCompleteConfiguration took " + (endTime - beginTime) + "ms");
          }
          return result;
  
      }