Commit Graph

548 Commits

Author SHA1 Message Date
Gary Russell
c68c7b3412 INT-3763: (S)FTP - Inbound Remote Dir. Expression
JIRA: https://jira.spring.io/browse/INT-3763

Fix `AbstractRemoteFileSynchronizerTests` according to this change.
2015-07-09 18:26:46 -04:00
Gary Russell
fe203fb712 INT-3747: Zookeeper Documentation
JIRA: https://jira.spring.io/browse/INT-3747

INT-3747: Polishing; PR Comments; Factory Beans

Fix JavaDocs and simple polishing
2015-07-06 17:54:40 -04:00
Gary Russell
a480354210 INT-3752: Add AggregatingMetricsFactory
JIRA: https://jira.spring.io/browse/INT-3752
JIRA: https://jira.spring.io/browse/INT-3754

The statistics are based on this count so, for example the
`meanSendDuration` reflects the mean of total duration from the first send to
the last in each batch.

Also change the linked lists to `Deque`s.

Also remove `isTraceEnabled()` calls - too expensive in high volume environments.

Polishing

Assign the count to a local variable so the mod (%) operation is short
circuited rather than short circuiting the call to isFullStatsEnabled().

INT-3752: Fix Aggregating Metrics

Previously, the duration was for the first message in each sample.

We need to capture the total elapsed time for the sample and use it
for the duration calculation.

Add 'newCount' to the context so the after... method can calculate
the duration at the end of the sample.

The start field does not need to be volatile because its updates
are synchronized.

INT-3752: Fix Javadocs
2015-07-06 10:42:37 -04:00
Gary Russell
5298368168 INT-3760: Document spring.integration.properties
JIRA: https://jira.spring.io/browse/INT-3760
2015-07-02 14:39:06 -04:00
Gary Russell
bf8e79cb1e INT-3583: Allow MessageGroupProcessor in Agg, XML
JIRA: https://jira.spring.io/browse/INT-3583

Previously, the `ref` or inner bean for an aggregator was wrapped
in a `MethodInvokingMessageGroupProcessor` for POJO aggregation logic.

Now, if the ref'd bean is a `MessageGroupProcessor`, it is used as the
output processor directly.

Also, the `SimpleMessageGroupProcessor` is added which simply returns the
collection of messages.

INT-3583: Polishing; PR Comments

Fix AsciiDoc

Revert `CorrelationMessageBarrier` deprecation

Fix Docs for wrong chapter link
2015-06-30 15:02:23 -04:00
Gary Russell
cef99f3584 INT-2507: File: Fix HeadDirectoryScanner
JIRA: https://jira.spring.io/browse/INT-2507

