JIRA: https://jira.spring.io/browse/INT-3581
Move schemas to 4.2.
Add `selector-expression` to `<wire-tap/>`.
INT-3781: Fix What's New
Bump Namespace Version to 4.2
JIRA: https://jira.spring.io/browse/INT-3598
- Force the first two constructor args to be of type `String`.
- When no client factory, add one in the parser rather than selecing an alternate ctor.
JIRA: https://jira.spring.io/browse/INT-3547
JIRA: https://jira.spring.io/browse/INT-3546
INT-3486 changed stop(Runnable) so that it could be
overridden by subclasses, to allow separation of the
`stop()` and `callback` invocation.
However, the refactoring changed the logic such that
the `running` field is not reset, causing `doStop()` to
be called even when the component was not running.
Reset the running field.
Also, the MQTT inbound channel adapter did not test
for a `null` `client` in `doStop()`.
JIRA: https://jira.spring.io/browse/INT-275
In addition fix the `Lifecycle` issue in the `ServiceActivatorAnnotationPostProcessor`
Add Namespace support, Addition tests
and fix some typos in the XSD
INT-275: Fix failed tests
INT-275: Fix for `replyChannel` Header
Add `sync` reply test-case
INT-275: Make `ScatterGatherHandler` sync
Fix some `MessageHandler`s from `SmartLifecycle`
INT-275: Fix `ScatterGatherHandler.handleRequestMessage` logic
INT-275: Fix `ScatterGatherHandler` JMX proxying issues
* Make `AbstractCorrelatingMessageHandler.getMessageStore()` as `public`
* Move `ScatterGatherHandlerIntegrationTests` to the JMX module to be sure that `ScatterGatherHandler`
works well with `@EnableIntegrationMBeanExport`
* Add xml config sample how to use an internal gatherer's `MessageStore` in the `MessageGroupStoreReaper`
* Add `What's New` notice
https://build.spring.io/browse/INT-MJATS41-38
Use `TemporaryFolder` for `BackToBackAdapterTests#testAsyncPersisted()`
to avoid concurrent builds cross-talk.
There is no need to do anything around the Paho `FileLock`, because the code looks like in the `MqttAsyncClient`:
```
this.persistence.open(clientId, serverURI);
this.comms = new ClientComms(this, this.persistence);
this.persistence.close();
```
So, the lock is released before the real connect to the Broker.
JIRA: https://jira.spring.io/browse/INT-3467
Add methods and managed operations to the inbound
channel adapter to allow the subscribed topics to be
changed at runtime, programmatically, or using a
control-bus.
JIRA: https://jira.spring.io/browse/INT-3468
Provide an option to not block when sending and emit
events for sends and delivery confirmations.
Also use the async client for the inbound adapter; while
it doesn't make any performance difference, it does
allow us to timeout the disconnect, which we have seen
to cause hangs on the CI servers.
INT-3468 Polishing - Use Events; Add Docs
INT-3468 Doc Polishing
INT-3468 More Polishing - PR Comments
- Only emit delivered event if async
- Add clientId and a new instance counter to events
INT-3468 Polishing
- Pull client instance up to the abstract class and remove references to the Paho implementation from the events
- Improve tests to include a second client
INT-3468 Fix Test Case
Incorrect classname meant the default location for the application
context config was not found on case-sensitive file systems.
Also, don't auto-start the adapters in the context, in case
the broker is not running.
INT-3468: Polishing
INT-3468 Fix Package Tangle; Add 'async-events'
Add an option (default false) to emit events when async is true.
JIRA: https://jira.spring.io/browse/INT-3469
Previously, the callback was set immediately after
subscribing which caused a small possibility of
message loss.
Set the callback before subscribing.
JIRA: https://jira.spring.io/browse/INT-3374
Move `getMessageBuilderFactory` from `IntegrationContexUtils`
to `IntegrationUtils`.
Change DOS Newlines to Unix
`AbstractMessageGroupStore`.
JIRA: https://jira.spring.io/browse/INT-2738
Add a `getComponentType()` method for all handlers,
message producers, and message sources that implement
`NamedComponent` (see `SPCA.getComponentType()`).
Add rome as an optional dependency - STS complained
because AtomFeedHttpMessageConverter has a dependency
on it.
JIRA: https://jira.spring.io/browse/INT-3349
Several FactoryBeans did not propagate the BeanFactory
to their created object(s). Beans that create messages
must have access to a bean factory to get the
message builder factory.
Fix the FactoryBeans and add a mock FB to all tests that
need one.
Add a runtime environment variable to make any infractions
fatal. This should be set to `true` on CI builds and on
framework developer environments.
JIRA: https://jira.spring.io/browse/INT-3336
Disconnect the client after verifying the broker is available.
Change the rule to a class level rule in DownstreamExceptionTests.
JIRA: https://jira.spring.io/browse/INT-3336
Previously exceptions thrown in a flow downstream of a
message-driven-channel-adapter were not logged and thrown
back to the client, causing the connection to drop and
reconnect.
Add `error-channel` to the adapter to allow normal
error handling. If no error channel, catch and log
the unhandled exception.
Add `adapter.stop();` in the end of 'real' tests to close the mqtt-connection
This is still a work in process.
There are a bunch of TODOs in classes
that are not managed by Spring and so
need to have the MessageBuilderFactory
injected.
But I am looking for feedback on the
approach.
INT-3309 Resolve TODOs
Provide access to the MessageBuilderFactory in all classes.
INT-3309 Polishing + Tests
* Fallback to 'fromMessage()' if mutating and inbound message is not MutableMessage
* Add 'alwaysMutate' boolean to MutableMessageBuilderFactory - coerces 'fromMessage' calls to 'mutateMessage'
* Add tests
INT-3309 Polishing; PR Comments
Also add tests to parent/child contexts where the parent has the
default message builder and the child has a mutable message builder.
INT-3309 More Polish; PR Comments
Also fix removeHeader in MMB.
JIRA: https://jira.springsource.org/browse/INT-3274
* Change the `libs-snapshot` repository to `libs-milestone`
* Add condition on `project.version` to check `BUILD-SNAPSHOT` release category
and enable `libs-snapshot` repository
* Remove redundant directories from `mqtt` module
* and one more project property for Spring AMQP version
To test it om master:
1. `gradle.properties -> version=4.0.0.M3`
2. `gradlew clean test --refresh-dependencies -PspringAmqpVersion=1.2.1.RELEASE`