Commit Graph

7448 Commits

Author SHA1 Message Date
Oleg Zhurakousky
06e2f61969 Merge pull request #629 from garyrussell/INT-2571a
* INT-2571a:
  INT-2751 Jdbc Message Store Group Id Issues
2012-09-19 15:39:59 -04:00
Gary Russell
de938cec27 INT-2751 Jdbc Message Store Group Id Issues
Jdbc Message Store always converts the correlation id
to a UUID string, even if it's already a String.

This causes reaper issues with the correlating message
handler because the reap occurs under
a different lock to normal group processing.

This change ensures the lock is properly mutually
exclusive.
2012-09-19 15:38:07 -04:00
Gary Russell
04547941dc Merge pull request #630 from olegz/INT-2749 2012-09-19 19:04:31 +01:00
Oleg Zhurakousky
1e74150695 INT-2749 add'long' cast to SftpFileInfo
Add cast to (long) to a return value of getMTime methood called in SftpFileInfo.getModified()
2012-09-19 19:02:02 +01:00
Oleg Zhurakousky
17b8fe1db4 Merge pull request #622 from olegz/INT-1819
* INT-1819:
  INT-1819 Mail pseudo-tx support Added pseudo-tx support for Mail inbound adapters For polling adapters no changes have been made other then returning a javax.mail.Message instead of its copy so post-tx dispositions could be performed on it. For Imap IDLE adapter changes are simiar to the once present in SPCA where TX synchronization logic was added to ImapIdleChannelAdapter Couple of things to note: First IDLE receives an array of messages while Polling task receives one message which means i need to sendMessage in the Polling task in the separate thread, so for maintaining single thread semantics we have now it uses single thread executor to send Messages Renamed MSRH to TransactionalResourceHolder since we no longer use 'source' anywhere and in the case of IDLE there is no MessageSource. Its is truly a holder of attributes we want to make available for use (e.g., SpEL)
2012-09-19 12:14:32 -04:00
Oleg Zhurakousky
ee91a6ce5a INT-1819 Mail pseudo-tx support
Added pseudo-tx support for Mail inbound adapters
For polling adapters no changes have been made other then returning a javax.mail.Message instead of its copy so
post-tx dispositions could be performed on it.
For Imap IDLE adapter changes are simiar to the once present in SPCA where TX synchronization logic was added to ImapIdleChannelAdapter
Couple of things to note:
First IDLE receives an array of messages while Polling task receives one message which means i need to sendMessage in the Polling task in the separate thread, so for maintaining single thread semantics we have now it uses single thread executor to send Messages
Renamed MSRH to TransactionalResourceHolder since we no longer use 'source' anywhere and in the case of IDLE there is no MessageSource. Its is truly a holder of attributes we want to make available for use (e.g., SpEL)

INT-1819 Polishing

- Change TransactionalResourceHolder to IntegrationResourceHolder
- Make messageSource available as an attribute
- Allow configuration of Executor for ImapIdle adapter
- Add parser test for TX ImapIdle adapter
- Fix bundlor config for mail
- Remove top level <transactional/> element that was added to core
- Restore 'legacy' mail attributes in TX, and add schema doc

INT-1819 Mail TX Reference Docs

Add reference documentation for mail transaction support.

INT-1819 Remove 'public abstract' from interface

Modifiers are not needed on an interface.
2012-09-19 12:12:31 -04:00
Gunnar Hillert
e1dd8240d0 Merge pull request #618 from garyrussell/INT-2744
* garyrussell-INT-2744:
  INT-2744 Mechanism to Suppress Standard Headers
2012-09-18 17:09:22 -04:00
Gary Russell
a37256146d INT-2744 Mechanism to Suppress Standard Headers
Currently, HTTP mappers don't know if they are inbound
or outbound. This causes problems with mapping certain
headers.

For example, on an inbound adapter, a mapped Content-Length
header should not be re-mapped to an HTTP Header during
response header mapping. However, the Content-Length
does need to be mapped on an outbound adapter response.

Introduce the notion of an exclusion list for both
request and response standard headers.