When using a `HeadDirectoryScanner`, the use of any filter removed the
size limitation passed into the contstructor (or `queue-size` attribute
of a file inbound channel adapter.

The `HeadFilter` was overwritten.

Combine the head filter into a `CompositeFileListFilter` (creating one
if necessary).
2015-06-30 12:13:55 -04:00
Gary Russell
029bb28cfa INT-3615: @MessagingGateway Long Properties
JIRA: https://jira.spring.io/browse/INT-3615

Change timeout properties from long to String to allow
property placeholder/SpEL configuration.
2015-06-30 12:05:30 -04:00
Justin Walsh
1dd17ad319 Fix minor typo in Docs 2015-06-23 15:33:48 -04:00
Gary Russell
f3d525a5e8 INT-3642: Improve MessageGroupStore Removal
JIRA: https://jira.spring.io/browse/INT-3642

Currently, `removeMessageFromGroup` rebuilds the group on every removal.

In every case where this method is used in the framework, the result is not used.

Add `removeMessagesFromGroup` that removes a collection of messages and returns no result.

INT-3642: Polishing - PR Comments

INT-3642: Polishing and Fix Group Metadata Size
2015-06-23 15:25:24 -04:00
Gary Russell
f4104c199a INT-3745: More TCP Events (Failed Correlation)
JIRA: https://jira.spring.io/browse/INT-3745

Emit events whenever a message is received that can't be correlated to
a connection (or request in the case of an outbound gateway).

Also, when sending messages, wrap the exception in a `MessagingException` so that
the `TcpConnectionExceptionEvent` provides access to the failed message.

INT-3745: Polishing - PR Comments

Fix JavaDocs errors
2015-06-19 13:49:10 -04:00
Gary Russell
65d2024937 INT-3737: (S)FTP Outbound Gateway Streaming GET
JIRA: https://jira.spring.io/browse/INT-3737

Support returning an `InputStream` from a GET operation.

This can be used in conjuction with a `<file:splitter/>` to stream a text file.

The user is responsible for releasing the session when the download is complete.

The session object is stored in the message header and `RemoteFileUtils.closeSession()` should be called
to clean up and close the session.

INT-3737: Polishing and Docs

Fix `CachedSession.close()` bug

Preventing `Caused by: java.io.IOException: Previous raw read was not finalized`
when `Session` is returned to the pool, but `readingRaw` hasn't been finalized
because the real `close()` isn't invoked in case of normal return to pool.
2015-06-19 13:39:36 -04:00
Gary Russell
5e9624f2cf INT-3724: Gateway - Support CompletableFuture
JIRA: https://jira.spring.io/browse/INT-3724

Add support for `CompletableFuture<?>` return types on gateway methods, if JDK8 is being used.

- If the return type is exactly `CompletableFuture` and an async executor is provided, use `CompletableFuture.supplyAsync()`
- If there is no return async executor, return types can be `CompletableFuture` or a subclass and the flow can return such a future.

- Also fixes a problem for return type `Future<Message<?>>` with no async executor; previously this caused a `ClassCastException`
   because the gateway returned the message - it assumed such return types would always run on an excutor.

We can consider back-porting this last part, but nobody has complained.

CompletableFuture Docs

Fix typos, polishing for JavaDocs and some code style polishing
2015-06-18 16:52:17 -04:00
Gary Russell
6436aa6d32 INT-3600: FileSplitter Namespace and Docs
JIRA: https://jira.spring.io/browse/INT-3600

Add `<int-file:splitter/>` namespace component.
Add `FileSplitter` documentation.

Polishing
2015-06-18 13:45:16 -04:00
Gunnar Hillert
247232bdde INT-3659: InputStream support in FileWritingMH
https://jira.spring.io/browse/INT-3659

Add `InputStream` `payload` handling to the `FileWritingMessageHandler`
2015-06-17 20:57:37 -04:00
Gary Russell
7ed79c864d INT-3730: TCP Expose SSLSession for Header Mapping
JIRA: https://jira.spring.io/browse/INT-3730

Expose the `SSLSession` on `TcpConnection` to support custom header
mapping of properties from the session.
2015-06-08 12:15:51 -04:00
Gary Russell
7c78553609 JMX Doc Polishing 2015-06-02 19:56:04 -04:00
Gunnar Hillert
a0160e50d4 INT-3718: Add ignore-hidden to int-file:i-c-a
JIRA: https://jira.spring.io/browse/INT-3718

* If not set to `false` explicitly, add `IgnoreHiddenFileListFilter` as a default in `FileListFilterFactoryBean`
* Update XML Schema XSD and add `ignore-hidden` attribute
* Update + Add tests
* Add documentation
* Add default `IgnoreHiddenFileListFilter` also to `DefaultDirectoryScanner`
2015-05-25 22:08:12 -04:00
Gary Russell
5b0b3fc159 INT-3721: Add Flush Support to Persistent Filters
JIRA: https://jira.spring.io/browse/INT-3721

Support flushing metadata after each update.

Polishing JavaDocs
2015-05-25 21:13:41 -04:00
Gary Russell
5cbb2848a1 INT-3692: Example TCP Annotation Config
JIRA: https://jira.spring.io/browse/INT-3692

Polishing indents in the Docs.
2015-05-12 14:57:40 +03:00
Gary Russell
123b38a008 INT-3706: Support FileExistModes in (S)FTP Gateway
JIRA: https://jira.spring.io/browse/INT-3706

Previously, the `mode` attribute on the (S)FTP outbound gateways was ignored.

Take account of the mode on (M)GET and (M)PUT commands.
2015-05-12 13:21:26 +03:00
Artem Bilan
580ecddcc0 INT-3714: Add HTTP CORS Support
JIRA: https://jira.spring.io/browse/INT-3714

Docs and change Reactor dependency to `RELEASE`

AMQP -> `1.5.0.M1` and rebase

Doc Polishing
2015-05-08 11:31:41 +01:00
Artem Bilan
256ff4c46f INT-3599/INT-2042: Improve XPathMessageSplitter
JIRA: https://jira.spring.io/browse/INT-2042,
https://jira.spring.io/browse/INT-3599

* Expose `outputProperties` for the `XPathMessageSplitter`
* Add `iterator` mode for the `XPathMessageSplitter`

Address PR comments

Doc Polishing
2015-05-06 15:25:35 +01:00
Gary Russell
e5f03d4d4b Fix Aggregator Attribute Doc 2015-05-06 09:12:25 +01:00
Gary Russell
af71cf99b1 INT-3711: Fix Incorrect Interface in Docs
JIRA: https://jira.spring.io/browse/INT-3711
2015-05-01 14:54:56 +01:00
Artem Bilan
135287994b INT-3582: Pub Confirms for AMQP Outbound Gateway
JIRA: https://jira.spring.io/browse/INT-3582
2015-04-28 16:12:58 +03:00
Artem Bilan
183941ec07 INT-3705: Improve Messaging Annotations handling
JIRA: https://jira.spring.io/browse/INT-3705

* Add validation for annotation attributes which must be populated directly on the `MessageHandler` `@Bean` using setters
* Add `sendTimeout()` annotation attribute for all Messaging Annotations
* Remove `DEFAULT_SEND_TIMEOUT = 1000L` from `AbstractCorrelatingMessageHandler` to make its component consistent with all other
`AbstractMessageProducingHandler` implementation.
* Fix XSD docs and Reference Manual to say that default `send-timeout` for `AbstractMessageProducingHandler` components is `-1`, not `one second`
* Make all Messaging Annotations attributes as `String` to allow to configure through the Property Placeholder options
* Fix a couple of typos

Polishing
2015-04-23 14:15:08 +01:00
Artem Bilan
b6cfd4fa76 INT-3663: Fix Early BF Access for Security Module
JIRA: https://jira.spring.io/browse/INT-3663

Previously the `ChannelSecurityInterceptorBeanPostProcessor` was populated with direct `BeanDefinition`s for `ChannelSecurityInterceptor`s.
It caused an `early access to BeanFactory`.
The issue has been introduced by the `ChannelSecurityInterceptorFactoryBean`

* Rework `SecurityIntegrationConfigurationInitializer` do not populate `BeanDefinition`s to the `ChannelSecurityInterceptorBeanPostProcessor`, but just `bean names`
* Redesign `ChannelSecurityInterceptorBeanPostProcessor` to the `AbstractAutoProxyCreator`
* Introduce `SecuredChannel` annotation to be used on the `@Bean` level for `MessageChannel` definition
* Move `access policy` mapping to the `SecuredChannel` annotation

Address PR comments

Document `@SecuredChannel` annotation
2015-04-16 14:24:35 +01:00
Senthil Arumugam, Samiraj Panneer Selvam
d8f175edac INT-3666: Add MongoDbMetadataStore
JIRA: https://jira.spring.io/browse/INT-3666
2015-04-08 11:45:45 +03:00
Gary Russell
056b17aaa7 INT-3197: Docs to AsciiDoc from DocBook
JIRA: https://jira.spring.io/browse/INT-3197

Polishing

Various glitches.

Fix Table of Contents

Polishing - Various Glitches

More Polishing

- Fixes for issues found by side-by-side comparison of htmlsingle output.

Fix Table Formats for PDF

More Polishing - PR Comments

More Polishing - Bad Titles

More Polishing

Work-Around for AsciiDoctor Problem

https://github.com/asciidoctor/asciidoctor/issues/1297

Use a blank line between includes rather than a comment
at the end of include files that end with a callout.

Remove Unresolved qName Entries

Fix Overview PDF Image Sizes

Highlight Schema Imports

More Image Fixes

INT-3197: Port DocBook Changes Since Conversion

Remove DocBook Files
2015-03-20 19:49:42 +02:00
Gary Russell
facffe2411 INT-3680: Fix JMS Durable Subscription Name
JIRA: https://jira.spring.io/browse/INT-3680

Change parser to use the `setSubscriptionName` setter instead
of `setDurableSubscriptionName` which as the side effect of
unconditionally setting the subscription as durable.
2015-03-19 13:35:48 +02:00
Gary Russell
75ec449c0b INT-3633: Add MessageSourceAdvice
JIRA: https://jira.spring.io/browse/INT-3633

INT-3633: Add SimpleActiveIdleMessageSourceAdvice

Also resolve package tangle.

Polishing and Docs

Polishing according PR comments:
* Fix JavaDocs vulnerabilities
* Fix typos in docs
* Remove unnecessary `AopUtils.canApply` check
2015-03-19 13:31:24 +02:00
Artem Bilan
0f05512e9a INT-3664: Rework BPP in the IntMBExporter
JIRA: https://jira.spring.io/browse/INT-3664

Since all metrics are already direct for the integration components, we don't do any proxying from `IntegrationMBeanExporter`,
and even any other adjustments during BPP phases. Hence this stuff is already redundant for `IntegrationMBeanExporter`.
In addition this change fix the `early access to the BeanFactory from BPP` issue.

INT-3664: Address PR comments

Doc Polish

INT-3664: Polishing according the SF changes to the `PostProcessorRegistrationDelegate$BeanPostProcessorChecker`
2015-03-09 18:01:37 -04:00
Gary Russell
c631560968 INT-3670: JMS Doc Polishing 2015-03-04 17:40:42 -05:00
Gary Russell
e7534aa4b8 INT-3670: JMS Conversion Error Handling
JIRA: https://jira.spring.io/browse/INT-3670

Exceptions during inbound message conversion are now routed to the error-channel (if present).

When there is no error-channel, the exception is thrown back to the container as before.

Add a note to the `jms.xml` about the `error-channel` usage changes
2015-03-04 23:04:58 +02:00
Artem Bilan
75ff56962a INT-3655: Remove Reactor Function Usage
JIRA: https://jira.spring.io/browse/INT-3655

In addition, change `GatewayProxyFactoryBean` to the logic to ensure that the Reactor is really `optional`

INT-3655: Doc Polishing
2015-03-03 12:14:49 -05:00
Gary Russell
134c7c870b INT-3651: JMX Improvements Documentation
JIRA: https://jira.spring.io/browse/INT-3651

- Add documentation for the new JMX environment
- Add the ability to customize the default metrics implementations
- Fix LifecycleMessageHandlerMetrics to get a custom `MessageHandlerMetrics`
- Add an escape to the bean pattern matcher to handle beans starting with `!`

INT-3651: More Docs/Polishing

* JavaDocs polishing
* Change `jmx.xml` to describe `public void stopActiveComponents(long howLong)` not that removed with `boolean force`
2015-03-02 14:44:31 +02:00
Gary Russell
40c4cb0d41 INT-3635: TCP GW: Add remoteTimeoutExpression
JIRA: https://jira.spring.io/browse/INT-3635

Add an expression as an alternative to `remote-timeout`.

INT-3635: Tcp GW Docs

Also removed the relationship between reply-timeout and
remote-timeout (introduced in 2.2 to provide backward compatibility
after the incorrect use of the reply-timeout attribute).

* Add log for Thread interruption state to the `EnableIntegrationTests`: https://build.spring.io/browse/INT-B41-JOB1-233
2015-03-02 13:39:56 +02:00
Gary Russell
beeb49d55b INT-3577: Remove flush() from TCP Serializers
JIRA: https://jira.spring.io/browse/INT-3577

It is no longer necessary to `flush()` the `BufferedOutputStream`.

Since INT-3575, the `TcpNetConnection` has flushed the stream.

The `TcpNioConnection` now does so too.

* Add `id` for the `<section>`s in the `whats-new.xml`
2015-02-28 15:03:52 +02:00
Gary Russell
29e65e68af INT-3657: Default MaxMessPerPoll=1 for @InboundCA
JIRA: https://jira.spring.io/browse/INT-3657

With XML/DSL, the MMPP defaults to 1 (via the SPCAFB) but
@InboundChannelAdapter defaulted to -1 (infinity).

Change the annotation to be consistent with the XML/DSL.

Add missing schema docs for the `basePollerType`.

* Fix `AbstractMethodAnnotationPostProcessor` for `maxMessagesPerPollValue` override
* Change `EnableIntegrationTests#foo()` `@InboundChannelAdapter` to use `maxMessagesPerPoll = "2"`
and modify appropriate test-case to be sure that `maxMessagesPerPoll` isn't overriden as it has been done in the original commit.
2015-02-28 14:45:06 +02:00
Gary Russell
f4e775ec18 INT-3646: Add TCP Server Exception Events
JIRA: https://jira.spring.io/browse/INT-3646

Publish `TcpConnectionServerExceptionEvent`s when unexpected
exceptions occur on server sockets.

INT-3646: Polishing
Fix Reactor tests
2015-02-18 20:17:45 +02:00
Artem Bilan
bc509da062 INT-3631: Fix package tangle for ScatterGatherH
JIRA: https://jira.spring.io/browse/INT-3631

In addition add logging and SOUT hooks for `EnableIntegrationTests` to have more info for investigation of failures on CI like
https://build.spring.io/browse/INT-MJATS41-JOB1-233
2015-02-11 09:51:20 -05:00
Tony Falabella
a7d325adc1 INT-3621: Add Namespace support for appendNewLine
JIRA: https://jira.springsource.org/browse/INT-3621

Polishing for code formatting and simple polishing to Docs
2015-02-05 15:38:35 +02:00
Gary Russell
15eb01169d INT-3581: Support selector-expression on WireTap
JIRA: https://jira.spring.io/browse/INT-3581

Move schemas to 4.2.

Add `selector-expression` to `<wire-tap/>`.

INT-3781: Fix What's New

Bump Namespace Version to 4.2
2015-01-13 15:32:06 -05:00
Gary Russell
cd0c58aba3 INT-3607 Fix <transactional/> Docs
JIRA: https://jira.spring.io/browse/INT-3607
2015-01-13 14:09:05 -05:00
Gary Russell
c24a12d19b INT-3586: Map Consumer Metadata Headers
JIRA: https://jira.spring.io/browse/INT-3586

Map the consumer tag and queue `MessageProperties` to
Spring Integration headers.

Use reflection to detect presence of Spring AMQP 1.4.2, to avoid forcing a new Spring AMQP version.

Polishing
2015-01-08 19:53:31 +02:00
Gary Russell
722bd3e348 INT-3590: Fix Router Documentation
JIRA: https://jira.spring.io/browse/INT-3590
2014-12-24 11:00:50 -05:00
Gary Russell
864cabcfe0 INT-3450 Support RFC 5424/6587 for SYSLOG
JIRA: https://jira.spring.io/browse/INT-3450

Use LinkedHashMap

- natural iteration order

INT-3450 Polishing - PR Comments

INT-3450: Polishing
2014-12-11 22:28:36 +02:00
Artem Bilan
1a4f98ac4c INT-3466: IMAP: Move peek Option to Properties
JIRA: https://jira.spring.io/browse/INT-3466

INT-3466 Add Docs
2014-12-11 14:54:46 -05:00
Artem Bilan
f89963dc9b INT-3575 TcpNetConnection: flush stream in send()
JIRA: https://jira.spring.io/browse/INT-3575
2014-12-11 19:09:12 +02:00
Artem Bilan
8c89ea9969 INT-3568: Improve Endpoint Summary
JIRA: https://jira.spring.io/browse/INT-3568
2014-12-08 12:11:17 +02:00