Commit Graph

9623 Commits

Author SHA1 Message Date
John Anderson
05f5011654 Fixed infinite loop described in INT-3453. 2014-06-24 16:35:42 +04:00
Artem Bilan
d51185d464 INT-3451: Fix whats-new.xml
JIRA: https://jira.spring.io/browse/INT-3451
2014-06-23 11:39:12 +03:00
Gary Russell
24680deeb4 INT-3451 AMQP - 'missing-queues-fatal' Attribute
JIRA: https://jira.spring.io/browse/INT-3451

Add `missing-queues-fatal` attribute to the AMQP
inbound endpoints and AMQP-backed channel.
2014-06-23 10:01:23 +03:00
Gary Russell
3c063a265b INT-3433 Delay Failed IOs
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()`
2014-06-23 09:46:41 +03:00
JohnA2
69e20fc7db INT-3433 NIO Thread Starvation with Fixed Pool
JIRA: https://jira.spring.io/browse/INT-3433

INT-3433 added the test-case
2014-06-23 09:46:41 +03:00
Artem Bilan
119787f020 INT-3445: Fix PublisherRegistrar NPE
JIRA: https://jira.spring.io/browse/INT-3445
2014-06-21 11:33:21 -04:00
Artem Bilan
4b1eed27e3 INT-3442 RedisQMDE Delay stop Until Last Read
JIRA: https://jira.spring.io/browse/INT-3442

Previously `RedisQueueMessageDrivenEndpoint.stop()` returned immediately.
It caused an issue when one more `message` might be read and processed to stopped app.

* Introduce `AbstractEndpoint#lifecycleCondition` and wait on it from `RedisQueueMessageDrivenEndpoint.doStop()`
and `signal()` it from `ListenerTask`.
* Since everything is done around `lifecycleLock` the `RedisQueueMessageDrivenEndpoint.stop()` waits for the proper
'last' message process.
* Add tiny `Thread.sleep(1)` to the `popMessageAndSend` cycle to free `lifecycleLock` for other Threads, e.g. `stop()`

INT-3442: Get rid of `lock` from listener cycle

* Introduce `stopTimeout` to minimize the `stop` thread blocking
* If the message is returned after that timeout it moved back to Redis List using `RPUSH`

INT-3442: Addressing PR comments
2014-06-20 19:05:16 -04:00
Gary Russell
f4bd03440f INT-3444 Improve AMQP Endpoint Docs
JIRA: https://jira.spring.io/browse/INT-3444

- Add missing attributes.
- Explain about reply timeout for the outbound gateway.

INT-3444: Polishing
2014-06-20 19:09:23 +03:00
Gary Russell
8c27ff8701 INT-3420 Fix Broken Test
Test did not set (required) BeanFactory.
2014-06-19 11:53:03 -04:00
Artem Bilan
e8599c5541 INT-3416 Reset SMS.copyOnGet By Default
JIRA: https://jira.spring.io/browse/INT-3416

Fix the `SimpleMessageStoreTests`
2014-06-17 23:15:41 +03:00
Gary Russell
117669fb9a INT-3416 Reset SMS.copyOnGet By Default
JIRA: https://jira.spring.io/browse/INT-3416

Add caution to docs about users getting a hard
reference to the group instead of a copy.
2014-06-17 22:10:02 +03:00
Gary Russell
1df6d872fa INT-3430 AMQP Outbound: Add Eager Connect
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
2014-06-17 20:55:54 +03:00
Gary Russell
cf94a109b4 INT-3429 AMQP Publisher Confirm Config Improvement
JIRA: https://jira.spring.io/browse/INT-3429

Require a `confirm-correlation-expression` when a
`confirm-ack-channel` or `confirm-nack-channel` is
specified.
2014-06-17 20:38:18 +03:00
George Foster
7beac06317 Updating dead links in the contributing.md file.
INT-3443: Fix `CONTRIBUTING.md`

JIRA: https://jira.spring.io/browse/INT-3443

