remove ChannelResolver awareness from router parsers and FactoryBean
refactor 'channelIdentifierMap' -> 'channelMappings' and other clarity enhancements
trim array tokens
added AbstractMappingMessageRouter
This commit is part of Jira issue: INT-2186
Please see for reference: https://jira.springsource.org/browse/INT-2186
Several sub-issues are affected:
* INT-2137 - Add documentation for XPath Filter
* INT-2138 - Add documentation for XML Validating Filter
* INT-1917 - Document combination of SpEL and XPath expressions
* INT-2187 - Add documentation for xpath-header-enricher
Previously, for single-use server sockets, and for client sockets
that have a collaborating inbound adapter, the socket timeout
was set to 10 seconds, with no way to set to infinity. The work
around was to set it to Integer.MAX_VALUE.
The intent was to avoid DoS attacks and mis-behaved clients, but
some users have expressed a desire to be able to set an infinite
timeout in both scenarios.
A future release may remove the 10 second default from the client
socket that has a collaborating inbound adapter, and default to
infinity. For this reason, that case now emits a warning.
The default 10 second timeout on single-use server sockets will
likely remain.
INT-1872 Remove WARN Log
We decided to eliminate the log message regarding a possible
future change to the default timeout for client sockets used
for request/reply.
Add client mode for inbound endpoints, and for the
outbound adapter.
INT-1770 Allow Inbound Adapter to Open Connection
Normally, inbound adapters use server sockets and wait for incoming
connection. There are use cases where the adapter should establish
the connection and wait for inbound messages.
INT-1770 Open Connection on Start
Allow configuration of outbound adapter to permit
connection establishment when the adapter is started
rather than when the first message arrives.
INT-1770 Allow Inbound Gateway to Open Connection
Normally, inbound gateways listen for connections. There are
use cases where an inbound gateway might open the connection
and then wait for incoming requests.
INT-1770 Parsers
Update parsers and tests to support attributes for setting
endpoints in client-mode.
INT-1770 Docs
Update reference with client-mode information.
INT-1770 Add Control Bus for Client Mode
Enable control bus commands to check status and to attempt
connection establishment.
ip_connection_id header is used to determine to which socket
a message should be written. If this header is missing, we
can't send the message and we log an error. Previously, an
NPE was thrown.
This applies to inbound gateway replies and asynchronous
outbound server messages.
INT-1876 Add AutoStart and Phase to TCP Endpoints
There was no way for an application to control the startup
of TCP endpoints. This is particularly an issue for controlling
availability of inbound endpoints.
The TCP Endpoints are mostly static, with dynamic behavior
being contained in connection factories. The factories
implement SmartLifecycle but there is no way to
configure auto-startup.
Adds auto-startup and phase attributes to all TCP endpoints
Starting/stopping an endpoint will start/stop the underlying
connection factory. When a connection factory is stopped,
all open connections are closed, and no new connections will
be acceptedi (inbound) or allowex (outbound).
While the factories implement SmartLifecycle, they return
false to auto-startup. We rely on the fact that
the endpoints are dependent on factories and
the factories will be started because of this dependency.
Finally, with collaborating endpoints (where an inbound and
outbound adapter are bound to the same factory), starting/
stopping one endpoint will affect the collaborating
endpoint too.
INT-1876 Polish Schema Docs
Doc was incorrectly talking about connection factories instead
of endpoints.
INT-2162 Add apply-sequence to Connection Factory
When messages are generated as a result of incoming tcp messages, and this
attribute is true (default=false), the sequenceNumber and
correlationId headers will be set. This will facilitate
downstream resequencing if necessary.
The 'ip_connection_id' header is still required for internal correlation
of reply messages to the right socket (regardless of whether downstream
components have altered the correlationId), and will contain the same value
as the correlationId (if set). This will not use up more memory for the
header content because they will both point to the same heap object.
The 'ip_connection_seq' header is deprecated and may be removed
in a future release.
TcpConnection.getConnectionSeq() has been renamed to
incrementAndGetConnectionSequence() because it is not a simple
getter method, it increments the connection's sequence number.
INT-2162 Update Docs for apply-sequence
Add documentation for apply-sequence attribute on
TCP Connection Factories.
- Add more documentation for schema elements in spring-integration-xml-2.1.xsd
- Simplify Handling of Channel Resolution (Failures) for Routers
- Fix PayloadTypeRouterTests
- Update reference docs, XSD Schemas
- Rename 'channel-resolution-required' to 'resolution-required'
- Updated all tests accordingly