docs: public void initialize(CmsObject cms) {
  
          m_adminCms = cms;
          // initialize static export RFS path (relative to web application)
          m_staticExportPath = normalizeExportPath(m_staticExportPathConfigured);
          m_staticExportWorkPath = normalizeExportPath(getExportWorkPathForConfiguration());
          if (m_staticExportPath.equals(OpenCms.getSystemInfo().getWebApplicationRfsPath())) {
              throw new CmsIllegalArgumentException(Messages.get().container(Messages.ERR_INVALID_EXPORT_PATH_0));
          }
          // initialize prefix variables
          m_rfsPrefix = normalizeRfsPrefix(m_rfsPrefixConfigured);
          Iterator<CmsStaticExportRfsRule> itRfsRules = m_rfsRules.iterator();
          while (itRfsRules.hasNext()) {
              CmsStaticExportRfsRule rule = itRfsRules.next();
              try {
                  rule.setExportPath(normalizeExportPath(rule.getExportPathConfigured()));
              } catch (CmsIllegalArgumentException e) {
                  CmsLog.INIT.warn(e.getMessageContainer());
                  rule.setExportPath(m_staticExportPath);
              }
              try {
                  rule.setExportWorkPath(normalizeExportPath(rule.getExportWorkPathConfigured()));
              } catch (CmsIllegalArgumentException e) {
                  CmsLog.INIT.warn(e.getMessageContainer());
                  rule.setExportWorkPath(m_staticExportWorkPath);
              }
              rule.setRfsPrefix(normalizeRfsPrefix(rule.getRfsPrefixConfigured()));
          }
          m_vfsPrefix = insertContextStrings(m_vfsPrefixConfigured);
          m_vfsPrefix = CmsFileUtil.normalizePath(m_vfsPrefix, '/');
          if (CmsResource.isFolder(m_vfsPrefix)) {
              // ensure prefix does NOT end with a folder '/'
              m_vfsPrefix = m_vfsPrefix.substring(0, m_vfsPrefix.length() - 1);
          }
          if (CmsLog.INIT.isDebugEnabled()) {
              if (cms != null) {
                  CmsLog.INIT.debug(Messages.get().getBundle().key(Messages.INIT_SE_MANAGER_CREATED_1, cms));
              } else {
                  CmsLog.INIT.debug(Messages.get().getBundle().key(Messages.INIT_SE_MANAGER_CREATED_0));
              }
          }
  
          m_cacheOnlineLinks = CmsMemoryMonitor.createLRUCacheMap(2048);
          OpenCms.getMemoryMonitor().register(this.getClass().getName() + ".m_cacheOnlineLinks", m_cacheOnlineLinks);
  
          m_cacheExportUris = CmsMemoryMonitor.createLRUCacheMap(2048);
          OpenCms.getMemoryMonitor().register(this.getClass().getName() + ".m_cacheExportUris", m_cacheExportUris);
  
          m_cacheSecureLinks = CmsMemoryMonitor.createLRUCacheMap(2048);
          OpenCms.getMemoryMonitor().register(this.getClass().getName() + ".m_cacheSecureLinks", m_cacheSecureLinks);
  
          m_cacheExportLinks = CmsMemoryMonitor.createLRUCacheMap(2048);
          OpenCms.getMemoryMonitor().register(this.getClass().getName() + ".m_cacheExportLinks", m_cacheExportLinks);
  
          // register this object as event listener
          OpenCms.addCmsEventListener(
              this,
              new int[] {
                  I_CmsEventListener.EVENT_PUBLISH_PROJECT,
                  I_CmsEventListener.EVENT_CLEAR_CACHES,
                  I_CmsEventListener.EVENT_UPDATE_EXPORTS});
  
          m_exportFolderMatcher = new CmsExportFolderMatcher(m_exportFolders, m_testResource);
  
          // get the default accept-language header value
          m_defaultAcceptLanguageHeader = CmsAcceptLanguageHeaderParser.createLanguageHeader();
  
          // get the default accept-charset header value
          m_defaultAcceptCharsetHeader = OpenCms.getSystemInfo().getDefaultEncoding();
  
          // get the export url prefix
          int pos = m_exportUrl.indexOf("://");
          if (pos > 0) {
              // absolute link, remove http://servername
              int pos2 = m_exportUrl.indexOf('/', pos + 3);
              if (pos2 > 0) {
                  m_exportUrlPrefix = m_exportUrl.substring(pos2);
              } else {
                  // should never happen
                  m_exportUrlPrefix = "";
              }
          } else {
              m_exportUrlPrefix = m_exportUrl;
          }
          if (CmsLog.INIT.isInfoEnabled()) {
              if (isStaticExportEnabled()) {
                  CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_STATIC_EXPORT_ENABLED_0));
                  CmsLog.INIT.info(
                      Messages.get().getBundle().key(
                          Messages.INIT_EXPORT_DEFAULT_1,
                          Boolean.valueOf(getExportPropertyDefault())));
                  itRfsRules = m_rfsRules.iterator();
                  while (itRfsRules.hasNext()) {
                      CmsStaticExportRfsRule rfsRule = itRfsRules.next();
                      CmsLog.INIT.info(
                          Messages.get().getBundle().key(
                              Messages.INIT_EXPORT_RFS_RULE_EXPORT_PATH_2,
                              rfsRule.getSource(),
                              rfsRule.getExportPath()));
                      CmsLog.INIT.info(
                          Messages.get().getBundle().key(
                              Messages.INIT_EXPORT_RFS_RULE_RFS_PREFIX_2,
                              rfsRule.getSource(),
                              rfsRule.getRfsPrefix()));
                      if (rfsRule.getUseRelativeLinks() != null) {
                          if (rfsRule.getUseRelativeLinks().booleanValue()) {
                              CmsLog.INIT.info(
                                  Messages.get().getBundle().key(
                                      Messages.INIT_EXPORT_RFS_RULE_RELATIVE_LINKS_1,
                                      rfsRule.getSource()));
                          } else {
                              CmsLog.INIT.info(
                                  Messages.get().getBundle().key(
                                      Messages.INIT_EXPORT_RFS_RULE_ABSOLUTE_LINKS_1,
                                      rfsRule.getSource()));
                          }
                      }
                  }
                  // default rule
                  CmsLog.INIT.info(
                      Messages.get().getBundle().key(
                          Messages.INIT_EXPORT_RFS_RULE_EXPORT_PATH_2,
                          "/",
                          m_staticExportPath));
                  CmsLog.INIT.info(
                      Messages.get().getBundle().key(Messages.INIT_EXPORT_RFS_RULE_RFS_PREFIX_2, "/", m_rfsPrefix));
                  if (m_exportRelativeLinks) {
                      CmsLog.INIT.info(
                          Messages.get().getBundle().key(Messages.INIT_EXPORT_RFS_RULE_RELATIVE_LINKS_1, "/"));
                  } else {
                      CmsLog.INIT.info(
                          Messages.get().getBundle().key(Messages.INIT_EXPORT_RFS_RULE_ABSOLUTE_LINKS_1, "/"));
                  }
                  CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_EXPORT_VFS_PREFIX_1, getVfsPrefix()));
                  CmsLog.INIT.info(
                      Messages.get().getBundle().key(
                          Messages.INIT_EXPORT_EXPORT_HANDLER_1,
                          getHandler().getClass().getName()));
                  CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_EXPORT_URL_1, getExportUrl()));
                  CmsLog.INIT.info(
                      Messages.get().getBundle().key(Messages.INIT_EXPORT_OPTIMIZATION_1, getPlainExportOptimization()));
                  CmsLog.INIT.info(
                      Messages.get().getBundle().key(Messages.INIT_EXPORT_TESTRESOURCE_1, getTestResource()));
                  CmsLog.INIT.info(
                      Messages.get().getBundle().key(
                          Messages.INIT_LINKSUBSTITUTION_HANDLER_1,
                          getLinkSubstitutionHandler().getClass().getName()));
              } else {
                  CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_STATIC_EXPORT_DISABLED_0));
              }
          }
      }