Removing the hashtag link from the URL as it wasn't being recognized by the browser.
2014-06-17 20:34:55 +03:00
Florian Schmaus
714db85681 INT-3383: Update to Smack 4.0.0
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).
2014-06-17 15:56:19 +03:00
Artem Bilan
ca2ce6adac INT-3431: Fix RecipientListRouter.onInit()
JIRA: https://jira.spring.io/browse/INT-3431

The introduced `late channel resolution by name` via https://jira.spring.io/browse/INT-3324
has lost `onInit()` propagation from `RecipientListRouter.onInit()`
2014-06-13 17:35:13 -04:00
Artem Bilan
f5145f531b INT-3418: Final Phase: Cleanup
INT-3418: use versioned XSDs for XSD import
2014-06-09 10:08:30 -04:00
Artem Bilan
77b31f58fd INT-3418: xsd-4.0 -> 4.1 2014-06-05 13:34:52 +03:00
Artem Bilan
c0ab912c49 INT-3418: xsd-3.0 -> 4.0 2014-06-05 13:34:41 +03:00
Artem Bilan
9e5e7514e0 INT-3418: xsd-2.2 -> 3.0 2014-06-05 13:34:30 +03:00
Artem Bilan
9bd441c8d0 INT-3418: xsd-2.1 -> 2.2 2014-06-05 13:34:19 +03:00
Artem Bilan
af1cd16027 INT-3418: xsd-2.0 -> 2.1 2014-06-05 13:33:57 +03:00
Artem Bilan
fa33f8f21d INT-3418: xsd-1.0 -> 2.0 2014-06-05 13:33:40 +03:00
Artem Bilan
cedbf6edc2 INT-3418: Prepare 4.1 VERSION
JIRA: https://jira.spring.io/browse/INT-3418

* Create 4.1 XSD
* Clean up Docs for 4.1
* Prepare WebSocket module
* Add Reactor dependency
* Remove Eclipse and SNV artifacts

Phase #1: prepare

Conflicts:
	gradle.properties
2014-05-30 21:14:21 +03:00
Spring Buildmaster
697afdae01 [artifactory-release] Next development version 2014-05-29 12:15:38 -07:00
Spring Buildmaster
f4c919002b [artifactory-release] Release version 4.0.2.RELEASE 2014-05-29 12:15:29 -07:00
Gary Russell
ddf89a08f0 Update to Spring AMQP 1.3.4, Groovy 2.3.1
Also change rabbit tests to use "localhost" explicitly;
newer brokers don't allow guest except on localhost.
2014-05-29 14:15:14 -04:00
Gary Russell
a5694cdc42 INT-3423 Fix Expression-Based Splitter
JIRA: https://jira.spring.io/browse/INT-3423

Consider a message containing "one one" and a splitter
with expression "payload.split(' ')", only one message
is emitted.

The default Collection created by SpEL is a HashSet.

Change the ExpressionEvaluatingSplitter to expect a
List instead of a Collection.
2014-05-29 12:11:07 -04:00
Spring Buildmaster
0c9dda45e3 [artifactory-release] Next development version 2014-05-22 07:33:12 -07:00
Spring Buildmaster
a093d57604 [artifactory-release] Release version 4.0.1.RELEASE 2014-05-22 07:33:00 -07:00
Artem Bilan
4c89d21195 INT-3403: Upgrade Spring IO Dependencies
JIRA: https://jira.spring.io/browse/INT-3403

* Upgrade to Gradle 1.12
* Make `schemaZip` Windows compatible

INT-3403: Fix the `replaceAll` logic

INT-3403: Apply SS & SWS releases
2014-05-22 08:35:38 -04:00
Gary Russell
1cc8d8c7f1 INT-3413 Emit Event When an Agg. Expires a Group
JIRA: https://jira.spring.io/browse/INT-3413

Add MessageGroupExpiredEvent with group metadata
such as message count, last modified, whether
the group was discarded or not.

