Commit Graph

712 Commits

Author SHA1 Message Date
Gary Russell
051b393ed0 Prepare Master for 4.3
Reference to 4.3

Refactor `what's new` for 4.3
2015-11-17 12:12:49 -05:00
Artem Bilan
b9730cd183 INT-3882: StompSession Reconnection Logic
JIRA: https://jira.spring.io/browse/INT-3882

Add reconnect support for the StompSession:
* Introduce `recoveryInterval` for the `AbstractStompSessionManager`
* Add reconnect scheduled task
* Add handling of the `ConnectionLostException` into the `AbstractStompSessionManager`,
as well as for the `StompInboundChannelAdapter` and `StompMessageHandler`
* Cover adapters reconnection feature with tests
* Documentation polishing

Rework logic according PR comments

* Make `StompMessageHandler` as a "lazy-load" for the connection
* Add "direct" connect interaction for the `AbstractStompSessionManager`
* Polishing tests

Polishing

Fix `StompAdaptersParserTests#testStompSessionManagerReconnect()` to use "fake" server port

Address PR comments

The further polishing

Some further polishing

* `AbstractStompSessionManager`: `reconnectFuture.cancel(true)` on each `scheduleReconnect()` to avoid something like "DDoS attack"
* Add reconnect feature test for the `StompInboundChannelAdapterWebSocketIntegrationTests`, closing and then refreshing again the `serverContext`
2015-11-13 14:19:18 -05:00
Gary Russell
e5269bb265 INT-3886: TCP Fix Socket Timeout: Raw Deserializer
JIRA: https://jira.spring.io/browse/INT-3886

An SO user reported a short message delivery when an NIO connection was timed out.

See JIRA for link.

We could not produce the problem with his deserializer but it did identify a problem
with the standard `ByteArrayRawSerializer`.

With NIO, socket timeouts were reported to the deserializer as a normal EOF (-1). This
caused the raw serializer to emit a short message - it's signal for end of message is the
socket closure.

We can't treat a timeout as a normal EOF.

If the socket is forcibly timed out due to no recent data, throw a `SocketTimeoutException` to
the deserializer.

Just in case the old behavior is being relied upon, a boolean has been added to restore that
behavior. This is not recommended, as using timeout to delimit messages is not reliable.

* Fix typos
* Increase `MongoDbInboundChannelAdapterIntegrationTests` timeouts
* Some code polishing
2015-11-12 21:35:03 -05:00
Artem Bilan
febea4fe40 MQTT: Document Java Config
http://stackoverflow.com/questions/33655970/eclipse-paho-mqtt-spring-java-configuration
2015-11-12 12:12:12 -05:00
Artem Bilan
b041fe9992 INT-3880: Document File Reading Comparator
JIRA: https://jira.spring.io/browse/INT-3880

Polishing
2015-11-06 13:33:03 -05:00
Gary Russell
b486247105 INT-3878: MQTT Application Events (inbound)
JIRA: https://jira.spring.io/browse/INT-3878

Publish `ApplicationEvent`s to report inbound channel adapter connection
status.

Fixing typos and simple polishing.
2015-11-05 17:39:08 -05:00
Gary Russell
b3dd85fb4b INT-3879: Mail: Configurable USER Flag
JIRA: https://jira.spring.io/browse/INT-3879

Namespace support to follow in 4.3.

Simple polishing and fix some typos in the `mail.adoc`
2015-11-05 17:13:49 -05:00
Eric Bottard
eec937b6d9 Fix asciidoc typo 2015-11-05 08:48:44 +01:00
Gary Russell
c75a95c555 JMS: Doc: Explain Gateway Correlation Techniques 2015-11-04 18:31:30 -05:00
Artem Bilan
703bc5fb82 INT-3872: Document Gateway's Exception as Reply
JIRA: https://jira.spring.io/browse/INT-3872

Polishing

Also, we had no tests for method element parsing.
2015-11-04 14:30:24 -05:00
Artem Bilan
7edef1d9f1 INT-3874: Copy spel-functions from parent ctx
JIRA: https://jira.spring.io/browse/INT-3874

