branch develop updated (8224189 -> 4e25168)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository topia-2.x. See https://gitlab.nuiton.org/nuiton/topia-2.x.git from 8224189 refs #3902: Update libs new 4e25168 fixes #4000: Add oldState informations in case of updateEvent for TopiaEntityListener The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 4e25168242af16fbbff7e5d97c19369bd64efaad Author: Eric Chatellier <chatellier@codelutin.com> Date: Thu Aug 4 10:57:04 2016 +0200 fixes #4000: Add oldState informations in case of updateEvent for TopiaEntityListener Summary of changes: .../org/nuiton/topia/event/TopiaEntityEvent.java | 23 ++++++++++++++++++++++ .../nuiton/topia/framework/TopiaContextImpl.java | 1 - .../nuiton/topia/framework/TopiaFiresSupport.java | 12 +++++------ 3 files changed, 29 insertions(+), 7 deletions(-) -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository topia-2.x. See https://gitlab.nuiton.org/nuiton/topia-2.x.git commit 4e25168242af16fbbff7e5d97c19369bd64efaad Author: Eric Chatellier <chatellier@codelutin.com> Date: Thu Aug 4 10:57:04 2016 +0200 fixes #4000: Add oldState informations in case of updateEvent for TopiaEntityListener --- .../org/nuiton/topia/event/TopiaEntityEvent.java | 23 ++++++++++++++++++++++ .../nuiton/topia/framework/TopiaContextImpl.java | 1 - .../nuiton/topia/framework/TopiaFiresSupport.java | 12 +++++------ 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/topia-persistence/src/main/java/org/nuiton/topia/event/TopiaEntityEvent.java b/topia-persistence/src/main/java/org/nuiton/topia/event/TopiaEntityEvent.java index a6a1a16..d02edcc 100644 --- a/topia-persistence/src/main/java/org/nuiton/topia/event/TopiaEntityEvent.java +++ b/topia-persistence/src/main/java/org/nuiton/topia/event/TopiaEntityEvent.java @@ -43,12 +43,28 @@ public class TopiaEntityEvent extends EventObject { private Object[] state; + /** Old state in case of update event. */ + private Object[] oldState; + + /** Dirty properties in case of update event. */ + private int[] dirtyProperties; + public TopiaEntityEvent(Object source, TopiaEntity entity, Object[] state) { super(source); this.entity = entity; this.state = state; } + public TopiaEntityEvent(Object source, TopiaEntity entity, Object[] state, Object[] oldState) { + this(source, entity, state); + this.oldState = oldState; + } + + public TopiaEntityEvent(Object source, TopiaEntity entity, Object[] state, Object[] oldState, int[] dirtyProperties) { + this(source, entity, state, oldState); + this.dirtyProperties = dirtyProperties; + } + public TopiaEntity getEntity() { return entity; } @@ -62,4 +78,11 @@ public class TopiaEntityEvent extends EventObject { return state; } + public Object[] getOldState() { + return oldState; + } + + public int[] getDirtyProperties() { + return dirtyProperties; + } } diff --git a/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaContextImpl.java b/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaContextImpl.java index 1f1d587..191fbf1 100644 --- a/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaContextImpl.java +++ b/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaContextImpl.java @@ -64,7 +64,6 @@ import org.hibernate.boot.Metadata; import org.hibernate.boot.MetadataBuilder; import org.hibernate.boot.MetadataSources; import org.hibernate.boot.registry.StandardServiceRegistryBuilder; -import org.hibernate.boot.spi.MetadataImplementor; import org.hibernate.engine.jdbc.connections.spi.ConnectionProvider; import org.hibernate.event.service.spi.EventListenerRegistry; import org.hibernate.event.spi.EventType; diff --git a/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaFiresSupport.java b/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaFiresSupport.java index ea4a604..472ad7e 100644 --- a/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaFiresSupport.java +++ b/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaFiresSupport.java @@ -359,12 +359,12 @@ public class TopiaFiresSupport { } public void fireOnPreUpdate(TopiaContextImplementor context, - TopiaEntity entity, Object[] state) { + TopiaEntity entity, Object[] state, Object[] oldState) { if (log.isDebugEnabled()) { log.debug("fireOnPreUpdate"); } if (isNotEmpty(entityVetoables, entity.getClass())) { - TopiaEntityEvent event = new TopiaEntityEvent(context, entity, state); + TopiaEntityEvent event = new TopiaEntityEvent(context, entity, state, oldState); for (Iterator<TopiaEntityVetoable> l = entityVetoables.iterator(entity .getClass()); l.hasNext(); ) { try { @@ -377,13 +377,13 @@ public class TopiaFiresSupport { } public void fireOnPostUpdate(TopiaContextImplementor context, - TopiaEntity entity, Object[] state) { + TopiaEntity entity, Object[] state, Object[] oldState, int[] dirtyProperties) { if (log.isDebugEnabled()) { log.debug("fireOnPostUpdate"); } warnOnUpdateEntity(entity); if (isNotEmpty(entityListeners, entity.getClass())) { - TopiaEntityEvent event = new TopiaEntityEvent(context, entity, state); + TopiaEntityEvent event = new TopiaEntityEvent(context, entity, state, oldState, dirtyProperties); for (Iterator<TopiaEntityListener> l = entityListeners.iterator(entity .getClass()); l.hasNext(); ) { try { @@ -711,7 +711,7 @@ public class TopiaFiresSupport { .getSession()); if (context != null && event.getEntity() instanceof TopiaEntity) { context.getFiresSupport().fireOnPreUpdate(context, - (TopiaEntity) event.getEntity(), event.getOldState()); + (TopiaEntity) event.getEntity(), event.getOldState(), event.getOldState()); } return false; } @@ -722,7 +722,7 @@ public class TopiaFiresSupport { .getSession()); if (context != null && event.getEntity() instanceof TopiaEntity) { context.getFiresSupport().fireOnPostUpdate(context, - (TopiaEntity) event.getEntity(), event.getState()); + (TopiaEntity) event.getEntity(), event.getState(), event.getOldState(), event.getDirtyProperties()); } // FIXME indexation // if (!(entity instanceof NotIndexable) && context.isIndexEnabled()) { -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
participants (1)
-
nuiton.org scm