Commit Graph

206 Commits

Author SHA1 Message Date
Gary Russell
cc90ce92b0 INT-2438 Fix Temporary Remote Directory
The final remote directory expression processor was being
used instead of the temporary directory expression processor.

Add a test to confirm the correct processors are used.
2012-11-09 14:47:49 -05:00
Gunnar Hillert
7055845424 INT-2218 - Chain Parser Validation Improvements
Components within Chain: Add parser validation

For reference see: https://jira.springsource.org/browse/INT-2218

INT-2218 - Code review changes

INT-2218 - Fix HttpOutboundGatewayParserTests

INT-2218 - Remove input-channel validation

Was already covered by PR #592
2012-09-21 12:22:52 +01:00
Oleg Zhurakousky
94cc5a73e2 INT-2727 PseudoTX Refactoring
Remove the need for pseudo-transactional element

INT-2727 PseudoTX
Add PseudoTransactionalTransactionManager

INT-2727
addressed PR comments
cherry picked previous code for mail module to eliminate breaking change

INT-2727
initial refactoring pseudo-tx support to use common configuration

INT-2727
finalizing pseudo-tx synchronization support

INT-2727 polishing

INT-2727 polishing based on PR comments

INT-2727 addressed PR comments

INT-2727 polishing

INT-2727 Remove PseudoTransactionalMessageSource

Instead of getResource, bind the resource holder before
receive() and then add attributes to the holder.

INT-2727 polishing

INT-2727 Polishing

Remove bind of #resource; add beforeCommit() test;
add TransactionTemplate tests.
2012-09-05 16:55:34 -04:00
Gunnar Hillert
dad4eac9ac INT-2710 - Remove hard-coded schema references
For reference see: https://jira.springsource.org/browse/INT-2710
2012-08-28 17:08:43 -04:00
Gunnar Hillert
43def795f9 INT-2708 - Fix Failing Tests in FileInboundTransactionTests
* Remove hard-coded XML Schema versions in *FileInboundTransactionTests-context.xml*
* Convert spaces-to-tabs in *FileInboundTransactionTests-context.xml*

For reference see: https://jira.springsource.org/browse/INT-2708
2012-08-09 13:00:57 -04:00
Gary Russell
f294086684 INT-2707 Fix pseudo-transactional Attribute Typo
s/psuedo-/pseudo-/
2012-08-09 08:09:50 -04:00
Gary Russell
08cbab08c2 INT-2214, INT-343, INT-2250 MessageHandler Advice
Add general capability to advise just the handleRequestMessage
part of an AbstractReplyProducingMessageHandler.

This is to advise just the immediate operation, and not the
entire downstream flow.

Uses include:

* outbound gateway post processing
* adding retry behavior using spring-retry
* adding circuit breaker functionality

Initial commit for review.

Also need to advise simple message handlers (such as file
etc) to allow them to post-process file operations
with payload.delete(), payload.renameTo(...) etc.

INT-2250 Add Circuit Breaker Advice

INT-343 Add Retry Advice

Stateless and Stateful retry using spring-retry. Stateless
means the RetryTemplate performs the retries internally.
Stateful means the exception is thrown (e.g. to JMS container)
and the retry state is maintained by spring-retry.

INT-2215, INT-343, INT-2250 Refactoring

Factor out common abstract Advice class.

INT-2214 Catch Evaluation Expression Exceptions

If an onSuccess expression evaluation fails, add an
option so the user can decide whether such an exception is
caught, or propagated to the caller.

INT-2214 etc PR Review Polishing

INT-2214 etc Namespace Core, File, FTP

Add <request-handler-advice-chain/> to outbound endpoints.

INT-2214 etc. More Namespace Support

amqp, event, gemfire, groovy, http, ip, jdbc, jms, jmx, jpa, mail, rmi, sftp, twitter, ws, xmpp

INT-2214 etc Polishing

PR Review

INT-2214 etc Polishing

Don't catch Throwable.

Move Advice classes to handler.advice package.
2012-08-06 09:15:58 -04:00
Gary Russell
4de02fa75e INT-2685 Transaction Synchronization
Remove M3 disposition-* attributes on File/(S)FTP inbound adapters.

Add <pseudo-transactional/> and <transaction-synchronization/> elements
to <poller/>.

These elements provide the following attributes:

* on-success-expression
* on-success-result-channel
* on-failure-expression
* on-failure-result-channel
* send-timeout

<transaction-synchronization/> synchronizes these expression evaluations
with the transaction, such that they are executed immediately after
the commit/rollback.

<psuedo-transactional/> is used for a non-transactional poller.

When an <advice-chain/> is provided to the poller, <psuedo-transactional/>
and <transaction-synchronization/> are synonyms; and the behavior is
dictated by whether or not the <advice-chain/> contains a transaction
advice. It is recommended that <pseudo-transactional/> is used when the
<advice-chain/> does not have a txAdvice, and <transaction-synchronization/>
when it does, but the framework does not enforce this.

