Currently, HTTP mappers don't know if they are inbound
or outbound. This causes problems with mapping certain
headers.
For example, on an inbound adapter, a mapped Content-Length
header should not be re-mapped to an HTTP Header during
response header mapping. However, the Content-Length
does need to be mapped on an outbound adapter response.
Introduce the notion of an exclusion list for both
request and response standard headers.
If a mapper has been configured to use standard headers,
we can detect whether the mapper is being used for inbound
or outbound mapping. We can then apply an 'exclusion' for
certain headers.
Currently, no request headers are suppressed on outbound
mappers and only the 'Content-Length' response header
is suppressed on inbound mappers.
The default mappers created via the static factory
methods use these defaults. Exposing the exclusion setters
will allow users to suppress additional headers, if
deemed necessary.
* ban to use 'channel' and 'request-channel' attributes for 'outbound-channel-adapters' and 'outbound-gateways' when they are declared inside the `<chain>`
* fix usage of `<request-handler-advice-chain>` for components when they are declared inside the `<chain>`
* ban to use `<request-handler-advice-chain>` for 'outbound-channel-adapters' when they are declared inside the `<chain>` don't implement `AbstractReplyProducingMessageHandler`
* refactor `IntegrationNamespaceUtils` to use `BeanDefinition` instead of `BeanDefinitionBuilder` for 'advice-chain' parsing
* tests for new logic for 'channel' and 'request-channel' attributes within `<chain>`
* tests for new logic for `<request-handler-advice-chain>` within `<chain>`
* fix failed test on slow machine
* fix `SysLogTransformer` tests
For reference:
https://jira.springsource.org/browse/INT-2718https://jira.springsource.org/browse/INT-2721https://jira.springsource.org/browse/INT-2719
INT-2718 Polishing
* XSD: add 'view-expression' attribute to the http:inbound-channel-adapter since `HttpRequestHandlingController` supports it.
* Parser test for 'view-expression' attribute
JIRA: https://jira.springsource.org/browse/INT-2717
INT-2717: Polishing based on PR comments
Polishing - add mutual exlusivity to schema doc.
Fix initialization of the ConversionService logic
in HttpRequestExecutingMessageHandler to NOT throw an exception if
ConversionService is not an instance of ConfigurableConversionService
Fix previous commit to be compatible with Spring 3.0,
by dependiing on ConverterRegistry instead of
ConfigurableConversionService, which was introduced in Spring 3.1
Fix initialization of the ConversionService logic
in HttpRequestExecutingMessageHandler to NOT throw an exception if
ConversionService is not an instance of GenericConversionService.
Check for ConfigurableConversionService instead.
INT-2712 polishing
INT-2712 Polishing Tests
* HttpRequestExecutingMessageHandler: change Class.forName() to ClassUtils.forName()
* HttpRequestExecutingMessageHandler: some polishing about DRY
* OutboundResponseTypeTests: tests about "byte[]" & "[B" values for 'expectedResponseTypeExpression'
* OutboundResponseTypeTests: polishing to make it more quickly
* OutboundResponseTypeTests contexts: versionless XSD
JIRA: https://jira.springsource.org/browse/INT-2706
Add general capability to advise just the handleRequestMessage
part of an AbstractReplyProducingMessageHandler.
This is to advise just the immediate operation, and not the
entire downstream flow.
Uses include:
* outbound gateway post processing
* adding retry behavior using spring-retry
* adding circuit breaker functionality
Initial commit for review.
Also need to advise simple message handlers (such as file
etc) to allow them to post-process file operations
with payload.delete(), payload.renameTo(...) etc.
INT-2250 Add Circuit Breaker Advice
INT-343 Add Retry Advice
Stateless and Stateful retry using spring-retry. Stateless
means the RetryTemplate performs the retries internally.
Stateful means the exception is thrown (e.g. to JMS container)
and the retry state is maintained by spring-retry.
INT-2215, INT-343, INT-2250 Refactoring
Factor out common abstract Advice class.
INT-2214 Catch Evaluation Expression Exceptions
If an onSuccess expression evaluation fails, add an
option so the user can decide whether such an exception is
caught, or propagated to the caller.
INT-2214 etc PR Review Polishing
INT-2214 etc Namespace Core, File, FTP
Add <request-handler-advice-chain/> to outbound endpoints.
INT-2214 etc. More Namespace Support
amqp, event, gemfire, groovy, http, ip, jdbc, jms, jmx, jpa, mail, rmi, sftp, twitter, ws, xmpp
INT-2214 etc Polishing
PR Review
INT-2214 etc Polishing
Don't catch Throwable.
Move Advice classes to handler.advice package.
* Ensure that no deprecation warnings occur
* Spring Integration builds with all tests successfully for Spring 3.1.2.RELEASE and 3.0.7.RELEASE (Except Spring Integration HTTP)
For reference see: https://jira.springsource.org/browse/INT-2689
INT-2694 - Fix Http Test Failures with Spring 3.0
As part of INT-2689, fix Http Test Failures in the Spring Integration Http Module when using Spring 3.0.7.RELEASE
For reference see: https://jira.springsource.org/browse/INT-2694
* Add beginShutdown() and endShutdown() to OrderlyShutdownCapable
* JMS/AMQP stop listener containers
* TCP (server side)
** after beginShutdown() disallow new connections, drop (log) new messages
** after endShutdown() close server socket
* HTTP (server side)
** after beginShutdown() disallow any new requests (503 Service Unavailable)
* Docbook updates
** What's new section
** Orderly Shutdown section.
* Add *disposition-expression* to the inbound file adapter. This allows for operations such as *payload.delete()*, *payload.renameTo()* after the file is processed.
* The result of executing the expression (if any) is sent to the disposition-result-channel.
Change the default expected response type to ResponseEntity
Add support for expected-response-type-expression attribute
to accept SpEL to determine expected response type.
INT-1760, INT-1759 add documentation.
INT-1760, INT-1759 polished javadocs and schema doc
INT-1760, INT-1759 more polishing
INT-1760, INT-1759 polished documentation based on PR
INT-1760 Polishing
Fix Chain test.
XSD refactoring: remove use="required" from 'request-channel' attribute of all 'outbound-gateways'
Tests for all 'outbound-gateways' inside the <chain>
Add support for http-method-expression attribute to the HTTP Outbound Gateway/Adapter
INT-2397 polishing
INT-2397 polishing based on PR comments
INT-2397 more polishing based on PR comments
INT-2397 polishing
INT-2397 plishing PR comments
INT-2397 polishing
https://jira.springsource.org/browse/INT-2488
Previously the view name could be specified; with this
change, either the view name or a view-epression can be
provided, with the reply message being the root object
of the evaluation context.
INT-2448 Polishing
Remove deprecation from view-name.
Reuse evaluation context.
INT-2448 Polishing
PR Comments
Add url-expression as an alternative to url for outbound
http adapters. One of url or url-expression must be
provided (but not both).
The Message is the root object for the expression's
evaluation context; the bean factory can also be
used to resolve '@beanName' expressions.
INT-2570 url-expression Reference Docs
Add note to the reference guide.
INT-2570 Polishing
PR Review Comments
INT-2570 Polishing
PR Review comments.
Add re-init logic for nested chains
Add logic about nested element for AbstractChannelAdapterParser
Refactor of DefaultOutboundChannelAdapterParser
Test for non-last nested chain with some outbound-channel-adapter
Improve XSD for chain-type
Manual outbound-channel-adapter ability for chain
Integration tests for all outbound-channel-adapter within <chain>
Remove redundant 'return-value-required' attribute from <stored-proc-outbound-channel-adapter>
Add support 'expectReply' for FileWritingMessageHandler
INT-2275 polishing & refactor FileOutbound*Parser
HttpRequestExecutingMessageHandlerTests polishing
INT-2275: polishing JavaDoc
Add 2.2 versions of module schemas.
JMX is already covered by an existing pull request.
INT-2536 Schema Check
Bump version for schema check in
AbstractIntegrationNamespaceHandler.
INT-2536 Remove Schema Versions
Some test config files had 2.1 versioned schemas.
* Update **build.gradle** and change the *springVersion* property to **3.1.1.RELEASE**
* Due to change in Spring 3.1, add missing method **getRawStatusCode()** in *org.springframework.integration.http.outbound.CookieTests*
INT-2458 Document "path" Attribute of HTTP Inbound Gateway in XSD Schema
For reference:
* https://jira.springsource.org/browse/INT-2443
* https://jira.springsource.org/browse/INT-2458
INT-2450 - Change from request-timeout to reply-timeout in HttpOutboundGateway is not reflected in the SI reference guide
For reference: https://jira.springsource.org/browse/INT-2450
INT-2443 Code Review: Clarify "HTTP Namespace Support" section
Code review: Fix doc on uri-variable element
* uri-variable element now doesn't support value attribute, rework respective section in the documentation
* However, for improved consistency, I created Jira: INT-2463 - https://jira.springsource.org/browse/INT-2463
INT-2443 Code Review - Several fixes to HTTP Ref Doc and XSD Schema
INT-2443 Code Review - Several Ref Doc wording fixes
Polishing
The AbstractChannelAdapterParser creates an implicit DirectChannel
if the adapter has no 'channel' attribute.
The Event, TCP, and UDP channel adapter parsers did not bind
this channel to the adapter and AC initialization failed with
'outputChannel is required'.
Further, the event schema marked the channel as being 'required',
precluding this feature.
INT-2407 Remove Channel use="required"
Parsers automatically generate the channel when none is provided.
- JMX
- JDBC
- SFTP
- Redis
- Feed
- XMPP
- Mail
- FTP
- HTTP
* MessageChannel was moved from core to the base package.
* ChannelResolver moved from core to support.
* TcpConnectionInterceptorFactoryChain was incorrect.
Initial commit - TODO: namspace.
Saves off Set-Cookie header in http_transferredCookie MessageHeader.
Transferred cookies are converted to Cookie: headers on subsequent
outbound messages, thus handling 3 or more interactions.
INT-2035 Namespace, Docs
Change boolean name; add namspace and documentation.
INT-2035 Docs
Added docs for cookie handling.
INT-2035 Polishing
Simplify implementation to just transfer Set-Cookie to
Cookie in the inbound side.
INT-2035 XSD Docs
Updated to reflect new implementation.
Added a WARN log message to HttpRequestExecutingMessageHandler.
The warn message will let the user know that the 'extractPayload' attribute is meaningless if the provided 'httpMethod' will not send a request body.