If a mapper has been configured to use standard headers,
we can detect whether the mapper is being used for inbound
or outbound mapping. We can then apply an 'exclusion' for
certain headers.

Currently, no request headers are suppressed on outbound
mappers and only the 'Content-Length' response header
is suppressed on inbound mappers.

The default mappers created via the static factory
methods use these defaults. Exposing the exclusion setters
will allow users to suppress additional headers, if
deemed necessary.
2012-09-18 17:08:15 -04:00
Gary Russell
091e3e3456 Merge pull request #621 from olegz/INT-2723 2012-09-18 16:04:55 +01:00
Oleg Zhurakousky
a013b66af0 INT-2723/24 RedisStore Inbound/Outbound docs
INT-2723 Polishing

Polish docs

Remove #store SpEL variable from the Tx Synchronization.
2012-09-18 16:04:27 +01:00
Oleg Zhurakousky
b9e7762429 Merge pull request #627 from garyrussell/INT-2751
* INT-2751:
  INT-2751 Fix Reaper Race Condition
2012-09-18 09:52:41 -04:00
Gary Russell
913a8058dd INT-2751 Fix Reaper Race Condition
When the reaper runs, and finds a group that is in the
process of being completed, the reaper blocks on the
lock, but when the lock is released, goes ahead and
reaps the group.

Now, after obtaining the lock, the reaper checks to
see if the modified date changed and, if so, aborts
the reap of the group this time around.

Required adding lastModified accounting for SimpleMessageGroup
(accounting already exists for other message groups).

Test case reproduced the problem, demonstrating duplicate
output messages.

After the fix, it shows the reap was aborted in the debug
log.

INT-2751 Polishing

PR Comments
2012-09-18 09:52:09 -04:00
Oleg Zhurakousky
c24d8e7395 Merge pull request #613 from johndoe/INT-2695
* INT-2695:
  INT-2695 WS Support URI Schemes Other than http(s)
2012-09-18 09:42:12 -04:00
Gary Russell
40ce2ab793 INT-2695 WS Support URI Schemes Other than http(s)
Previously, only http: or https: URI schemes were supported
by the uri attribute. To use other schemes (such as jms:),
you had to provide a DestinationProvider.

Add support for schemes other than http and https by
creating a DestinationProvider internally when such a
URI is detected.

Note: <uri-variable/>s are NOT supported except when
a URI with an http(s) scheme is provided. An exception
is thrown if variables are provided with an incompatible
URI, or if a DestinationProvider is supplied.

This could break existing applications that provide an
external DestinationProvider and have configured
<uri-variable/>s. Previously, these variables were
simply ignored.
2012-09-18 09:41:18 -04:00
Oleg Zhurakousky
e337521958 Merge pull request #616 from garyrussell/INT-2742
* INT-2742:
  INT-2742 Fix TCP Test Case Race Condition
2012-09-18 09:17:53 -04:00
Gary Russell
e77811c59f INT-2742 Fix TCP Test Case Race Condition
Test data was sent before the error-channel was added to
the inbound adapter; the expected error could occur before
the error-channel was in place and the test failed
because the expected error message was absent.

Move the error-channel setup to before the test
data is sent.
2012-09-18 09:16:28 -04:00
Oleg Zhurakousky
03e60171ec Merge pull request #623 from garyrussell/INT-2748
* INT-2748:
  INT-2748 Change CircuitBreaker Exception
2012-09-18 09:07:25 -04:00
Gary Russell
2959db8631 INT-2748 Change CircuitBreaker Exception
Previously, when the breaker was open, it threw a
MessagingException. This was not wrapped so normal
error-channel processing 'payload.cause.message'
failed because the cause was null.

Change the exception to a new private
CircuitBreakerOpenException.
2012-09-18 09:06:20 -04:00
Oleg Zhurakousky
fe80265ace Merge pull request #615 from garyrussell/INT-2699
* INT-2699:
  INT-2699 Reference Docs for Tx Synchronization
2012-09-18 08:27:22 -04:00
Gary Russell
4b1bb376e5 INT-2699 Reference Docs for Tx Synchronization
- What's new
- Transaction appendix

