Advertisement
Guest User

ObjectifyTransactionManager

a guest
Sep 20th, 2012
408
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.18 KB | None | 0 0
  1. package ex.objectify.spring;
  2.  
  3. import org.slf4j.Logger;
  4. import org.slf4j.LoggerFactory;
  5. import org.springframework.transaction.TransactionDefinition;
  6. import org.springframework.transaction.TransactionException;
  7. import org.springframework.transaction.support.AbstractPlatformTransactionManager;
  8. import org.springframework.transaction.support.DefaultTransactionStatus;
  9.  
  10. import com.google.appengine.api.datastore.Transaction;
  11. import com.googlecode.objectify.Objectify;
  12.  
  13. public class ObjectifyTransactionManager extends
  14.         AbstractPlatformTransactionManager {
  15.  
  16.     static private Logger logger = LoggerFactory
  17.             .getLogger(ObjectifyTransactionManager.class);
  18.  
  19.     private static final long serialVersionUID = -5199988194360575666L;
  20.  
  21.     private ObjectifyManager manager;
  22.  
  23.     @Override
  24.     protected Object doGetTransaction() throws TransactionException {
  25.         logger.info("do get transaction ");
  26.         return manager;
  27.     }
  28.  
  29.     @Override
  30.     protected void doBegin(Object transaction, TransactionDefinition definition)
  31.             throws TransactionException {
  32.         Objectify objectify = ((ObjectifyManager) transaction)
  33.                 .getOrCreateObjectifyWithTransaction();
  34.         logger.info("do begin {} {}", objectify.getTxn(), definition);
  35.     }
  36.  
  37.     @Override
  38.     protected void doCommit(DefaultTransactionStatus status)
  39.             throws TransactionException {
  40.         Objectify objectify = manager.getProxy();
  41.         Transaction txn = objectify.getTxn();
  42.         if (txn != null) {
  43.             logger.info("do commit : txn:[{}],status:[{}]", txn, status);
  44.             if (txn.isActive()) {
  45.                 txn.commit();
  46.             }
  47.         } else {
  48.             logger.info("do commit with no transaction {}", status);
  49.         }
  50.         manager.clear();
  51.     }
  52.  
  53.     @Override
  54.     protected void doRollback(DefaultTransactionStatus status)
  55.             throws TransactionException {
  56.         Objectify objectify = (Objectify) manager.getProxy();
  57.         Transaction txn = objectify.getTxn();
  58.         if (txn != null) {
  59.             logger.info("do rollback : txn:[{}] status:[{}] ", txn, status);
  60.             if (txn.isActive()) {
  61.                 txn.rollback();
  62.             }
  63.         } else {
  64.             logger.info("do rollback with no transaction : status[{}]", status);
  65.         }
  66.         manager.clear();
  67.     }
  68.  
  69.     public void setManager(ObjectifyManager objectifyFactory) {
  70.         this.manager = objectifyFactory;
  71.     }
  72.  
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement