You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Daniel Lamb <da...@discoverygarden.ca> on 2015/01/26 22:20:53 UTC

camel-script not working with blueprint

I’m using openjdk 1.7.0_65 camel version 2.14.1 and I’ve run into difficulty trying to use camel-script for javascript in a camel route using blueprint.  I’ve verified that camel-script works fine when building a war with spring and deploying to a servlet container, but when building a bundle with blueprint I get a timeout with a message like this when tests are attempted: 

Bundle RouteTest is waiting for dependencies [(&(language=js)(objectClass=org.apache.camel.spi.LanguageResolver))].  

I also get this error if i build with skipping tests (builds fine) and then deploy to an osgi runtime.  I’ve tried both a brand new service mix (5.4.0) and karaf (2.3.7 after following instructions on camel website).  Both the camel-script and camel-script-javascript features are installed in both instances.  In both situations, the bundle gets put into the grace period for a few moments and then eventually fails.

Both projects are simple edits of maven archetypes.  Relevant chunks of poms and route xmls:

For blueprint:

In the pom
    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-core</artifactId>
      <version>2.14.1</version>
    </dependency>
    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-blueprint</artifactId>
      <version>2.14.1</version>
    </dependency>
    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-script</artifactId>
      <version>2.14.1</version>
    </dependency>

and in blueprint xml
    <camelContext xmlns="http://camel.apache.org/schema/blueprint">
        <route id="timer-to-log">
            <from uri="timer://foo?fixedRate=true&amp;period=10s"/>
            <transform>
              <javaScript>
                request.body = 'Hello OSGI Application, how are you?';
              </javaScript>
            </transform>
            <log message="From Javascript: ${body}" />
        </route>
    </camelContext>

For war:

In the pom
    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-core</artifactId>
      <version>2.14.1</version>
    </dependency>
    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-spring</artifactId>
      <version>2.14.1</version>
    </dependency>
    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>camel-script</artifactId>
      <version>2.14.1</version>
    </dependency>

and in the spring xml
    <camelContext xmlns="http://camel.apache.org/schema/spring">
        <route id="timer-to-log">
            <from uri="timer://foo?fixedRate=true&amp;period=10s"/>
            <transform>
              <javaScript>
                request.body = 'Hello Web Application, how are you?';
              </javaScript>
            </transform>
            <log message="From Javascript: ${body}" />
        </route>
    </camelContext>

I’ve seen https://issues.apache.org/jira/browse/CAMEL-7122, which is apparently resolved in version 2.13.  I’ve also attempted the workaround explained by the original stack overflow post http://stackoverflow.com/questions/20997276/jboss-fuse-apache-camel-wont-resolve-language-js-javascript-for-bundle, but with no luck.

Are there any setup steps or other dependencies that I’m missing for this to work in osgi?  

Re: camel-script not working with blueprint

Posted by Daniel Lamb <da...@discoverygarden.ca>.
Thanks Claus.

Indeed, I needed to have camel-script-javascript installed.  In my insane fervor of trial and error, I didn’t notice that I missed camel-script-javascript in my Karaf install. 

In case any one is interested, I did manage to get tests working with javascript and osgi.  You have to add the javascript engine described in the camel-script-javascript feature as a dependency in your pom.  You’ll have to add an extra repository in your pom as well.  Relevant snippets:

    <dependency>
      <groupId>com.google.code.scriptengines</groupId>
      <artifactId>scriptengines-javascript</artifactId>
      <version>1.1</version>
    </dependency>

  <repositories>
    <repository>
      <id>googlecode-scriptengines</id>
      <name>Google Code Script Engines</name>
      <url>http://scriptengines.googlecode.com/svn/m2-repo/</url>
    </repository>
  </repositories>

~Danny

On Jan 27, 2015, at 2:24 AM, Claus Ibsen <cl...@gmail.com> wrote:

> Hi
> 
> I think you need to install camel-script-javascript also.
> 
> 
> On Mon, Jan 26, 2015 at 10:20 PM, Daniel Lamb <da...@discoverygarden.ca> wrote:
>> I’m using openjdk 1.7.0_65 camel version 2.14.1 and I’ve run into difficulty trying to use camel-script for javascript in a camel route using blueprint.  I’ve verified that camel-script works fine when building a war with spring and deploying to a servlet container, but when building a bundle with blueprint I get a timeout with a message like this when tests are attempted:
>> 
>> Bundle RouteTest is waiting for dependencies [(&(language=js)(objectClass=org.apache.camel.spi.LanguageResolver))].
>> 
>> I also get this error if i build with skipping tests (builds fine) and then deploy to an osgi runtime.  I’ve tried both a brand new service mix (5.4.0) and karaf (2.3.7 after following instructions on camel website).  Both the camel-script and camel-script-javascript features are installed in both instances.  In both situations, the bundle gets put into the grace period for a few moments and then eventually fails.
>> 
>> Both projects are simple edits of maven archetypes.  Relevant chunks of poms and route xmls:
>> 
>> For blueprint:
>> 
>> In the pom
>>    <dependency>
>>      <groupId>org.apache.camel</groupId>
>>      <artifactId>camel-core</artifactId>
>>      <version>2.14.1</version>
>>    </dependency>
>>    <dependency>
>>      <groupId>org.apache.camel</groupId>
>>      <artifactId>camel-blueprint</artifactId>
>>      <version>2.14.1</version>
>>    </dependency>
>>    <dependency>
>>      <groupId>org.apache.camel</groupId>
>>      <artifactId>camel-script</artifactId>
>>      <version>2.14.1</version>
>>    </dependency>
>> 
>> and in blueprint xml
>>    <camelContext xmlns="http://camel.apache.org/schema/blueprint">
>>        <route id="timer-to-log">
>>            <from uri="timer://foo?fixedRate=true&amp;period=10s"/>
>>            <transform>
>>              <javaScript>
>>                request.body = 'Hello OSGI Application, how are you?';
>>              </javaScript>
>>            </transform>
>>            <log message="From Javascript: ${body}" />
>>        </route>
>>    </camelContext>
>> 
>> For war:
>> 
>> In the pom
>>    <dependency>
>>      <groupId>org.apache.camel</groupId>
>>      <artifactId>camel-core</artifactId>
>>      <version>2.14.1</version>
>>    </dependency>
>>    <dependency>
>>      <groupId>org.apache.camel</groupId>
>>      <artifactId>camel-spring</artifactId>
>>      <version>2.14.1</version>
>>    </dependency>
>>    <dependency>
>>      <groupId>org.apache.camel</groupId>
>>      <artifactId>camel-script</artifactId>
>>      <version>2.14.1</version>
>>    </dependency>
>> 
>> and in the spring xml
>>    <camelContext xmlns="http://camel.apache.org/schema/spring">
>>        <route id="timer-to-log">
>>            <from uri="timer://foo?fixedRate=true&amp;period=10s"/>
>>            <transform>
>>              <javaScript>
>>                request.body = 'Hello Web Application, how are you?';
>>              </javaScript>
>>            </transform>
>>            <log message="From Javascript: ${body}" />
>>        </route>
>>    </camelContext>
>> 
>> I’ve seen https://issues.apache.org/jira/browse/CAMEL-7122, which is apparently resolved in version 2.13.  I’ve also attempted the workaround explained by the original stack overflow post http://stackoverflow.com/questions/20997276/jboss-fuse-apache-camel-wont-resolve-language-js-javascript-for-bundle, but with no luck.
>> 
>> Are there any setup steps or other dependencies that I’m missing for this to work in osgi?
> 
> 
> 
> -- 
> Claus Ibsen
> -----------------
> Red Hat, Inc.
> Email: cibsen@redhat.com
> Twitter: davsclaus
> Blog: http://davsclaus.com
> Author of Camel in Action: http://www.manning.com/ibsen
> hawtio: http://hawt.io/
> fabric8: http://fabric8.io/


