Commit Graph

9623 Commits

Author SHA1 Message Date
Gary Russell
403c91801d INT-3412 (S)FTP Append, rmdir, Client Access
JIRA: https://jira.spring.io/browse/INT-3412

Initial commit - review only.

TODO:
- SFTP Tests
- Namespace/Adapter support for file append
- Docs

INT-3412 Polishing

- Addressed PR comments
- Completed SFTP implementation
- Added namespace/parser support for `FileExistsMode` (append, etc)
- Added SFTP Tests
- Created Embedded SFTP server for tests (similar to FTP)
- Converted tests that needed a real server to use the embedded server

INT-3412 Docs and Polish (PR Comments)
2014-08-04 15:08:34 +03:00
Gary Russell
bc3db5d4a9 Fix Timing in GemFire Delayer Reschedule Test
https://build.spring.io/browse/INT-MEIGHT-JOB1-166
2014-08-04 13:43:43 +03:00
David Liu
9d0089d51d INT-3384: Rework JMS/XML Module XSD Enumerations
JIRA: https://jira.spring.io/browse/INT-3384

Polishing
2014-08-04 13:42:15 +03:00
Gary Russell
1c84305f8d Fix Occasional Reaper Expiry Test Failure
https://build.spring.io/browse/INT-MJATS41-32/

Also add a test for expiring a group within an aggregator.

Polishing
2014-07-31 22:43:12 +03:00
Artem Bilan
5992fc201b Update CONTRIBUTING.md 2014-07-31 14:09:48 +03:00
David Liu
afc8214c52 INT-3200: SFTP: use byte[] for the PrivateKey
JIRA: https://jira.spring.io/browse/INT-3200

INT-3200: Remove reduntant test case

INT-3200: remove trailing space
2014-07-31 09:56:29 +03:00
Artem Bilan
36cabb7f3c INT-2634: Test for gateway's Map parameter
JIRA: https://jira.spring.io/browse/INT-2634

The Map entries with non-String keys are now skipped just with WARN message,
instead of `IllegalArgumentException` as it was before
2014-07-30 18:04:46 +03:00
Artem Bilan
48ea677b41 SftpServerTests: BASE64Decoder -> apache..Base64 2014-07-29 18:15:11 +03:00
Gary Russell
46a6259140 Add Sftp Server Tests
Using Apache Mina
2014-07-29 08:56:10 +03:00
Gary Russell
edebfed62c INT-3420 Aggregator Expiry Doc Clarification
JIRA: https://jira.spring.io/browse/INT-3420

New documentation implied that if `expire-groups-upon-timeout`
was true, the group would NOT be removed if the group
was released by the release strategy in `forceComplete()`.

"...if it does so, then expiration is controlled by..."

In fact, `afterRelease()` (which is where `expire-groups-upon-completion`
is only invoked if `expire-groups-upon-timeout` is false.

Clarify that if the release strategy releases the group during timeout
then the group will always be expired if `expire-groups-upon-timeout` is
true (default).
2014-07-27 09:24:42 -04:00
Artem Bilan
7fdc0d4660 INT-3483: Fix AbstractCorrelatingMH deadlock
JIRA: https://jira.spring.io/browse/INT-3483

**Cherry-pick to 4.0.x & 3.0.x**
2014-07-25 10:03:11 -04:00
Clément Garnier
815f6bfce1 INT-3480: public DefaultPahoMC.setPayloadAsBytes
JIRA: https://jira.spring.io/browse/INT-3480

In docs, it s said:
```
The DefaultPahoMessageConverter can be configured to return the raw byte[] in the payload by declaring it as a <bean/> and setting the payloadAsBytes property.
```
http://docs.spring.io/spring-integration/docs/4.0.0.M3/reference/html/mqtt.html
2014-07-25 13:15:36 +03:00
David Liu
aaf88ecc7c INT-3104:Add auto-start attribute to Gemfire Adapters
JIRA: https://jira.spring.io/browse/INT-3104

Add phase and remove unnecessary auto-starup

INT-3104: Remove reduntant code and format

Polishing and fixing parser tests
2014-07-25 13:08:28 +03:00
Gary Russell
eff1c7b7d8 INT-3464 Fix Test Filenames 2014-07-24 10:55:35 -04:00
Gary Russell
a20fa9a029 INT-3464 Exceptions and AcceptOnceFileListFilter
JIRA: https://jira.spring.io/browse/INT-3464

Previously, if an IO exeption occurred while synchronizing
files, and an AcceptOnceFileListFilter is being used, files that were
not transferred would not be fetched next time.

Add strategy `ReversibleFileListFilter` that can rollback previously
accepted files.

Implement this interface on `AcceptOnceFileListFilter` and
`AbstractPersistentAcceptOnceFileListFilter`.

Add test cases.

Polishing
2014-07-24 16:56:38 +03:00
Gary Russell
5b3b557cba INT-3474 Suppress DEBUG StackTrace in MIMHelper
JIRA: https://jira.spring.io/browse/INT-3474

When the MethodInvokingMessageHandler skips ineligible methods while
searching it emits a stack trace under DEBUG logging. This is not
needed, a simple log message is enough to convey the information.

Some POJOs gain ineligible methods when wrapped in a proxy so this
is no fault of the developer.

Other reasons for skipping methods (improperly set annotations etc)
continue to emit a stack trace.

INT-3474: Polishing

Rethrow `IneligibleMethodException` as `IllegalArgumentException` in case of a single `method` for processor
2014-07-24 16:42:02 +03:00
Gary Russell
3b49d606ac INT-2371 DefaultHeaderChannelRegistry Improvements
JIRA: https://jira.spring.io/browse/INT-3471

- Make final fields protected so they are available to subclasses
- Add property `removeOnGet` allowing the map entry to be removed immediately when it is used
- Add `time-to-live-expression` allowing override of the reaper delay

Polishing

Conflicts:
	src/reference/docbook/whats-new.xml
2014-07-24 11:45:06 +03:00
Liujiong
302edf9221 INT-3465:Content Enricher Improvements
JIRA: https://jira.spring.io/browse/INT-3465

Add support for adding/removing individual recipients to the RecipientListRouter

Modify documentation in what's new and spring-integration-4.1.xsd

Polishing

`AbstractRemoteFileOutboundGateway`: close `outputStream` before `file.delete()` to release exclusive file-lock
2014-07-23 21:42:45 +03:00
Gary Russell
40f1122df2 INT-3420 Aggregator expire-groups-upon-timeout
JIRA: https://jira.spring.io/browse/INT-3420

Add option to allow the empty group to remain after timeout
so late arriving messages can be discarded.

INT-3420 Add Callout Hyperlinks

The aggregator configuration documentation had hyperlinks
from the attribute descriptions to the attribute in the
XML, but not vice-versa. For a large number of attributes
such as this, bi-directional hyperlinks are useful.

INT-3420 Doc Polishing
2014-07-23 10:20:43 +03:00
Gary Russell
e21d32f4fd INT-3452 Http Response Documentation
JIRA: https://jira.spring.io/browse/INT-3452

Document that `expected-response-type` is required when a response
contains a body.
2014-07-22 21:21:15 +03:00
Artem Bilan
7abefb08df INT-3475: Integer.MAX_VALUE / 2 Phase for MDEs
JIRA: https://jira.spring.io/browse/INT-3475

Change the phase for `SourcePollingChannelAdapterFactoryBean`, `AbstractPollingEndpoint`, `MessageProducerSupport`, `JmsMessageDrivenEndpoint`
to the `Integer.MAX_VALUE / 2`
2014-07-22 11:07:31 -04:00
liujiong1982
5bb2141fe2 INT-3238:Delete the FTP Temporary File (get)
JIRA: https://jira.spring.io/browse/INT-2438

If a get operation fails in the outbound gateway,
clean up (remove) the temporary file if present.

Test Polishing
2014-07-22 10:46:14 -04:00
Gary Russell
d5b831d210 Remove Unnecessary Deprecation Suppression
Deprecated API usage has been removed from the affected modules.
2014-07-18 15:04:49 -04:00
Artem Bilan
81cacf340c 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:21:33 -04:00
Artem Bilan
a64b53a1b5 INT-3473: Set Inactive TcpNioFactory Before Stop
JIRA: https://jira.spring.io/browse/INT-3473

A simple fix to prevent `Selector closed` error loging message on `TcpNioServerConnectionFactory#stop()`

Polishing
2014-07-17 15:37:05 -04:00
Artem Bilan
3890e892d8 INT-3470: SF 4.1 Compatibility #2
JIRA: https://jira.spring.io/browse/INT-3470

* Apply the last `ChannelInterceptor` changes - just `extends ChannelInterceptorAdapter`
* Change some tests to check content according to the new changes to the `GenericMessage#toString()`

**Cherry-pick to 4.0.x**
2014-07-17 14:32:50 -04:00
Gary Russell
84e3d4e126 INT-3467 MQTT Modify Subscribed Topics at Runtime
JIRA: https://jira.spring.io/browse/INT-3467

Add methods and managed operations to the inbound
channel adapter to allow the subscribed topics to be
changed at runtime, programmatically, or using a
control-bus.
2014-07-15 11:12:10 +03:00
Gary Russell
dcdaafc075 INT-3468 MQTT Async Client
JIRA: https://jira.spring.io/browse/INT-3468

Provide an option to not block when sending and emit
events for sends and delivery confirmations.

Also use the async client for the inbound adapter; while
it doesn't make any performance difference, it does
allow us to timeout the disconnect, which we have seen
to cause hangs on the CI servers.

INT-3468 Polishing - Use Events; Add Docs

INT-3468 Doc Polishing

INT-3468 More Polishing - PR Comments

- Only emit delivered event if async
- Add clientId and a new instance counter to events

INT-3468 Polishing

- Pull client instance up to the abstract class and remove references to the Paho implementation from the events
- Improve tests to include a second client

INT-3468 Fix Test Case

Incorrect classname meant the default location for the application
context config was not found on case-sensitive file systems.

Also, don't auto-start the adapters in the context, in case
the broker is not running.

INT-3468: Polishing

INT-3468 Fix Package Tangle; Add 'async-events'

Add an option (default false) to emit events when async is true.
2014-07-14 10:14:24 +03:00
Gary Russell
95d81d4949 Enable RabbitMQ MQTT Plugin on Travis 2014-07-11 14:18:26 -04:00
Gary Russell
5cae94f691 INT-3437 MQTT - Support Cluster Connection
JIRA: https://jira.spring.io/browse/INT-3437

Note: Tests are still ignored due to hung connection
on close problem.

INT-3437 Polishing - PR Comments
2014-07-10 17:10:10 +03:00
Gary Russell
cef58dae34 INT-3469 MQTT - Set Callback Before Subscribing
JIRA: https://jira.spring.io/browse/INT-3469

Previously, the callback was set immediately after
subscribing which caused a small possibility of
message loss.

Set the callback before subscribing.
2014-07-09 11:21:23 -04:00
Artem Bilan
e9ad73ad2c INT-3434: AMQP Don't Declare Queue if Supplied
JIRA: https://jira.spring.io/browse/INT-3434

Previously `PointToPointSubscribableAmqpChannel` declared Queue always.
Change the logic to use `admin.declareQueue` only if `queueName` isn't specified.
In addition it is redundant to get deal with entire `Queue` object - just use the `queueName` for the `SimpleMessageListenerContainer`

Polishing

Declare queue the old way if not already present in broker,
even if the name is supplied.
2014-07-08 14:10:35 -04:00
Artem Bilan
34b257e3f2 INT-3448: Add @Async test for @Gateway
JIRA: https://jira.spring.io/browse/INT-3448

INT-3448: Addressing PR comments

Late Resolution of @Publisher.defaultChannel

Early resolution of the publisher default channel caused
`@ Configuration` factory beans to be instantiated before
Spring Integration bean post processors had been registered.

Use the channel name instead of channel reference and resolve
it when processing the first publish.

Merge branch 'INT-3448' of https://github.com/garyrussell/spring-integration into INT-3448

Conflicts:
	spring-integration-core/src/test/java/org/springframework/integration/configuration/EnableIntegrationTests.java

INT-3448: Polishing
2014-07-08 09:20:18 -04:00
Artem Bilan
92975262d7 INT-3435: Make JmsChannelFB More Friendly
JIRA: https://jira.spring.io/browse/INT-3435

INT-3435: Polishing according test failures

https://build.spring.io/browse/INT-B41-29
2014-07-08 09:13:15 -04:00
Gary Russell
62dfc99844 Undo "INT-3435: Make JmsChannelFB more friendly"
This reverts commit 04131c2d0b.
2014-07-07 20:37:08 -04:00
Artem Bilan
04131c2d0b INT-3435: Make JmsChannelFB more friendly
JIRA: https://jira.spring.io/browse/INT-3435
2014-07-07 16:23:44 -04:00
Artem Bilan
be362f90c6 INT-3462: Polishing (s)ftp XSD
JIRA: https://jira.spring.io/browse/INT-3462
2014-07-07 15:11:09 -04:00
Artem Bilan
93be035cae INT-3447: HTTP-inbound: status-code-expression
JIRA: https://jira.spring.io/browse/INT-3447

Polishing
2014-07-07 15:03:00 -04:00
Artem Bilan
c309b031f8 INT-3449: TCP: read-delay for XML Configuration
JIRA: https://jira.spring.io/browse/INT-3449

Doc Polishing
2014-07-07 12:01:20 -04:00
Artem Bilan
e43671feb9 INT-3463: Add encode-uri to ws:outbound-gateway
JIRA: https://jira.spring.io/browse/INT-3463
2014-07-07 11:03:47 -04:00
Artem Bilan
d0fa88ac72 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:19:49 -04:00
Artem Bilan
7b264e83f4 INT-3461: Add rometools Dependency for SF 4.1
JIRA: https://jira.spring.io/browse/INT-3461

To test it: `gradlew :spring-integration-http:testAll -PspringVersion=4.1.0.BUILD-SNAPSHOT`

INT-3461: Add CP condition for `rometools` into the `HttpRequestHandlingEndpointSupport`

INT-3461: Add CLASSPATH check for `RequestEntity` to determine the SF 4.1
2014-07-03 14:27:42 -04:00
Artem Bilan
db8b164425 INT-3404: Remove MProducer from AIFileSMS
JIRA: https://jira.spring.io/browse/INT-3404

Previously, `AbstractInboundFileSynchronizingMessageSource` implemented both `MessageProducer` and `MessageSource`.
The `MessageProducer` is really redundant and confusing.
Also, it might produce some side-effects when using JavaConfig.

Provide some other simple but important fix for all `AbstractMessageSource` implementation to invoke `super.afterPropertiesSet()`

Polishing

Add mock bean factory to failing tests.

Revert state assertions in AbstractInboundFileSynchronizingMessageSource;
the fields are state, not arguments, at the time they are being
asserted.
2014-07-02 15:29:08 -04:00
Artem Bilan
1ca631e2c8 INT-3415 Add apply-sequence to xpath-splitter
JIRA: https://jira.spring.io/browse/INT-3415

* Add `XPathSplitterParserTests`

XSD Doc Polishing
2014-07-02 12:49:43 -04:00
Artem Bilan
58932dc31f INT-3426: Add <r-h-a-c> for all outbound-c-a
JIRA: https://jira.spring.io/browse/INT-3426

Provide other fixes for XSD. E.g. not all adapter have had `<poller>`
2014-07-02 16:02:55 +03:00
Gary Russell
ca0bcf2174 Fix Tcp Interceptor Docs
http://stackoverflow.com/questions/24514348/tcpinboundgateway-replychannel-error-handling
2014-07-01 13:33:56 -04:00
Artem Bilan
c92d7a5da9 INT-3458: Compatibility with Spring Framework 4.1
JIRA: https://jira.spring.io/browse/INT-3458

* Change Spring AMQP to `1.3.5.RELEASE`
* `HttpRequestHandlingEndpointSupport`: remove `MappingJacksonHttpMessageConverter` registration
* `IntegrationRequestMappingHandlerMapping`: add 'fake' `name()` attribute to the inline `RequestMapping` annotation
* `StoredProcJmxManagedBeanTests`: remove `context.stop();` code, Since `MBeanExporter` deregister MBeans on `stop()` now
* `StoredProcPollingChannelAdapterParserTests`: change deprecated `ParameterizedSingleColumnRowMapper` to the `SingleColumnRowMapper`
* `Jms`: comment out the reflection code to check the value for the `recoveryInterval`, because it is removed already in favor of `backOff`
* `NotificationListeningMessageProducer`: move the start-up listener registration to the `onApplicationEvent`,
because `MBeanExporter` moved `registerBeans()` to the `start()` now.
The same `phase` might cause the issue, that MBeans aren't registered yet for `NotificationListeningMessageProducer`
* `JpaOutboundGatewayTests`: change `@TransactionConfiguration` to the `@Transactional`. Don't know why the first doesn't work now.

**Cherry-pick to 4.0.x**

INT-3458: Addressing PR comments

`NotificationListeningMessageProducer`: defer listener registration until `onApplicationEvent()`
2014-07-01 09:37:29 -04:00
Gary Russell
5aee3c85ba INT-3453 NIO Always Release Assembler Thread
Fixed hung assembler described in INT-3453.

Used CountDownLatch instead of sleep()

INT-3453 Add Test Case

Currently failing for me - assembler thread stuck on CDL.

Remove redundant `if (TcpNioConnection.this.writingLatch != null)` from `ChannelInputStream#write`
2014-06-27 18:23:04 +03:00
Artem Bilan
7e0eb7ad4e Revert "Fixed infinite loop described in INT-3453." 2014-06-25 16:36:39 +03:00
Artem Bilan
8754fa9ea9 Merge pull request #1182 from JohnA2/INT-3453
Fixed infinite loop described in INT-3453.
2014-06-25 16:36:16 +03:00