I've just spent a day tracking down an issue with the Hibernate Validator in OSGi.
The problem is as follows: for some constraint violations, HV uses javax.el to format the message. In order to do this, it needs to call ExpressionFactory.newInstance(). This is a typical old-fashioned SPI API; it uses the context classloader and provides no alternative method to pass in a class loader or otherwise avoid problems. A wrinkle is that the call to ExpressionFactory.newInstance() is very lazy in HV, so the relevant TCCL is that at the time of the call to 'validate'. Is this a job for SM? If so, would it be a 'specs' (for el-api)?
