You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by ff...@apache.org on 2020/03/11 18:31:18 UTC

[servicemix-specs] branch master updated: [SM-4310]Jaxb-API-2.3 has missing method

This is an automated email from the ASF dual-hosted git repository.

ffang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicemix-specs.git


The following commit(s) were added to refs/heads/master by this push:
     new b5a9a4b  [SM-4310]Jaxb-API-2.3 has missing method
b5a9a4b is described below

commit b5a9a4b6216f240cecb0e88763ba30d1e03fc73c
Author: Freeman Fang <fr...@gmail.com>
AuthorDate: Wed Mar 11 14:31:08 2020 -0400

    [SM-4310]Jaxb-API-2.3 has missing method
---
 .../main/java/javax/xml/bind/ServiceLoaderUtil.java    | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

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 @@ class ServiceLoaderUtil {
             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,