INT-2215 - Refactor Claim Check Schema Definition
This commit is contained in:
committed by
Mark Fisher
parent
aef0f4780e
commit
fa606de097
@@ -24,22 +24,33 @@
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Spring Integration provides two types of Claim Check transformers: <emphasis>Incoming Claim Check Transformer</emphasis> and
|
||||
<emphasis>Outgoing Claim Check Transformer</emphasis>. Convenient namespace-based mechanisms are available to configure them.
|
||||
Spring Integration provides two types of Claim Check transformers:
|
||||
</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><emphasis>Incoming Claim Check Transformer</emphasis></listitem>
|
||||
<listitem><emphasis>Outgoing Claim Check Transformer</emphasis></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>
|
||||
Convenient namespace-based mechanisms are available to configure them.
|
||||
</para>
|
||||
|
||||
</section>
|
||||
<section id="claim-check-in">
|
||||
<title>Incoming Claim Check Transformer</title>
|
||||
|
||||
<para>
|
||||
An <emphasis>Incoming Claim Check Transformer</emphasis> will transform an incoming Message by storing it in the Message Store
|
||||
identified by its <code>message-store</code> attribute.
|
||||
An <emphasis>Incoming Claim Check Transformer</emphasis> will transform an incoming Message by storing it in the Message Store
|
||||
identified by its <code>message-store</code> attribute.
|
||||
</para>
|
||||
|
||||
<programlisting language="xml"><![CDATA[<int:claim-check-in id="checkin"
|
||||
input-channel="checkinChannel"
|
||||
message-store="testMessageStore"
|
||||
output-channel="output"/>]]></programlisting>
|
||||
|
||||
<para>
|
||||
In the above configuration the Message that is received on the <code>input-channel</code> will be persisted to the
|
||||
Message Store identified with the <code>message-store</code> attribute and indexed with generated ID. That ID is the
|
||||
Claim Check for that Message.
|
||||
@@ -51,6 +62,73 @@
|
||||
manually and get the contents of the Message, or you can use the same approach as before except now you will be transforming
|
||||
the Claim Check to the actual Message by using an <emphasis>Outgoing Claim Check Transformer</emphasis>.
|
||||
</para>
|
||||
<para>
|
||||
Here is an overview of all available parameters of an Incoming Claim
|
||||
Check Transformer:
|
||||
</para>
|
||||
<programlisting language="xml"><![CDATA[<int:claim-check-in auto-startup="true" ]]><co id="claimcheck-in-xml01-co" linkends="claimcheck-in-xml01" /><![CDATA[
|
||||
id="" ]]><co id="claimcheck-in-xml02-co" linkends="claimcheck-in-xml02" /><![CDATA[
|
||||
input-channel="" ]]><co id="claimcheck-in-xml03-co" linkends="claimcheck-in-xml03" /><![CDATA[
|
||||
message-store="messageStore" ]]><co id="claimcheck-in-xml04-co" linkends="claimcheck-in-xml04" /><![CDATA[
|
||||
order="" ]]><co id="claimcheck-in-xml05-co" linkends="claimcheck-in-xml05" /><![CDATA[
|
||||
output-channel="" ]]><co id="claimcheck-in-xml06-co" linkends="claimcheck-in-xml06" /><![CDATA[
|
||||
send-timeout=""> ]]><co id="claimcheck-in-xml07-co" linkends="claimcheck-in-xml07" /><![CDATA[
|
||||
<int:poller></int:poller> ]]><co id="claimcheck-in-xml08-co" linkends="claimcheck-in-xml08" /><![CDATA[
|
||||
</int:claim-check-in>]]></programlisting>
|
||||
|
||||
<para>
|
||||
<calloutlist>
|
||||
<callout arearefs="claimcheck-in-xml01-co" id="claimcheck-in-xml01">
|
||||
<para>Lifecycle attribute signaling if this component should
|
||||
be started during Application Context startup. Defaults
|
||||
to true. Attribute is not available inside a <code>Chain</code> element.
|
||||
<emphasis>Optional</emphasis>.</para>
|
||||
</callout>
|
||||
<callout arearefs="claimcheck-in-xml02-co" id="claimcheck-in-xml02">
|
||||
<para>Id identifying the underlying bean definition (<classname>MessageTransformingHandler</classname>).
|
||||
Attribute is not available inside a <code>Chain</code> element.
|
||||
<emphasis>Optional</emphasis>.</para>
|
||||
</callout>
|
||||
<callout arearefs="claimcheck-in-xml03-co" id="claimcheck-in-xml03">
|
||||
<para>The receiving Message channel of this endpoint.
|
||||
Attribute is not available inside a <code>Chain</code> element.
|
||||
<emphasis>Optional</emphasis>.</para>
|
||||
</callout>
|
||||
<callout arearefs="claimcheck-in-xml04-co" id="claimcheck-in-xml04">
|
||||
<para>Reference to the MessageStore to be used by this Claim
|
||||
Check transformer. If not specified, the default reference
|
||||
will be to a bean named <emphasis>messageStore</emphasis>.
|
||||
<emphasis>Optional</emphasis>.</para>
|
||||
</callout>
|
||||
<callout arearefs="claimcheck-in-xml05-co" id="claimcheck-in-xml05">
|
||||
<para>Specifies the order for invocation when this endpoint is
|
||||
connected as a subscriber to a channel. This is particularly
|
||||
relevant when that channel is using a <emphasis>failover</emphasis>
|
||||
dispatching strategy. It has no effect when this endpoint
|
||||
itself is a Polling Consumer for a channel with a queue.
|
||||
Attribute is not available inside a <code>Chain</code> element.
|
||||
<emphasis>Optional</emphasis>.</para>
|
||||
</callout>
|
||||
<callout arearefs="claimcheck-in-xml06-co" id="claimcheck-in-xml06">
|
||||
<para>Identifies the Message channel where Message will be sent
|
||||
after its being processed by this endpoint.
|
||||
Attribute is not available inside a <code>Chain</code> element.
|
||||
<emphasis>Optional</emphasis>.</para>
|
||||
</callout>
|
||||
<callout arearefs="claimcheck-in-xml07-co" id="claimcheck-in-xml07">
|
||||
<para>Specify the maximum amount of time in milliseconds to wait
|
||||
when sending a reply Message to the output channel. By default
|
||||
the send will block for one second.
|
||||
Attribute is not available inside a <code>Chain</code> element.
|
||||
<emphasis>Optional</emphasis>.</para>
|
||||
</callout>
|
||||
<callout arearefs="claimcheck-in-xml08-co" id="claimcheck-in-xml08">
|
||||
<para>Defines a poller. Element is not available inside
|
||||
a <code>Chain</code> element.
|
||||
<emphasis>Optional</emphasis>.</para>
|
||||
</callout>
|
||||
</calloutlist>
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id="claim-check-out">
|
||||
@@ -59,16 +137,96 @@
|
||||
<para>
|
||||
An <emphasis>Outgoing Claim Check Transformer</emphasis> allows you to transform a Message with a Claim Check payload
|
||||
into a Message with the original content as its payload.
|
||||
</para>
|
||||
|
||||
<programlisting language="xml"><![CDATA[<int:claim-check-out id="checkout"
|
||||
input-channel="checkoutChannel"
|
||||
message-store="testMessageStore"
|
||||
output-channel="output"/>]]></programlisting>
|
||||
|
||||
<para>
|
||||
In the above configuration, the Message that is received on the <code>input-channel</code> should have a Claim Check as its payload
|
||||
and the <emphasis>Outgoing Claim Check Transformer</emphasis> will transform it into a Message with the original payload by simply
|
||||
querying the Message store for a Message identified by the provided Claim Check. It then sends the newly checked-out Message to the
|
||||
<code>output-channel</code>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Here is an overview of all available parameters of an Outgoing Claim
|
||||
Check Transformer:
|
||||
</para>
|
||||
<programlisting language="xml"><![CDATA[<int:claim-check-out auto-startup="true" ]]><co id="claimcheck-out-xml01-co" linkends="claimcheck-out-xml01" /><![CDATA[
|
||||
id="" ]]><co id="claimcheck-out-xml02-co" linkends="claimcheck-out-xml02" /><![CDATA[
|
||||
input-channel="" ]]><co id="claimcheck-out-xml03-co" linkends="claimcheck-out-xml03" /><![CDATA[
|
||||
message-store="messageStore" ]]><co id="claimcheck-out-xml04-co" linkends="claimcheck-out-xml04" /><![CDATA[
|
||||
order="" ]]><co id="claimcheck-out-xml05-co" linkends="claimcheck-out-xml05" /><![CDATA[
|
||||
output-channel="" ]]><co id="claimcheck-out-xml06-co" linkends="claimcheck-out-xml06" /><![CDATA[
|
||||
remove-message="false" ]]><co id="claimcheck-out-xml07-co" linkends="claimcheck-out-xml07" /><![CDATA[
|
||||
send-timeout=""> ]]><co id="claimcheck-out-xml08-co" linkends="claimcheck-out-xml08" /><![CDATA[
|
||||
<int:poller></int:poller> ]]><co id="claimcheck-out-xml09-co" linkends="claimcheck-out-xml09" /><![CDATA[
|
||||
</int:claim-check-out>]]></programlisting>
|
||||
|
||||
<para>
|
||||
<calloutlist>
|
||||
<callout arearefs="claimcheck-out-xml01-co" id="claimcheck-out-xml01">
|
||||
<para>Lifecycle attribute signaling if this component should
|
||||
be started during Application Context startup. Defaults
|
||||
to true. Attribute is not available inside a <code>Chain</code> element.
|
||||
<emphasis>Optional</emphasis>.</para>
|
||||
</callout>
|
||||
<callout arearefs="claimcheck-out-xml02-co" id="claimcheck-out-xml02">
|
||||
<para>Id identifying the underlying bean definition (<classname>MessageTransformingHandler</classname>).
|
||||
Attribute is not available inside a <code>Chain</code> element.
|
||||
<emphasis>Optional</emphasis>.</para>
|
||||
</callout>
|
||||
<callout arearefs="claimcheck-out-xml03-co" id="claimcheck-out-xml03">
|
||||
<para>The receiving Message channel of this endpoint.
|
||||
Attribute is not available inside a <code>Chain</code> element.
|
||||
<emphasis>Optional</emphasis>.</para>
|
||||
</callout>
|
||||
<callout arearefs="claimcheck-out-xml04-co" id="claimcheck-out-xml04">
|
||||
<para>Reference to the MessageStore to be used by this Claim
|
||||
Check transformer. If not specified, the default reference
|
||||
will be to a bean named <emphasis>messageStore</emphasis>.
|
||||
<emphasis>Optional</emphasis>.</para>
|
||||
</callout>
|
||||
<callout arearefs="claimcheck-out-xml05-co" id="claimcheck-out-xml05">
|
||||
<para>Specifies the order for invocation when this endpoint is
|
||||
connected as a subscriber to a channel. This is particularly
|
||||
relevant when that channel is using a <emphasis>failover</emphasis>
|
||||
dispatching strategy. It has no effect when this endpoint
|
||||
itself is a Polling Consumer for a channel with a queue.
|
||||
Attribute is not available inside a <code>Chain</code> element.
|
||||
<emphasis>Optional</emphasis>.</para>
|
||||
</callout>
|
||||
<callout arearefs="claimcheck-out-xml06-co" id="claimcheck-out-xml06">
|
||||
<para>Identifies the Message channel where Message will be sent
|
||||
after its being processed by this endpoint.
|
||||
Attribute is not available inside a <code>Chain</code> element.
|
||||
<emphasis>Optional</emphasis>.</para>
|
||||
</callout>
|
||||
<callout arearefs="claimcheck-out-xml07-co" id="claimcheck-out-xml07">
|
||||
<para>If set to <code>true</code> the Message will be removed from the
|
||||
MessageStore by this transformer. Useful when Message can
|
||||
be "claimed" only once. Defaults to <code>false</code>.
|
||||
<emphasis>Optional</emphasis>.</para>
|
||||
</callout>
|
||||
<callout arearefs="claimcheck-out-xml08-co" id="claimcheck-out-xml08">
|
||||
<para>Specify the maximum amount of time in milliseconds to wait
|
||||
when sending a reply Message to the output channel. By default
|
||||
the send will block for one second.
|
||||
Attribute is not available inside a <code>Chain</code> element.
|
||||
<emphasis>Optional</emphasis>.</para>
|
||||
</callout>
|
||||
<callout arearefs="claimcheck-out-xml09-co" id="claimcheck-out-xml09">
|
||||
<para>Defines a poller. Element is not available inside
|
||||
a <code>Chain</code> element.
|
||||
<emphasis>Optional</emphasis>.</para>
|
||||
</callout>
|
||||
|
||||
</calloutlist>
|
||||
</para>
|
||||
|
||||
<para><emphasis>Claim Once</emphasis></para>
|
||||
<para>
|
||||
There are scenarios when a particular message must be claimed only once. As an analogy, consider the airplane luggage check-in/out process.
|
||||
@@ -91,20 +249,17 @@
|
||||
output-channel="output"
|
||||
remove-message="true"/>]]></programlisting>
|
||||
</section>
|
||||
<para>
|
||||
Although we rarely care about the details of the claim checks as long as they work, it is still worth knowing that
|
||||
the current implementation of the actual Claim Check (the pointer) in Spring Integration is a UUID to ensure uniqueness.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<emphasis>A word on Message Store</emphasis>
|
||||
</para>
|
||||
<para>
|
||||
<classname>org.springframework.integration.store.MessageStore</classname> is a strategy interface for storing and retrieving messages.
|
||||
Spring Integration provides two convenient implementations of it. <classname>SimpleMessageStore</classname>: an in-memory, Map-based
|
||||
implementation (the default, good for testing) and <classname>JdbcMessageStore</classname>: an implementation that uses a relational
|
||||
database via JDBC.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<title>A word on Message Store</title>
|
||||
<para>
|
||||
Although we rarely care about the details of the claim checks as long as they work, it is still worth knowing that
|
||||
the current implementation of the actual Claim Check (the pointer) in Spring Integration is a UUID to ensure uniqueness.
|
||||
</para>
|
||||
<para>
|
||||
<classname>org.springframework.integration.store.MessageStore</classname> is a strategy interface for storing and retrieving messages.
|
||||
Spring Integration provides two convenient implementations of it. <classname>SimpleMessageStore</classname>: an in-memory, Map-based
|
||||
implementation (the default, good for testing) and <classname>JdbcMessageStore</classname>: an implementation that uses a relational
|
||||
database via JDBC.
|
||||
</para>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
Reference in New Issue
Block a user