Re: camel-script not working with blueprint

Posted by Claus Ibsen <cl...@gmail.com>.
Hi

I think you need to install camel-script-javascript also.


On Mon, Jan 26, 2015 at 10:20 PM, Daniel Lamb <da...@discoverygarden.ca> wrote:
> I’m using openjdk 1.7.0_65 camel version 2.14.1 and I’ve run into difficulty trying to use camel-script for javascript in a camel route using blueprint.  I’ve verified that camel-script works fine when building a war with spring and deploying to a servlet container, but when building a bundle with blueprint I get a timeout with a message like this when tests are attempted:
>
> Bundle RouteTest is waiting for dependencies [(&(language=js)(objectClass=org.apache.camel.spi.LanguageResolver))].
>
> I also get this error if i build with skipping tests (builds fine) and then deploy to an osgi runtime.  I’ve tried both a brand new service mix (5.4.0) and karaf (2.3.7 after following instructions on camel website).  Both the camel-script and camel-script-javascript features are installed in both instances.  In both situations, the bundle gets put into the grace period for a few moments and then eventually fails.
>
> Both projects are simple edits of maven archetypes.  Relevant chunks of poms and route xmls:
>
> For blueprint:
>
> In the pom
>     <dependency>
>       <groupId>org.apache.camel</groupId>
>       <artifactId>camel-core</artifactId>
>       <version>2.14.1</version>
>     </dependency>
>     <dependency>
>       <groupId>org.apache.camel</groupId>
>       <artifactId>camel-blueprint</artifactId>
>       <version>2.14.1</version>
>     </dependency>
>     <dependency>
>       <groupId>org.apache.camel</groupId>
>       <artifactId>camel-script</artifactId>
>       <version>2.14.1</version>
>     </dependency>
>
> and in blueprint xml
>     <camelContext xmlns="http://camel.apache.org/schema/blueprint">
>         <route id="timer-to-log">
>             <from uri="timer://foo?fixedRate=true&amp;period=10s"/>
>             <transform>
>               <javaScript>
>                 request.body = 'Hello OSGI Application, how are you?';
>               </javaScript>
>             </transform>
>             <log message="From Javascript: ${body}" />
>         </route>
>     </camelContext>
>
> For war:
>
> In the pom
>     <dependency>
>       <groupId>org.apache.camel</groupId>
>       <artifactId>camel-core</artifactId>
>       <version>2.14.1</version>
>     </dependency>
>     <dependency>
>       <groupId>org.apache.camel</groupId>
>       <artifactId>camel-spring</artifactId>
>       <version>2.14.1</version>
>     </dependency>
>     <dependency>
>       <groupId>org.apache.camel</groupId>
>       <artifactId>camel-script</artifactId>
>       <version>2.14.1</version>
>     </dependency>
>
> and in the spring xml
>     <camelContext xmlns="http://camel.apache.org/schema/spring">
>         <route id="timer-to-log">
>             <from uri="timer://foo?fixedRate=true&amp;period=10s"/>
>             <transform>
>               <javaScript>
>                 request.body = 'Hello Web Application, how are you?';
>               </javaScript>
>             </transform>
>             <log message="From Javascript: ${body}" />
>         </route>
>     </camelContext>
>
> I’ve seen https://issues.apache.org/jira/browse/CAMEL-7122, which is apparently resolved in version 2.13.  I’ve also attempted the workaround explained by the original stack overflow post http://stackoverflow.com/questions/20997276/jboss-fuse-apache-camel-wont-resolve-language-js-javascript-for-bundle, but with no luck.
>
> Are there any setup steps or other dependencies that I’m missing for this to work in osgi?



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
Email: cibsen@redhat.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen
hawtio: http://hawt.io/
fabric8: http://fabric8.io/