Commit Graph

6642 Commits

Author SHA1 Message Date
Oleg Zhurakousky
9423c21e7a Merge pull request #581 from garyrussell/INT-2707
* INT-2707:
  INT-2707 Fix pseudo-transactional Attribute Typo
2012-08-09 12:17:21 -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
d4d009135f Merge pull request #546 from artembilan/INT-2649 2012-08-06 12:13:08 -04:00
Artem Bilan
d4e135b13d INT-2649: DelayHandler: tx & adviceChain support
* 'delayer-type' XSD: add `<transactional>` & `<advice-chain>`
* move `PollerParser#configureAdviceChain` into `IntegrationNamespaceUtils`
* DelayerParser: parsing `<transactional>` & `<advice-chain>` via `IntegrationNamespaceUtils#configureAdviceChain`
* DelayHandler: add `adviceChain` property
* DelayHandler: introduce `ReleaseMessageHandler` to apply `adviceChain` capabilities around `DelayHandler#doReleaseMessage`
* DelayerParserTests: tests for introduced sub-elements
* DelayerHandlerRescheduleIntegrationTests: test for transaction boundaries with intentional rollback in the message-flow after message release

JIRA: https://jira.springsource.org/browse/INT-2649

Resolve conflicts; polishing.
2012-08-06 12:09:30 -04:00
Oleg Zhurakousky
fc1417ed39 Merge pull request #562 from garyrussell/INT-2214,INT-343/INT-2250/INT-2656
* INT-2214b:
  INT-2214, INT-343, INT-2250 MessageHandler Advice
2012-08-06 09:17:36 -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
Oleg Zhurakousky
56e3c22970 Merge pull request #564 from garyrussell/INT-2685
* INT-2685:
  INT-2685 Transaction Synchronization
2012-08-03 14:05:11 -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
Oleg Zhurakousky
d6623bda82 Merge pull request #569 from ghillert/INT-2680
* INT-2680:
  INT-2680 - Duplicate Content-Type header For reference please see: https://jira.springsource.org/browse/INT-2680
2012-08-03 13:55:16 -04:00
Gunnar Hillert
78c85c2510 INT-2680 - Duplicate Content-Type header
For reference please see: https://jira.springsource.org/browse/INT-2680
2012-08-03 00:09:56 -04:00
Oleg Zhurakousky
0fc285db6e Merge pull request #559 from ghillert/INT-2668
* INT-2668:
  INT-2668 - Improve the File Overwrite Handling
2012-08-01 13:34:21 -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
Oleg Zhurakousky
b6a9c1aedc Merge pull request #566 from johndoe/INT-2689
* INT-2689:
  INT-2689 - SI builds without warnings (Except Spring Integration HTTP)
2012-08-01 13:10:37 -04:00
Gunnar Hillert
57bc67b8fb INT-2689 - SI builds without warnings (Except Spring Integration HTTP)
* Ensure that no deprecation warnings occur
* Spring Integration builds with all tests successfully for Spring 3.1.2.RELEASE and 3.0.7.RELEASE (Except Spring Integration HTTP)

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

INT-2694 - Fix Http Test Failures with Spring 3.0

As part of INT-2689, fix Http Test Failures in the Spring Integration Http Module when using Spring 3.0.7.RELEASE
For reference see: https://jira.springsource.org/browse/INT-2694
2012-08-01 13:09:51 -04:00
Oleg Zhurakousky
19c53ed9e9 Merge pull request #561 from ghillert/INT02681
* INT-2681:
  INT-2681 - Upgrade to Gradle 1.0 GA For reference: https://jira.springsource.org/browse/INT-2681
2012-08-01 13:02:17 -04:00
Gunnar Hillert
cef6113854 INT-2681 - Upgrade to Gradle 1.0 GA
For reference: https://jira.springsource.org/browse/INT-2681
2012-07-25 15:49:07 -04:00
Oleg Zhurakousky
9be17fa4df Merge pull request #554 from garyrussell/INT-2665
* INT-2665:
  INT-2665 JMX Endpoints And Remote MBeanServer