INT-2699 Change Holder Class Name
2012-09-18 08:26:30 -04:00
Gary Russell
ad72515e58 Merge pull request #626 from ghillert/INT-2752
* INT-2752:
  INT-2752 - Fix build.gradle for Spring 3.2 compatibility For reference: https://jira.springsource.org/browse/INT-2752
2012-09-18 00:06:05 +01:00
Gunnar Hillert
4be6a33450 INT-2752 - Fix build.gradle for Spring 3.2 compatibility
For reference: https://jira.springsource.org/browse/INT-2752
2012-09-18 00:04:55 +01:00
Gunnar Hillert
abc37560b8 Merge pull request #625 from garyrussell/INT-2750
* garyrussell-INT-2750:
  INT-2750 Fix GatewayProxyFactoryBean Javadoc
2012-09-17 16:16:07 -04:00
Gary Russell
1d03acbc31 INT-2750 Fix GatewayProxyFactoryBean Javadoc
Default serviceInterface is RequestReplyExchanger.
2012-09-14 12:21:51 -04:00
Gary Russell
921e9d6a36 Merge pull request #620 from olegz/INT-2725 2012-09-12 16:03:51 -04:00
Oleg Zhurakousky
64c6d850af INT-2725/26 MongoDb Adapter Docs 2012-09-12 16:01:25 -04:00
Gary Russell
333fc19e01 Merge pull request #592 from artembilan/INT-2718 2012-09-10 16:14:25 -04:00
Artem Bilan
31d0e42c1a INT-2718 & INT-2721: fixes for <chain> & fix bugs
* ban to use 'channel' and 'request-channel' attributes for 'outbound-channel-adapters' and 'outbound-gateways' when they are declared inside the `<chain>`
* fix usage of `<request-handler-advice-chain>` for components when they are declared inside the `<chain>`
* ban to use `<request-handler-advice-chain>` for 'outbound-channel-adapters' when they are declared inside the `<chain>` don't implement `AbstractReplyProducingMessageHandler`
* refactor `IntegrationNamespaceUtils` to use `BeanDefinition` instead of `BeanDefinitionBuilder` for 'advice-chain' parsing
* tests for new logic for 'channel' and 'request-channel' attributes within `<chain>`
* tests for new logic for `<request-handler-advice-chain>` within `<chain>`
* fix failed test on slow machine
* fix `SysLogTransformer` tests

For reference:
https://jira.springsource.org/browse/INT-2718
https://jira.springsource.org/browse/INT-2721
https://jira.springsource.org/browse/INT-2719

INT-2718 Polishing
2012-09-10 16:13:45 -04:00
Mark Fisher
063c5c8269 Merge pull request #614 from garyrussell/INT-2740
INT-2740 MessageSelector w/ Pollable JMS Channel
2012-09-07 16:50:59 -04:00
Gary Russell
281c985da9 INT-2740 MessageSelector w/ Pollable JMS Channel
Previously, the 'selector' attribute was ignored when
a JMS Channel was pollable rather than message-driven.

Add support for MessageSelector to PollableJmsChannel.
2012-09-07 14:09:33 -04:00
Gary Russell
a9142e9c44 Merge pull request #596 from ghillert/INT-2448 2012-09-07 11:35:49 -04:00
Gunnar Hillert
109de2b16a INT-2448 - Document JMS message "selector" attribute
For reference see: https://jira.springsource.org/browse/INT-2448

INT-2448 - Code review changes
2012-09-07 11:34:59 -04:00
Gary Russell
374f6251e9 Merge pull request #597 from garyrussell/INT-2698 2012-09-07 10:18:53 -04:00
Gary Russell
8d887df44f INT-2698 Reference Docs for Handler Advice
INT-2698 Doc Retry Initial Commit

INT-2698 Doc Circuit Breaker

INT-2698 EERHA

INT-2698 Custom Advice

INT-2698 Polishing

INT-2698 Polishing (PR Review)
2012-09-07 10:18:14 -04:00
Oleg Zhurakousky
950dc22343 Merge pull request #601 from garyrussell/INT-2599
* INT-2599:
  INT-2599 TCP Client Mode Corrections
