Repository: camel Updated Branches: refs/heads/master 725ac9b09 -> 3ff5e3b4d
[CAMEL-8338] ScriptBuilder relies on TCCL to discover engines Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/3ff5e3b4 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/3ff5e3b4 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/3ff5e3b4 Branch: refs/heads/master Commit: 3ff5e3b4d770db528b729fc74e1bab2ca13f0e2c Parents: 725ac9b Author: Claus Ibsen <davscl...@apache.org> Authored: Thu Feb 12 10:40:12 2015 +0100 Committer: Claus Ibsen <davscl...@apache.org> Committed: Thu Feb 12 10:40:12 2015 +0100 ---------------------------------------------------------------------- .../org/apache/camel/builder/script/ScriptBuilder.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/3ff5e3b4/components/camel-script/src/main/java/org/apache/camel/builder/script/ScriptBuilder.java ---------------------------------------------------------------------- diff --git a/components/camel-script/src/main/java/org/apache/camel/builder/script/ScriptBuilder.java b/components/camel-script/src/main/java/org/apache/camel/builder/script/ScriptBuilder.java index 8c038ab..deb5fb4 100644 --- a/components/camel-script/src/main/java/org/apache/camel/builder/script/ScriptBuilder.java +++ b/components/camel-script/src/main/java/org/apache/camel/builder/script/ScriptBuilder.java @@ -326,7 +326,18 @@ public class ScriptBuilder implements Expression, Predicate, Processor { } protected static ScriptEngine createScriptEngine(String language) { - ScriptEngineManager manager = new ScriptEngineManager(); + ScriptEngine engine = createScriptEngine(language, ScriptBuilder.class.getClassLoader()); + if (engine == null) { + engine = createScriptEngine(language, Thread.currentThread().getContextClassLoader()); + } + if (engine == null) { + throw new IllegalArgumentException("No script engine could be created for: " + language); + } + return engine; + } + + private static ScriptEngine createScriptEngine(String language, ClassLoader classLoader) { + ScriptEngineManager manager = new ScriptEngineManager(classLoader); ScriptEngine engine = null; // some script names has alias