Based on the changes suggested by issue 1508 do some additional improvements in the XMLClassDescriptorResolver to
1. further improve performance
2. unify the different "resolve" methods
3. unify the caching of descriptors
The provided patch introduces a ClassCache to keep track of missing classes (replacing the _classNotFoundList / saveClassNotFound / ClassNotFoundException mechanism).
Similarities in the different "resolve(Class | className)" methods have been extracted. They now delegate to a single "getDescriptor" method.
Caching of already loaded descriptors is now located in a DescriptorCache, which encapsulates loading of package mapping files, CDR files, finding descriptors by class name and by XML name.
The performance improvement shown on my computer is about 15 - 20% according to the test provided with issue 1508.