Trigger BeforeConvertEvent when saving an aggregate.
Closes: #910 Original pull request: #913.
This commit is contained in:
committed by
Mark Paluch
parent
eef62a0fa2
commit
c044c41651
@@ -404,6 +404,9 @@ public class JdbcAggregateTemplate implements JdbcAggregateOperations {
|
||||
}
|
||||
|
||||
private <T> T triggerBeforeConvert(T aggregateRoot) {
|
||||
|
||||
publisher.publishEvent(new BeforeConvertEvent<>(aggregateRoot));
|
||||
|
||||
return entityCallbacks.callback(BeforeConvertCallback.class, aggregateRoot);
|
||||
}
|
||||
|
||||
|
||||
@@ -54,6 +54,7 @@ import org.springframework.data.relational.core.mapping.RelationalMappingContext
|
||||
import org.springframework.data.relational.core.mapping.event.AfterDeleteEvent;
|
||||
import org.springframework.data.relational.core.mapping.event.AfterLoadEvent;
|
||||
import org.springframework.data.relational.core.mapping.event.AfterSaveEvent;
|
||||
import org.springframework.data.relational.core.mapping.event.BeforeConvertEvent;
|
||||
import org.springframework.data.relational.core.mapping.event.BeforeDeleteEvent;
|
||||
import org.springframework.data.relational.core.mapping.event.BeforeSaveEvent;
|
||||
import org.springframework.data.relational.core.mapping.event.Identifier;
|
||||
@@ -115,6 +116,7 @@ public class SimpleJdbcRepositoryEventsUnitTests {
|
||||
assertThat(publisher.events) //
|
||||
.extracting(e -> (Class) e.getClass()) //
|
||||
.containsExactly( //
|
||||
BeforeConvertEvent.class, //
|
||||
BeforeSaveEvent.class, //
|
||||
AfterSaveEvent.class //
|
||||
);
|
||||
@@ -132,8 +134,10 @@ public class SimpleJdbcRepositoryEventsUnitTests {
|
||||
assertThat(publisher.events) //
|
||||
.extracting(e -> (Class) e.getClass()) //
|
||||
.containsExactly( //
|
||||
BeforeConvertEvent.class, //
|
||||
BeforeSaveEvent.class, //
|
||||
AfterSaveEvent.class, //
|
||||
BeforeConvertEvent.class, //
|
||||
BeforeSaveEvent.class, //
|
||||
AfterSaveEvent.class //
|
||||
);
|
||||
|
||||
@@ -23,7 +23,7 @@ import org.springframework.data.relational.core.conversion.AggregateChange;
|
||||
* @since 1.1
|
||||
* @author Jens Schauder
|
||||
*/
|
||||
public class BeforeConvertEvent<E> extends RelationalSaveEvent<E> {
|
||||
public class BeforeConvertEvent<E> extends RelationalEventWithEntity<E> {
|
||||
|
||||
private static final long serialVersionUID = -5716795164911939224L;
|
||||
|
||||
@@ -33,7 +33,7 @@ public class BeforeConvertEvent<E> extends RelationalSaveEvent<E> {
|
||||
* this event is fired before the conversion the change is actually empty, but contains information if the
|
||||
* aggregate is considered new in {@link AggregateChange#getKind()}. Must not be {@literal null}.
|
||||
*/
|
||||
public BeforeConvertEvent(E instance, AggregateChange<E> change) {
|
||||
super(instance, change);
|
||||
public BeforeConvertEvent(E instance) {
|
||||
super(instance);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,7 +46,7 @@ public class AbstractRelationalEventListenerUnitTests {
|
||||
@Test // DATAJDBC-454
|
||||
public void beforeConvert() {
|
||||
|
||||
listener.onApplicationEvent(new BeforeConvertEvent<>(dummyEntity, MutableAggregateChange.forDelete(dummyEntity)));
|
||||
listener.onApplicationEvent(new BeforeConvertEvent<>(dummyEntity));
|
||||
|
||||
assertThat(events).containsExactly("beforeConvert");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user