The expressions have the original (polled) message as the #root variable.
In addition, a BeanResolver is provided, allowing expressions such as
'@someBean.handleSuccess(payload)'.

MessageSources may also implement PseudoTransactionalMessageSource. This
has a number of methods allowing more flexibility in transactional and
non-transactional environents. For example, for backwards compatibility.
the mail-inbound-channel-adapter deletes its polled message after the
receive() rather than after the polled message is sent (when running in
a non-transactional poller). However, when running in a transactional
poller, the delete is done after the transaction commits (but not when
it rolls back).

In addition, MessageSources that implement this interface can optionally
provide an arbitrary object to the success/failure expressions in a
variable named '#resource'.

INT-2685 Polishing

PR Review Comments

Add tests for non-tx PseudoTransactionalMessageSource
2012-08-03 14:04:22 -04:00
Gunnar Hillert
6b4f67b153 INT-2668 - Improve the File Overwrite Handling
* Add *mode* attribute to XSD (supports APPEND, FAIL, IGNORE, REPLACE)
* Add test cases
* Add reference documentation

For reference: https://jira.springsource.org/browse/INT-2668

INT-2668 - Code Review Changes

INT-2688 fixed typo
2012-08-01 13:32:54 -04:00
Gunnar Hillert
b07abcd30c INT-2262 - Add reply-timeout to Outbound Gateways
For reference see: https://jira.springsource.org/browse/INT-2262

Add reply-timeout attribute to:

* Amqp Outbound Gateway
* File Outbound Gateway
* Ftp Outbound Gateway
* Sftp Outbound Gateway
* Ws Outbound Gateway

Update Schema Documentation for reply-timeout attribute:

* spring-integration-jpa-2.2.xsd
* spring-integration-jms-2.2.xsd
* spring-integration-jdbc-2.2.xsd
* spring-integration-ip-2.2.xsd
* spring-integration-http-2.2.xsd

Update the *What's new in Spring Integration 2.2* section in the reference manual

INT-2262 - Code Review

* Update copyright year for affected files
* Update author tags for affected files
2012-07-16 14:37:16 -04:00
Gary Russell
e6e43100b5 INT-2633 Add File Disposition to (S)FTP Inbound
FileReadingMessageSource supports disposition of the payload
after the message is sent (or via transaction synchronization).

The (S)FTP adapters delegate to an FRMS; add support for the
file disposition expression, result channel, and send timeout
to the (S)FTP adapters.

Also tested with ftp sample - INTSAMPLES-83 - patch will be
committed once this is in a milestone.
2012-07-10 19:04:59 -04:00
Gary Russell
b8f7d01f69 INT-2652 Fix mget for FTP
FTP servers return full path from listNames() whereas SFTP
returns just the filename. mget logic assumed SFTP behavior.

Add a test to see if the filename already starts with the remote
directory and remove it before calling get() (which assumes just
the filename).

Includes an @Ignored test for FTP and SFTP that runs an mget
against a server.
2012-07-10 17:06:21 -04:00
Gary Russell
066eb91100 INT-1849/INT-2147 Add Disposition to File Adapter
* Add *disposition-expression* to the inbound file adapter. This allows for operations such as *payload.delete()*, *payload.renameTo()* after the file is processed.
* The result of executing the expression (if any) is sent to the disposition-result-channel.
2012-06-25 11:38:20 -04:00
Artem Bilan
81579f7491 INT-2621: make tests verifying file paths OS independent
INT-2621 Polishing

Move file separator replacement code to TestUtils in
s-i-test.
2012-06-18 16:53:56 -04:00
Gunnar Hillert
97b59c2acd INT-2618 - Document directory-expression attribute
* Add documentation directory-expression
* Add documentation for auto-create-directory attribute
* Refactor File Adapter chapter slightly so that it flows better

For reference see: https://jira.springsource.org/browse/INT-2618

INT-2618 - Doc updated due to changes in INT-805

* rebased
* clarified the file section in the reference doc
2012-06-15 11:45:00 -04:00
Gunnar Hillert
121018190f INT-805 - Dynamically create directories
Dynamically create directories with file:outbound-channel-adapter

* add **directory-expression** attribute for File Outbound Channel Adapter and File Outbound Gateway
* add JUnit tests

For reference: https://jira.springsource.org/browse/INT-805

INT-805 Code Review

* Fixed Spelling
* Fixed Code Convention issues
* Add support for expressions that resolve to File
* Add more JUnit tests

INT-805 - Code Review Changes

* Combine destinationDirectoryExpression and destinationDirectory
* Fix Tests

INT-805 - Code Review

* Always apply *destination directory* validation for each message (including LiteralExpressions)

INT-805 - Code Review changes

