From 0228255d2b659ef9e79f99b154d3231912834526 Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Thu, 14 Apr 2016 21:56:21 +0200 Subject: [PATCH] DATAMONGO-1356 - AuditingEventListener now has an explicit order. AuditingEventListener now has a fixed ordering of 100. This allows other listeners to be registered to be executed before or after it. --- .../core/mapping/event/AuditingEventListener.java | 12 +++++++++++- .../event/AuditingEventListenerUnitTests.java | 15 ++++++++++++--- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/mapping/event/AuditingEventListener.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/mapping/event/AuditingEventListener.java index be7a0837b..6205d27a7 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/mapping/event/AuditingEventListener.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/mapping/event/AuditingEventListener.java @@ -17,6 +17,7 @@ package org.springframework.data.mongodb.core.mapping.event; import org.springframework.beans.factory.ObjectFactory; import org.springframework.context.ApplicationListener; +import org.springframework.core.Ordered; import org.springframework.data.auditing.AuditingHandler; import org.springframework.data.auditing.IsNewAwareAuditingHandler; import org.springframework.data.mapping.context.MappingContext; @@ -28,7 +29,7 @@ import org.springframework.util.Assert; * @author Oliver Gierke * @author Thomas Darimont */ -public class AuditingEventListener implements ApplicationListener> { +public class AuditingEventListener implements ApplicationListener>, Ordered { private final ObjectFactory auditingHandlerFactory; @@ -53,4 +54,13 @@ public class AuditingEventListener implements ApplicationListener(sample, "collection-1")); verify(handler, times(1)).markCreated(sample); - verify(handler, times(0)).markModified(any(Sample.class)); + verify(handler, times(0)).markModified(Mockito.any(Sample.class)); } /** @@ -94,10 +96,17 @@ public class AuditingEventListenerUnitTests { sample.id = "id"; listener.onApplicationEvent(new BeforeConvertEvent(sample, "collection-1")); - verify(handler, times(0)).markCreated(any(Sample.class)); + verify(handler, times(0)).markCreated(Mockito.any(Sample.class)); verify(handler, times(1)).markModified(sample); } + @Test + public void hasExplicitOrder() { + + assertThat(listener, is(instanceOf(Ordered.class))); + assertThat(listener.getOrder(), is(100)); + } + static class Sample { @Id String id;