Previously the `IntegrationEvaluationContextFactoryBean` copied only those spel-functions which are defined
as beans in the ctx. Those which are specified through the `setFunctions` hasn't been copied from parent ctx to child.

This fix addresses and issue.
2015-11-03 16:51:45 -05:00
Gary Russell
e5577b1e50 Fix Control Bus Doc Typo
s/JMS/JMX/
2015-10-28 10:31:26 -04:00
Gary Russell
279c30d1b0 Typo in Previous Commit 2015-10-22 09:47:07 -04:00
Gary Russell
3965e6977f Document 'trapException` for EERHAdvice 2015-10-22 09:44:16 -04:00
Artem Bilan
152f46719a INT-3858: Doc File Inbound scanner and filter
JIRA: https://jira.spring.io/browse/INT-3858

PR Comments
2015-10-21 15:39:03 -04:00
Artem Bilan
e1e89915ce INT-3855: Docs: File adapters - Java & DSL Config
JIRA: https://jira.spring.io/browse/INT-3855

PR Comments
2015-10-16 16:20:16 -04:00
Gary Russell
4d57acb45e INT-3851: Docs - Fix Typo
JIRA: https://jira.spring.io/browse/INT-3851
2015-10-12 09:19:01 -04:00
Artem Bilan
d21b42dbcf Java & DSL Config for the QueueChannel
Also fix some typos in the `mongodb.adoc`
2015-10-09 15:51:37 -04:00
Gary Russell
0fd5f5ced8 Header Enricher Docs: JavaConfig and DSL samples 2015-10-01 18:13:58 -04:00
Gary Russell
b2d04bf7de AMQP Docs: Add JavaConfig and DSL samples 2015-10-01 14:33:49 -04:00
Gary Russell
d09431a951 (S)FTP Docs: Fix PDF Overflows
Also use space instead of tab in code snippets.
2015-10-01 12:49:11 -04:00
Artem Bilan
4f979f91aa INT-3829: Fix typos in the endpoint.adoc
JIRA: https://jira.spring.io/browse/INT-3839
2015-09-29 14:14:33 -04:00
Gary Russell
0d721739e9 INT-3827: ResettableFileListFilter
JIRA: https://jira.spring.io/browse/INT-3827

Provide a hook to enable removing a file from an `AcceptOnceFileListFilter`,
for example after a message processing failure.

Make the `CompositeFileListFilter` a `ReversibleFileListFilter` so it can
delegate to any of its composed filters that are reversible.

INT-3827: Polishing - PR Comments
2015-09-29 13:59:51 -04:00
Gary Russell
4c171a54ed INT-3835: Fix ERROR_CHANNEL Constant in Reference
JIRA: https://jira.spring.io/browse/INT-3835
2015-09-29 13:46:51 -04:00
Gary Russell
934c36509c Fix Exponential Representation in Reference Manual
Asciidoc interprets the asterisks in 2**31 as formatting (bold).

Change to `^`.
2015-09-28 18:02:36 -04:00
Artem Bilan
c23aa70ec8 INT-3829: Honor @Profile on Messaging @Beans
JIRA: https://jira.spring.io/browse/INT-3829

Alongside with the `@Bean` definition we can use, for example, `@Profile` `@Conditional` annotation.
And the final bean won't be populated to the context.

When messaging annotations are present on `@Bean`s, a second bean for the endpoint consumer
is created.

Previously, the `MessagingAnnotationPostProcessor` did not check if the `@Bean` was present;
hence we ended up with a `NoSuchBeanDefinitionException`

* Add appropriate `try...catch(NoSuchBeanDefinitionException)` to the `AbstractMethodAnnotationPostProcessor` and
`InboundChannelAdapterAnnotationPostProcessor` to skip further endpoint processing if the bean does not exist.

Add DEBUG message for the skipped beans

