INT-2845: Gradle: Check XSD Versions in Tests

In many cases IDEs import into test configs Namespace-resources
with hardcoded versions of Spring & Spring Integration XSDs.

This may produce build issues with different Spring versions.

It also causes an issue during the transition to a new Spring Integration version (e.g. 3.0).

* Add Gradle task 'checkTestConfigs' to check test configs for hardcoded resources' versions.
* Add to 'test' task dependency on new task 'checkTestConfigs'
* Fix hadrcoded versions in the test configs.

JIRA: https://jira.springsource.org/browse/INT-2845
Merge pull request #691 from artembilan/INT-2845
INT-2859 Fix Python OOM Error

INT-2859 - Remove Unnecessary Guard Condition
Merge pull request #694 from dturanski/INT-2859
INT-2847 Fix Test with Java 7

Java 7 stores the comparator directly in the PriorityBlockingQueue
rather than in a nested PriorityQueue as in earlier JDKs.
Merge pull request #703 from garyrussell/INT-2847

* garyrussell-INT-2847:
  INT-2847 Fix Test with Java 7
INT-2863 Add Release Strategy to Resequencer

- allow the configuration of release strategies on resequencers
-- adjust the xsd to allow the definition of a release strategy
-- move release strategy parsing to AbstractCorrelatingMessageHandlerParser
-- add unit tests

For reference see: https://jira.springsource.org/browse/INT-2863

INT-2863 Polishing

Fix white space; add @author; update copyright.

INT-2863 Resequencer/Aggregator Docs

Add docs for correlation and release strategis to Resequencer.

Add *.expression docs to Aggregator.
Merge pull request #696 from ferstl/INT-2863
INT-2875 Fix CPU Usage In JMS Test

Reply Container was spinning receiving StubMessages.

Set auto-startup to false on the gateways configured with
a <reply-listener/>.
Merge pull request #700 from garyrussell/INT-2875

* garyrussell-INT-2875:
  INT-2875 Fix CPU Usage In JMS Test
INT-2858: Fix for Repeatable invocation.proceed()

Heretofore there wasn't ability to make some scenario like this, when we want to make failure notification on each retry:

<service-activator>
  <request-handler-advice-chain>
      <bean class="org.springframework.integration.handler.advice.RequestHandlerRetryAdvice"/>
      <bean class="org.springframework.integration.handler.advice.ExpressionEvaluatingRequestHandlerAdvice"
	    p:onFailureExpression="#exception" p:failureChannel-ref="errorOnEachRetryChannel"/>
  </request-handler-advice-chain>
</service-activator>

The second Advice was invoked only once. This was because `ProxyMethodInvocation` keeps the index of current interceptor
on each `invocation.proceed()`, which is recursive by design.

So, change `AbstractRequestHandlerAdvice` to use `((ProxyMethodInvocation) invocation).invocableClone().proceed();`
This way, we get a fresh `MethodInvocation` for the current `Advice` with nested desired advices.

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

INT-2858: Polishing; PR Comments

Introduce `AbstractRequestHandlerAdvice.ExecutionCallback#cloneAndExecute()` especially for repeatable Advices, e.g. `RequestHandlerRetryAdvice`
to avoid overhead from `clone()` on simple Advices

INT-2858: Doc ExecutionCallback#cloneAndExecute()

INT-2858 Polishing

Rework docs; add Javadoc; add to test case.
Merge pull request #693 from artembilan/INT-2858
INT-2868 Fix SSL Key Store Resource Handling

Documentation indicates that the keystore and truststore
arguments can be resource patterns (file:..., classpath:..., etc)
but the code always used a ClasspathResource.

Use a PathMatchingResourcePatternResolver to interpret the
pattern correctly.

Add tests.
INT-2878: MessageGroupStoreReaper's Lifecycle Fix

`MessageGroupStoreReaper` continues to expire `MessageGroups` via `scheduled-task`
when not `running`.

* Add check `isRunning()` to `run()` & `destroy()`
* Additional `MessageGroupStoreReaper` polishing
* Add test-case

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

INT-2878: Polishing : PR Comments
Merge pull request #704 from artembilan/INT-2878
INT-2880 Fix System.out Concurrent Race Condition

Gradle may run tests using multiple threads.

Using shared resources (e.g. `System.out`) may produce concurrency issues.

* Remove usage of `System.out`
* Add mocking around `LoggingHandler#messageLogger`.

JIRA: https://jira.springsource.org/browse/INT-2880
Merge pull request #705 from artembilan/INT-2880
INT-2885 Remove DOS Newlines

MessageGroupStoreReaper
INT-2864 Enforce Ref/Expression Mutual Exclusivity

Delegating consumer endpoints (<service-activator/> etc)
may not have both 'expression' and 'ref' attributes.
Previously, 'expression' was ignored when 'ref' was present.

- Enforce mutual exclusivity in AbstractDelegatingEndpointParser.
- Add tests for illegal combinations.
- Improve error message when 'method' used with <expression/>.
- Change parser to use reader.error() instead of Assert.
- Add element description to all parser errors.
Merge pull request #706 from garyrussell/INT-2864

* garyrussell-INT-2864:
  INT-2864 Enforce Ref/Expression Mutual Exclusivity