Skip to content

Commit 0905c77

Browse files
Add factory method to Reactive-/AuditingHandler.
By providing a factory method that accepts the MappingContext we can avoid the creation of additional support beans during the configuration phase for store modules implementing auditing. See: #2593
1 parent fb07ad9 commit 0905c77

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

src/main/java/org/springframework/data/auditing/AuditingHandler.java

+11-1
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919

2020
import org.apache.commons.logging.Log;
2121
import org.apache.commons.logging.LogFactory;
22-
2322
import org.springframework.beans.factory.InitializingBean;
2423
import org.springframework.data.domain.AuditorAware;
24+
import org.springframework.data.mapping.context.MappingContext;
2525
import org.springframework.data.mapping.context.PersistentEntities;
2626
import org.springframework.util.Assert;
2727

@@ -53,6 +53,16 @@ public AuditingHandler(PersistentEntities entities) {
5353
this.auditorAware = Optional.empty();
5454
}
5555

56+
/**
57+
* Factory method that creates a new {@link AuditingHandler} for the given {@link MappingContext}.
58+
*
59+
* @param mappingContext must not be {@literal null}.
60+
* @since 3.0
61+
*/
62+
public static AuditingHandler from(MappingContext<?, ?> mappingContext) {
63+
return new AuditingHandler(PersistentEntities.of(mappingContext));
64+
}
65+
5666
/**
5767
* Setter to inject a {@code AuditorAware} component to retrieve the current auditor.
5868
*

src/main/java/org/springframework/data/auditing/ReactiveAuditingHandler.java

+11
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import reactor.core.publisher.Mono;
1919

2020
import org.springframework.data.domain.ReactiveAuditorAware;
21+
import org.springframework.data.mapping.context.MappingContext;
2122
import org.springframework.data.mapping.context.PersistentEntities;
2223
import org.springframework.util.Assert;
2324

@@ -42,6 +43,16 @@ public ReactiveAuditingHandler(PersistentEntities entities) {
4243
super(entities);
4344
}
4445

46+
/**
47+
* Factory method that creates a new {@link ReactiveAuditingHandler} for the given {@link MappingContext}.
48+
*
49+
* @param mappingContext must not be {@literal null}.
50+
* @since 3.0
51+
*/
52+
public static ReactiveAuditingHandler from(MappingContext<?, ?> mappingContext) {
53+
return new ReactiveAuditingHandler(PersistentEntities.of(mappingContext));
54+
}
55+
4556
/**
4657
* Setter to inject a {@link ReactiveAuditorAware} component to retrieve the current auditor.
4758
*

0 commit comments

Comments
 (0)