Polishing
2015-09-23 11:03:07 -04:00
Gary Russell
a47810935e INT-3824: Fix PDF Line Overflows
JIRA: https://jira.spring.io/browse/INT-3824
2015-09-22 11:41:04 -04:00
Eric Bottard
9505420ae8 Fix grammar error in doco 2015-09-22 10:35:24 +02:00
Artem Bilan
f607f83bf2 INT-3804: WatchServiceDirScan: Add OVERFLOW Event
JIRA: https://jira.spring.io/browse/INT-3804

INT-3804: Polishing

Fix race conditions.
2015-09-04 17:07:46 -04:00
Gary Russell
4f648a7e4f INT-3818: Multipart Pass Through Converter
JIRA: https://jira.spring.io/browse/INT-3818

INT-3818: Fix Pre JDK8 Syntax

Polishing - PR Comments

Add author name
2015-09-03 21:00:56 -04:00
Artem Bilan
02565d0401 INT-3807: AmqpInboundGateway Improvements
JIRA: https://jira.spring.io/browse/INT-3807

Addressing PR comments

INT-3807: Polishing
2015-08-31 12:42:25 -04:00
Artem Bilan
7464168845 INT-3812: Various Documentation Fixes
JIRAs:
https://jira.spring.io/browse/INT-3812
https://jira.spring.io/browse/INT-3732
https://jira.spring.io/browse/INT-3769
https://jira.spring.io/browse/INT-3671
https://jira.spring.io/browse/INT-3733
https://jira.spring.io/browse/INT-3808

* Upgrade to S-WS-2.2.2 and mention `EndpointMapping` in the documentation (INT-3769)
* `What's New` polishing (INT-3733)
* Document the bean names for endpoints on the `@Bean` definition (INT-3671)
* Fix deprecated attribute in the HTTP chapter (INT-3812)
* Document Advanced `Aggregator` Configuration (INT-3732)
* Add `Federation` note to the AMQP chapter (INT-3808)

INT-3812: Polishing
2015-08-31 11:34:46 -04:00
Artem Bilan
a5e5a7b125 INT-3797: Fix SFTP doc for CachingSessionFactory
JIRA: https://jira.spring.io/browse/INT-3797
2015-08-14 11:16:37 -04:00
Gary Russell
bcfc4d88c1 INT-3800: Expose Actual Port Chosen When Random
JIRA: https://jira.spring.io/browse/INT-3800

If the server port is 0, return the actual port after the factory is started.

Also add more TCP Test Diagnostics.
2015-08-13 11:28:37 -04:00
Gary Russell
4ab25121af INT-3799: Fix Tangles
Part 1 - eliminate references from support to other packages

Part 2 - handler to aggregator/router
- move BarrierMH to aggregator
- Fix ScatterGather references

Part 3 - move TrackableComponent
- to support.management

Part 4 - class tangles
- TcpConnectionServerExceptionEvent
- RecipientListRouterManagement

INT-3799: Polishing
2015-08-13 10:32:55 -04:00
Artem Bilan
9ff5ab789a INT-3772: Add MessagePreparedStatementCallback
JIRA: https://jira.spring.io/browse/INT-3772

INT-3722: Polishing

PR Comments and conflicts fixes
2015-08-12 17:06:07 -04:00
Gary Russell
adb0f43aa8 INT-3779: CodecMessageConverter and Docs
JIRA: https://jira.spring.io/browse/INT-3779

Fix timeouts for the `EnableIntegrationTests`: https://build.spring.io/browse/INT-B41-385
2015-08-11 18:21:35 -04:00
Artem Bilan
e408331e67 INT-3622: (S)FTP: Add MessageSessionCallback
JIRA: https://jira.spring.io/browse/INT-3622

INT-3622: Polishing
2015-08-11 09:33:34 -04:00
Artem Bilan
d89dabe72f INT-3778: STOMP Namespace and Documentation
JIRA: https://jira.spring.io/browse/INT-3778

