diff --git a/src/main/java/com/avaje/ebeaninternal/api/TransactionEvent.java b/src/main/java/com/avaje/ebeaninternal/api/TransactionEvent.java index 03dd91889..8b49fa2ae 100644 --- a/src/main/java/com/avaje/ebeaninternal/api/TransactionEvent.java +++ b/src/main/java/com/avaje/ebeaninternal/api/TransactionEvent.java @@ -65,10 +65,10 @@ public class TransactionEvent implements Serializable { } /** - * For BeanListeners the requests they are interested in. + * Return the list of PersistRequestBean's for this transaction. */ - public TransactionEventBeans getEventBeans() { - return eventBeans; + public List> getPersistRequestBeans() { + return (eventBeans == null) ? null : eventBeans.getRequests(); } public TransactionEventTable getEventTables() { diff --git a/src/main/java/com/avaje/ebeaninternal/server/transaction/DeleteByIdMap.java b/src/main/java/com/avaje/ebeaninternal/server/transaction/DeleteByIdMap.java index d0760ad14..0bfda8a27 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/transaction/DeleteByIdMap.java +++ b/src/main/java/com/avaje/ebeaninternal/server/transaction/DeleteByIdMap.java @@ -14,63 +14,63 @@ import com.avaje.ebeaninternal.server.deploy.BeanDescriptor; */ public final class DeleteByIdMap { - private final Map beanMap = new LinkedHashMap(); - - public String toString() { - return beanMap.toString(); - } + private final Map beanMap = new LinkedHashMap(); - public void notifyCache() { - for (BeanPersistIds deleteIds : beanMap.values()) { - BeanDescriptor d = deleteIds.getBeanDescriptor(); - List idValues = deleteIds.getDeleteIds(); - if (idValues != null){ - d.queryCacheClear(); - for (int i = 0; i < idValues.size(); i++) { - d.cacheBeanRemove(idValues.get(i)); - } - } - } - - } - - public boolean isEmpty() { - return beanMap.isEmpty(); - } + public String toString() { + return beanMap.toString(); + } - public Collection values() { - return beanMap.values(); - } - - /** - * Add a Insert Update or Delete payload. - */ - public void add(BeanDescriptor desc, Object id) { - - BeanPersistIds r = getPersistIds(desc); - r.addId(PersistRequest.Type.DELETE, (Serializable)id); - } - - /** - * Add a List of Insert Update or Delete Id's. - */ - public void addList(BeanDescriptor desc, List idList) { - - BeanPersistIds r = getPersistIds(desc); - for (int i = 0; i < idList.size(); i++) { - r.addId(PersistRequest.Type.DELETE, (Serializable) idList.get(i)); + public void notifyCache() { + for (BeanPersistIds deleteIds : beanMap.values()) { + BeanDescriptor d = deleteIds.getBeanDescriptor(); + List idValues = deleteIds.getDeleteIds(); + if (idValues != null) { + d.queryCacheClear(); + for (int i = 0; i < idValues.size(); i++) { + d.cacheBeanRemove(idValues.get(i)); } + } } - private BeanPersistIds getPersistIds(BeanDescriptor desc) { - String beanType = desc.getFullName(); - BeanPersistIds r = beanMap.get(beanType); - if (r == null){ - r = new BeanPersistIds(desc); - beanMap.put(beanType, r); - } - return r; + } + + public boolean isEmpty() { + return beanMap.isEmpty(); + } + + public Collection values() { + return beanMap.values(); + } + + /** + * Add a Insert Update or Delete payload. + */ + public void add(BeanDescriptor desc, Object id) { + + BeanPersistIds r = getPersistIds(desc); + r.addId(PersistRequest.Type.DELETE, (Serializable) id); + } + + /** + * Add a List of Insert Update or Delete Id's. + */ + public void addList(BeanDescriptor desc, List idList) { + + BeanPersistIds r = getPersistIds(desc); + for (int i = 0; i < idList.size(); i++) { + r.addId(PersistRequest.Type.DELETE, (Serializable) idList.get(i)); } + } + + private BeanPersistIds getPersistIds(BeanDescriptor desc) { + String beanType = desc.getFullName(); + BeanPersistIds r = beanMap.get(beanType); + if (r == null) { + r = new BeanPersistIds(desc); + beanMap.put(beanType, r); + } + return r; + } + - } diff --git a/src/main/java/com/avaje/ebeaninternal/server/transaction/PostCommitProcessing.java b/src/main/java/com/avaje/ebeaninternal/server/transaction/PostCommitProcessing.java index da0e23979..b8da478cb 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/transaction/PostCommitProcessing.java +++ b/src/main/java/com/avaje/ebeaninternal/server/transaction/PostCommitProcessing.java @@ -1,7 +1,6 @@ package com.avaje.ebeaninternal.server.transaction; import com.avaje.ebeaninternal.api.TransactionEvent; -import com.avaje.ebeaninternal.api.TransactionEventBeans; import com.avaje.ebeaninternal.api.TransactionEventTable; import com.avaje.ebeaninternal.api.TransactionEventTable.TableIUD; import com.avaje.ebeaninternal.server.cluster.ClusterManager; @@ -48,7 +47,7 @@ public final class PostCommitProcessing { this.serverName = manager.getServerName(); this.event = event; this.deleteByIdMap = event.getDeleteByIdMap(); - this.persistBeanRequests = createPersistBeanRequests(); + this.persistBeanRequests = event.getPersistRequestBeans(); this.beanPersistIdMap = createBeanPersistIdMap(); this.remoteTransactionEvent = createRemoteTransactionEvent(); } @@ -111,14 +110,6 @@ public final class PostCommitProcessing { } } - private List> createPersistBeanRequests() { - TransactionEventBeans eventBeans = event.getEventBeans(); - if (eventBeans != null) { - return eventBeans.getRequests(); - } - return null; - } - private BeanPersistIdMap createBeanPersistIdMap() { if (persistBeanRequests == null) {