Merge pull request #74 from olegz/INT-2012

improved documentation for 'send-partial-result-on-expiry'
This commit is contained in:
Mark Fisher
2011-09-19 14:37:28 -04:00
4 changed files with 29 additions and 11 deletions

View File

@@ -397,9 +397,17 @@ then you should simply provide an implementation of the <classname>ReleaseStrate
</callout>
<callout arearefs="aggxml08">
<para>Indicates if partially aggregated messages should be released when their storage time has expired
(see <code>MessageGroupStore.expireMessageGroups(long)</code>).
<para>
Indicates that expired messages should be aggregated and sent to the 'output-channel' or 'replyChannel'
once their containing <classname>MessageGroup</classname> is expired (see <code>MessageGroupStore.expireMessageGroups(long)</code>).
One way of expiring <classname>MessageGroup</classname>s is by configuring a <classname>MessageGroupStoreReaper</classname>.
However <classname>MessageGroup</classname>s can alternatively be expired by simply calling
<code>MessageGroupStore.expireMessageGroup(groupId)</code>. That could be accomplished via a Control Bus operation
or by simply invoking that method if you have a reference to the <classname>MessageGroupStore</classname> instance.
Otherwise by itself this attribute has no behavior. It only serves as an indicator of what to do (discard or send to the output/reply
channel) with Messages that are still in the <classname>MessageGroup</classname> that is about to be expired.
<emphasis>Optional</emphasis>.</para>
<para><emphasis>Default - 'false'</emphasis>.</para>
</callout>
<callout arearefs="aggxml09">

View File

@@ -13,6 +13,10 @@
package org.springframework.integration.aggregator;
import java.util.Collection;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.BeanFactory;
@@ -24,13 +28,13 @@ import org.springframework.integration.channel.NullChannel;
import org.springframework.integration.core.MessageProducer;
import org.springframework.integration.core.MessagingTemplate;
import org.springframework.integration.handler.AbstractMessageHandler;
import org.springframework.integration.store.*;
import org.springframework.integration.store.MessageGroup;
import org.springframework.integration.store.MessageGroupCallback;
import org.springframework.integration.store.MessageGroupStore;
import org.springframework.integration.store.MessageStore;
import org.springframework.integration.store.SimpleMessageStore;
import org.springframework.util.Assert;
import java.util.Collection;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
/**
* Message handler that holds a buffer of correlated messages in a
* {@link MessageStore}. This class takes care of correlated groups of messages

View File

@@ -2511,8 +2511,11 @@ Name of the header whose value will be used to route messages
<xsd:attribute name="send-partial-result-on-expiry" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
Tells if partially aggregated messages should be released when their storage time had expired (see
MessageGroupStore.expireMessageGroups(long))
Specifies whether messages that expired should be aggregated and sent to the 'output-channel' or 'replyChannel'.
Messages are expired when their containing MessageGroup expires. One of the ways of expiring MessageGroups is by
configuring a MessageGroupStoreReaper. However MessageGroups can alternatively be expired by simply calling
MessageGroupStore.expireMessageGroup(groupId). That could be accomplished via a ControlBus operation
or by simply invoking that method if you have a reference to the MessageGroupStore instance.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>

View File

@@ -2499,8 +2499,11 @@ Name of the header whose value will be used to route messages
<xsd:attribute name="send-partial-result-on-expiry" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
Tells if partially aggregated messages should be released when their storage time had expired (see
MessageGroupStore.expireMessageGroups(long))
Specifies whether messages that expired should be aggregated and sent to the 'output-channel' or 'replyChannel'.
Messages are expired when their containing MessageGroup expires. One of the ways of expiring MessageGroups is by
configuring a MessageGroupStoreReaper. However MessageGroups can alternatively be expired by simply calling
MessageGroupStore.expireMessageGroup(groupId). That could be accomplished via a ControlBus operation
or by simply invoking that method if you have a reference to the MessageGroupStore instance.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>