2012-09-07 08:30:26 -04:00
Gary Russell
4be2e53d8f INT-2599 TCP Client Mode Corrections
1. Schema docs indicated client-mode is true by default, when
it is false.

2. Use IntegrationObjectSupport taskScheduler instead of
a field in the subclass.

INT-2599 polishing
2012-09-07 08:29:27 -04:00
Oleg Zhurakousky
ec695d031a Merge pull request #602 from garyrussell/INT-2532
* INT-2532:
  INT-2532 AMQP Schema Doc Clarification
2012-09-07 08:12:43 -04:00
Gary Russell
81cf46af70 INT-2532 AMQP Schema Doc Clarification
Can't use <rabbit:listener-container/> when injecting an
external container into an endpoint.
2012-09-07 08:11:53 -04:00
Oleg Zhurakousky
1c3f41ea4b Merge pull request #607 from garyrussell/INT-2487
* INT-2487:
  INT-2487 Object Name Patterns for Notifications
2012-09-07 08:08:36 -04:00
Gary Russell
d28fefc884 INT-2487 Object Name Patterns for Notifications
Permit the specification of an ObjectName pattern in
NotificationListeningMessageProducer.

Permit a collection of ObjectNames (patterns).

INT-2487 Polishing

Use varargs and a SpEL Reference instead of 2 setters.

Log an error if no MBeans matching pattern(s).

INT-2487 Polishing: PR Review Comments

Add patterns to ERROR log when no MBean(s) found.

Add doc to schema and reference.
2012-09-07 08:07:36 -04:00
Gary Russell
3d26bd1a5f Merge pull request #612 from olegz/INT-2737 2012-09-06 16:01:35 -04:00
Oleg Zhurakousky
108baedd53 INT-2737 RedisMessageStore Fix
Fix RedisMessageStore to ensure that it
strips prefix from keys wheh they are returned
via iterator().

INT-2737 polishing

INT-2737 polishing
2012-09-06 16:00:37 -04:00
Gary Russell
5df766b93d Merge pull request #611 from olegz/INT-2733/4/6 2012-09-06 13:22:41 -04:00
Oleg Zhurakousky
3e6eb40b6d INT-2733/4/6 Configure Redis Serializers
Add support for serializers to the RedisStore Inbound adapters.

Fix the serializer support for RedisStore outbound adapters
to ensure that serializers cannot be set if adapter is
bootstrapped with a RedisTemplate.

Add support for serializers to Redis Inbound/Outbound adapters.
NOTE: unlike the RedisStore adapters Redis in/out adapters only
use one serializer, so the name of the attribute
is 'serializer' and, on the Redis Outbound adapter,
it corresponds to the RedisTemplate.valueSerializer.

INT-2733/4/6

Fix RedisCollectionPopulatingMessageHandler to
ensure that the checks for setting serializers also exist
at the class level in case an instance is created outside
of the namespace parser's control.

INT-2733/4/6 polishing

INT-2733/4/6 polishing

INT-2733/4/6 polishing

INT-2733/4/6 Polishing
2012-09-06 13:17:28 -04:00
Gunnar Hillert
fab04d5219 Merge pull request #610 from garyrussell/INT-2727a
* garyrussell-INT-2727a:
  INT-2727 Fix JavaDoc Warnings
2012-09-05 20:16:30 -04:00
Gary Russell
c6f27d5b22 INT-2727 Fix JavaDoc Warnings
Previous push introduced a few JavaDoc issues.
2012-09-05 17:33:39 -04:00
Gary Russell
f3533bd673 Merge pull request #608 from olegz/INT-2727 2012-09-05 16:58:53 -04: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
Oleg Zhurakousky
5828f70321 Merge pull request #604 from garyrussell/INT-2701
* INT-2701:
  INT-2701 Document JEE TaskSchduler Override
2012-09-05 11:56:50 -04:00
Gary Russell
f42201625a INT-2701 Document JEE TaskSchduler Override
Explain how to override the default 'taskScheduler' with a
TimerManagerTaskScheduler.
2012-09-05 11:55:56 -04:00