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); } }