Commit Graph

393 Commits

Author SHA1 Message Date
Gary Russell
889c084151 INT-3499 AMQP Confirms/Returns Polishing
JIRA: https://jira.spring.io/browse/INT-3499

- Suppress (log) 'null' payload error when no correlation data
- Change tests to use a dedicated template for confirms/returns

Conflicts:
	spring-integration-amqp/src/test/java/org/springframework/integration/amqp/config/AmqpOutboundChannelAdapterParserTests.java
	src/reference/docbook/amqp.xml

Resolved.
2014-08-19 16:01:00 -04:00
Artem Bilan
3113b69a87 INT-651: Add Iterator Support for Splitter
JIRA: https://jira.spring.io/browse/INT-651

INT-651: Polishing according PR comments

INT-651: Polishing #2

Doc Polishing
2014-07-18 13:40:55 -04:00
Artem Bilan
23c80906d8 INT-3417: Polishing Docs for MessageHeaders
JIRA: https://jira.spring.io/browse/INT-3417

Polishing

Add note about using the accessor.
2014-07-03 15:21:05 -04:00
Gary Russell
e836cc2edc Fix Tcp Interceptor Docs
http://stackoverflow.com/questions/24514348/tcpinboundgateway-replychannel-error-handling
2014-07-01 13:28:44 -04:00
Gary Russell
2c1833b12c 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:49:05 +03:00
JohnA2
f639a0e1de 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:49:04 +03: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
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
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
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
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
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
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
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
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
Artem Bilan
de123c1ee4 INT-3367: Add GemfireMetadataStore
JIRA: https://jira.spring.io/browse/INT-3367

INT-3367 Polishing

Rename test class; move to metadata package; doc polishing.
2014-04-14 17:59:24 -04:00
Artem Bilan
2ee179a891 INT-3338: MongoMS: Add priority and sequence
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.
2014-04-14 11:44:59 -04:00
Gary Russell
7082b9e4cb INT-1939 Twitter Search Outbound Gateway
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
2014-04-11 16:13:07 +03:00
Gary Russell
4577200e66 INT-3361 Add AMQP DeliveryMode Attribute
JIRA:https://jira.spring.io/browse/INT-3361

Add convenience attribute to simply configuration of
AMQP Delivery Mode (PERSISTENT, NON_PERSISTENT).

INT-3361: Polishing
2014-04-11 15:40:06 +03:00
Artem Bilan
64a7a7e021 INT-3339: Add priority to the JdbcChannelMS
JIRA: https://jira.spring.io/browse/INT-3339

INT-3339: Improve `priority` logic

INT-3339: Add `MESSAGE_SEQUENCE` stuff

INT-3339: Docs

INT-3339: Polishing and PR comments

INT-3339 Polishing

Fix Oracle Test Case.
Doc polishing.
2014-04-10 16:28:07 -04:00
Artem Bilan
3f40c40641 INT-3365: Add SmartLifecycle for Annotations
JIRA: https://jira.spring.io/browse/INT-3365

INT-3365 Polishing
2014-04-10 12:50:44 -04:00
Artem Bilan
55c4e26619 INT-3356: Add InboundChannelAdapter Annotation
JIRA: https://jira.spring.io/browse/INT-3356

INT-3356 Polishing

Long lines and doc polish.
2014-04-09 14:56:12 -04:00
Artem Bilan
93ad65e7ce INT-3359: Add GemfireLockRegistry
JIRA: https://jira.spring.io/browse/INT-3359
2014-04-08 13:08:08 -04:00
Artem Bilan
8ffc86f3d2 INT-3351: Add @Poller for Messaging Annotations
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
2014-04-08 10:09:32 -04:00
Gary Russell
6b81fb1e0c INT-3353 Fix Docbook White Space
JIRA: https://jira.spring.io/browse/INT-3355
2014-04-07 14:03:44 -04:00
Gary Russell
4dee2a224b INT-3353 Concurrent RedisMetadataStore
JIRA: https://jira.spring.io/browse/INT-3353

Shared metadata for PersistentAcceptOnceFileListFilters.

