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

Reply via email to