* Add Namespace support for STOMP adapters
* Document the STOMP module
* Fix race condition in the `AbstractStompSessionManager`
* Add `handleTransportError` to the `StompInboundChannelAdapter` and `StompMessageHandler` to log errors during STOMP interactions
* Fix `StompMessageHandler` to handle `RECEIPT` in case of `RECEIPT` header existence, not the common `autoReceipt` option
which can be disable, but the `RECEIPT` header may be present in the message to send
* Increase logging level for the STOMP tests to trace sporadic failures on the CI Server
* Fix several typos

INT-3778: Doc Polishing
2015-08-11 09:17:05 -04:00
Gary Russell
e82bfdc9a6 INT-3796: More SFTP Refinements
JIRA: https://jira.spring.io/browse/INT-3796

When a `UserInfo` is provided, use it for the password and passphrase.
Disallow local properies when a `UserInfo` is provided.

Simple polishing and fixing `TestSftpServer` for the `this.server.stop(true);`
to avoid `port is already in use` for other tests which use default SSH port.
2015-08-10 16:12:45 -04:00
Gary Russell
f73898ba8b INT-3736: Doc Polishing 2015-08-09 09:36:22 -04:00
Gary Russell
c695129bd5 INT-3736: Process Barrier Component
JIRA: https://jira.spring.io/browse/INT-3736

INT-3736: Polishing

INT-3736: Use o-c-a For Release

Avoids unusual parser logic, allows release channel to be of any type.

INT-3736: Schema Polishing

INT-3736: Polishing

- Add TriggerMessageHandler interface
- Use SyncQueue - suspend the trigger thread if the main thread hasn't arrived yet
 - allows clean up of state regardless of whether just a trigger or suspend is processed
- reply-required

INT-3736: Polishing and Docs

Polishing code style and fixing typos in docs
2015-08-07 21:03:44 -04:00
Artem Bilan
4266bb53b4 INT-3649: Support for Payload Application Events
JIRA: https://jira.spring.io/browse/INT-3649

Polishing according to the PR comments

Address PR comments
2015-08-07 17:41:32 -04:00
Gary Russell
95a9e0d2dd INT-3796: Configure SFTP Unknown Host Behavior
JIRA: https://jira.spring.io/browse/INT-3796

Previously, the `DefaultSftpSessionFactory` unconditionally accepted keys
from unknown hosts, or when a host key changed.

Permit this behavior to be configured with `allowUnknownHosts` and/or a custom
`UserInfo` properties in the factory.

`allowUknownHosts` is false by default (since 4.2) and true by default in 4.1.x for
backwards compatibility.

INT-3796: Fix Tests

INT-3796: Polishing
2015-08-07 15:50:09 -04:00
Gary Russell
9140e4ac18 INT-3791: Don't Wrap Confirms if Already Message
JIRA: https://jira.spring.io/browse/INT-3791

Do not wrap a publisher confirm if the correlation data is a Messge<?>.
2015-08-07 15:42:48 -04:00
Gary Russell
57e2fcfbca INT-3793: Fix Namespace Inconsistency
JIRA: https://jira.spring.io/browse/INT-3793

Also fix several typos in the TCP/IP chapter
2015-08-05 11:21:58 -04:00
Artem Bilan
09fb4f78c9 INT-2166: Add SecurityContext Propagation
JIRA: https://jira.spring.io/browse/INT-2166

* Introduce `ThreadStatePropagationChannelInterceptor` based on the `ExecutorChannelInterceptor`
* Add `SecurityContextPropagationChannelInterceptor`,`SecurityContextCleanupChannelInterceptor`
* Introduce `AbstractExecutorChannel` to utilize `ExecutorChannelInterceptor` logic
* Introduce `MessageHandlingTaskDecorator` to avoid package tangle from `dispatcher` and `channel`
* Introduce `SecurityContextCleanupAdvice` for those cases when we don't get deal with `MessageChannel`s already, but want to have proper way to cleanup `SecurityContext`
* Make `GlobalChannelInterceptorProcessor` as `SmartInitializingSingleton` to avoid `phase` conflicts.
* Fix `MessagingAnnotationPostProcessor` to use `beanFactory.initializeBean(endpoint, endpointBeanName);` instead of manual `start()` invocation bypassing the `phase` logic, hence having a bug, when endpoints have been started very early
* Optimise `AbstractPollableChannel` to use `size` field from `ChannelInterceptorList` instead of `size()` from `Collection<?>`
* Fix `AnnotatedEndpointActivationTests` extracting separate component for annotation configuration instead of using test class directly. This caused very late Messaging Annotations process on that class
* Fix typo in the `spring-integration-jdbc-4.2.xsd`
* Remove some `SOUT`s throughout the project

