INT-2906 Upgrade Groovy to 2.1.0
Merge pull request #746 from garyrussell/INT-2906

* garyrussell-INT-2906:
  INT-2906 Upgrade Groovy to 2.1.0
INT-2929 Fix JMX Occasional Failing Tests

ExponentialMovingAverageRateTests are VERY sensitive to
timing, when running on a busy platform.

Add code to skip the assertions if we detect we are
running on a slow machine.
Merge pull request #745 from garyrussell/INT-2929

* garyrussell-INT-2929:
  INT-2929 Fix JMX Occasional Failing Tests
INT-2853 ObjectToStringTransformer Improvements

* Convert byte[] and char[] to String rather than simply using toString().
* Allow the charset to be configured for byte[] payloads.
* Add tests.
* Add reference documentation updates.
Merge pull request #734 from garyrussell/INT-2853

* garyrussell-INT-2853:
  INT-2853 ObjectToStringTransformer Improvements
INT-2126 Add TcpConnection Event Publisher

Reference: https://jira.springsource.org/browse/INT-2126

* Add TcpConnectionEvent for OPEN, CLOSE, EXCEPTION.
* Add Event Type Enum - Provides type safety for event types.
* Add <int-ip:tcp-connection-event-inbound-channel-adapter />
* Add the ability to filter events (restrict to one or more subclasses)
* Add publishEvent() to TcpConnectionSupport to permit, for example, connection interceptors to publish events via the connection, but the event source can only be the connection used to publish the event.
* Add documentation to Reference Documentation section *What's New*

INT-2871 Provide Mechanism to Find TCP Connections
Reference: https://jira.springsource.org/browse/INT-2871

* Add getOpenConnectionIds() to Abstract Connection Factory
* Add closeConnection(String connectionID)
* Introduce removeClosedConnectionsAndReturnOpenConnectionIds

INT-2877 TCP Extension Improvements
Reference: https://jira.springsource.org/browse/INT-2877

* Make improvements to make extension easier.
* Add setCustomHeaders() to mapper.
* Add mapper to connection factory namespace parser.
* Add plumbing for stateful Deserializers.
* Refactor setting standard headers
* rename setCustomHeaders to supplyCustomHeaders - returning a Map and not exposing the MessageBuilder to subclasses

INT-2872 Remove Deprecated Items in ip Module
Reference: https://jira.springsource.org/browse/INT-2872

* pool-size Attribute
* setScheduler
* TcpSendingMessageHandler.getConnection()
* Deprecated attribute on TCP Connection Factory.
Merge pull request #743 from garyrussell/INT-2877

* garyrussell-INT-2877:
  INT-2126 Add TcpConnection Event Publisher
INT-2931 Fix Router Race Condition

AbstractMessageRouter.getRequiredConversionService() and
IntegrationObjectSupport.getConversionService() try to initialize the
conversion service and may be called from multiple threads. There is
a race condition where this could end up in an uninitialized conversion service
causing NPEs in subsequent method calls.

To solve this issue, the conversion service is initialized with
double-checked locking.

For further details see https://jira.springsource.org/browse/INT-2931

INT-2931 Polishing - Add Test Case

Add a test case that reliably reproduces the issue and verifies
the fix.
Merge pull request #747 from ferstl/INT-2931
[artifactory-release] Release version 3.0.0.M1
[artifactory-release] Next development version
INT-2940 Fix Race Condition in TCP Connection Test

Assertion that server side connection was established could
occur after the connection was established, but before it was
added to the collection.

Add a latch.
INT-2936 Fix TCP Binary DeSerialization with NIO

Inadvertent sign extension on binary data with bit 7 set
causes early termination of binary deserializers.

The ChannelInputStream (which replaced the piped input
and output streams) failed to mask off the top 24 bits
of "normal" bytes received, causing Deserializers to
believe the stream was closed.

Add a mask of 0xff to bytes read.

Add a test case.
Merge pull request #749 from garyrussell/INT-2936

* INT-2936: Fix TCP Binary DeSerialization with NIO