In the current implementation of the MetaData, I've decided not to cache misses.
i.e. if you do MetaData.getAnnotation(DoesNotExist.class) it doesn't cache the "non-existance".
I think it would be advantageous to do so? i.e.code that repeatedly asks for non-existant metadata will be faster
The disadvantages are: * Bad code could fill the cache with redundant misses * Removal (e.g. undeployment) of metadata will require a full cache flush for relevant contexts rather than currently which just invalidates the individual item.