From 8bd787c5881d434fe15e539bc544b659ddc720f4 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Thu, 19 Mar 2020 09:21:19 +0100 Subject: [PATCH] DATAJDBC-454 - Polishing. Reformat code. Tweak reference doc wording. Original pull request: #199. --- .../core/mapping/event/AbstractRelationalEvent.java | 4 ++-- .../mapping/event/AbstractRelationalEventListener.java | 2 ++ .../core/mapping/event/AfterDeleteEvent.java | 6 ++---- .../core/mapping/event/BeforeConvertEvent.java | 2 -- .../core/mapping/event/BeforeDeleteEvent.java | 1 - .../relational/core/mapping/event/BeforeSaveEvent.java | 7 +++---- .../core/mapping/event/RelationalDeleteEvent.java | 10 +++++----- .../relational/core/mapping/event/RelationalEvent.java | 2 +- .../core/mapping/event/RelationalEventWithEntity.java | 9 ++++----- .../core/mapping/event/RelationalSaveEvent.java | 3 +-- .../AbstractRelationalEventListenerUnitTests.java | 6 +++--- src/main/asciidoc/jdbc.adoc | 6 +++--- 12 files changed, 26 insertions(+), 32 deletions(-) diff --git a/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/AbstractRelationalEvent.java b/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/AbstractRelationalEvent.java index bf0ff1ca..612f951c 100644 --- a/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/AbstractRelationalEvent.java +++ b/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/AbstractRelationalEvent.java @@ -28,8 +28,8 @@ import org.springframework.context.ApplicationEvent; public abstract class AbstractRelationalEvent extends ApplicationEvent implements RelationalEvent { /** - * Creates an event with the given source. - * The source might be an entity or an id of an entity, depending on the actual event subclass. + * Creates an event with the given source. The source might be an entity or an id of an entity, depending on the + * actual event subclass. * * @param source must not be {@literal null}. */ diff --git a/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/AbstractRelationalEventListener.java b/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/AbstractRelationalEventListener.java index ee838480..a889e267 100644 --- a/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/AbstractRelationalEventListener.java +++ b/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/AbstractRelationalEventListener.java @@ -24,11 +24,13 @@ import org.springframework.core.GenericTypeResolver; * Base class to implement domain class specific {@link ApplicationListener} classes. * * @param + * @author Jens Schauder * @since 2.0 */ public class AbstractRelationalEventListener implements ApplicationListener> { private static final Logger LOG = LoggerFactory.getLogger(AbstractRelationalEventListener.class); + private final Class domainClass; /** diff --git a/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/AfterDeleteEvent.java b/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/AfterDeleteEvent.java index 93245339..5559a048 100644 --- a/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/AfterDeleteEvent.java +++ b/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/AfterDeleteEvent.java @@ -19,8 +19,8 @@ import org.springframework.data.relational.core.conversion.AggregateChange; import org.springframework.lang.Nullable; /** - * Gets published after deletion of an entity. It will have a {@link Identifier} identifier. If the entity is {@literal null} or - * not depends on the delete method used. + * Gets published after deletion of an entity. It will have a {@link Identifier} identifier. If the entity is + * {@literal null} or not depends on the delete method used. * * @author Jens Schauder * @since 2.0 @@ -38,6 +38,4 @@ public class AfterDeleteEvent extends RelationalDeleteEvent { public AfterDeleteEvent(Identifier id, @Nullable E instance, AggregateChange change) { super(id, instance, change); } - - } diff --git a/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/BeforeConvertEvent.java b/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/BeforeConvertEvent.java index c3611778..12615cd8 100644 --- a/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/BeforeConvertEvent.java +++ b/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/BeforeConvertEvent.java @@ -34,8 +34,6 @@ public class BeforeConvertEvent extends RelationalSaveEvent { * aggregate is considered new in {@link AggregateChange#getKind()}. Must not be {@literal null}. */ public BeforeConvertEvent(E instance, AggregateChange change) { - super(instance, change); - } } diff --git a/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/BeforeDeleteEvent.java b/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/BeforeDeleteEvent.java index f836a6f2..8fe92cfc 100644 --- a/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/BeforeDeleteEvent.java +++ b/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/BeforeDeleteEvent.java @@ -36,5 +36,4 @@ public class BeforeDeleteEvent extends RelationalDeleteEvent { public BeforeDeleteEvent(Identifier id, @Nullable E entity, AggregateChange change) { super(id, entity, change); } - } diff --git a/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/BeforeSaveEvent.java b/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/BeforeSaveEvent.java index 214cca74..daa2f8d9 100644 --- a/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/BeforeSaveEvent.java +++ b/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/BeforeSaveEvent.java @@ -23,17 +23,16 @@ import org.springframework.data.relational.core.conversion.AggregateChange; * * @author Jens Schauder */ -public class BeforeSaveEvent extends RelationalSaveEvent{ +public class BeforeSaveEvent extends RelationalSaveEvent { private static final long serialVersionUID = -4935804431519314116L; /** * @param instance the entity about to get saved. Must not be {@literal null}. - * @param change the {@link AggregateChange} that is going to get applied to the database. Must not be {@literal null}. - * + * @param change the {@link AggregateChange} that is going to get applied to the database. Must not be + * {@literal null}. */ public BeforeSaveEvent(E instance, AggregateChange change) { super(instance, change); - } } diff --git a/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/RelationalDeleteEvent.java b/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/RelationalDeleteEvent.java index d6b8d0c8..17963897 100644 --- a/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/RelationalDeleteEvent.java +++ b/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/RelationalDeleteEvent.java @@ -15,7 +15,6 @@ */ package org.springframework.data.relational.core.mapping.event; -import org.springframework.context.ApplicationEvent; import org.springframework.data.relational.core.conversion.AggregateChange; import org.springframework.lang.Nullable; import org.springframework.util.Assert; @@ -23,16 +22,17 @@ import org.springframework.util.Assert; /** * Super class for events produced during deleting an aggregate. Such events have an {@link Identifier} and an * {@link AggregateChange} and may also have an entity if the entity was provided to the method performing the delete. - * + * * @author Jens Schauder * @since 2.0 */ -public abstract class RelationalDeleteEvent extends AbstractRelationalEvent implements WithId, WithAggregateChange { +public abstract class RelationalDeleteEvent extends AbstractRelationalEvent + implements WithId, WithAggregateChange { private static final long serialVersionUID = -8071323168471611098L; private final Identifier id; - @Nullable private final E entity; + private final @Nullable E entity; private final AggregateChange change; /** @@ -69,7 +69,7 @@ public abstract class RelationalDeleteEvent extends AbstractRelationalEvent getType() { + public Class getType() { return change.getEntityType(); } } diff --git a/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/RelationalEvent.java b/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/RelationalEvent.java index 597b1803..9ab5f2c1 100644 --- a/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/RelationalEvent.java +++ b/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/RelationalEvent.java @@ -37,5 +37,5 @@ public interface RelationalEvent { * @return the type of the entity to which the event relates. * @since 2.0 */ - Class getType(); + Class getType(); } diff --git a/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/RelationalEventWithEntity.java b/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/RelationalEventWithEntity.java index c1f0d170..73b3ec36 100644 --- a/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/RelationalEventWithEntity.java +++ b/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/RelationalEventWithEntity.java @@ -15,11 +15,9 @@ */ package org.springframework.data.relational.core.mapping.event; -import org.springframework.context.ApplicationEvent; - /** * An event that is guaranteed to have an entity. - * + * * @author Jens Schauder */ public class RelationalEventWithEntity extends AbstractRelationalEvent implements WithEntity { @@ -42,8 +40,9 @@ public class RelationalEventWithEntity extends AbstractRelationalEvent imp return entity; } + @SuppressWarnings("unchecked") @Override - public Class getType() { - return (Class) entity.getClass(); + public Class getType() { + return (Class) entity.getClass(); } } diff --git a/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/RelationalSaveEvent.java b/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/RelationalSaveEvent.java index 8ffe1aad..5583151f 100644 --- a/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/RelationalSaveEvent.java +++ b/spring-data-relational/src/main/java/org/springframework/data/relational/core/mapping/event/RelationalSaveEvent.java @@ -21,7 +21,7 @@ import org.springframework.util.Assert; /** * Events triggered during saving of an aggregate. Events of this type always have an {@link AggregateChange} and an * entity. - * + * * @author Jens Schauder * @since 2.0 */ @@ -34,7 +34,6 @@ public abstract class RelationalSaveEvent extends RelationalEventWithEntity events = new ArrayList<>(); EventListenerUnderTest listener = new EventListenerUnderTest(); - private DummyEntity dummyEntity = new DummyEntity(); + DummyEntity dummyEntity = new DummyEntity(); @Test // DATAJDBC-454 public void afterLoad() { @@ -91,7 +91,7 @@ public class AbstractRelationalEventListenerUnitTests { String notADummyEntity = "I'm not a dummy entity"; listener.onApplicationEvent( - new AfterDeleteEvent<>(Identifier.of(23), notADummyEntity, AggregateChange.forDelete(notADummyEntity))); + new AfterDeleteEvent<>(Identifier.of(23), String.class, AggregateChange.forDelete(notADummyEntity))); assertThat(events).isEmpty(); } diff --git a/src/main/asciidoc/jdbc.adoc b/src/main/asciidoc/jdbc.adoc index fe45832d..aec99485 100644 --- a/src/main/asciidoc/jdbc.adoc +++ b/src/main/asciidoc/jdbc.adoc @@ -609,7 +609,7 @@ For example, the following listener gets invoked before an aggregate gets saved: [source,java] ---- @Bean -public ApplicationListener loggingSaves() { +public ApplicationListener> loggingSaves() { return event -> { @@ -621,7 +621,7 @@ public ApplicationListener loggingSaves() { ==== If you want to handle events only for a specific domain type you may derive your listener from `AbstractRelationalEventListener` and overwrite one or more of the `onXXX` methods, -where `XXX` stands for an event type. It will only get invoked for events related to the domain type you used in the declaration and provides typed events, so no casting of the entity is required. +where `XXX` stands for an event type. Callback methods will only get invoked for events related to the domain type and their subtypes so you don't require further casting. ==== [source,java] @@ -630,7 +630,7 @@ public class PersonLoadListener extends AbstractRelationalEventListener @Override protected void onAfterLoad(AfterLoadEvent personLoad) { - LOG.info(personLoad.getEntity().setLoadTimeStamp(new Date()); + LOG.info(personLoad.getEntity()); } } ----