[ 
https://issues.apache.org/jira/browse/CAMEL-3481?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12981521#action_12981521
 ] 

Aaron Mulder commented on CAMEL-3481:
-------------------------------------

I have a patch that resolves this issue.  It relies on looking for script 
engines in org.apache.camel.impl.osgi.Activator (same as when it looks for 
components and data formats and the like).  Then in ScriptBuider in 
camel-script, if the normal mechanism for loading script engines fails, it 
checks whether OSGi is available and attempts to load the script engines found 
by the Activator.

The main issue with this approach is that it adds a dependency on javax.script 
to camel-core (where the OSGi Activator lives).  It uses the same pattern as 
the other stuff in there -- a ScriptEngineResolver that uses the 
ScriptEngineFactory and so on.  This is fine for Java 6 and up (where 
javax.script is integrated).  I'm not clear whether people feel it's OK to add 
the javax.script dependency for Java 5 support.

Thoughts on that?

I also have a new test for camel-itest-osgi that demonstrates the problem and 
solution, and I will go ahead and commit that in any case.  However, the test 
will be @Ignore'd because it doesn't run even with the new code without a JRuby 
OSGi bundle and the default JRuby distribution in Maven does not seem to work 
for that.

> camel-script doesn't work in OSGi
> ---------------------------------
>
>                 Key: CAMEL-3481
>                 URL: https://issues.apache.org/jira/browse/CAMEL-3481
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-script
>    Affects Versions: 2.5.0
>            Reporter: Aaron Mulder
>            Priority: Minor
>             Fix For: 2.6.0
>
>
> In an OSGi environment, the ScriptEngineManager that ScriptBuilder uses can't 
> find any scripting engines except the ones packaged in the JDK (Rhino, maybe 
> AppleScript, etc.).  It's possible that setting a better ClassLoader would 
> work, or perhaps using a singleton ScriptEngineManager and setting up the 
> scripting engines in an OSGi Activator instead of relying on the META-INF 
> lookup every time a script is invoked.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to