INT-3353 Polishing; PR Comments
2014-04-07 17:38:33 +03:00
Artem Bilan
eb0d1ddc84 INT-2595: Add Time-Based ReleaseStrategy Option
JIRA: https://jira.spring.io/browse/INT-2595

* Add `group-timeout` and `group-timeout-expression` to the Correlation Endpoint
* Add logic to the `AbstractCorrelatingMessageHandler` to schedule group for `forceComplete`,
when the target `ReleaseStrategy` returns `false`

INT-2595: Polishing according PR comments

INT-2595: Expose `lock-registry` and further docs

INT-2595 Doc and Test Polishing

INT-2595: Fix typos

INT-2595 More Minor Doc Polish
2014-04-05 10:49:20 -04:00
Artem Bilan
969310b453 INT-3327: Add IntegrationConverter Annotation
JIRA: https://jira.spring.io/browse/INT-3327

INT-3327: Addressing PR comments

Polishing
2014-03-31 13:02:47 -04:00
Artem Bilan
945455f360 INT-2918: Add Redis Outbound Command Gateway
JIRA: https://jira.springsource.org/browse/INT-2918

INT-2918: Improvement according PR comments

INT-2918: Polishing according PR comments

Minor Doc Polishing

INT-2918: Change `notNull` message

Polishing
2014-03-31 10:51:25 -04:00
Artem Bilan
c11e3ba3b5 INT-3337: MongoDbMessageStore Refactoring
JIRA: https://jira.spring.io/browse/INT-3337

INT-3337: Addressing PR comments

INT-3337: Add support to store/read Messages

* Add support to store/read `ErrorMessage`. As a trick for `Throwable` is selected (de)serializing converter

INT-3337: Add converters for `Message<?>` impls

INT-3337: Make `MDbMS.MessageWrapper` AuditAware

Add `_id` persistence field

Addressing PR comments

Polishing

- Docs
- Check for null ApplicationContext
- Add afterPropertiesSet() to tests
2014-03-28 16:46:48 -04:00
Artem Bilan
6d6bef58b2 INT-3326 Add GlobalChannelInterceptor Annotation
JIRA: https://jira.spring.io/browse/INT-3326

INT-3326: Add parent-child test

INT-3326: Fix `ClassCastException` for `GCII`

INT-3326: Rebase and Polishing

INT-3326: Fix `GCII` for `getBeanNamesForType`

INT-3326: Add `GlobalChannelInterceptor` annotation

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

INT-3326: Add parent-child test

INT-3326: Fix `ClassCastException` for `GCII`

INT-3326: Rebase and Polishing

INT-3326: Fix `GCII` for `getBeanNamesForType`

INT-3326 Polishing Doc, JavaDocs

Also fix a typo in the bean name for the CI processor.

INT-3326: Polishing

Doc Polishing
2014-03-28 14:04:22 -04:00
Artem Bilan
e3f8ef534b INT-3331: Add ChannelSecurityInterceptorFB
JIRA: https://jira.spring.io/browse/INT-3331

INT-3331: PR comments and others

* Register `ChannelSecurityInterceptorBeanPostProcessor` as a `BeanDefinition` (not `BPP`)
* Get `ChannelSecurityInterceptor`s from `ChannelSecurityInterceptorBeanPostProcessor#afterPropertiesSet()`
* Make `ChannelSecurityInterceptor` `final` to disallow to subclass it for unexpected issues
* Provide more convenience to the `ChannelSecurityInterceptorFactoryBean` - to allow to use it from xml configuration

Doc Polishing
2014-03-27 14:06:35 -04:00
Artem Bilan
97c270c0e2 INT-3330 EnableIntegrationMBeanExport Annotation
JIRA: https://jira.spring.io/browse/INT-3330

INT-3330: Enable SpEL evaluation

INT-3330: Polishing for `MBeanExporterHelper`

INT-3330: Fix `errorChannel` early access

INT-3330: Polishing according PR comments

Polishing - copyrights, author, docs
2014-03-27 12:53:20 -04:00
Gary Russell
1d6e80ecd0 INT-3342 Allow Custom TypeLocator for SpEL
JIRA: https://jira.spring.io/browse/INT-3342

