SpringSource/spring-integration — pull request #727 by artembilan (2013-01-30 13:13:52+00:00)
Title: INT-2899: remove redundant logic from Aggregator

Before `AggregatingMessageHandler#setExpireGroupsUponCompletion` had additional logic
for removing complete MessageGroups. It could produce some overhead on application start-up with big persistent `MessageStore`.
This logic played a role to clean `MessageStore` from empty groups.
Since `AbstractCorrelatingMessageHandler#forceComplete` had had an ability to to remove empty groups too,
Mentioned logic became redundant.
So, if we're going to clean `MessageStore` from empty complete groups it's enough to use `MessageGroupStoreReaper` on it.
From other side: if some MessageGroup is complete and not empty, how it became it such state?..
Nor ``, neither don't have similar logic.

* Remove logic about iteration over `MessageStore` from `AggregatingMessageHandler#setExpireGroupsUponCompletion`
* Polishing `AggregatorSupportedUseCasesTests.java` to use `store.expireMessageGroups(0)`
* Introduce `empty-group-time-to-live-on-expiry` xml-attribute based on `AbstractCorrelatingMessageHandler#minimumTimeoutForEmptyGroups`
* Add parser's tests for `empty-group-time-to-live-on-expiry` attribute

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