Between 0.4 and 0.5 we lost the ability to simply give Message providers
as a parameter to the container factory, and switched to using a
metafile registry.
The default JAXB support is too limited; I am not sure if it can cope
with polymorphic classes that are not statically reachable from the seed
class (to get around this all necessary "root" classes have to be
provided to the JAXB context constructor).
Using meta-inf removes type safety and is fraught with errors and
classpath issues. I am not sure what issues this switch was intended to
fix; perhaps they could be listed. Why was it problematic to simply
provide services to the container, and why is it limited to declared web
services now?
I'd like to be able to mark any implementation of a service with
@Provider. Better would be the ability to refine the type of the
provider in the annotation (@Provider(SomeService.class)), then have
runtime checking to verify that the object actually provides the
specified service. If SomeService is a parameterized type, the actual
class passed in can be introspected to fully qualify the service
category.
RJ