A utility class that encapsulates all the logic for reading properties files and assembling {@link Messages} fromthem, in accordance with extension rules and locale. This represents code that was refactored out of {@link ComponentMessagesSourceImpl}. This class can be used as a base class, though the existing code base uses it as a utility. Composition trumps inheritance!
The message catalog for a component is the combination of all appropriate properties files for the component, plus any keys inherited form base components and, ultimately, the application global message catalog. At some point we should add support for per-library message catalogs.
Message catalogs are read using the UTF-8 character set. This is tricky in JDK 1.5; we read the file into memory then feed that bytestream to Properties.load().