killbill-memoizeit

update to AccountDao to provide transactional support for

3/8/2012 2:15:50 PM

Details

diff --git a/account/src/main/java/com/ning/billing/account/dao/DefaultAccountDao.java b/account/src/main/java/com/ning/billing/account/dao/DefaultAccountDao.java
index 6a1665e..b9585fe 100644
--- a/account/src/main/java/com/ning/billing/account/dao/DefaultAccountDao.java
+++ b/account/src/main/java/com/ning/billing/account/dao/DefaultAccountDao.java
@@ -73,18 +73,33 @@ public class DefaultAccountDao implements AccountDao {
 
     @Override
     public Account getById(final String id) {
-        Account account = accountSqlDao.getById(id);
-        if (account != null) {
-            setCustomFieldsFromWithinTransaction(account, accountSqlDao);
-            setTagsFromWithinTransaction(account, accountSqlDao);
-        }
-        return account;
+        return accountSqlDao.inTransaction(new Transaction<Account, AccountSqlDao>() {
+            @Override
+            public Account inTransaction(final AccountSqlDao accountSqlDao, final TransactionStatus status) throws Exception {
+                Account account = accountSqlDao.getById(id);
+                if (account != null) {
+                    setCustomFieldsFromWithinTransaction(account, accountSqlDao);
+                    setTagsFromWithinTransaction(account, accountSqlDao);
+                }
+                return account;
+            }
+        });
     }
 
-
     @Override
     public List<Account> get() {
-        return accountSqlDao.get();
+        return accountSqlDao.inTransaction(new Transaction<List<Account>, AccountSqlDao>() {
+            @Override
+            public List<Account> inTransaction(final AccountSqlDao accountSqlDao, final TransactionStatus status) throws Exception {
+                List<Account> accounts = accountSqlDao.get();
+                for (Account account : accounts) {
+                    setCustomFieldsFromWithinTransaction(account, accountSqlDao);
+                    setTagsFromWithinTransaction(account, accountSqlDao);
+                }
+
+                return accounts;
+            }
+        });
     }
 
     @Override
@@ -162,7 +177,6 @@ public class DefaultAccountDao implements AccountDao {
             accountSqlDao.inTransaction(new Transaction<Void, AccountSqlDao>() {
                 @Override
                 public Void inTransaction(final AccountSqlDao accountSqlDao, final TransactionStatus status) throws AccountApiException, Bus.EventBusException {
-
                     accountSqlDao.deleteByKey(externalKey);
 
                     return null;
@@ -231,6 +245,4 @@ public class DefaultAccountDao implements AccountDao {
             fieldStoreDao.batchSaveFromTransaction(accountId, objectType, fieldList);
         }
     }
-
-
 }
diff --git a/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/EntitlementSqlDao.java b/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/EntitlementSqlDao.java
index e34d48c..15fe20c 100644
--- a/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/EntitlementSqlDao.java
+++ b/entitlement/src/main/java/com/ning/billing/entitlement/engine/dao/EntitlementSqlDao.java
@@ -410,15 +410,15 @@ public class EntitlementSqlDao implements EntitlementDao {
 
     private void updateCustomFieldsFromTransaction(SubscriptionSqlDao transactionalDao, final SubscriptionData subscription) {
 
-        String SubscriptionId = subscription.getId().toString();
+        String subscriptionId = subscription.getId().toString();
         String objectType = subscription.getObjectName();
 
         FieldStoreDao fieldStoreDao = transactionalDao.become(FieldStoreDao.class);
-        fieldStoreDao.clear(SubscriptionId, objectType);
+        fieldStoreDao.clear(subscriptionId, objectType);
 
         List<CustomField> fieldList = subscription.getFieldList();
         if (fieldList != null) {
-            fieldStoreDao.batchSaveFromTransaction(SubscriptionId, objectType, fieldList);
+            fieldStoreDao.batchSaveFromTransaction(subscriptionId, objectType, fieldList);
         }
     }
 
@@ -618,7 +618,6 @@ public class EntitlementSqlDao implements EntitlementDao {
         });
     }
 
-
     private void loadCustomFields(final Subscription subscription) {
         FieldStoreDao fieldStoreDao = subscriptionsDao.become(FieldStoreDao.class);
         List<CustomField> fields = fieldStoreDao.load(subscription.getId().toString(), subscription.getObjectName());