INT-805 - Added 2 exclusions to .gitignore
2012-06-15 11:28:53 -04:00
Oleg Zhurakousky
750501d66c INT-2470 Add 'append to file' Capability
Add capability to append to a file, if it already exists, to File Outbound Channel Adapter.
The new attribute is 'append' and is mutually exclusive with 'temporary-file-suffix' since
when appending to a file we can no longer write to a temporary file and then rename it.

INT-2470 addressed PR comments

INT-2470 PR Comments

INT-2470 polishing

changed logic behind File copy when one file needs to be appended into another

INT-2470 added WhileLockedProcessor

INT-2470 polishing
2012-06-14 18:36:02 -04:00
Artem Bilan
5bc41bc60b INT-1029: Support for outbound-gateways in chain
XSD refactoring: remove use="required" from 'request-channel' attribute of all 'outbound-gateways'
Tests for all 'outbound-gateways' inside the <chain>
2012-06-07 13:20:56 -04:00
Artem Bilan
45c429ee2b INT-2275: any outbound-channel-adapter in <chain>
Add re-init logic for nested chains
Add logic about nested element for AbstractChannelAdapterParser
Refactor of DefaultOutboundChannelAdapterParser
Test for non-last nested chain with some outbound-channel-adapter
Improve XSD for chain-type
Manual outbound-channel-adapter ability for chain
Integration tests for all outbound-channel-adapter within <chain>
Remove redundant 'return-value-required' attribute from <stored-proc-outbound-channel-adapter>
Add support 'expectReply' for FileWritingMessageHandler

INT-2275 polishing & refactor FileOutbound*Parser

HttpRequestExecutingMessageHandlerTests polishing

INT-2275: polishing JavaDoc
2012-05-14 12:41:39 -04:00
Gary Russell
411aa296a4 INT-1871 TCP CachingClientConnectionFactory
Pool based on algorithm used for spring-integration-file
CachingSessionFactory introduced by INT-2146. Refactored
that code to use the common SimplePool.

One difference to the previous implementation is the
ability to change the pool size dynamically.

If the size is reduced and more than the new size are
in use, items are closed as they are returned until
the pool size is as requested.

Initial commit.

Allow Pool Size Changes

Factor out Pool

Polishing

Pool Tests

Default forever

Javadocs, File

Polishing

INT-1871 PR Polishing

* Consistent/cleaner method names
* Track checkouts; reject release of 'foreign' objects.
* Add 'getAllocatedCount()'
2012-05-07 08:25:11 -04:00
Gary Russell
95cd202be6 INT-2536 Create 2.2 Schemas
Add 2.2 versions of module schemas.

JMX is already covered by an existing pull request.

INT-2536 Schema Check

Bump version for schema check in
AbstractIntegrationNamespaceHandler.

INT-2536 Remove Schema Versions

Some test config files had 2.1 versioned schemas.
2012-05-04 10:04:01 -04:00
Gary Russell
b317ece4c8 INT-2493 Add Edit For Filter on Get
Previously, the Filter property was ignored for a Get
command; this adds a hard edit to ensure a filter is
not provided when this command is used.
2012-04-09 09:34:14 -04:00
Gary Russell
00a71eefd2 INT-2494 Move listNames() Method to Session
ExtendedSession, with the listNames() method was introduced
in 2.1.1 (INT-2492) to support mget commands on the gateway.

This was to avoid breaking any user implementations of Session
in a point release. However, we documented this was temporary
and the interfaces would be consolidated in 2.2., and
ExtendedSession would be removed.

This is that consolidation.
2012-04-06 16:35:17 -04:00
David Turanski
4740f1cf32 INT-2489:allow for empty temporaryFileSuffix
INT-2498:Added use-temporary-file-name to (s)ftp outbound adapters

INT-2489 polished parser to eliminate any value validation

INT-2489 removed trailing whitespaces from schema files

INT-2489 added boolean flag to detect if 'temporaryFileSuffix'
was explicitly set so the warning message is only be displayed
if renaming is turned off, but a suffix provided.