2012-07-19 13:05:07 -04:00
Gary Russell
c63141f6e0 INT-2665 JMX Endpoints And Remote MBeanServer
JMX endpoints need a reference to an MBeanServer. The MBeanServer
is a sub-interface of MBeanServerConnection.

When connecting to a remote MBeanServer, the server is an
instanceof MBeanServerConnection, not MBeanServer.

Change the Endpoints to get a reference to an MBeanServerConnection.

Add IOException catch clauses where necessary.
2012-07-19 13:04:04 -04:00
Oleg Zhurakousky
b39b0c2681 Merge pull request #556 from artembilan/INT-2678
* INT-2678:
  INT-2678: fix a couple of typo
2012-07-19 12:58:54 -04:00
Artem Bilan
09c92cf04d INT-2678: fix a couple of typo
* changes-2.0-2.1.xml: the subject of INT-2678
* delayer.xml <classname> tag typo
2012-07-19 11:29:19 +03:00
Gary Russell
bc63baa3e6 Merge pull request #555 from olegz/INT-2677 2012-07-18 13:26:12 -04:00
Oleg Zhurakousky
c6076f350f INT-2677 Upgrade JMS Module to use ActiveMQ 5.6.0 2012-07-18 13:25:46 -04:00
Gary Russell
8c9e307f49 Merge pull request #547 from ghillert/INT-2262 2012-07-16 14:52:12 -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
Gunnar Hillert
386be70dda Merge pull request #543 from garyrussell/INT-2285
* garyrussell-INT-2285:
  INT-2285 Implement max-subscribers on Channels
2012-07-16 14:17:36 -04:00
Gary Russell
2ecb14de2a INT-2285 Implement max-subscribers on Channels
Add a subscriber limit on both unicast and publish-subscribe
channels. This permits detection of inadvertent channel wiring
during context initialization.

Also add a mechanism to globally set these defaults.

Two properties are added to ChannelInitializer. If the
'channelInitializer' bean is declared before a channel, and
these properties are set, it will globally override the
default (Integer.MAX_VALUE) for these properties.

For example:

    <bean id="channelInitializer" class="org.springframework.integration.config.xml.ChannelInitializer">
        <property name="autoCreate" value="true" />
        <property name="defaultMaxUnicastSubscribers" value="1" />
        <property name="defaultMaxMulticastSubscribers" value="2" />
    </bean>

will make the default max-subscribers 1 and 2 for <channel/> and
<publish-subscribe/> channels respectively.

Also applies to module channels (jms, amqp, redis).
2012-07-16 14:12:27 -04:00
Gary Russell
a90a7e8e0b Merge pull request #549 from ghillert/INT-2574 2012-07-16 10:38:02 -04:00
Gunnar Hillert
0d81837e1b INT-2574 Document "max-rows-per-poll" vs "max-messages-per-poll"
For reference see: https://jira.springsource.org/browse/INT-2574
2012-07-16 10:37:24 -04:00
Gary Russell
c5d6980a5b Merge pull request #542 from ghillert/INT-1958
Previous merge should have referenced #552
2012-07-12 18:17:05 -04:00
Gunnar Hillert
9a8f2dae0b INT-1958 - Make HttpRequestHandlingEndpointSupport public
For reference: https://jira.springsource.org/browse/INT-1958
2012-07-12 18:13:28 -04:00
Gary Russell
6753a379bc Merge pull request #542 from olegz/INT-2666 2012-07-12 17:53:37 -04:00
Oleg Zhurakousky
760c488e41 INT-2666 Fix NPE in SimpleMessageStore
INT-2666 polished test

