code: public CmsResource getSource(CmsObject cms, CmsResourceFilter filter) throws CmsException {
  
          try {
              // first look up by id
              return cms.readResource(getSourceId(), filter);
          } catch (CmsVfsResourceNotFoundException e) {
              // then look up by name, but from the root site
              String storedSiteRoot = cms.getRequestContext().getSiteRoot();
              try {
                  cms.getRequestContext().setSiteRoot("");
                  return cms.readResource(getSourcePath(), filter);
              } finally {
                  cms.getRequestContext().setSiteRoot(storedSiteRoot);
              }
          }
      }
docs: Returns the source resource when possible to read with the given filter.<p>
  
  @param cms the current user context
  @param filter the filter to use
  
  @return the source resource
  
  @throws CmsException if something goes wrong