1616
1717package org .springframework .boot .testcontainers .service .connection ;
1818
19- import java .lang .reflect .Method ;
2019import java .util .LinkedHashSet ;
2120import java .util .Set ;
2221
2322import org .testcontainers .containers .Container ;
2423
2524import org .springframework .beans .factory .BeanFactory ;
2625import org .springframework .beans .factory .NoSuchBeanDefinitionException ;
26+ import org .springframework .beans .factory .annotation .AnnotatedBeanDefinition ;
2727import org .springframework .beans .factory .config .BeanDefinition ;
2828import org .springframework .beans .factory .config .ConfigurableListableBeanFactory ;
2929import org .springframework .beans .factory .support .BeanDefinitionRegistry ;
30- import org .springframework .beans .factory .support .RootBeanDefinition ;
3130import org .springframework .boot .autoconfigure .service .connection .ConnectionDetailsFactories ;
3231import org .springframework .boot .origin .Origin ;
3332import org .springframework .boot .testcontainers .beans .TestcontainerBeanDefinition ;
@@ -63,8 +62,7 @@ private void registerBeanDefinitions(ConfigurableListableBeanFactory beanFactory
6362 new ConnectionDetailsFactories (null ));
6463 for (String beanName : beanFactory .getBeanNamesForType (Container .class )) {
6564 BeanDefinition beanDefinition = getBeanDefinition (beanFactory , beanName );
66- MergedAnnotations annotations = (beanDefinition instanceof TestcontainerBeanDefinition testcontainerBeanDefinition )
67- ? testcontainerBeanDefinition .getAnnotations () : getAnnotationsFromFactoryMethod (beanDefinition );
65+ MergedAnnotations annotations = getAnnotations (beanDefinition );
6866 for (ServiceConnection serviceConnection : getServiceConnections (beanFactory , beanName , annotations )) {
6967 ContainerConnectionSource <?> source = createSource (beanFactory , beanName , beanDefinition , annotations ,
7068 serviceConnection );
@@ -73,12 +71,12 @@ private void registerBeanDefinitions(ConfigurableListableBeanFactory beanFactory
7371 }
7472 }
7573
76- private MergedAnnotations getAnnotationsFromFactoryMethod (BeanDefinition beanDefinition ) {
77- if (beanDefinition instanceof RootBeanDefinition rootBeanDefinition ) {
78- Method factoryMethod = rootBeanDefinition . getResolvedFactoryMethod ();
79- if ( factoryMethod != null ) {
80- return MergedAnnotations . from ( factoryMethod , MergedAnnotations . SearchStrategy . DIRECT );
81- }
74+ private MergedAnnotations getAnnotations (BeanDefinition beanDefinition ) {
75+ if (beanDefinition instanceof TestcontainerBeanDefinition testcontainerBeanDefinition ) {
76+ return testcontainerBeanDefinition . getAnnotations ();
77+ }
78+ if ( beanDefinition instanceof AnnotatedBeanDefinition annotatedBeanDefinition ) {
79+ return annotatedBeanDefinition . getFactoryMethodMetadata (). getAnnotations ();
8280 }
8381 return null ;
8482 }
0 commit comments