INT-3027: Headers Enrichment for <enricher>

* Add `<header>` sub-element to `<enricher>`
* Refactoring of `EnricherParser`
* Add Headers Enrichment logic to `ContentEnricher`
* Add tests
* What's new and Content Enricher's `<header>` note

JIRA: https://jira.springsource.org/browse/INT-3027

INT-3027: Addressing PR comments

INT-3027: add NPE asserts to map properties

INT-3027: add overwrite & type to enricher header

Move `HeaderValueMessageProcessor` hierarchy to 'transformer.support' package

INT-3027: Make header's overwrite=true by default

Doc Polishing
This commit is contained in:
Artem Bilan
2013-09-16 18:51:36 +03:00
committed by Gary Russell
parent 7c0c9e92fc
commit 7517963be2
17 changed files with 433 additions and 162 deletions

View File

@@ -32,6 +32,9 @@
Please go to the adapter specific sections of this reference manual
to learn more about those adapters.
</para>
<para>
For more information regarding expressions support, please see <xref linkend="spel" />.
</para>
</section>
<section id="header-enricher">
@@ -227,6 +230,8 @@
<int:poller></int:poller> ]]><co id="payload-enricher10-co" linkends="payload-enricher10" /><![CDATA[
<int:property name="" expression=""/> ]]><co id="payload-enricher11-co" linkends="payload-enricher11" /><![CDATA[
<int:property name="" value=""/>
<int:header name="" expression=""/> ]]><co id="payload-enricher12-co" linkends="payload-enricher12" /><![CDATA[
<int:header name="" value="" overwrite="" type=""/>
</int:enricher>]]></programlisting>
<para>
@@ -358,6 +363,27 @@
application context (using the '@&lt;beanName&gt;.&lt;beanProperty&gt;'
SpEL syntax).
</para>
</callout>
<callout arearefs="payload-enricher12-co" id="payload-enricher12">
<para>
Each <code>header</code> sub-element provides the
name of a Message header (via the mandatory <code>name</code>
attribute). Exactly one of the <code>value</code>
or <code>expression</code> attributes must be provided
as well. The former for a literal value to set, and the
latter for a SpEL expression to be evaluated. The root
object of the evaluation context is the Message that was
returned from the flow initiated by this enricher, the
input Message if there is no request channel, or the
application context (using the '@&lt;beanName&gt;.&lt;beanProperty&gt;'
SpEL syntax).
Note, similar to the <code>&lt;header-enricher&gt;</code>, the <code>&lt;enricher&gt;</code>'s
<code>header</code> element has <code>type</code> and <code>overwrite</code> attributes.
However, a difference is that, with the <code>&lt;enricher&gt;</code>,
the <code>overwrite</code> attribute is <code>true</code> by default,
to be consistent with <code>&lt;enricher&gt;</code>'s
<code>&lt;property&gt;</code> sub-element.
</para>
</callout>
</calloutlist>
</para>

View File

@@ -86,6 +86,14 @@
<interfacename>MessageSource</interfacename>; see <xref linkend="channel-adapter-expressions-and-scripts"/>.
</para>
</section>
<section id="3.0-content-enricher-headers">
<title>Content Enricher: Headers Enrichment Support</title>
<para>
The Content Enricher now provides configuration for <code>&lt;header/&gt;</code>
sub-elements, to enrich the outbound Message with headers based on the reply Message from the underlying
message flow. For more information see <xref linkend="payload-enricher"/>.
</para>
</section>
<section id="3.0-spel-customization">
<title>Spring Expression Language (SpEL) Configuration</title>
<para>