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.
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.
Initial support for MongoDb adapters
based on initial work done by Amol Nayak
INT-2612b Add namespace support
Add entityClass and expectSingleResult attribiutes to MongoDbMessageSource
INT-2612 Polishing
Mostly JavaDocs and a few asserts; plus renamed mongodb-template to
mongo-template.
INT-2612 Remove 'store-' Prefix from Elements
INT-2612 Polish Tests
Add tests for mongo-converter pass and fail when template present
INT-2612 Add missing files
INT-2612 Polishing
INT-2612 Add @MongoDbAvailable to parser tests
INT-2612b Add dedicated parser tests
Refactored MongoDbMessageStore to ensure that the Message metadata is persisted consistently using already provided converters. Major refactoring went into MessageWrapper and MongoDbMessageStore.write method which was greatly simplified based on the fact that MessageWrapper now represents the structure that needs to be persisted
INT-2479
fixed default converters to make sure that UUID is stored in Mongo with type information, so the actuall UUID type could be restored
This fix ensures that MongoDbMessageStore properly stores
MessageHistory that is stored in the 'history' header
of MessageHeaders.
polished contribution from Sean Brandt, added tests
fixed header deserialization logic to ensure that objects are converted to a proper type
removed write converter
modified implementation of MessageGroupQueue to use interruptible locks
Basically modeled it after LinkedBlockingQueue
changed to use ReadWriteLock
refactored MessageGroupQueue and added tests
changed MessageGroupQueue to use Condition
added messageGroupSize(groupId) method to MessageGroupStore and all the implementations
polishing based on Gary's comments
removed setStoreLock method in favor of additional constructors
polishing tests, decreased timeouts
made peek() thread safe
added logging
Fixed JdbcMessageStore to reuse CREATED_DATE while updating UPDATED_DATE
Added support for configuring MessageGroup timeout based on the idle time of the MessageGroup
Changed updatedTimestamp to lastModified
Added an assertion to AbsractMessageGroup.expireMessageGroups to check if lastModified is 0
Changed attribute name in MessageWrapper in Mongo Message Store
INT-2182 interim
INT-2182 work in progress
INT-2182 Refctored MessageGroupQueue and related classes
- created MGS.pollMessageFromGroup(groupId)
- removed MARKED messages concept
- renamed UNMARKED to just Messages
- removed keepReleasedMessages attribute
- refactored JdbcMessageStore to NOT store Messages that belong to a MessageGroup in the MessageGroup table, only relationship
- provided implementation of pollMessageFromGroup method in JdbcMessageStore
- polished tests
INT-2182 refactored MongoDB support to reflect changes to MGQ
INT-2182 added Gemfire support for polling
INT-2182 added Redis support
INT-2182 polishing
removed syncronized blocks from SMG, added availablePermits() method to UpperBound, polished JdbcMessageStore
INT-2182 polishing
INT-2182 polishing
INT-2182 polishing
INT-2182 polishing
INT-2182 polishing
INT-2182 polishing based on PR comments
subclassed from AbstractMessageGroupStore
added initial tests for Mongo based MessageGroupStore
added initial implementation of MongoDb-based MessageGroupStore
polished MongoDbMessageStore, made it more inline with JdbcMessageStore, added tests
using MessageWrapper as stored object to accommodate groupId and marked attributes
no longer setting _id explicitly
removed synchronized blocks and concurrency test