INT-2489 polishing
2012-03-27 14:10:00 -04:00
Gary Russell
ff6a386f12 INT-2492 Add (S)FTP Support for mget
No options supported; send a payload of /* or * to
mget all files in the root directory.

Payload is a list of File objects representing files
copied to the 'local-directory'.

INT-2492 Polishing

Fix path issues; suppress LIST when GETing files from NLST.

INT-2492 Polishing

Add ExtendedSession so CachingConnectionFactory works.

INT-2492 SFTP, Docs

INT-2492 Polishing

INT-2492 Polishing - olegz PR Review

INT-2492 Polishing - EOL Note for ExtendedSession
2012-03-27 11:36:34 -04:00
Gary Russell
7cb75f82ef INT-2465 Fix Temporary File Suffix
<file:outbound-channel-adapter/> temporary suffix (.writing) was
overwritten to null by the factory bean if no suffix provided.
2012-03-23 10:31:20 -04:00
Gary Russell
ca89573209 INT-2400 More Invalid Class Names in Schemas
File, Feed, Ftp, Redis
2012-01-14 10:56:15 -05:00
Gary Russell
f76f63f23a NT-2400 Fix tool:expected-type Classes
* MessageChannel was moved from core to the base package.
* ChannelResolver moved from core to support.
* TcpConnectionInterceptorFactoryChain was incorrect.
2012-01-13 13:21:41 -05:00
Gary Russell
c994f1c05e INT-2364 package-info File Base Package 2012-01-05 18:20:10 -05:00
Oleg Zhurakousky
15e64b707b INT-2387 changed mkdir() method in Session to return boolean 2012-01-05 17:13:54 -05:00
Oleg Zhurakousky
b909e57c9b INT-2351
refactored implementations of FtpSession and SftpSession mkdir(path) method to avoid its previous dependency on hardcoded remote-file-separator
2012-01-05 16:52:41 -05:00
Gary Russell
b59ee8e352 INT-2369 package-info IP
INT-2360 package-info Core

INT-2361 package-info AMQP

INT-2362 package-info Event

INT-2363 package-info Feed

INT-2364 package-info File

INT-2365 INT-2380 package-info (S)FTP

INT-2366 package-info GemFire

INT-2367 package-info Groovy

INT-2368 package-info Http

INT-2378 package-info Scripting

INT-2372 package-info JMS
2012-01-05 14:42:24 -05:00
Mark Fisher
77abc55a1e INT-2322 2011-12-20 13:18:57 -05:00
Mark Fisher
554a0be04f INT-2320 2011-12-19 23:38:14 -05:00
Mark Fisher
0d8d7b43c7 create FileInputStream as late as possible 2011-12-19 16:48:23 -05:00
Oleg Zhurakousky
76e6e96b73 INT-2297-new
lighter version of addressing cache-sessions deprecation for FTP/SFTP
2011-12-14 15:08:57 -05:00
Oleg Zhurakousky
634e190f5c INT-2267
removed test compile warnings

INT-2267
removed test compile warnings(2)
2011-11-29 13:50:08 -05:00
Oleg Zhurakousky
6ddfaa33e4 INT-2278: fixed the bug affecting renaming of files 2011-11-28 15:52:39 -05:00
Oleg Zhurakousky
43f60dae08 INT-2238 interim commit
INT-2238 fixing warning comments

INT-2238 fixing warning comments

INT-2238 fixing warning comments
2011-11-22 21:10:32 -05:00
Oleg Zhurakousky
eb3cb363e8 INT-2213
added support for specifying 'temporary-remote-directory' as well as 'temporary-remote-directory-expression'

INT-2213 polishing

INT-2213 polishing docs
2011-11-10 15:34:41 -05:00
Mark Fisher
7581c1cea4 polishing 2011-10-19 17:07:21 -04:00
Oleg Zhurakousky
7f92089584 INT-2146
Expose session limitation on remote file adapters

  Deprecate 'cache-sessions' attribute

  Add 'sessionCacheSize' and 'sessionWaitTimeout' attributes on CachingSessionFactory

  Update documentation
2011-10-19 16:00:06 -04:00
Mark Fisher
b28ec17885 polishing 2011-10-19 15:46:15 -04:00
Oleg Zhurakousky
5059ecc318 INT-1844 added support for file name generation
Added support for generating local file name for FTP and SFTP inbound adapters
2011-10-19 15:30:51 -04:00
Mark Fisher
9df127e09d polishing 2011-10-19 14:01:03 -04:00
Oleg Zhurakousky
c1107a229e Improved check for existing directories
modified for Remote File adapters (e.g., FTP/SFTP)

  added 'auto-create-directory' attribute to FTP outbound adapter

  refactored code structure of FileTransferringMessageHandler
2011-10-19 13:23:44 -04:00
Oleg Zhurakousky
5a9a21bcee Refactored FileWritingMessageHandlerFactoryBean
Brought FileWritingMessageHandlerFactoryBean into the hierarchy of AbstractSimpleMessageHandlerFactoryBean
2011-10-19 11:28:57 -04:00
Mark Fisher
3b7cdf019e versionless schemas for file module 2011-10-10 11:57:03 -04:00
Gary Russell
ef5e78d526 INT-2163 Remove Abstract from Test Case Name
Tests in files containing Abstract in their names are not run
by maven.
2011-10-02 11:37:34 -04:00
Gary Russell
96c8d98715 INT-2163 Fix Failing Test on Windows
File timestamp is not rounded to seconds on Windows.

Also changed hard-coded /tmp to use java.io.tmpdir property.
2011-10-02 11:27:44 -04:00