I would like to use something @SoapFault on the exception class to generate the SoapFaultDefinition. But SoapFaultMappingExceptionResolver.getFaultDefinition is private, and hence I pretty much need to reimplement that entire class.
Maybe another level of abstract class with a concrete class subclass that does what SoapFaultMappingExceptionResolver now. Or a strategy interface to which SoapFaultMappingExceptionResolver delegates, with a default strategy that again does what SoapFaultMappingExceptionResolver now.
I would prefer the latter because when I obtain the annotation from the exception I want to be able to use the MessageSource and resolve parameter placeholders from the string contained in the annotation.