[SM-4310]Jaxb-API-2.3 has missing method
diff --git a/jaxb-api-2.3/src/main/java/javax/xml/bind/ServiceLoaderUtil.java b/jaxb-api-2.3/src/main/java/javax/xml/bind/ServiceLoaderUtil.java
index 4debc31..0a9d211 100644
--- a/jaxb-api-2.3/src/main/java/javax/xml/bind/ServiceLoaderUtil.java
+++ b/jaxb-api-2.3/src/main/java/javax/xml/bind/ServiceLoaderUtil.java
@@ -109,6 +109,24 @@
throw handler.createException(x, "Provider " + className + " could not be instantiated: " + x);
}
}
+
+ static Object lookupUsingOSGiServiceLoader(String factoryId, Logger logger) {
+ // using OSGi locator to load the spi class
+ try {
+ Class serviceClass = Class.forName(factoryId);
+ Class spiClass = org.apache.servicemix.specs.locator.OsgiLocator.locate(serviceClass);
+ if (spiClass != null) {
+ logger.log(Level.FINE, "Found spiClass: " + spiClass);
+ return spiClass;
+ } else {
+ logger.log(Level.FINE, "No spiClass found in OSGi");
+ return null;
+ }
+
+ } catch (Throwable t) {
+ return null;
+ }
+ }
static Class safeLoadClass(String className,
String defaultImplClassName,