Commit Graph

7591 Commits

Author SHA1 Message Date
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
Artem Bilan
67f8ea1336 INT-3375: Docs for Messaging Annotations
JIRA: https://jira.spring.io/browse/INT-3375

INT-3375 Doc Polishing
2014-04-29 09:20:07 -04:00
Artem Bilan
34cc492942 INT-3381: Messaging Annotations on @Bean Method
JIRA: https://jira.spring.io/browse/INT-3381

* Add support to mark `@Bean` methods with `Messaging Annotations`
* Addition attributes for `Messaging Annotations`
* Some refactoring and fixing
* Fix `AbstractMappingMessageRouter#onInit()` propagation
* Fix `GemfireGroupStoreTests` (https://build.spring.io/browse/INT-MASTERSPRING40-JOB1-246/test/case/135235772)

There is still some side effect: we need define `MessageChannel` beans explicitly. Since methods are processed within `BPP`,
not all beans with `Messaging Annotations` might be processed.

INT-3381: PR comments and other fixes

INT-3381 Polishing

INT-3381: Revert `RouterFB` & `SplitterFB`
2014-04-29 09:16:11 -04:00
Gary Russell
3e0f10a657 INT-1956 TCP: Emit Stream Decoding Events
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.
2014-04-28 23:57:53 +03:00
Gary Russell
9f61464974 Fix Project URL in README 2014-04-26 11:09:10 -04:00
Gary Russell
47d47fb735 Fix JavaDoc on CompositeFileListFilter
Implied that the filter would pass if *any* of its filters
did, when it actually only passes if *all* of it filters do.
2014-04-25 18:41:43 -04:00
Artem Bilan
38f9cb8500 INT-3380 Add @Bean's @BridgeTo, @BridgeFrom
JIRA: https://jira.spring.io/browse/INT-3380

INT-3380: Polishing

INT-3380: Refactoring

Minor JavaDoc Polishing
2014-04-25 14:31:11 -04:00
Gary Russell
9c23aa04fe INT-3389 GemFire i-c-a expression Docbook
JIRA: https://jira.spring.io/browse/INT-3389
2014-04-25 19:36:55 +03:00
Gary Russell
5522b99741 INT-3382 Support Easier Aggregator Extensions
JIRA: https://jira.spring.io/browse/INT-3382

- Make private methods protected; add protected getters
- Support obtaining just metadata from stores
- Support just fetching the first message from a group
- add metaSize() to message group

INT-3382: Polishing
2014-04-25 19:32:28 +03:00
Gary Russell
5e106f20dc INT-3378 Bump Spring-AMQP to 1.3.2
JIRA: https://jira.spring.io/browse/INT-3378

Adds a default error handler that rejects messages that
can't be converted and would cause an infinite loop.
2014-04-24 17:43:03 -04:00
Artem Bilan
67730726e9 INT-2879: JPA Retrieving: Add id-expression
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`
2014-04-24 17:26:23 -04:00
Artem Bilan
4180e8b4f2 INT-2464: Add Mapping Method Args Examples to Docs
JIRA: https://jira.spring.io/browse/INT-2464

INT-2464 Doc Polishing
2014-04-24 16:06:06 -04:00
Gary Russell
24f176c897 INT-3376 Support Meta-Annotation Att. Override
JIRA: https://jira.spring.io/browse/INT-3376

Allow user annotations with Messaging Meta-Annotations
override/supplement attributes set on the meta-Annotation.

PR Comments and More

- Do not create a bean definition for the annotation (interface)
when `MessagingGateway` is used as a meta-Annotation.
- For a `MessagingGateway` restore attributes overridden with empty values
- Other PR comments.

Fully support meta-Annotation hierarchy.

Polishing:

* Upgrade JRuby to 1.7.12
* Replace `AnnotationFinder` with moving its methods to `MessagingAnnotationUtils`
* Refactor aggregator classes to use `MessagingAnnotationUtils` to determine the method for annotation
* Fix `IntegrationComponentScanRegistrar` to skip annotation classes
* Fix `MessagingGatewayRegistrar#replaceEmptyOverrides`
* Improve `MessagingAnnotationPostProcessor` to use `ReflectionUtils.USER_DECLARED_METHODS` `MethodFilter`
* Change the `MethodAnnotationPostProcessor` hierarchy to use just list of annotations to process attributes
2014-04-24 21:56:58 +03:00
Artem Bilan
97d1d389a9 INT-3065: Add tweet-data-expression for Update
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).
2014-04-24 14:29:55 -04:00
Gary russell
9052377bf5 INT-3385 AMQP Support MANUAL Ack Mode
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
2014-04-24 18:04:56 +03:00
Artem Bilan
d2e83e8280 INT-3311,INT-3377: Update Spring-* Dependencies
JIRA: https://jira.spring.io/browse/INT-3377
      https://jira.spring.io/browse/INT-3311

