docs: protected void exportTemplateResources(CmsObject cms, List<String> publishedTemplateResources, I_CmsReport report) {
  
          CmsStaticExportManager manager = OpenCms.getStaticExportManager();
          int size = publishedTemplateResources.size();
          int count = 1;
  
          if (LOG.isDebugEnabled()) {
              LOG.debug(Messages.get().getBundle().key(Messages.LOG_EXPORT_TEMPLATES_1, new Integer(size)));
          }
          report.println(
              Messages.get().container(Messages.RPT_STATICEXPORT_TEMPLATE_RESOURCES_BEGIN_0),
              I_CmsReport.FORMAT_HEADLINE);
  
          StringBuffer cookies = new StringBuffer();
          // now loop through all of them and request them from the server
          Iterator<String> i = publishedTemplateResources.iterator();
          while (i.hasNext()) {
              String rfsName = i.next();
              CmsStaticExportData data = null;
              try {
                  data = manager.getVfsNameInternal(cms, rfsName);
              } catch (CmsVfsResourceNotFoundException e) {
                  String rfsBaseName = rfsName;
                  int pos = rfsName.lastIndexOf('_');
                  if (pos >= 0) {
                      rfsBaseName = rfsName.substring(0, pos);
                  }
                  try {
                      data = manager.getVfsNameInternal(cms, rfsBaseName);
                  } catch (CmsVfsResourceNotFoundException e2) {
                      if (LOG.isInfoEnabled()) {
                          LOG.info(
                              Messages.get().getBundle().key(
                                  Messages.LOG_NO_INTERNAL_VFS_RESOURCE_FOUND_1,
                                  new String[] {rfsName}));
                      }
                  }
              }
              if (data != null) {
                  data.setRfsName(rfsName);
                  report.print(
                      org.opencms.report.Messages.get().container(
                          org.opencms.report.Messages.RPT_SUCCESSION_2,
                          new Integer(count++),
                          new Integer(size)),
                      I_CmsReport.FORMAT_NOTE);
                  report.print(Messages.get().container(Messages.RPT_EXPORTING_0), I_CmsReport.FORMAT_NOTE);
                  report.print(
                      org.opencms.report.Messages.get().container(org.opencms.report.Messages.RPT_ARGUMENT_1, rfsName));
                  report.print(org.opencms.report.Messages.get().container(org.opencms.report.Messages.RPT_DOTS_0));
              } else {
                  // no valid resource found for rfs name (already deleted), skip it
                  continue;
              }
  
              try {
                  CmsResource resource = data.getResource();
                  try {
                      Collection<String> detailPages = CmsDetailPageUtil.getAllDetailPagesWithUrlName(cms, resource);
                      for (String detailPageUri : detailPages) {
                          String altRfsName = manager.getRfsName(cms, detailPageUri);
                          CmsStaticExportData detailData = new CmsStaticExportData(
                              data.getVfsName(),
                              altRfsName,
                              data.getResource(),
                              data.getParameters());
                          exportTemplateResource(detailData, cookies);
                      }
                  } catch (CmsException e) {
                      LOG.error(e.getLocalizedMessage(), e);
                  }
  
                  int status = exportTemplateResource(data, cookies);
  
                  // write the report
                  if (status == HttpServletResponse.SC_OK) {
                      report.println(
                          org.opencms.report.Messages.get().container(org.opencms.report.Messages.RPT_OK_0),
                          I_CmsReport.FORMAT_OK);
                  } else if (status == HttpServletResponse.SC_NOT_MODIFIED) {
                      report.println(
                          org.opencms.report.Messages.get().container(org.opencms.report.Messages.RPT_SKIPPED_0),
                          I_CmsReport.FORMAT_NOTE);
                  } else if (status == HttpServletResponse.SC_SEE_OTHER) {
                      report.println(
                          org.opencms.report.Messages.get().container(org.opencms.report.Messages.RPT_IGNORED_0),
                          I_CmsReport.FORMAT_NOTE);
                  } else {
                      report.println(
                          org.opencms.report.Messages.get().container(
                              org.opencms.report.Messages.RPT_ARGUMENT_1,
                              new Integer(status)),
                          I_CmsReport.FORMAT_OK);
                  }
              } catch (IOException e) {
                  report.println(e);
              }
              //don't lock up the CPU exclusively - allow other Threads to run as well
              Thread.yield();
          }
          report.println(
              Messages.get().container(Messages.RPT_STATICEXPORT_TEMPLATE_RESOURCES_END_0),
              I_CmsReport.FORMAT_HEADLINE);
      }