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.
This commit is contained in:
committed by
Gary Russell
parent
5828f70321
commit
94cc5a73e2
@@ -17,7 +17,6 @@ package org.springframework.integration.mongodb.inbound;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.context.MessageSource;
|
||||
import org.springframework.data.mongodb.MongoDbFactory;
|
||||
import org.springframework.data.mongodb.core.MongoOperations;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
@@ -29,10 +28,12 @@ import org.springframework.expression.common.LiteralExpression;
|
||||
import org.springframework.expression.spel.support.StandardEvaluationContext;
|
||||
import org.springframework.integration.Message;
|
||||
import org.springframework.integration.context.IntegrationObjectSupport;
|
||||
import org.springframework.integration.core.PseudoTransactionalMessageSource;
|
||||
import org.springframework.integration.core.MessageSource;
|
||||
import org.springframework.integration.mongodb.support.MongoHeaders;
|
||||
import org.springframework.integration.support.MessageBuilder;
|
||||
import org.springframework.integration.transaction.MessageSourceResourceHolder;
|
||||
import org.springframework.integration.util.ExpressionUtils;
|
||||
import org.springframework.transaction.support.TransactionSynchronizationManager;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
@@ -58,7 +59,7 @@ import com.mongodb.DBObject;
|
||||
* @since 2.2
|
||||
*/
|
||||
public class MongoDbMessageSource extends IntegrationObjectSupport
|
||||
implements PseudoTransactionalMessageSource<Object, MongoOperations>{
|
||||
implements MessageSource<Object> {
|
||||
|
||||
private final Expression queryExpression;
|
||||
|
||||
@@ -215,29 +216,12 @@ public class MongoDbMessageSource extends IntegrationObjectSupport
|
||||
.build();
|
||||
}
|
||||
|
||||
Object holder = TransactionSynchronizationManager.getResource(this);
|
||||
if (holder != null) {
|
||||
Assert.isInstanceOf(MessageSourceResourceHolder.class, holder);
|
||||
((MessageSourceResourceHolder) holder).addAttribute("mongoTemplate", this.mongoTemplate);
|
||||
}
|
||||
|
||||
return message;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the mongo-template.
|
||||
*/
|
||||
public MongoOperations getResource() {
|
||||
return this.mongoTemplate;
|
||||
}
|
||||
|
||||
public void afterCommit(Object object) {
|
||||
|
||||
}
|
||||
|
||||
public void afterRollback(Object object) {
|
||||
|
||||
}
|
||||
|
||||
public void afterReceiveNoTx(MongoOperations resource) {
|
||||
|
||||
}
|
||||
|
||||
public void afterSendNoTx(MongoOperations resource) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user