INT-1392 added groovy docs
This commit is contained in:
73
src/docbkx/groovy.xml
Normal file
73
src/docbkx/groovy.xml
Normal file
@@ -0,0 +1,73 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
|
||||
<chapter id="groovy">
|
||||
<title>Groovy support</title>
|
||||
<para>
|
||||
With Spring Integration 2.0 we've added Groovy support allowing you to use Groovy scripting language to provide
|
||||
integration and business logic for various integration components similar to the way Spring Expression Language (SpEL)
|
||||
is use to implement routing, transformation and other integration concerns.
|
||||
|
||||
For more information about Groovy please refer to Groovy documentation which you can find here: http://groovy.codehaus.org/
|
||||
</para>
|
||||
|
||||
<section id="groovy-config">
|
||||
<title>Groovy configuration</title>
|
||||
<para>
|
||||
Depending on the complexity of your integration requirements Groovy scripts could be provided inline as CDATA in XML
|
||||
configuration or as a reference to a file containing Groovy script.
|
||||
|
||||
To enable Groovy support Spring Integration defines <classname>GroovyScriptExecutingMessageProcessor</classname> which will
|
||||
create a groovy Binding object identifying Message Payload as <code>payload</code> variable and Message Headers as
|
||||
<code>headers</code> variable. All that is left for you to do is write script that uses these variables.
|
||||
Below are couple of sample configurations:
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<emphasis>Filter</emphasis>
|
||||
<programlisting language="xml"><filter input-channel="referencedScriptInput">
|
||||
<groovy:script location="some/path/to/groovy/file/GroovyFilterTests.groovy"/>
|
||||
</filter>
|
||||
|
||||
<filter input-channel="inlineScriptInput">
|
||||
<groovy:script><![CDATA[
|
||||
return payload == 'good'
|
||||
]]></groovy:script>
|
||||
</filter></programlisting>
|
||||
You see that script could be included inline or via <code>location</code> attribute using the groovy namespace sport.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Other supported elements are <emphasis>router, service-activator, transformer, splitter</emphasis>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Another interesting aspect of using Groovy support is framework's ability to update (reload) scripts
|
||||
without restarting the Application Context.
|
||||
To accomplish this all you need is specify <code>refresh-check-delay</code> attribute on <emphasis>script</emphasis>
|
||||
element. The reason for this attribute is to make reloading of the script more efficient.
|
||||
|
||||
<programlisting language="xml"><![CDATA[<groovy:script location="..." refresh-check-delay="5000"/>]]></programlisting>
|
||||
|
||||
In the above example for the next 5 seconds after you update the script you'll still be using the old script and
|
||||
after 5 seconds the context will be updated with the new script. This is a good example where 'near real time'
|
||||
is acceptable.
|
||||
|
||||
<programlisting language="xml"><![CDATA[<groovy:script location="..." refresh-check-delay="0"/>]]></programlisting>
|
||||
|
||||
In the above example the context will be updated with the new script every time the script is modified. Basically this is the example of the
|
||||
'real-time' and might not be the most efficient way.
|
||||
|
||||
<programlisting language="xml"><![CDATA[<groovy:script location="..." refresh-check-delay="-1"/>]]></programlisting>
|
||||
|
||||
|
||||
Any negative number value means the script will never be refreshed after initial initialization of application context.
|
||||
DEFAULT BEHAVIOR
|
||||
|
||||
<important>Inline defined script can not be reloaded.</important>
|
||||
|
||||
</para>
|
||||
|
||||
</section>
|
||||
|
||||
</chapter>
|
||||
@@ -88,6 +88,7 @@
|
||||
<xi:include href="./event.xml"/>
|
||||
<xi:include href="./xml.xml"/>
|
||||
<xi:include href="./security.xml"/>
|
||||
<xi:include href="./groovy.xml"/>
|
||||
<xi:include href="./samples.xml"/>
|
||||
<xi:include href="./configuration.xml"/>
|
||||
<xi:include href="./resources.xml"/>
|
||||
|
||||
Reference in New Issue
Block a user