TODO Docs

PR Comments:

* Remove redundant `AbstractExecutorChannel#executorInterceptors` and make logic based on the `super.interceptors`
 * Fix wrong imports order
 * JavaDocs for `ThreadStatePropagationChannelInterceptor`
 * Docs for `SecurityContext` propagation

INT-3593: Fix FTP PartialSuccess Tests

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

Sort the files for the MPUT tests.

INT-2166: Add SecurityContext Propagation

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

* Introduce `ThreadStatePropagationChannelInterceptor` based on the `ExecutorChannelInterceptor`
* Add `SecurityContextPropagationChannelInterceptor`,`SecurityContextCleanupChannelInterceptor`
* Introduce `AbstractExecutorChannel` to utilize `ExecutorChannelInterceptor` logic
* Introduce `MessageHandlingTaskDecorator` to avoid package tangle from `dispatcher` and `channel`
* Introduce `SecurityContextCleanupAdvice` for those cases when we don't get deal with `MessageChannel`s already, but want to have proper way to cleanup `SecurityContext`
* Make `GlobalChannelInterceptorProcessor` as `SmartInitializingSingleton` to avoid `phase` conflicts.
* Fix `MessagingAnnotationPostProcessor` to use `beanFactory.initializeBean(endpoint, endpointBeanName);` instead of manual `start()` invocation bypassing the `phase` logic, hence having a bug, when endpoints have been started very early
* Optimise `AbstractPollableChannel` to use `size` field from `ChannelInterceptorList` instead of `size()` from `Collection<?>`
* Fix `AnnotatedEndpointActivationTests` extracting separate component for annotation configuration instead of using test class directly. This caused very late Messaging Annotations process on that class
* Fix typo in the `spring-integration-jdbc-4.2.xsd`
* Remove some `SOUT`s throughout the project

TODO Docs

PR Comments:

* Remove redundant `AbstractExecutorChannel#executorInterceptors` and make logic based on the `super.interceptors`
 * Fix wrong imports order
 * JavaDocs for `ThreadStatePropagationChannelInterceptor`
 * Docs for `SecurityContext` propagation

Doc Polishing

Address PR comments

Address PR comments

* Extract `ExecutorChannelInterceptor` logic in the `PollingConsumer`
to have an ability to invoke `afterMessageHandled()` on the TaskScheduler's Thread
for example for the `SecurityContext` clean up
* Get rid of all that redundant "clean up" stuff
* Docs polishing

Fix `NPE` in the `PollingConsumer`

Introduce `ExecutorChannelInterceptorAware` to avoid iterators on each message

Polishing; Docs, Sonar
2015-08-03 09:33:23 -04:00
Gary Russell
fd35d43aba INT-3784: Use acknowledge="transacted" by Default
JIRA: https://jira.spring.io/browse/INT-3784

Also

- suppress WARN log when priority mapping fails
- rework extract payload tests to use a single context

Make a new `JmsMessageDrivenEndpoint` as `private` because it makes sense only for XML `BeanDefinition` variant.
2015-07-31 17:41:31 -04:00
Gary Russell
0fd7b2568a INT-3782: Fix PDF Formatting
JIRA; https://jira.spring.io/browse/INT-3782

- downsize some images to fit in PDF margins
- reduce some long FQ Class names
- fix some tables
- add some missing links
2015-07-30 16:27:40 -04:00
Gary Russell
3c9b0e4e82 INT-3788: Fix Poller Doc (Memory Leak)
JIRA: https://jira.spring.io/browse/INT-3788
2015-07-30 12:46:44 -04:00