Conflicts:
	spring-integration-core/src/test/java/org/springframework/integration/aggregator/AggregatorTests.java

Polishing
2014-05-22 13:32:16 +03:00
Gary Russell
f396b2a4b4 INT-3386 Improve Aggregator Performance
JIRA: https://jira.spring.io/browse/INT-3386

Eliminate unnecessary group copy during retrieval in the
aggregator. This is expensive with large groups.

Ensure that the reaper uses a snapshot of the group at the
time it is considered for reaping.

AggregatorTests.testAggPerf() -  before:

    AggregatorTests [main] : Sent 0 in 0.0 (10k in 0ms)
    AggregatorTests [main] : Sent 10000 in 4.872 (10k in 4872ms)
    AggregatorTests [main] : Sent 20000 in 16.86 (10k in 11988ms)
    AggregatorTests [main] : Sent 30000 in 36.809 (10k in 19949ms)
    AggregatorTests [main] : Sent 40000 in 65.045 (10k in 28236ms)
    AggregatorTests [main] : Sent 50000 in 100.329 (10k in 35284ms)
    AggregatorTests [main] : Received 60000
    AggregatorTests [main] : Sent 60000 in 143.106 (10k in 42777ms)
    AggregatorTests [main] : Sent 70000 in 147.027 (10k in 3921ms)
    AggregatorTests [main] : Sent 80000 in 158.664 (10k in 11637ms)
    AggregatorTests [main] : Sent 90000 in 177.956 (10k in 19292ms)
    AggregatorTests [main] : Sent 100000 in 205.045 (10k in 27089ms)
    AggregatorTests [main] : Sent 110000 in 240.005 (10k in 34960ms)
    AggregatorTests [main] : Received 60000
    AggregatorTests [main] : Sent 120000 in 282.566 (10k in 42561ms)

After:

    AggregatorTests [main] : Sent 0 in 0.0 (10k in 0ms)
    AggregatorTests [main] : Sent 10000 in 0.612 (10k in 612ms)
    AggregatorTests [main] : Sent 20000 in 0.925 (10k in 313ms)
    AggregatorTests [main] : Sent 30000 in 1.131 (10k in 206ms)
    AggregatorTests [main] : Sent 40000 in 1.288 (10k in 157ms)
    AggregatorTests [main] : Sent 50000 in 1.361 (10k in 73ms)
    AggregatorTests [main] : Received 60000
    AggregatorTests [main] : Sent 60000 in 1.522 (10k in 161ms)
    AggregatorTests [main] : Sent 70000 in 1.619 (10k in 97ms)
    AggregatorTests [main] : Sent 80000 in 1.696 (10k in 77ms)
    AggregatorTests [main] : Sent 90000 in 1.75 (10k in 54ms)
    AggregatorTests [main] : Sent 100000 in 1.81 (10k in 60ms)
    AggregatorTests [main] : Sent 110000 in 1.851 (10k in 41ms)
    AggregatorTests [main] : Received 60000
    AggregatorTests [main] : Sent 120000 in 1.918 (10k in 67ms)
2014-05-20 18:19:45 -04:00
Artem Bilan
39ef91ff84 INT-3408: Fix IRHolder TX-sync Inconsistency
JIRA: https://jira.spring.io/browse/INT-3408

* Add `TransactionSynchronizationFactoryBean`
* Introduce `IntegrationResourceHolderSynchronization`
to get deal with `IntegrationResourceHolder` for custom `TransactionSynchronization`
* Encapsulate `IntegrationResourceHolder` in the `DefaultTransactionSynchronizationFactory`
* Get deal with `IntegrationResourceHolder` and bind it to the `TransactionSynchronizationManager`
only if `TransactionSynchronization` from `transactionSynchronizationFactory`
is `synchronization instanceof IntegrationResourceHolderSynchronization`

