JIRA: https://jira.spring.io/browse/INT-3420
New documentation implied that if `expire-groups-upon-timeout`
was true, the group would NOT be removed if the group
was released by the release strategy in `forceComplete()`.
"...if it does so, then expiration is controlled by..."
In fact, `afterRelease()` (which is where `expire-groups-upon-completion`
is only invoked if `expire-groups-upon-timeout` is false.
Clarify that if the release strategy releases the group during timeout
then the group will always be expired if `expire-groups-upon-timeout` is
true (default).
JIRA: https://jira.spring.io/browse/INT-3471
- Make final fields protected so they are available to subclasses
- Add property `removeOnGet` allowing the map entry to be removed immediately when it is used
- Add `time-to-live-expression` allowing override of the reaper delay
Polishing
Conflicts:
src/reference/docbook/whats-new.xml
JIRA: https://jira.spring.io/browse/INT-3465
Add support for adding/removing individual recipients to the RecipientListRouter
Modify documentation in what's new and spring-integration-4.1.xsd
Polishing
`AbstractRemoteFileOutboundGateway`: close `outputStream` before `file.delete()` to release exclusive file-lock
JIRA: https://jira.spring.io/browse/INT-3420
Add option to allow the empty group to remain after timeout
so late arriving messages can be discarded.
INT-3420 Add Callout Hyperlinks
The aggregator configuration documentation had hyperlinks
from the attribute descriptions to the attribute in the
XML, but not vice-versa. For a large number of attributes
such as this, bi-directional hyperlinks are useful.
INT-3420 Doc Polishing
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-3433`
If a read fails due to insufficient threads, delay the read
for (default 100ms) - do not re-enable OP_READ until that
time has elapsed. Avoids spinning the CPU.
INT-3433 More Polishing
If the assembler couldn't execute a new assembler after assembling
the current message (when it detected there is more data), in the
finally block it would "continue" only if the socket was still
open.
The test case closes the socket after sending 4 messages so when
this condition occurred, the assembler failed to continue and
data was left in the buffer.
Remove the `isOpen()` check in the finally block and always continue
if there's not another assembler running and there's data available.
INT-3433 More Polishing
We can still get starvation if the selector is in a long
wait (in select()) when a read is delayed.
Whenever a read is delayed, wake the selector so its next
select will use the readDelay timeout.
INT-3433 Reference Docs
Also remove Thread.yield().
Revert redundant boolean return from `TcpNioConnection#checkForAssembler()`
JIRA: https://jira.spring.io/browse/INT-3430
Add an option to eagerly connect to rabbit when
only using outbound endpoints. Log an ERROR
if the connection can not be established during
context initialization.
Polishing
JIRA: https://jira.spring.io/browse/INT-3383
The family of Message.(set|get)Properties methods has been factored out
of Smack as an extra extension. Use JivePropertiesManager as replacement.
It is no longer necessary to supress Smack path warnings.
Delete custom smack-config.xml, as all it did was disabling
certain (important) SASL mechanisms. Also remove the unit test that
verified this.
Some unit tests mock ChatManager and Chat for no reason, delete
those lines.
XMPPConnection.getHost() and .getPort() are only valid after the
connection got established, due the fact that those information is
often only available after a DNS SRV lookup was performed. Remove the
lines in unit tests that verified their value.
Remove the truststorePath example in documentation, since Smack 4.0 no
longer provides support for providing a custom truststore. Instead
ConnectionConfiguration in Smack 4.0 allows to set a custom SSLContext
(which then again can provide a TrustManager that uses a custom
truststore).
JIRA: https://jira.spring.io/browse/INT-3410
When running a fixed thread pool with a bound queue,
and CALLER_RUNS execution rejection policy, it
was possible to deadlock the IO selector thread.
Add a `CompositeExecutor` to use different threads for
IO to those used for message assembly.
Add a `CallerBlocksPolicy` to block the invoking thread
(for a specified time) if the pool is exhausted.
Add documentation.
Polishing
Reference docs in preface mention Spring Integration compatibility with
Java 8, once it's released. Since Java 8 is released, the extra note is
no longer relevant and should be removed.
This patch removes no longer relevant note of pending Java 8 release.
JIRA: https://jira.spring.io/browse/INT-3400
JIRA: https://jira.spring.io/browse/INT-1956
Emit an application event when a decoding exception
occurs, allowing the user to examine the buffer
at the time the exception occurred.
INT-1956: Polishing
Polishing
Use `OP_READ` instead of `readyOps()` when removing interest.
Polishing - Fix ConnectionTimeoutTests
Test publisher was casting all events to TcpConnectionEvent.
JIRA: https://jira.spring.io/browse/INT-2879
* Add `id-expression` attribute for the `<int-jpa:retrieving-outbound-gateway>`
* Make it mutually exclusive with other `SELECT` attributes
* Remove deprecated `max-number-of-results`
INT-2879 Polishing
- Improve parser error message.
- Minor doc polish.
INT-2879: Support `delete-after-poll` and `flush`
JIRA: https://jira.spring.io/browse/INT-3065
Improve `TwitterSearchOutboundGateway` to use an expression
to build the tweet instead of just using the payload (which
remains the default).
JIRA:https://jira.spring.io/browse/INT-3385
MANUAL was supported in the schema, but there was no
mechanism for the application to ack.
Polishing
- Fix tests
- Add integration test
- More documentation
JIRA: https://jira.spring.io/browse/INT-2586
Add timeout properties to the `DefaultFtpSessionFactory`
avoiding the need to subclass it just to set these
common properties.
JIRA: https://jira.spring.io/browse/INT-2352
Add `replaceChannelMappings()` to the `AMMR`.
INT-2352 Polishing - PR Comments
Consolidate tests.
Fix up `@ManagedAttribute` Vs `@ManagedOperation`
Expose `setChannelMappings` over JMX
JIRA: https://jira.spring.io/browse/INT-3338
INT-3338: Add Docs
INT-3338: Make `priority` 'smart'
Add `Sort` for all group queries dependently of `priorityEnabled`.
Avoids the need to configure separate collections for different type of `MessageStore`
INT-3338: Add `MongoDbChannelMessageStore`
INT-3338: Polishing, Fixes, Improvements
Doc Polishing
Fix stream test.
JIRA: https://jira.spring.io/browse/INT-1939
Outbound gateway to allow on-demand variable searches.
Also add the `page-size` attribute to inbound adapters (previously
hard-coded to 20).
Also the inbound adapters now `require` a `TwitterTemplate` because even
search requires authentication.
Polishing - PR Comments
- Bump to spring-social-twitter 1.0.0.RC1
- Remove `requires-reply`
- Polishing
- Add integration test
INT-1939 Doc and Rework
Now supports up to 4 search args (as well as a
SearchParameters).
INT-1939: Polishing
JIRA: https://jira.spring.io/browse/INT-3351
INT-3351: Polishing according PR comments
* Add `property-placeholder` support for `@Poller`
* Change `ref` to `value`
* Add JavaDoc for `array` workaround
* Add docs
INT-3351: Polishing and fixes
INT-3351 More Tests
INT-3351: PR comments
INT-3351 Final Polishing