code: public Set<CmsResource> getPublishListFiles() throws CmsException {
  
          String context = "[" + RandomStringUtils.randomAlphabetic(8) + "] ";
  
          List<CmsResource> offlineResults = computeCollectorResults(OFFLINE);
          if (LOG.isDebugEnabled()) {
              LOG.debug(context + "Offline collector results for " + m_info + ": " + resourcesToString(offlineResults));
          }
          List<CmsResource> onlineResults = computeCollectorResults(ONLINE);
          if (LOG.isDebugEnabled()) {
              LOG.debug(context + "Online collector results for " + m_info + ": " + resourcesToString(onlineResults));
          }
  
          Set<CmsResource> result = Sets.newHashSet();
          for (CmsResource offlineRes : offlineResults) {
  
              if (!(offlineRes.getState().isUnchanged())) {
                  result.add(offlineRes);
              }
          }
          Set<CmsResource> onlineAndNotOffline = Sets.newHashSet(onlineResults);
          onlineAndNotOffline.removeAll(offlineResults);
          for (CmsResource res : onlineAndNotOffline) {
              try {
                  // Because the resources have state 'unchanged' in the Online project, we need to read them again in the Offline project
                  res = getCmsObject(OFFLINE).readResource(res.getStructureId(), CmsResourceFilter.ALL);
                  result.add(res);
              } catch (CmsException e) {
                  LOG.error(e.getLocalizedMessage(), e);
              }
          }
          result.addAll(onlineAndNotOffline);
          if (LOG.isDebugEnabled()) {
              LOG.debug(context + "Publish list contributions for " + m_info + ": " + resourcesToString(result));
          }
          return result;
      }
docs: Gets the list to add to the publish list for the collector list.<p>
  
  @return the resources to add to the publish list
  @throws CmsException if something goes wrong