Repository: camel
Updated Branches:
  refs/heads/master cc90cede2 -> a60fc0140


[CAMEL-11462] Nashorn javascript library can not be found in OSGi

Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/a60fc014
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/a60fc014
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/a60fc014

Branch: refs/heads/master
Commit: a60fc014015cc8fbbc446660adf917e4774ce7ff
Parents: cc90ced
Author: Guillaume Nodet <gno...@apache.org>
Authored: Tue Jun 27 17:18:06 2017 +0200
Committer: Guillaume Nodet <gno...@apache.org>
Committed: Tue Jun 27 17:18:06 2017 +0200

----------------------------------------------------------------------
 .../org/apache/camel/script/osgi/Activator.java    | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/a60fc014/components/camel-script/src/main/java/org/apache/camel/script/osgi/Activator.java
----------------------------------------------------------------------
diff --git 
a/components/camel-script/src/main/java/org/apache/camel/script/osgi/Activator.java
 
b/components/camel-script/src/main/java/org/apache/camel/script/osgi/Activator.java
index c1ba1fc..2a3ecaf 100644
--- 
a/components/camel-script/src/main/java/org/apache/camel/script/osgi/Activator.java
+++ 
b/components/camel-script/src/main/java/org/apache/camel/script/osgi/Activator.java
@@ -17,6 +17,7 @@
 package org.apache.camel.script.osgi;
 
 import java.io.BufferedReader;
+import java.io.IOException;
 import java.io.InputStreamReader;
 import java.net.URL;
 import java.util.ArrayList;
@@ -46,6 +47,7 @@ import org.osgi.framework.ServiceEvent;
 import org.osgi.framework.ServiceListener;
 import org.osgi.framework.ServiceReference;
 import org.osgi.framework.ServiceRegistration;
+import org.osgi.framework.wiring.BundleWiring;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -172,13 +174,14 @@ public class Activator implements BundleActivator, 
BundleTrackerCustomizer, Serv
     }
 
     protected void registerScriptEngines(Bundle bundle, 
List<BundleScriptEngineResolver> resolvers) {
-        URL configURL = null;
-        for (Enumeration<?> e = bundle.findEntries(META_INF_SERVICES_DIR, 
SCRIPT_ENGINE_SERVICE_FILE, false); e != null && e.hasMoreElements();) {
-            configURL = (URL) e.nextElement();
-        }
-        if (configURL != null) {
-            LOG.info("Found ScriptEngineFactory in bundle: {}", 
bundle.getSymbolicName());
-            resolvers.add(new BundleScriptEngineResolver(bundle, configURL));
+        try {
+            for (Enumeration<?> e = 
bundle.adapt(BundleWiring.class).getClassLoader().getResources(META_INF_SERVICES_DIR
 + "/" + SCRIPT_ENGINE_SERVICE_FILE); e != null && e.hasMoreElements();) {
+                URL configURL = (URL) e.nextElement();
+                LOG.info("Found ScriptEngineFactory in bundle: {}", 
bundle.getSymbolicName());
+                resolvers.add(new BundleScriptEngineResolver(bundle, 
configURL));
+            }
+        } catch (IOException e) {
+            LOG.info("Error loading script engine factory", e);
         }
     }
 

Reply via email to