Skip to content

Commit 53eea02

Browse files
committed
DATAJDBC-204 - Polishing.
Extracted ApplicationContext and Repository construction into method in order to make the actual test stand out more. Split a test in two. JavaDoc. Code formatting. Removed access modifiers in tests.
1 parent 92cd333 commit 53eea02

File tree

4 files changed

+179
-142
lines changed

4 files changed

+179
-142
lines changed

src/main/java/org/springframework/data/jdbc/domain/support/JdbcAuditingEventListener.java

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,49 +19,47 @@
1919
import org.springframework.context.ApplicationListener;
2020
import org.springframework.data.auditing.AuditingHandler;
2121
import org.springframework.data.jdbc.mapping.event.BeforeSaveEvent;
22+
import org.springframework.data.jdbc.repository.config.EnableJdbcAuditing;
2223
import org.springframework.lang.Nullable;
2324
import org.springframework.util.Assert;
2425

2526
/**
2627
* Spring JDBC event listener to capture auditing information on persisting and updating entities.
2728
* <p>
28-
* You can enable this class just a matter of activating auditing using {@link org.springframework.data.jdbc.repository.config.EnableJdbcAuditing} in your Spring config:
29-
*
30-
* <pre>
31-
* &#064;Configuration
32-
* &#064;EnableJdbcRepositories
33-
* &#064;EnableJdbcAuditing
34-
* class JdbcRepositoryConfig {
35-
* }
36-
* </pre>
29+
* An instance of this class gets registered when you apply {@link EnableJdbcAuditing} to your Spring config.
3730
*
3831
* @author Kazuki Shimizu
39-
* @see org.springframework.data.jdbc.repository.config.EnableJdbcAuditing
32+
* @see EnableJdbcAuditing
4033
* @since 1.0
4134
*/
4235
public class JdbcAuditingEventListener implements ApplicationListener<BeforeSaveEvent> {
4336

44-
@Nullable
45-
private AuditingHandler handler;
37+
@Nullable private AuditingHandler handler;
4638

4739
/**
4840
* Configures the {@link AuditingHandler} to be used to set the current auditor on the domain types touched.
4941
*
5042
* @param auditingHandler must not be {@literal null}.
5143
*/
5244
public void setAuditingHandler(ObjectFactory<AuditingHandler> auditingHandler) {
45+
5346
Assert.notNull(auditingHandler, "AuditingHandler must not be null!");
47+
5448
this.handler = auditingHandler.getObject();
5549
}
5650

5751
/**
5852
* {@inheritDoc}
53+
*
5954
* @param event a notification event for indicating before save
6055
*/
6156
@Override
6257
public void onApplicationEvent(BeforeSaveEvent event) {
58+
6359
if (handler != null) {
60+
6461
event.getOptionalEntity().ifPresent(entity -> {
62+
6563
if (event.getId().getOptionalValue().isPresent()) {
6664
handler.markModified(entity);
6765
} else {
@@ -70,5 +68,4 @@ public void onApplicationEvent(BeforeSaveEvent event) {
7068
});
7169
}
7270
}
73-
7471
}

src/main/java/org/springframework/data/jdbc/repository/config/EnableJdbcAuditing.java

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -29,22 +29,6 @@
2929
/**
3030
* Annotation to enable auditing in JDBC via annotation configuration.
3131
*
32-
* If you use the auditing feature, you should be configures beans of Spring Data JDBC
33-
* using {@link org.springframework.data.jdbc.repository.config.EnableJdbcRepositories} in your Spring config:
34-
*
35-
* <pre>
36-
* &#064;Configuration
37-
* &#064;EnableJdbcRepositories
38-
* &#064;EnableJdbcAuditing
39-
* class JdbcRepositoryConfig {
40-
* }
41-
* </pre>
42-
*
43-
* <p>
44-
* Note: This feature cannot use to a entity that implements {@link org.springframework.data.domain.Auditable}
45-
* because the Spring Data JDBC does not support an {@link java.util.Optional} property yet.
46-
* </p>
47-
*
4832
* @see EnableJdbcRepositories
4933
* @author Kazuki Shimizu
5034
* @since 1.0

src/main/java/org/springframework/data/jdbc/repository/config/JdbcAuditingRegistrar.java

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@
2727
import org.springframework.data.jdbc.domain.support.JdbcAuditingEventListener;
2828

2929
/**
30-
* {@link ImportBeanDefinitionRegistrar} to enable {@link EnableJdbcAuditing} annotation.
30+
* {@link ImportBeanDefinitionRegistrar} which registers additional beans in order to enable auditing via the
31+
* {@link EnableJdbcAuditing} annotation.
3132
*
3233
* @see EnableJdbcAuditing
3334
* @author Kazuki Shimizu
@@ -37,8 +38,9 @@ class JdbcAuditingRegistrar extends AuditingBeanDefinitionRegistrarSupport {
3738

3839
/**
3940
* {@inheritDoc}
41+
*
4042
* @return return the {@link EnableJdbcAuditing}
41-
* @see org.springframework.data.auditing.config.AuditingBeanDefinitionRegistrarSupport#getAnnotation()
43+
* @see AuditingBeanDefinitionRegistrarSupport#getAnnotation()
4244
*/
4345
@Override
4446
protected Class<? extends Annotation> getAnnotation() {
@@ -47,8 +49,9 @@ protected Class<? extends Annotation> getAnnotation() {
4749

4850
/**
4951
* {@inheritDoc}
52+
*
5053
* @return return "{@literal jdbcAuditingHandler}"
51-
* @see org.springframework.data.auditing.config.AuditingBeanDefinitionRegistrarSupport#getAuditingHandlerBeanName()
54+
* @see AuditingBeanDefinitionRegistrarSupport#getAuditingHandlerBeanName()
5255
*/
5356
@Override
5457
protected String getAuditingHandlerBeanName() {
@@ -61,22 +64,25 @@ protected String getAuditingHandlerBeanName() {
6164
*/
6265
@Override
6366
protected BeanDefinitionBuilder getAuditHandlerBeanDefinitionBuilder(AuditingConfiguration configuration) {
67+
6468
BeanDefinitionBuilder builder = super.getAuditHandlerBeanDefinitionBuilder(configuration);
6569
return builder.addConstructorArgReference("jdbcMappingContext");
6670
}
6771

6872
/**
69-
* Register the bean definition of {@link JdbcAuditingEventListener}.
70-
* {@inheritDoc}
71-
* @see org.springframework.data.auditing.config.AuditingBeanDefinitionRegistrarSupport#registerAuditListenerBeanDefinition(BeanDefinition, BeanDefinitionRegistry)
73+
* Register the bean definition of {@link JdbcAuditingEventListener}. {@inheritDoc}
74+
*
75+
* @see AuditingBeanDefinitionRegistrarSupport#registerAuditListenerBeanDefinition(BeanDefinition,
76+
* BeanDefinitionRegistry)
7277
*/
7378
@Override
7479
protected void registerAuditListenerBeanDefinition(BeanDefinition auditingHandlerDefinition,
75-
BeanDefinitionRegistry registry) {
80+
BeanDefinitionRegistry registry) {
81+
7682
Class<?> listenerClass = JdbcAuditingEventListener.class;
7783
BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(listenerClass);
7884
builder.addPropertyValue("auditingHandler",
79-
ParsingUtils.getObjectFactoryBeanDefinition(getAuditingHandlerBeanName(), null));
85+
ParsingUtils.getObjectFactoryBeanDefinition(getAuditingHandlerBeanName(), null));
8086
registerInfrastructureBeanWithId(builder.getRawBeanDefinition(), listenerClass.getName(), registry);
8187
}
8288

0 commit comments

Comments
 (0)