Polishing
2012-07-12 17:52:22 -04:00
Gary Russell
b429e1ff2d Merge pull request #550 from olegz/INT-2659 2012-07-12 11:50:00 -04:00
Oleg Zhurakousky
be60db8065 INT-2659 upgraded to Spring Data Redis 1.0.1 2012-07-12 10:59:33 -04:00
Gary Russell
e6708ad6ae Merge pull request #540 from ghillert/INT-2657 2012-07-10 22:58:55 -04:00
Gunnar Hillert
39ee7a4429 INT-2657 - Spelling Error in AbstractMailReceiver
* Also fixed spelling error in *PollableJmsChannelTests*
2012-07-10 22:55:44 -04:00
Oleg Zhurakousky
ee0dcd8020 Merge pull request #544 from garyrussell/INT-2658
* INT-2658:
  INT-2658 Upgrade Spring to 3.1.2
2012-07-10 19:15:35 -04:00
Gary Russell
047978860e INT-2658 Upgrade Spring to 3.1.2 2012-07-10 19:14:32 -04:00
Oleg Zhurakousky
468fbbc6c7 Merge pull request #538 from garyrussell/INT-2633
* INT-2633:
  INT-2633 Add File Disposition to (S)FTP Inbound
2012-07-10 19:05:52 -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
Oleg Zhurakousky
d0f26cd618 Merge pull request #537 from johndoe/INT-2652
* INT-2652:
  INT-2652 Fix mget for FTP
2012-07-10 17:07:32 -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
Oleg Zhurakousky
e73d3a3425 Merge pull request #541 from garyrussell/INT-2660
* INT-2660:
  INT-2660 NPE When Using SSL and NIO with Defaults
2012-07-10 16:41:26 -04:00
Gary Russell
09f3f7c342 INT-2660 NPE When Using SSL and NIO with Defaults
DefaultTcpNioSSLConnectionSupport and DefaultTcpNetSSLSocketFactorySupport need
an SSLContext which is set up in afterPropertiesSet(). However, when configuring
the connection factories with default strategies, afterPropertiesSet() is not
called. Result: NullPointerException.

Add call to afterPropertiesSet() where appropriate and tests to verify.
2012-07-10 16:40:21 -04:00
Oleg Zhurakousky
ef498d2d94 Merge pull request #533 from garyrussell/INT-2648
* INT-2648:
  INT-2648 UDP - Don't Hold a Scheduler Thread
2012-07-10 16:33:15 -04:00
Gary Russell
eb9c25615b INT-2648 UDP - Don't Hold a Scheduler Thread
Previously, the UDP inbound adapter was incorrectly using
the default task scheduler (taskScheduler) to run its main
receive activity. Once a packet is read, it is handed off
to another thread for message processing, using a configured
(or default) task executor.

We should not hold on to a scheduler thread permanently; the
default scheduler has only 10 threads and one user's app
stopped working when using 10 inbound adapters.

The work around was to define an explicit 'taskScheduler'
bean with more threads.
2012-07-10 16:32:16 -04:00
Gary Russell
62f96fa194 Merge pull request #539 from ghillert/INT-2656 2012-07-06 18:33:31 -04:00
Gunnar Hillert
e6a5eb925d INT-2656 - Fix Mail Adapter Exceptions
For reference see: https://jira.springsource.org/browse/INT-2656
2012-07-06 18:18:10 -04:00
Gary Russell
f26719d23c Merge pull request #530 from ghillert/INT-2473 2012-07-06 15:58:36 -04:00
Gunnar Hillert
2877776823 INT-2473 - Update Doc for Xslt Transformers
INT-2473 Document XSD for xslt-transformer

* convert spaces to tabs in XsltPayloadTransformerParser
* Add JavaDoc to ResultTransformer

INT-2473 - Code/Doc Review

* Add documentation for *SourceFactories*
* Add links
* Rephrase section on *ResultTransformers*

Minor polish
2012-07-06 15:57:30 -04:00