INT-3408: Encapsulate binding in the `DefTxSyncF`
2014-05-20 16:00:07 -04:00
Artem Bilan
cda5a07aad INT-3405 JMSCorrelationID* for JMSOutboundGateway
JIRA: https://jira.spring.io/browse/INT-3405

Disallow `JMSCorrelationID*` with reply-container

Polishing; Docs, Test
2014-05-20 14:56:41 -04:00
Gary Russell
c5500a82fd INT-3410 TCP NIO Deadlock with Bound TE
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
2014-05-20 17:05:17 +03:00
Gary Russell
7ec1b3cc4c INT-3409 Update to Spring AMQP 1.3.3
JIRA: https://jira.spring.io/browse/INT-3409

Stub connection factory API changes.
2014-05-16 11:08:11 -04:00
Artem Bilan
157fc2a084 INT-3407: Fix TX-sync-processor potential NPE
JIRA: https://jira.spring.io/browse/INT-3407
2014-05-16 12:44:39 +03:00
Andy Wilkinson
11b87034c5 Add the Spring IO Platform plugin
INT-3396: Polishing

JIRA: https://jira.spring.io/browse/INT-3396

Updates for latest snapshots of the Spring IO plugin

Update the configuration to use the renamed plugin. Add a dependency in
the springIoVersions configuration that points to the versions published
by Spring IO.

Upgrade to 0.0.3.RELEASE

Upgrade the plugin version to 0.0.3.RELEASE. Only apply the plugin if
the platformVersion property has been set.

Polishing following upgrade to 0.0.3.RELEASE

- Remove reference to snapshot plugins repository
- Remove unnessary use of the springIoVersions configuration

Improve configuration of snapshot repository

Upgrade to latest SD to be consistent with IO
2014-05-15 15:13:23 +03:00
Gary Russell
8a44d4da0b INT-3399 Update spring-retry to 1.1.0
JIRA: https://jira.spring.io/browse/INT-3399

Fix `MessagingTemplate` javadoc warn
2014-05-14 09:23:55 +03:00
Gary Russell
a333d25e51 INT-3398 Polish Javadocs
JIRA: https://jira.spring.io/browse/INT-3398
2014-05-12 10:54:28 -04:00
Artem Bilan
faf104e608 INT-3394: Use Jedis Client in Tests
JIRA: https://jira.spring.io/browse/INT-3394

INT-3394: Restore `awaitContainerSubscribed`
2014-05-12 10:20:33 -04:00
Gary Russell
0e63ae0685 INT-3400 Fix Preface for 4.0.x
JIRA: https://jira.spring.io/browse/INT-3400

Preface showed 3.0.x compatibility instead of 4.0.x.
2014-05-07 09:33:45 -04:00
Stevo Slavic
1f50aaba7d Update preface docs for Java 8 compatibility
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
2014-05-07 10:36:55 +03:00
Gary Russell
f34eb52644 INT-3397 Add spring-integration-bom
JIRA: https://jira.spring.io/browse/INT-3397

Similar to Spring Framework's; see
https://spring.io/blog/2013/12/03/spring-framework-4-0-rc2-available
2014-05-01 10:11:42 -04:00
Spring Buildmaster
674f67348c [artifactory-release] Next development version 2014-04-29 09:09:15 -07:00
Spring Buildmaster
5743d7ec17 [artifactory-release] Release version 4.0.0.RELEASE 2014-04-29 09:09:07 -07:00
Gary Russell
d369103815 INT-3395 Restore MessagingTemplate Constructor
JIRA: https://jira.spring.io/browse/INT-3395
2014-04-29 11:00:59 -04:00
Gary Russell
a226eedf4b INT-3392 Fix Package Tangle
https://jira.spring.io/browse/INT-3392

`TcpDeserializationExceptionEvent` was incorrectly
in the connection package; move to serializer.
2014-04-29 10:31:51 -04:00
Artem Bilan
81aa7eabd3 INT-3393: Move Boot AutoConfig to Boot
JIRA: https://jira.spring.io/browse/INT-3393
2014-04-29 10:30:41 -04:00