Allow customization of the `TypeLocator` used by SpEL
`EvaluationContext`s throughout the framework.
2014-03-27 10:23:38 +02:00
Gary Russell
98d735d058 INT-3336 Add error-channel to MQTT m-d-c-a
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
2014-03-21 20:44:11 +02:00
Gary Russell
b92134fae7 INT-3332 GlobalChannelInterceptorBeanPostProcessor
Implicit channel declaration for items downstream
of a `ChannelInterceptor` were not created.

The `BPP` eagerly fetched the interceptors during its
own creation; this caused the context initialization to fail
because the channel initializer hasn't run yet.

Defer creation of the interceptor beans until they are
actually needed.

Also, when using `@Configuration`, the channelInitializer
is no longer the first bean in the bean factory.

INT-3332 Use SmartLifeCycle to Apply Interceptors

Instead of using a bean post processor, the interceptor
processor now performs the channel interception when beans
in phase Integer.MIN_VALUE are started - after all beans
have been instantiated.

Polishing
2014-03-19 15:33:32 +02:00
Artem Bilan
23a26ca38e INT-3328: Add EnablePublisher Annotation
JIRA: https://jira.spring.io/browse/INT-3328

INT-3328: Polishing
2014-03-18 16:30:41 -04:00
Gary Russell
a8c8a4fed5 INT-3325 Add Redis Channel Message Group Store
JIRA: https://jira.spring.io/browse/INT-3325
JIRA: https://jira.spring.io/browse/INT-1870

Optimized MGS for QueueChannel - uses a LIST for
each channel and LPUSH, RPOP.

* Also fix MutableMessage to be Serializable

INT-1870 Priority Redis Channel Message Store

Supports priorities 0-9 (+ no priority).

Priorities out of that range are treated as no priority.

Polishing - Add Marker Interfaces

* Emit a `WARN` log if a channel is used with a regular MessageGroupStore
* Allow message-store on namespace when defining a priority channel

INT-3325 Polishing; PR Comments

Fix some typos in JavaDocs and Docs
2014-03-18 12:34:06 +02:00
Gary russell
c73cc40e23 INT-3322 JDBC i-c-a SpEL Select ParameterSource
JIRA: https://jira.spring.io/browse/INT-3322

Support the use of an ExpressionEvaluatingSqlParameterSource
from the ExpressionEvaluatingSqlParameterSourceFactory as the
`select-sql-parameter-source` for an inbound channel adapter.

Add documentation showing how to construct the bean.

Add a mechanism to disable caching so that the expression is
re-evaluated each time. However, the value should still be
cached between the `hasValue()` and `getValue()` calls.

INT-3322 Polishing; PR Comments
2014-03-13 16:09:49 +02:00
Gary Russell
1c9bcaccee INT-3041 Add Namespace Support For Retry Advice
JIRA: https://jira.spring.io/browse/INT-3041

Add namespace support to simplify configuration of
a `RequestHandlerRetryAdvice.

INT-3041 Polishing; PR Comments

* Allow a retry-advice element within the request-handler-advice-chain
* Clean up schema (should not have allowed `synchronization-factory` on
    the request-handler-advice-chain.

INT-3041 Polishing; PR Comment
2014-03-11 17:56:51 +02:00
Artem Bilan
26d252bf00 INT-3288 JMS 'session-transacted' Attribute
JIRA: https://jira.springsource.org/browse/INT-3288

Previously, if you wanted to have a JMS outbound-channel-adapter
participate in an upstream JMS transaction (or use transactions
at all), you had to inject a `JmsTemplate` with `sessionTransacted`
set to `true`.

The `session-transacted` attribute has been added to the adapter,
allowing transactions to be used with the default `JmsTemplate`,
avoiding the need to inject a separate template.

Also, the inbound (polled) channel adapter incorrectly allowed
the `acknowledge` attribute to be set to `transacted` which is invalid and,
again, you had to inject an appropriately configured JmsTemplate
for transactions.

The inbound-channel-adapter now supports `session-transacted` as
well, and `acknowledge` can no longer be set to `transacted`.

There are no changes to the `message-driven-channel-adapter`, you
enable transactions with it by setting `acknowledge="transacted"`
as before.

INT-3288 Doc Polishing; Integration Tests
2014-03-07 21:06:34 +02:00