Hello All,

Romain mentioned in another thread about wanting to eliminate the osgi
locator shade. I would be super happy to make this happen.

This can be accomplished by leveraging the Service Loader Mediator. However
there is a caveat. In order to stick with the Service Mediator spec, the
code in question must be using the method

java.util.ServiceLoader.load(Class<T>)

This is to ensure that proper weaving can be accomplished at runtime.

In testing, I applied the required metadata on geronimo-jsonb_1.0_spec and
this worked fine, however jsonb depends on jsonp (for instance
geronimo-jsonp_1.1_spec) which, when I use these to gether, I
found geronimo-jsonp_1.x_spec does not use ServiceLoader at all, but rather
a self implementation of such [1].

Would it be fair to replace the self implemented logic with the logic found
in the geronimo-jsonb [2] which does the same but using ServiceLoader?

Finally, if the goal is to enable Service Loader Mediator to replace all
osgi locator, then we need to ensure this pattern is followed throughout.
Does that seem fair? If so I can go through and apply the fix in many
places.

Sincerely,
- Ray

[1]
https://github.com/apache/geronimo-specs/blob/trunk/geronimo-json_1.1_spec/src/main/java/javax/json/spi/JsonProvider.java#L105-L149
[2]
https://github.com/apache/geronimo-specs/blob/trunk/geronimo-jsonb_1.0_spec/src/main/java/javax/json/bind/spi/JsonbProvider.java#L64-L71


-- 
*Raymond Augé* <http://www.liferay.com/web/raymond.auge/profile>
 (@rotty3000)
Senior Software Architect *Liferay, Inc.* <http://www.liferay.com>
 (@Liferay)
Board Member & EEG Co-Chair, OSGi Alliance <http://osgi.org> (@OSGiAlliance)

Reply via email to