code: @Override
      public boolean isSourceModified (Resource resource)
      {
          SiteKey skey = new SiteKey(resource.getName());
  
          // if the resource is for the default site, it is never considered to
          // be modified
          if (skey.siteId == SiteIdentifier.DEFAULT_SITE_ID) {
              return false;
  
          } else {
              // otherwise compare the last modified time of the loaded resource
              // with that of the associated site-specific jar file
              try {
                  return (resource.getLastModified() <
                          _loader.getLastModified(skey.siteId));
              } catch (IOException ioe) {
                  Log.log.warning("Failure obtaining last modified time of site-specific jar file",
                                  "siteId", skey.siteId, "error", ioe);
                  return false;
              }
          }
      }
docs: Things won't ever be modified when loaded from the servlet context
  because they came from the webapp .war file and if that is reloaded,
  everything will be thrown away and started afresh.