/**
   * Returns true iff all the files listed in this tracker's dependency list exist and are at the
   * same version as when they were recorded.
   *
   * @return a boolean
   */
  boolean isUpToDate(Properties properties) {
    Iterator e;

    // fixes bug 962
    {
      if (mProperties.size() != properties.size()) {
        mLogger.debug(
            /* (non-Javadoc)
             * @i18n.test
             * @org-mes="my size " + p[0]
             */
            org.openlaszlo.i18n.LaszloMessages.getMessage(
                DependencyTracker.class.getName(),
                "051018-181",
                new Object[] {new Integer(mProperties.size())}));
        mLogger.debug(
            /* (non-Javadoc)
             * @i18n.test
             * @org-mes="new size " + p[0]
             */
            org.openlaszlo.i18n.LaszloMessages.getMessage(
                DependencyTracker.class.getName(),
                "051018-189",
                new Object[] {new Integer(properties.size())}));
        return false;
      }

      for (e = mProperties.keySet().iterator(); e.hasNext(); ) {
        String key = (String) e.next();
        String val0 = mProperties.getProperty(key);
        String val1 = properties.getProperty(key);

        // val0 can't be null; properties don't allow that
        if (val1 == null || !val0.equals(val1)) {
          mLogger.debug(
              /* (non-Javadoc)
               * @i18n.test
               * @org-mes="Missing or changed property: " + p[0]
               */
              org.openlaszlo.i18n.LaszloMessages.getMessage(
                  DependencyTracker.class.getName(), "051018-207", new Object[] {val0}));
          return false;
        }
      }
    }

    for (e = mDependencies.iterator(); e.hasNext(); ) {
      FileInfo saved = (FileInfo) e.next();
      FileInfo current = new FileInfo(saved.mPathname);
      if (!saved.isUpToDate(current)) {
        mLogger.debug(saved.mPathname + " has changed");
        mLogger.debug("was " + saved.mLastMod);
        mLogger.debug(" is " + current.mLastMod);
        return false;
      }
    }
    return true;
  }
 /**
  * This will update the FileInfo object chain to use the (possibly new) webappPath once the
  * DependencyTracker object has been reconstitutded from ondisk cache.
  */
 void updateWebappPath() {
   String webappPath = LPS.HOME(); // get it from global
   if (webappPath.equals(mWebappPath)) return;
   mLogger.debug(
       /* (non-Javadoc)
        * @i18n.test
        * @org-mes="updating webappPath from: " + p[0]
        */
       org.openlaszlo.i18n.LaszloMessages.getMessage(
           DependencyTracker.class.getName(), "051018-128", new Object[] {mWebappPath}));
   mLogger.debug(
       /* (non-Javadoc)
        * @i18n.test
        * @org-mes="updating webappPath to:   " + p[0]
        */
       org.openlaszlo.i18n.LaszloMessages.getMessage(
           DependencyTracker.class.getName(), "051018-136", new Object[] {webappPath}));
   for (Iterator e = mDependencies.iterator(); e.hasNext(); ) {
     FileInfo saved = (FileInfo) e.next();
     if (saved.mPathname.startsWith(mWebappPath)) {
       mLogger.debug(
           /* (non-Javadoc)
            * @i18n.test
            * @org-mes="updating dependencies from: " + p[0]
            */
           org.openlaszlo.i18n.LaszloMessages.getMessage(
               DependencyTracker.class.getName(), "051018-147", new Object[] {saved.mPathname}));
       saved.mPathname = webappPath + saved.mPathname.substring(mWebappPath.length());
       mLogger.debug(
           /* (non-Javadoc)
            * @i18n.test
            * @org-mes="updating dependencies to  : " + p[0]
            */
           org.openlaszlo.i18n.LaszloMessages.getMessage(
               DependencyTracker.class.getName(), "051018-157", new Object[] {saved.mPathname}));
     }
   }
   mWebappPath = webappPath;
 }
  static {
    errs.add(
        new SolutionMessage(
            PARSER,
            // This error message indicates a stray XML escape character
            /* (non-Javadoc)
             * @i18n.test
             * @org-mes="The content of elements must consist of well-formed character data or markup"
             */
            org.openlaszlo.i18n.LaszloMessages.getMessage(
                SolutionMessages.class.getName(), "051018-101"),
            /* (non-Javadoc)
             * @i18n.test
             * @org-mes="Look for stray or unmatched XML escape chars ( <, >, or & ) in your source code. When using '<' in a Script, XML requires wrapping the Script content with '<![CDATA[' and ']]>'. "
             */
            org.openlaszlo.i18n.LaszloMessages.getMessage(
                SolutionMessages.class.getName(), "051018-108")));

    errs.add(
        new SolutionMessage(
            PARSER,
            /* (non-Javadoc)
             * @i18n.test
             * @org-mes="entity name must immediately follow the '&' in the entity reference"
             */
            org.openlaszlo.i18n.LaszloMessages.getMessage(
                SolutionMessages.class.getName(), "051018-117"),
            /* (non-Javadoc)
             * @i18n.test
             * @org-mes="Look for unescaped '&' characters in your source code."
             */
            org.openlaszlo.i18n.LaszloMessages.getMessage(
                SolutionMessages.class.getName(), "051018-124")));

    errs.add(
        new SolutionMessage(
            VIEWCOMPILER,
            /* (non-Javadoc)
             * @i18n.test
             * @org-mes="Was expecting one of: instanceof"
             */
            org.openlaszlo.i18n.LaszloMessages.getMessage(
                SolutionMessages.class.getName(), "051018-133"),
            /* (non-Javadoc)
             * @i18n.test
             * @org-mes="The element and attribute names in .lzx files are case-sensitive; Look for a mistake in the upper/lower case spelling of attribute names, i.e., \"onClick\" instead of \"onclick\""
             */
            org.openlaszlo.i18n.LaszloMessages.getMessage(
                SolutionMessages.class.getName(), "051018-140")));

    errs.add(
        new SolutionMessage(
            PARSER,
            /* (non-Javadoc)
             * @i18n.test
             * @org-mes="\"\" is not a valid local name"
             */
            org.openlaszlo.i18n.LaszloMessages.getMessage(
                SolutionMessages.class.getName(), "051018-150"),
            /* (non-Javadoc)
             * @i18n.test
             * @org-mes="Make sure that every <class> and <attribute> tag element contains a non-empty 'name' attribute, and each <method> element contains a non-empty 'name' or 'event' attribute."
             */
            org.openlaszlo.i18n.LaszloMessages.getMessage(
                SolutionMessages.class.getName(), "051018-157")));

    errs.add(
        new SolutionMessage(
            PARSER,
            /* (non-Javadoc)
             * @i18n.test
             * @org-mes="The root element is required in a well-formed document"
             */
            org.openlaszlo.i18n.LaszloMessages.getMessage(
                SolutionMessages.class.getName(), "051018-166"),
            /* (non-Javadoc)
             * @i18n.test
             * @org-mes="Check for invalid UTF8 characters in your source file. LZX XML files may contain only legal UTF-8 character codes. If you see a character with an accent over it, it might be the problem."
             */
            org.openlaszlo.i18n.LaszloMessages.getMessage(
                SolutionMessages.class.getName(), "051018-173")));

    errs.add(
        new SolutionMessage(
            PARSER,
            /* (non-Javadoc)
             * @i18n.test
             * @org-mes="Content is not allowed in prolog"
             */
            org.openlaszlo.i18n.LaszloMessages.getMessage(
                SolutionMessages.class.getName(), "051018-182"),
            /* (non-Javadoc)
             * @i18n.test
             * @org-mes="Some text editors may insert a Byte-Order Mark (the sequence of characters 0xEFBBBF) at the start of your source file without your knowledge. Please remove any non-whitespace characters before the start of the first '<' character."
             */
            org.openlaszlo.i18n.LaszloMessages.getMessage(
                SolutionMessages.class.getName(), "051018-189")));

    errs.add(
        new SolutionMessage(
            PARSER,
            /* (non-Javadoc)
             * @i18n.test
             * @org-mes="The reference to entity.*must end with the"
             */
            org.openlaszlo.i18n.LaszloMessages.getMessage(
                SolutionMessages.class.getName(), "051018-198"),
            /* (non-Javadoc)
             * @i18n.test
             * @org-mes="Look for a misplaced or unescaped ampersand ('&') character in your source code."
             */
            org.openlaszlo.i18n.LaszloMessages.getMessage(
                SolutionMessages.class.getName(), "051018-205")));

    errs.add(
        new SolutionMessage(
            VIEWCOMPILER,
            "unable to build font",
            "The font may be a bold or italic style, try adding style=\"bold\" or \"italic\" attribute to font tag"));

    errs.add(
        new SolutionMessage(
            VIEWCOMPILER,
            /* (non-Javadoc)
             * @i18n.test
             * @org-mes="Lexical error.  The source location is for the element that contains the erroneous script"
             */
            org.openlaszlo.i18n.LaszloMessages.getMessage(
                SolutionMessages.class.getName(), "051018-215"),
            /* (non-Javadoc)
             * @i18n.test
             * @org-mes="Examine the compiler warnings for warnings about undefined class or attribute names."
             */
            org.openlaszlo.i18n.LaszloMessages.getMessage(
                SolutionMessages.class.getName(), "051018-222")));

    errs.add(
        new SolutionMessage(
            PARSER,
            /* (non-Javadoc)
             * @i18n.test
             * @org-mes="Error in building"
             */
            org.openlaszlo.i18n.LaszloMessages.getMessage(
                SolutionMessages.class.getName(), "051018-231"),
            /* (non-Javadoc)
             * @i18n.test
             * @org-mes="Check for invalid UTF8 characters in your source file. LZX XML files may contain only legal UTF-8 character codes. If you see a character with an accent over it, it might be the problem."
             */
            org.openlaszlo.i18n.LaszloMessages.getMessage(
                SolutionMessages.class.getName(), "051018-238")));
  }