- Needs to implement SmartLifecycle and delegate to the adapter
- Needs to implement ApplicationEventPublisherAware and configure the adapter
- Don't set TaskExecutor if null
https://jira.springsource.org/browse/INT-2951
Provide the context id in the 'Dispatcher has no Subscribers'
message.
Ease debugging when more than one context in an application.
INT-2951 Polishing
PR Comments - add quotes to context Id in log message.
Polishing
INT-2951 Polishing
Change IOS to have a simple getApplicationContextId() and
add a method getFullChannelName() to AbstractMessageChannel.
* Introduce XSD 'id' attribute for all `<chain>` sub-components
* Register `<chain>` sub-components as Beans with names based on `<chain>` 'id'
* Generate aliases for sub-components based on element 'id'
* Add `<chain>` parser test to check sub-components as Beans within `BeanFactory`
* Ignore `NestedChainParserTests` as abnormal and confused for SI-configs
* Now `<chain>` sub-components are trackable by `MessageHistory`
* Now `<chain>` sub-components are eligible for JMX export
* Polishing some failed tests
https://jira.springsource.org/browse/INT-2755https://jira.springsource.org/browse/INT-2321
INT-2755: Register as Beans only if 'id' provided
INT-2755: Set 'componentName' for handlers with 'id'
When components within `<chain>` are configured with an 'id' attribute
the 'componentName' of the handler is constructed as:
chainHandler.componentName + '.' + handler.componentName.
Otherwise it is as was before.
INT-2755: Polishing
INT-2755: changes according PR's comments
* Add INFO about preference of `id` attribute for `<chain>` in the `ChainParser`
* Change `<chain>`'s sub-components `id` generation algorithm
* Configure `<chain>`'s sub-component `componentName` in the `ChainParser` instead of in the `MessageHandlerChain`
* Add `componentName` property to the `JpaOutboundGatewayFactoryBean`
* Add a note to the Reference Manual
INT-2755: Localize duplicate 'id' within chain
INT-2755: remove child beans aliasing
* Polishing tests
* Polishing docs
INT-2755 Polishing: Handle Nested Chain Bean Names
Previously named beans within a nested chain did not get unique
bean names.
INT-2755: Polishing nested chains
Doc Polishing
See: https://jira.springsource.org/browse/INT-3011
INT-3011 Pass BeanClassLoader and BeanFactory to GroovyScriptFactory
INT-3011 Move 'implements BeanFactoryAware, BeanClassLoaderAware'
to AbstractScriptExecutingMessageProcessor and GroovyControlBusFactory
Two implementations:
- native 'tail' command (e.g. tail -F -n 0 /foo/bar)
- Apache commons-io Tailer
Further changes:
- Add documentation to section "what's new"
- Add a JUnit @Rule so the OSDFTMP test doesn't fail on Windows
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.