Improve and clarify documentation of callbacks.
This also removes deprecated Events and Callbacks. Closes #1236
This commit is contained in:
@@ -402,10 +402,7 @@ public class JdbcAggregateTemplate implements JdbcAggregateOperations {
|
||||
|
||||
private <T> T triggerAfterConvert(T entity) {
|
||||
|
||||
publisher.publishEvent(new AfterLoadEvent<>(entity));
|
||||
publisher.publishEvent(new AfterConvertEvent<>(entity));
|
||||
|
||||
entity = entityCallbacks.callback(AfterLoadCallback.class, entity);
|
||||
return entityCallbacks.callback(AfterConvertCallback.class, entity);
|
||||
}
|
||||
|
||||
|
||||
@@ -36,8 +36,6 @@ import org.springframework.data.relational.core.mapping.RelationalMappingContext
|
||||
import org.springframework.data.relational.core.mapping.RelationalPersistentEntity;
|
||||
import org.springframework.data.relational.core.mapping.event.AfterConvertCallback;
|
||||
import org.springframework.data.relational.core.mapping.event.AfterConvertEvent;
|
||||
import org.springframework.data.relational.core.mapping.event.AfterLoadCallback;
|
||||
import org.springframework.data.relational.core.mapping.event.AfterLoadEvent;
|
||||
import org.springframework.data.repository.core.NamedQueries;
|
||||
import org.springframework.data.repository.core.RepositoryMetadata;
|
||||
import org.springframework.data.repository.query.QueryLookupStrategy;
|
||||
@@ -328,11 +326,9 @@ abstract class JdbcQueryLookupStrategy implements QueryLookupStrategy {
|
||||
|
||||
if (entity != null) {
|
||||
|
||||
publisher.publishEvent(new AfterLoadEvent<>(entity));
|
||||
publisher.publishEvent(new AfterConvertEvent<>(entity));
|
||||
|
||||
if (callbacks != null) {
|
||||
entity = callbacks.callback(AfterLoadCallback.class, entity);
|
||||
return callbacks.callback(AfterConvertCallback.class, entity);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,7 +46,6 @@ import org.springframework.data.relational.core.mapping.NamingStrategy;
|
||||
import org.springframework.data.relational.core.mapping.RelationalMappingContext;
|
||||
import org.springframework.data.relational.core.mapping.event.AfterConvertCallback;
|
||||
import org.springframework.data.relational.core.mapping.event.AfterDeleteCallback;
|
||||
import org.springframework.data.relational.core.mapping.event.AfterLoadCallback;
|
||||
import org.springframework.data.relational.core.mapping.event.AfterSaveCallback;
|
||||
import org.springframework.data.relational.core.mapping.event.BeforeConvertCallback;
|
||||
import org.springframework.data.relational.core.mapping.event.BeforeDeleteCallback;
|
||||
@@ -254,30 +253,6 @@ public class JdbcAggregateTemplateUnitTests {
|
||||
verify(callbacks).callback(AfterDeleteCallback.class, second);
|
||||
}
|
||||
|
||||
@Test // DATAJDBC-393
|
||||
public void callbackOnLoad() {
|
||||
|
||||
SampleEntity alfred1 = new SampleEntity(23L, "Alfred");
|
||||
SampleEntity alfred2 = new SampleEntity(23L, "Alfred E.");
|
||||
|
||||
SampleEntity neumann1 = new SampleEntity(42L, "Neumann");
|
||||
SampleEntity neumann2 = new SampleEntity(42L, "Alfred E. Neumann");
|
||||
|
||||
when(dataAccessStrategy.findAll(SampleEntity.class)).thenReturn(asList(alfred1, neumann1));
|
||||
|
||||
when(callbacks.callback(any(Class.class), eq(alfred1), any())).thenReturn(alfred2);
|
||||
when(callbacks.callback(any(Class.class), eq(alfred2), any())).thenReturn(alfred2);
|
||||
when(callbacks.callback(any(Class.class), eq(neumann1), any())).thenReturn(neumann2);
|
||||
when(callbacks.callback(any(Class.class), eq(neumann2), any())).thenReturn(neumann2);
|
||||
|
||||
Iterable<SampleEntity> all = template.findAll(SampleEntity.class);
|
||||
|
||||
verify(callbacks).callback(AfterLoadCallback.class, alfred1);
|
||||
verify(callbacks).callback(AfterLoadCallback.class, neumann1);
|
||||
|
||||
assertThat(all).containsExactly(alfred2, neumann2);
|
||||
}
|
||||
|
||||
@Test // DATAJDBC-101
|
||||
public void callbackOnLoadSorted() {
|
||||
|
||||
@@ -290,16 +265,12 @@ public class JdbcAggregateTemplateUnitTests {
|
||||
when(dataAccessStrategy.findAll(SampleEntity.class, Sort.by("name"))).thenReturn(asList(alfred1, neumann1));
|
||||
|
||||
when(callbacks.callback(any(Class.class), eq(alfred1), any())).thenReturn(alfred2);
|
||||
when(callbacks.callback(any(Class.class), eq(alfred2), any())).thenReturn(alfred2);
|
||||
when(callbacks.callback(any(Class.class), eq(neumann1), any())).thenReturn(neumann2);
|
||||
when(callbacks.callback(any(Class.class), eq(neumann2), any())).thenReturn(neumann2);
|
||||
|
||||
Iterable<SampleEntity> all = template.findAll(SampleEntity.class, Sort.by("name"));
|
||||
|
||||
verify(callbacks).callback(AfterLoadCallback.class, alfred1);
|
||||
verify(callbacks).callback(AfterConvertCallback.class, alfred2);
|
||||
verify(callbacks).callback(AfterLoadCallback.class, neumann1);
|
||||
verify(callbacks).callback(AfterConvertCallback.class, neumann2);
|
||||
verify(callbacks).callback(AfterConvertCallback.class, alfred1);
|
||||
verify(callbacks).callback(AfterConvertCallback.class, neumann1);
|
||||
|
||||
assertThat(all).containsExactly(alfred2, neumann2);
|
||||
}
|
||||
@@ -316,16 +287,12 @@ public class JdbcAggregateTemplateUnitTests {
|
||||
when(dataAccessStrategy.findAll(SampleEntity.class, PageRequest.of(0, 20))).thenReturn(asList(alfred1, neumann1));
|
||||
|
||||
when(callbacks.callback(any(Class.class), eq(alfred1), any())).thenReturn(alfred2);
|
||||
when(callbacks.callback(any(Class.class), eq(alfred2), any())).thenReturn(alfred2);
|
||||
when(callbacks.callback(any(Class.class), eq(neumann1), any())).thenReturn(neumann2);
|
||||
when(callbacks.callback(any(Class.class), eq(neumann2), any())).thenReturn(neumann2);
|
||||
|
||||
Iterable<SampleEntity> all = template.findAll(SampleEntity.class, PageRequest.of(0, 20));
|
||||
|
||||
verify(callbacks).callback(AfterLoadCallback.class, alfred1);
|
||||
verify(callbacks).callback(AfterConvertCallback.class, alfred2);
|
||||
verify(callbacks).callback(AfterLoadCallback.class, neumann1);
|
||||
verify(callbacks).callback(AfterConvertCallback.class, neumann2);
|
||||
verify(callbacks).callback(AfterConvertCallback.class, alfred1);
|
||||
verify(callbacks).callback(AfterConvertCallback.class, neumann1);
|
||||
|
||||
assertThat(all).containsExactly(alfred2, neumann2);
|
||||
}
|
||||
|
||||
@@ -50,7 +50,6 @@ import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.domain.Slice;
|
||||
import org.springframework.data.jdbc.core.mapping.AggregateReference;
|
||||
import org.springframework.data.relational.repository.Lock;
|
||||
import org.springframework.data.jdbc.repository.query.Modifying;
|
||||
import org.springframework.data.jdbc.repository.query.Query;
|
||||
import org.springframework.data.jdbc.repository.support.JdbcRepositoryFactory;
|
||||
@@ -60,8 +59,8 @@ import org.springframework.data.jdbc.testing.TestConfiguration;
|
||||
import org.springframework.data.jdbc.testing.TestDatabaseFeatures;
|
||||
import org.springframework.data.relational.core.mapping.event.AbstractRelationalEvent;
|
||||
import org.springframework.data.relational.core.mapping.event.AfterConvertEvent;
|
||||
import org.springframework.data.relational.core.mapping.event.AfterLoadEvent;
|
||||
import org.springframework.data.relational.core.sql.LockMode;
|
||||
import org.springframework.data.relational.repository.Lock;
|
||||
import org.springframework.data.repository.CrudRepository;
|
||||
import org.springframework.data.repository.core.NamedQueries;
|
||||
import org.springframework.data.repository.core.support.PropertiesBasedNamedQueries;
|
||||
@@ -312,7 +311,7 @@ public class JdbcRepositoryIntegrationTests {
|
||||
|
||||
repository.findAllWithSql();
|
||||
|
||||
assertThat(eventListener.events).hasSize(2).hasOnlyElementsOfTypes(AfterLoadEvent.class, AfterConvertEvent.class);
|
||||
assertThat(eventListener.events).hasSize(1).hasOnlyElementsOfType(AfterConvertEvent.class);
|
||||
}
|
||||
|
||||
@Test // DATAJDBC-318
|
||||
|
||||
@@ -190,9 +190,7 @@ public class SimpleJdbcRepositoryEventsUnitTests {
|
||||
assertThat(publisher.events) //
|
||||
.extracting(e -> (Class) e.getClass()) //
|
||||
.containsExactly( //
|
||||
AfterLoadEvent.class, //
|
||||
AfterConvertEvent.class, //
|
||||
AfterLoadEvent.class, //
|
||||
AfterConvertEvent.class //
|
||||
);
|
||||
}
|
||||
@@ -211,9 +209,7 @@ public class SimpleJdbcRepositoryEventsUnitTests {
|
||||
assertThat(publisher.events) //
|
||||
.extracting(e -> (Class) e.getClass()) //
|
||||
.containsExactly( //
|
||||
AfterLoadEvent.class, //
|
||||
AfterConvertEvent.class, //
|
||||
AfterLoadEvent.class, //
|
||||
AfterConvertEvent.class //
|
||||
);
|
||||
}
|
||||
@@ -231,7 +227,6 @@ public class SimpleJdbcRepositoryEventsUnitTests {
|
||||
assertThat(publisher.events) //
|
||||
.extracting(e -> (Class) e.getClass()) //
|
||||
.containsExactly( //
|
||||
AfterLoadEvent.class, //
|
||||
AfterConvertEvent.class //
|
||||
);
|
||||
}
|
||||
@@ -250,9 +245,7 @@ public class SimpleJdbcRepositoryEventsUnitTests {
|
||||
assertThat(publisher.events) //
|
||||
.extracting(e -> (Class) e.getClass()) //
|
||||
.containsExactly( //
|
||||
AfterLoadEvent.class, //
|
||||
AfterConvertEvent.class, //
|
||||
AfterLoadEvent.class, //
|
||||
AfterConvertEvent.class //
|
||||
);
|
||||
}
|
||||
@@ -272,9 +265,7 @@ public class SimpleJdbcRepositoryEventsUnitTests {
|
||||
assertThat(publisher.events) //
|
||||
.extracting(e -> (Class) e.getClass()) //
|
||||
.containsExactly( //
|
||||
AfterLoadEvent.class, //
|
||||
AfterConvertEvent.class, //
|
||||
AfterLoadEvent.class, //
|
||||
AfterConvertEvent.class //
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user