JIRA: https://jira.spring.io/browse/INT-3829
Alongside with the `@Bean` definition we can use, for example, `@Profile` `@Conditional` annotation.
And the final bean won't be populated to the context.
When messaging annotations are present on `@Bean`s, a second bean for the endpoint consumer
is created.
Previously, the `MessagingAnnotationPostProcessor` did not check if the `@Bean` was present;
hence we ended up with a `NoSuchBeanDefinitionException`
* Add appropriate `try...catch(NoSuchBeanDefinitionException)` to the `AbstractMethodAnnotationPostProcessor` and
`InboundChannelAdapterAnnotationPostProcessor` to skip further endpoint processing if the bean does not exist.
Add DEBUG message for the skipped beans
Polishing
JIRA: https://jira.spring.io/browse/INT-3826
Application Context would not initialize with annotation without attributes.
Defaults were wrong; metrics factory bean name.
Make `IntegrationManagementConfigurer` more robust for the external options
JIRA: https://jira.spring.io/browse/INT-3820
Some Proxy may be based on the specif non-user classes and advised with
the provided end-user interfaces.
The best sample is `@Repository` from Spring Data projects.
In this case the `MessagingMethodInvokerHelper` just missed the user interfaces
to consider for the candidate methods or thrown an `Exception` like `NoSuchMethodError`.
* Add `((Advised) targetObject).getProxiedInterfaces()` for the scanning algorithm
* Move the `UniqueMethodFilter` to the internal `Set<Method>` to allow iteration
and filtering for methods from the `targetClass` as well as from all those user interfaces
* Add Spring JPA repository test-case
* Polishing form some time-weak tests
Revert MessagingMethodInvokerHelper
INT-3820: Simple Proxy Interface Method Matching
No-risk solution for INT-3820.
Instead of considering all interfaces on the proxy, only look at proxy interfaces
for a single matching method name if we find no candidate or fallback methods.
Consider the complete solution for 4.3.
Add `Message<?>` method distinguishing
JIRA: https://jira.spring.io/browse/INT-3821
The `MessagingException` provides an empty String for its `NestedRuntimeException`
for those ctors which are without `description` argument.
The `NestedRuntimeException` uses `NestedExceptionUtils.buildMessage` for `getMessage()` implementation
and the algorithm there is based on the `message != null` condition to build the first part of the nested
cascade. In the case of empty String we end up with useless ";" part in the StackTrace logs.
Fix Framework classes to use the `MessagingException` ctor with particular description.
JIRA: https://jira.spring.io/browse/INT-3803
Revert changes made by the last commit for the `INT-3802`
and mark Deprecated `Suppliers` usage with the `@SuppressWarnings("deprecation")`
JIRA: https://jira.spring.io/browse/INT-3802
For publisher confirms and returns, the `RabbitTemplate` now checks for a
`CachingConnectionFactory` which can't be mocked/stubbed.
Convert the mock tests for these features to real broker tests.
Also see AMQP-524.
Also, the lifecycle attributes were missing from the AMQP outbound endpoints.
Fix a couple typos in the AMQP xsd.
Fix deprecation since Reactor-2.0.5
JIRA: https://jira.spring.io/browse/INT-3801
NPE if the server is stopped before it fully started.
Also fix SOLinger tests.
Fix `ConnectionFactoryTests` for Java < 8 compatibility
JIRA: https://jira.spring.io/browse/INT-3800
If the server port is 0, return the actual port after the factory is started.
Also add more TCP Test Diagnostics.
Part 1 - eliminate references from support to other packages
Part 2 - handler to aggregator/router
- move BarrierMH to aggregator
- Fix ScatterGather references
Part 3 - move TrackableComponent
- to support.management
Part 4 - class tangles
- TcpConnectionServerExceptionEvent
- RecipientListRouterManagement
INT-3799: Polishing
JIRA: https://jira.spring.io/browse/INT-3619
Previously the `FileReadingMessageSource` allowed overriding `filter` and `locker` properties
on the `scanner` through its own setters.
It caused confusing and unexpected behavior.
Provide refactoring to check that provided `filter` and `locker` are applied for an internal `scanner`
instance, not for the injected one.
PR Comments
Race condition in `ServerSocket`; the `accept` thread is exiting due to the
close, but it still accepted a new message.
All tests need to wait until the server has stopped listening (as well as
waiting for the close to be propagated to the client).
JIRA: https://jira.spring.io/browse/INT-3778
* Add Namespace support for STOMP adapters
* Document the STOMP module
* Fix race condition in the `AbstractStompSessionManager`
* Add `handleTransportError` to the `StompInboundChannelAdapter` and `StompMessageHandler` to log errors during STOMP interactions
* Fix `StompMessageHandler` to handle `RECEIPT` in case of `RECEIPT` header existence, not the common `autoReceipt` option
which can be disable, but the `RECEIPT` header may be present in the message to send
* Increase logging level for the STOMP tests to trace sporadic failures on the CI Server
* Fix several typos
INT-3778: Doc Polishing
JIRA: https://jira.spring.io/browse/INT-3796
When a `UserInfo` is provided, use it for the password and passphrase.
Disallow local properies when a `UserInfo` is provided.
Simple polishing and fixing `TestSftpServer` for the `this.server.stop(true);`
to avoid `port is already in use` for other tests which use default SSH port.
JIRA: https://jira.spring.io/browse/INT-3736
INT-3736: Polishing
INT-3736: Use o-c-a For Release
Avoids unusual parser logic, allows release channel to be of any type.
INT-3736: Schema Polishing
INT-3736: Polishing
- Add TriggerMessageHandler interface
- Use SyncQueue - suspend the trigger thread if the main thread hasn't arrived yet
- allows clean up of state regardless of whether just a trigger or suspend is processed
- reply-required
INT-3736: Polishing and Docs
Polishing code style and fixing typos in docs
JIRA: https://jira.spring.io/browse/INT-3796
Previously, the `DefaultSftpSessionFactory` unconditionally accepted keys
from unknown hosts, or when a host key changed.
Permit this behavior to be configured with `allowUnknownHosts` and/or a custom
`UserInfo` properties in the factory.
`allowUknownHosts` is false by default (since 4.2) and true by default in 4.1.x for
backwards compatibility.
INT-3796: Fix Tests
INT-3796: Polishing
JIRA: https://jira.spring.io/browse/INT-3795
Previously, a `CachingClientConnectionFactory` could wrap `FailoverClientConnectionFactory` instances.
It was not possible to wrap `CachingClientConnectionFactory` instances in a `FailoverClientConnectionFactory`.
The failover logic only failed over when an `IOException` occurred, whereas the CCCF wrapped the IOException
in a `MessagingException`.
- Catch all exceptions in the failover logic
- Add real TCP test cases for both scenarios
- test failover when a connection is closed
- test failover when the first factory cannot connect at all
INT-3795: Polishing - Fix Test Race
Revert `.travis.yml` changes