Not sure about this. Unwrapping always has a certain risk to it and in this case I can see that people want to unwrap to *internal_ classes. I think we should allow to unwrap to the internal classes as in _ValidatorImpl_. That said, we will change at the very least the _MessageInterpolato.rContext_. We will need to add as a minimum the root bean type in order to help the Glassfish guys with https://wikis.oracle.com/display/GlassFish/GlassFish+Bean+Validation+Error+Message+Internationalization

Regarding public interfaces, is this not exactly what we want to avoid? Once we have a public interface you need to keep supporting it, even if for example the BV spec goes another way. For me _unwrap_ is saying:" Hey, we give you access to the underlying impl on your own risk. This might change any time."