You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Script

Available as of Camel 2.16

 

Is used to execute a script which does not change the message (by default). This is useful when you need to invoke some logic that are not in Java code such as JavaScript, Groovy or any of the other Languages. The message body is not changed (by default) however the scripting context has access to the current Exchange and can essentially change the message or headers directly. But the return value from the script is discarded and not used. If the return value should be used as a changed message body then use Message Translator EIP instead.

Using from Java DSL

The route below will read the file contents and validate them against a regular expression.

from("file://inbox")
  .script().groovy("// some groovy code goes here")
  .to("bean:MyServiceBean.processLine");

Using from Spring DSL

And from XML its easy as well

<route>
  <from uri="file://inbox"/>
  <script>
    <groovy>// some groovy code goes here</groovy>
  </script>
  <beanRef ref="myServiceBean" method="processLine"/>
</route>

<bean id="myServiceBean" class="com.mycompany.MyServiceBean"/>

Mind that you can use CDATA in XML if the groovy scrip uses < > etc

 

<route>
  <from uri="file://inbox"/>
  <script>
    <groovy><![CDATA[ some groovy script here that can be multiple lines and whatnot ]]></groovy>
  </script>
  <beanRef ref="myServiceBean" method="processLine"/>
</route>

<bean id="myServiceBean" class="com.mycompany.MyServiceBean"/>

Using This Pattern

If you would like to use this EIP Pattern then please read the Getting Started, you may also find the Architecture useful particularly the description of Endpoint and URIs. Then you could try out some of the Examples first before trying this pattern out.

  • No labels