1717
1818import java .lang .annotation .Annotation ;
1919
20- import org .springframework .beans .factory .ListableBeanFactory ;
2120import org .springframework .beans .factory .config .BeanDefinition ;
2221import org .springframework .beans .factory .support .BeanDefinitionBuilder ;
23- import org .springframework .beans .factory .support .BeanDefinitionReaderUtils ;
2422import org .springframework .beans .factory .support .BeanDefinitionRegistry ;
2523import org .springframework .context .annotation .ImportBeanDefinitionRegistrar ;
2624import org .springframework .core .Ordered ;
2725import org .springframework .data .auditing .IsNewAwareAuditingHandler ;
2826import org .springframework .data .auditing .config .AuditingBeanDefinitionRegistrarSupport ;
2927import org .springframework .data .auditing .config .AuditingConfiguration ;
3028import org .springframework .data .config .ParsingUtils ;
31- import org .springframework .data .mapping .context .PersistentEntities ;
3229import org .springframework .data .mongodb .core .mapping .event .AuditingEntityCallback ;
33- import org .springframework .lang .Nullable ;
3430import org .springframework .util .Assert ;
3531
3632/**
3935 * @author Thomas Darimont
4036 * @author Oliver Gierke
4137 * @author Mark Paluch
38+ * @author Christoph Strobl
4239 */
4340class 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}
0 commit comments