https://jira.springsource.org/browse/INT-3004
Previously, reply messages were silently ignored if the request thread
times out or caught an exception, or had already handled a reply.
Add a WARN log if the client times out or catches an exception,
or has already received a reply.
Optionally make these fatal; at this time, we are not exposing
this boolean on the namespaces see INT-3005.
Polishing - PR Comments
INT-3004 Polishing
Change MessagingTemplate property to throwExceptionOnLateReply.
Previously, the `ApplicationEventListeningMessageProducer` accepted
all `ApplicationEvent`'s and than filtered them.
This caused some `ApplicationEventMulticaster.retrieverCache` overhead.
* Improve `ApplicationEventListeningMessageProducer` to `implements SmartApplicationListener`.
This allows filtering earlier on first the appropriate `ApplicationEvent`
using `ApplicationEventListeningMessageProducer#supportsEventType`
and caching the `ApplicationListener` only for that `ApplicationEvent`.
* Re-register `ApplicationEventListeningMessageProducer` in the `ApplicationEventMulticaster`
when `ApplicationEventListeningMessageProducer#setEventTypes` is invoked
to clear the `ApplicationEventMulticaster.retrieverCache`.
* Move `org.springframework.integration.gemfire.inbound.SpelMessageProducerSupport` to core `ExpressionMessageProducerSupport`.
* Add test for the new logic int `ApplicationEventListeningMessageProducer` and its behavior with respect to the `ApplicationEventMulticaster.retrieverCache`.
JIRA: https://jira.springsource.org/browse/INT-2935
INT-2935: EMPS JavaDoc & AELMP ReadWriteLock
INT-2935: AELMP#eventTypes changing 'barrier'
INT-2935: avoid 'eventTypes' mutation afterwards
INT-2935: Polishing according PR comments
INT-2935: Fix NPE in the `setEventTypes`
Minor Polishing
Polish java docs/comments
Remove compiler warnings
Previously, when a MessageHandlerAdvice is applied to something
other than a MessageHandler, the advice was silently skipped.
Add a WARN log message that warns that the advice is not applied.
Add a test case that ensure the log is emitted when the
advice is applied to a Poller.
https://jira.springsource.org/browse/INT-3002
The AMQP outbound endpoint behaves differently when configured
as a gateway compared to when it is configured an adapter.
With the adapter, the header mapper is invoked after the message
converter (via the MPP callback).
With the gateway, the mapper is invoked before the converter.
The SimpleMessageConverter unconditionally sets the content-type,
overriding any mapped content type.
Change the code to invoke the header mapper after the converter
to match the adapter logic.
Remove the TODO. The method now exists, but Using a MPP in the
gateway case does not provide access to headers on the reply.
Add test cases.
Expressions (routing key, exchange, correlation data) did
not resolve beans. Need to add the BeanFactory (if present)
to the MessageProcessors.
Add test case.
The TcpNioConnection uses an internal InputStream.
The standard deserializers only use the read() method.
Custom Deserializers might use read(byte[]); the
internal InputStream did not override these methods, possibly
causing the deserializer to hang awaiting data, when none
was coming.
Override these methods, with the appropriate semantics
from the super class...
- Block until at least one byte arrives.
- Return early if no data is available after at least one byte arrives.
- Return -1 if closed when no data arrived.
- Return the number of bytes actually read.
Polishing - PR Comments remove read(byte[]) because it doesn't do
anything different to the superclass method.
Compatibility with SF 3.2.2
Previously the filter returned a Collections.singletonList() when
a match is found.
Spring 3.2.2 attempts to sort the results of MethodFilter.filter()
which fails because the list is immutable.
Continue to return Collections.emptyList() with no match; this
does not cause the sort to fail.
Several tests in MethodInvokingMessageProcessorTests reproduce this
problem with Spring 3.2.2.
Add a test to confirm the Collections.emptyList() does not cause
any problems.
Use latches and the new CLOSE event instead of arbitrary waits for
sockets to close.
Factor out common test code into setup methods.
removed system.out
modified per Artem's comments and added pub-sub to support inbound taps
Modified tap to use provided wiretap on inbound channels. Tap on outbound not supported
Changes to support conditional shared channel creation and the ability to share a registered channel for inbound() and outbound()
TestUtils exists in both s-i-test and in src/test... in
s-i-core.
Gradle import caused the file module to use the one in
core that was missing a method.
We should look at a better solution but for now, this
commit syncs the two versions.
Also polished to fix white space violations.
The `<http:outbound-channel-adapter>` and `<http:outbound-gateway>` now provide
an `encode-uri` option that controls whether the request uri is encoded
(default `true`).
It can be useful in some scenarios with a non standard URL, e.g. RabbitMQ REST API:
'http://foo.RabbitMQ.com/api/queues/%2f/bar.queue' where we must not
encode the '%'.
https://jira.springsource.org/browse/INT-2455
INT-2455: Polishing based on PR comments
INT-2455: 'encode-uri' in the Reference Manual
Add Jackson 2 support while retaining backward compatibility as much as possible.
Introduce a new abstraction for JSON conversion.
JIRA: https://jira.springsource.org/browse/INT-2831
INT-2831: Polishing
* remove `JsonObjectMapperFactoryBean`
* add @Deprecated constructors to `ObjectToJsonTransformer` and `JsonToObjectTransformer`
Polishing
Docs, compiler warnings.
Missing else clause caused filtered email messages to
still be marked as SEEN. Also marked un-filtered messages
twice if a filter was present.
Add else; add tests.
Sporadic test failures (fairly consistently on Mac).
Problem was some tests sent a message to a client socket before the
close notification had been received.
Wait for client connection to close rather than waiting for the
server to stop.
Also, with NIO, close the channel on accept exception.
Also improve debugging by including a log of new connections
including the id.
Use the port finder to find an available port; using
hard-coded ports can cause issues with concurrent builds.
One test found a port in the XML but was still hard-coded
in the test itself rather than retrieving the port from
the adapter.
Also, stop the adapters when tests complete.
* Add Join to JDBC Query
* Add MySql-specific tests
* INT-2987 - MessageStore MySQL - Support Fractional Seconds
- Update MySql Connector version to 5.1.24
- Add DDL scripts for MySql versions 5.6.4 and higher
INT-2980 - Check also for Regions
* Add test
INT-2980/INT-2987 - Add Documentation
INT-2980 - Doc: Add info to What's New Section
* (S)FTP Change Commands, Options to Enums
* INT-2981 Add Support For 'mv' To File/Remote/GW
* INT-2981 (S)FTP Namespace Support and Docs
* INT-2981 Create Remote Dirs if Needed
* INT-2981 Add 'mv' Command to What's New
* INT-2981 Polishing - PR Comments
* Add javadocs to enums.
* Polish schemas to use an enumerated type for available gateway commands
* Upgrade Derby test dependencies to 10.9.1.0
* Due to test-failures switch from using the embedded-database namespace support for Derby to explicitly configured DataSource beans (DriverManagerDataSource)
For more details see: https://jira.springsource.org/browse/INT-2992