Resolve SD-Mongo deprecations
2014-04-24 10:59:12 -04:00
Andy Wilkinson
4c495a3bf5 Update tests to be compatible with Spring Web Services 2.2
Spring Web Services 2.2 added a new method, afterCompletion, to
ClientInterceptor. To allow Spring Integration's tests to be run
successfully against Spring Web Services 2.2, this commit adds empty
implementations of this method to two test implementations of the
interface.
2014-04-24 13:44:16 +01:00
Gary Russell
aeeb9db4f6 INT-3379 - Allow Placeholders for Enums
JIRA: https://jira.spring.io/browse/INT-3379

Change enumerated attributes to a union with xsd:string
to allow placeholders.

JMS and XML deferred to 4.1 due to the amount of
changes needed to the parsers. See INT-3384.
2014-04-23 13:58:00 -04:00
Gary Russell
d2f3aa95a7 JMS Docbook Polishing
Clarify the use of a `TemporaryQueue` with a `<reply-listener/>`
only applies when no `reply-destination` is provided.
2014-04-17 17:34:11 -04:00
Gary Russell
7dc9c6b983 INT-2586 FTP Session Factory: Expose Timeout Props
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.
2014-04-17 14:35:09 +03:00
Gary Russell
42130246e1 INT-2974 Document Context Lifecycle + Fix
JIRA: https://jira.spring.io/browse/INT-2974
JIRA: https://jira.spring.io/browse/INT-3071
2014-04-17 14:32:06 +03:00
Gary Russell
0a7365d6c2 INT-2076 Polish (S)FTP Filter Docbook
JIRA: https://jira.spring.io/browse/INT-2076
2014-04-16 15:17:53 -04:00
Gary Russell
2610cda10e INT-3377 Update Quick Reference Table
JIRA: https://jira.spring.io/browse/INT-3357
2014-04-16 21:25:12 +03:00
Gary Russell
17c6f8a350 INT-3372 Add NamedComponent to Remaining MsgSrcs
JIRA: https://jira.spring.io/browse/INT-3372
2014-04-16 21:23:45 +03:00
Andy Wilkinson
c4a7d22a35 Specify group and module for all exclusions in non-test configurations
Gradle will only include an exclusion in a generated pom file if both
a group and module are specified. Test dependencies are not included
in generated pom files so they are not a concern.

This commit updates all non-test exclusions to specify both a group
and a module.
2014-04-16 10:05:11 +01:00
Spring Buildmaster
6bd3f140f7 [artifactory-release] Next development version 2014-04-15 12:54:38 -07:00
Spring Buildmaster
bce9f4bad8 [artifactory-release] Release version 4.0.0.RC1 2014-04-15 12:54:31 -07:00
Gary Russell
8d6aa0fb1e INT-3374 Fix Package Tangle; Part II
JIRA: https://jira.spring.io/browse/INT-3374

Move `getMessageBuilderFactory` from `IntegrationContexUtils`
to `IntegrationUtils`.

Change DOS Newlines to Unix

`AbstractMessageGroupStore`.
2014-04-15 14:08:14 -04:00
Gary Russell
7dabf749c6 INT-3374 Fix Package Tangle; Part I
JIRA: https://jira.spring.io/browse/INT-3374

`DefaultDatatypeChannelMessageConverter`

Move `getConversionService()` from `IntegrationContextUtils`
to `IntegrationUtils` in `support.utils`.
2014-04-15 13:33:24 -04:00
Artem Bilan
348c5511b8 @Ignore transiently MQTT broker tests 2014-04-15 20:27:55 +03:00
Artem Bilan
18920851d3 INT-3373: Make Messaging Annotations as Meta
JIRA: https://jira.spring.io/browse/INT-3373

Allow messaging annotations to be used as
meta annotations.
2014-04-15 12:42:47 -04:00
Gary Russell
66fe1c74be INT-2352 Support Control-Bus Atomic Router Updates
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
2014-04-15 18:56:23 +03:00
Artem Bilan
466af8a2f5 INT-2975: Add ValueExpression for Typed SpEL
JIRA: https://jira.spring.io/browse/INT-2975

INT-2975: Add `type` attr. for enricher property

INT-2975: Check for `type`, polishing, docs

Enricher: deprecate property expression type attr
2014-04-15 11:13:37 -04:00