Class DelegatingMessageGroupProcessor
java.lang.Object
org.springframework.integration.aggregator.DelegatingMessageGroupProcessor
- All Implemented Interfaces:
Aware,BeanFactoryAware,Lifecycle,MessageGroupProcessor,ManageableLifecycle
public class DelegatingMessageGroupProcessor
extends Object
implements MessageGroupProcessor, BeanFactoryAware, ManageableLifecycle
The
MessageGroupProcessor implementation with delegation to the provided delegate
and optional aggregation for headers.
Unlike AbstractAggregatingMessageGroupProcessor this processor checks a result
of the delegate call and aggregates headers into the output only
if the result is not a Message or AbstractIntegrationMessageBuilder.
This processor is used internally for wrapping provided non-standard MessageGroupProcessor
when a aggregate headers Function is provided.
For POJO method invoking or SpEL expression evaluation it is recommended to use an
AbstractAggregatingMessageGroupProcessor implementations.
- Since:
- 5.2
- Author:
- Artem Bilan
-
Constructor Summary
ConstructorsConstructorDescriptionDelegatingMessageGroupProcessor(MessageGroupProcessor delegate, Function<MessageGroup, Map<String, Object>> headersFunction) -
Method Summary
Modifier and TypeMethodDescriptionbooleanprocessMessageGroup(MessageGroup group) Process the given MessageGroup.voidsetBeanFactory(BeanFactory beanFactory) voidstart()voidstop()
-
Constructor Details
-
DelegatingMessageGroupProcessor
public DelegatingMessageGroupProcessor(MessageGroupProcessor delegate, Function<MessageGroup, Map<String, Object>> headersFunction)
-
-
Method Details
-
setBeanFactory
- Specified by:
setBeanFactoryin interfaceBeanFactoryAware- Throws:
BeansException
-
processMessageGroup
Description copied from interface:MessageGroupProcessorProcess the given MessageGroup. Implementations are free to return as few or as many messages based on the invocation as needed. For example an aggregating processor will return only a single message representing the group, while a resequencing processor will return all messages whose preceding sequence has been satisfied.If a multiple messages are returned the return value must be a Collection<Message>.
- Specified by:
processMessageGroupin interfaceMessageGroupProcessor- Parameters:
group- The message group.- Returns:
- The result of processing the group.
-
start
public void start()- Specified by:
startin interfaceLifecycle- Specified by:
startin interfaceManageableLifecycle
-
stop
public void stop()- Specified by:
stopin interfaceLifecycle- Specified by:
stopin interfaceManageableLifecycle
-
isRunning
public boolean isRunning()- Specified by:
isRunningin interfaceLifecycle- Specified by:
isRunningin interfaceManageableLifecycle
-