INT-2938 Filter - Provide Option for Discard

Provide an option to determine whether or not the discard
(and exception throwing if configured) occurs within the
advice chain (default), or after it completes.

INT-2938 Filter Discard Advice Option - Schema

Schema, parser, tests for option on filter element.

INT-2938 Polishing - PR Comments + Doc

INT-2938 Add to "What's New"

INT-2938 Polishing - Javadoc Typo

while merging: simplified to use boolean var only
This commit is contained in:
Gary Russell
2013-02-21 10:45:33 -05:00
committed by Mark Fisher
parent 2bf6b9ba14
commit d1d367a97f
12 changed files with 313 additions and 16 deletions

View File

@@ -458,4 +458,20 @@ protected abstract Object doInvoke(ExecutionCallback callback, Object target, Me
</para>
</note>
</section>
<section id="advising-filters">
<title>Advising Filters</title>
<para>
There is an additional consideration when advising <classname>Filter</classname>s. By default, any discard
actions (when the filter returns false) are performed <emphasis>within</emphasis> the scope of the
advice chain. This could include all the flow downstream of the <emphasis>discard channel</emphasis>.
So, for example if an element downstream of the <emphasis>discard-channel</emphasis> throws an exception,
and there is a retry advice, the process will be retried. This is also the case if
<emphasis>throwExceptionOnRejection</emphasis> is set to true (the exception is thrown within the
scope of the advice).
</para>
<para>
Setting <emphasis>discard-within-advice</emphasis> to "false" modifies this behavior and the discard
(or exception) occurs after the advice chain is called.
</para>
</section>
</section>

View File

@@ -82,6 +82,16 @@
for at least this number of milliseconds. For more information see <xref linkend="aggregator-config"/>.
</para>
</section>
<section id="3.0-advising-filters">
<title>Advising Filters</title>
<para>
Previously, when a &lt;filter/&gt; had a &lt;request-handler-advice-chain/&gt;, the discard
action was all performed within the scope of the advice chain (including any downstream flow
on the <code>discard-channel</code>). The filter element now has an attribute
<code>discard-within-advice</code> (default <code>true</code>), to allow the discard action to
be performed after the advice chain completes. See <xref linkend="advising-filters"/>.
</para>
</section>
<section id="3.0-o-t-s-t">
<title>ObjectToStringTransformer Improvements</title>
<para>