Skip to content

Commit 4bf8c8a

Browse files
Simplify auditing setup.
Use IsNewAwareAuditingHandler factory method to avoid exposing additional beans. See: #1280
1 parent 15329b6 commit 4bf8c8a

File tree

2 files changed

+5
-41
lines changed

2 files changed

+5
-41
lines changed

spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/CassandraAuditingRegistrar.java

Lines changed: 2 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -17,25 +17,22 @@
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.data.auditing.IsNewAwareAuditingHandler;
2725
import org.springframework.data.auditing.config.AuditingBeanDefinitionRegistrarSupport;
2826
import org.springframework.data.auditing.config.AuditingConfiguration;
2927
import org.springframework.data.cassandra.core.mapping.event.AuditingEntityCallback;
3028
import org.springframework.data.config.ParsingUtils;
31-
import org.springframework.data.mapping.context.PersistentEntities;
32-
import org.springframework.lang.Nullable;
3329
import org.springframework.util.Assert;
3430

3531
/**
3632
* {@link ImportBeanDefinitionRegistrar} to enable {@link EnableCassandraAuditing} annotation.
3733
*
3834
* @author Mark Paluch
35+
* @author Christoph Strobl
3936
* @since 2.2
4037
*/
4138
class CassandraAuditingRegistrar extends AuditingBeanDefinitionRegistrarSupport {
@@ -54,7 +51,7 @@ protected String getAuditingHandlerBeanName() {
5451
protected void postProcess(BeanDefinitionBuilder builder, AuditingConfiguration configuration,
5552
BeanDefinitionRegistry registry) {
5653

57-
potentiallyRegisterCassandraPersistentEntities(builder, registry);
54+
builder.setFactoryMethod("from").addConstructorArgReference("cassandraMappingContext");
5855
}
5956

6057
@Override
@@ -81,39 +78,4 @@ protected void registerAuditListenerBeanDefinition(BeanDefinition auditingHandle
8178
registerInfrastructureBeanWithId(listenerBeanDefinitionBuilder.getBeanDefinition(),
8279
AuditingEntityCallback.class.getName(), registry);
8380
}
84-
85-
static void potentiallyRegisterCassandraPersistentEntities(BeanDefinitionBuilder builder,
86-
BeanDefinitionRegistry registry) {
87-
88-
String persistentEntitiesBeanName = detectPersistentEntitiesBeanName(registry);
89-
90-
if (persistentEntitiesBeanName == null) {
91-
92-
persistentEntitiesBeanName = BeanDefinitionReaderUtils.uniqueBeanName("cassandraPersistentEntities", registry);
93-
94-
// TODO: https://github.com/spring-projects/spring-framework/issues/28728
95-
BeanDefinitionBuilder definition = BeanDefinitionBuilder.genericBeanDefinition(PersistentEntities.class) //
96-
.setFactoryMethod("of") //
97-
.addConstructorArgReference("cassandraMappingContext");
98-
99-
registry.registerBeanDefinition(persistentEntitiesBeanName, definition.getBeanDefinition());
100-
}
101-
102-
builder.addConstructorArgReference(persistentEntitiesBeanName);
103-
}
104-
105-
@Nullable
106-
private static String detectPersistentEntitiesBeanName(BeanDefinitionRegistry registry) {
107-
108-
if (registry instanceof ListableBeanFactory beanFactory) {
109-
for (String bn : beanFactory.getBeanNamesForType(PersistentEntities.class)) {
110-
if (bn.startsWith("cassandra")) {
111-
return bn;
112-
}
113-
}
114-
}
115-
116-
return null;
117-
}
118-
11981
}

spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/ReactiveCassandraAuditingRegistrar.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
* {@link ImportBeanDefinitionRegistrar} to enable {@link EnableReactiveCassandraAuditing} annotation.
3333
*
3434
* @author Mark Paluch
35+
* @author Christoph Strobl
3536
* @since 3.1
3637
*/
3738
class ReactiveCassandraAuditingRegistrar extends AuditingBeanDefinitionRegistrarSupport {
@@ -49,7 +50,8 @@ protected String getAuditingHandlerBeanName() {
4950
@Override
5051
protected void postProcess(BeanDefinitionBuilder builder, AuditingConfiguration configuration,
5152
BeanDefinitionRegistry registry) {
52-
CassandraAuditingRegistrar.potentiallyRegisterCassandraPersistentEntities(builder, registry);
53+
54+
builder.setFactoryMethod("from").addConstructorArgReference("cassandraMappingContext");
5355
}
5456

5557
@Override

0 commit comments

Comments
 (0)