Skip to content

Commit 9b13653

Browse files
Simplify auditing configuration.
Use IsNewAwareAuditingHandler factory method to avoid exposing additional beans. See: #4022
1 parent d334c5a commit 9b13653

File tree

2 files changed

+5
-40
lines changed

2 files changed

+5
-40
lines changed

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/config/MongoAuditingRegistrar.java

+3-39
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,16 @@
1717

1818
import java.lang.annotation.Annotation;
1919

20-
import org.springframework.beans.factory.ListableBeanFactory;
2120
import org.springframework.beans.factory.config.BeanDefinition;
2221
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
23-
import org.springframework.beans.factory.support.BeanDefinitionReaderUtils;
2422
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
2523
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
2624
import org.springframework.core.Ordered;
2725
import org.springframework.data.auditing.IsNewAwareAuditingHandler;
2826
import org.springframework.data.auditing.config.AuditingBeanDefinitionRegistrarSupport;
2927
import org.springframework.data.auditing.config.AuditingConfiguration;
3028
import org.springframework.data.config.ParsingUtils;
31-
import org.springframework.data.mapping.context.PersistentEntities;
3229
import org.springframework.data.mongodb.core.mapping.event.AuditingEntityCallback;
33-
import org.springframework.lang.Nullable;
3430
import org.springframework.util.Assert;
3531

3632
/**
@@ -39,6 +35,7 @@
3935
* @author Thomas Darimont
4036
* @author Oliver Gierke
4137
* @author Mark Paluch
38+
* @author Christoph Strobl
4239
*/
4340
class MongoAuditingRegistrar extends AuditingBeanDefinitionRegistrarSupport implements Ordered {
4441

@@ -55,7 +52,8 @@ protected String getAuditingHandlerBeanName() {
5552
@Override
5653
protected void postProcess(BeanDefinitionBuilder builder, AuditingConfiguration configuration,
5754
BeanDefinitionRegistry registry) {
58-
potentiallyRegisterMongoPersistentEntities(builder, registry);
55+
56+
builder.setFactoryMethod("from").addConstructorArgReference("mongoMappingContext");
5957
}
6058

6159
@Override
@@ -87,38 +85,4 @@ protected void registerAuditListenerBeanDefinition(BeanDefinition auditingHandle
8785
public int getOrder() {
8886
return Ordered.LOWEST_PRECEDENCE;
8987
}
90-
91-
static void potentiallyRegisterMongoPersistentEntities(BeanDefinitionBuilder builder,
92-
BeanDefinitionRegistry registry) {
93-
94-
String persistentEntitiesBeanName = MongoAuditingRegistrar.detectPersistentEntitiesBeanName(registry);
95-
96-
if (persistentEntitiesBeanName == null) {
97-
98-
persistentEntitiesBeanName = BeanDefinitionReaderUtils.uniqueBeanName("mongoPersistentEntities", registry);
99-
100-
// TODO: https://github.com/spring-projects/spring-framework/issues/28728
101-
BeanDefinitionBuilder definition = BeanDefinitionBuilder.genericBeanDefinition(PersistentEntities.class) //
102-
.setFactoryMethod("of") //
103-
.addConstructorArgReference("mongoMappingContext");
104-
105-
registry.registerBeanDefinition(persistentEntitiesBeanName, definition.getBeanDefinition());
106-
}
107-
108-
builder.addConstructorArgReference(persistentEntitiesBeanName);
109-
}
110-
111-
@Nullable
112-
private static String detectPersistentEntitiesBeanName(BeanDefinitionRegistry registry) {
113-
114-
if (registry instanceof ListableBeanFactory beanFactory) {
115-
for (String bn : beanFactory.getBeanNamesForType(PersistentEntities.class)) {
116-
if (bn.startsWith("mongo")) {
117-
return bn;
118-
}
119-
}
120-
}
121-
122-
return null;
123-
}
12488
}

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/config/ReactiveMongoAuditingRegistrar.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
* {@link ImportBeanDefinitionRegistrar} to enable {@link EnableReactiveMongoAuditing} annotation.
3333
*
3434
* @author Mark Paluch
35+
* @author Christoph Strobl
3536
* @since 3.1
3637
*/
3738
class ReactiveMongoAuditingRegistrar extends AuditingBeanDefinitionRegistrarSupport {
@@ -49,7 +50,7 @@ protected String getAuditingHandlerBeanName() {
4950
@Override
5051
protected void postProcess(BeanDefinitionBuilder builder, AuditingConfiguration configuration,
5152
BeanDefinitionRegistry registry) {
52-
MongoAuditingRegistrar.potentiallyRegisterMongoPersistentEntities(builder, registry);
53+
builder.setFactoryMethod("from").addConstructorArgReference("mongoMappingContext");
5354
}
5455

5556
@Override

0 commit comments

Comments
 (0)