@@ -630,6 +630,62 @@ public void testOptionalMethodInjectionWithBeanNotAvailable() {
630
630
bf .destroySingletons ();
631
631
}
632
632
633
+ @ Test
634
+ public void testOptionalListFieldInjectionWithBeanAvailable () {
635
+ DefaultListableBeanFactory bf = new DefaultListableBeanFactory ();
636
+ AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor ();
637
+ bpp .setBeanFactory (bf );
638
+ bf .addBeanPostProcessor (bpp );
639
+ bf .registerBeanDefinition ("annotatedBean" , new RootBeanDefinition (OptionalListFieldInjectionBean .class ));
640
+ bf .registerBeanDefinition ("testBean" , new RootBeanDefinition (TestBean .class ));
641
+
642
+ OptionalListFieldInjectionBean bean = (OptionalListFieldInjectionBean ) bf .getBean ("annotatedBean" );
643
+ assertTrue (bean .getTestBean ().isPresent ());
644
+ assertSame (bf .getBean ("testBean" ), bean .getTestBean ().get ().get (0 ));
645
+ bf .destroySingletons ();
646
+ }
647
+
648
+ @ Test
649
+ public void testOptionalListFieldInjectionWithBeanNotAvailable () {
650
+ DefaultListableBeanFactory bf = new DefaultListableBeanFactory ();
651
+ AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor ();
652
+ bpp .setBeanFactory (bf );
653
+ bf .addBeanPostProcessor (bpp );
654
+ bf .registerBeanDefinition ("annotatedBean" , new RootBeanDefinition (OptionalListFieldInjectionBean .class ));
655
+
656
+ OptionalListFieldInjectionBean bean = (OptionalListFieldInjectionBean ) bf .getBean ("annotatedBean" );
657
+ assertFalse (bean .getTestBean ().isPresent ());
658
+ bf .destroySingletons ();
659
+ }
660
+
661
+ @ Test
662
+ public void testOptionalListMethodInjectionWithBeanAvailable () {
663
+ DefaultListableBeanFactory bf = new DefaultListableBeanFactory ();
664
+ AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor ();
665
+ bpp .setBeanFactory (bf );
666
+ bf .addBeanPostProcessor (bpp );
667
+ bf .registerBeanDefinition ("annotatedBean" , new RootBeanDefinition (OptionalListMethodInjectionBean .class ));
668
+ bf .registerBeanDefinition ("testBean" , new RootBeanDefinition (TestBean .class ));
669
+
670
+ OptionalListMethodInjectionBean bean = (OptionalListMethodInjectionBean ) bf .getBean ("annotatedBean" );
671
+ assertTrue (bean .getTestBean ().isPresent ());
672
+ assertSame (bf .getBean ("testBean" ), bean .getTestBean ().get ().get (0 ));
673
+ bf .destroySingletons ();
674
+ }
675
+
676
+ @ Test
677
+ public void testOptionalListMethodInjectionWithBeanNotAvailable () {
678
+ DefaultListableBeanFactory bf = new DefaultListableBeanFactory ();
679
+ AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor ();
680
+ bpp .setBeanFactory (bf );
681
+ bf .addBeanPostProcessor (bpp );
682
+ bf .registerBeanDefinition ("annotatedBean" , new RootBeanDefinition (OptionalListMethodInjectionBean .class ));
683
+
684
+ OptionalListMethodInjectionBean bean = (OptionalListMethodInjectionBean ) bf .getBean ("annotatedBean" );
685
+ assertFalse (bean .getTestBean ().isPresent ());
686
+ bf .destroySingletons ();
687
+ }
688
+
633
689
@ Test
634
690
public void testProviderOfOptionalFieldInjectionWithBeanAvailable () {
635
691
DefaultListableBeanFactory bf = new DefaultListableBeanFactory ();
@@ -1239,6 +1295,32 @@ public Optional<TestBean> getTestBean() {
1239
1295
}
1240
1296
1241
1297
1298
+ public static class OptionalListFieldInjectionBean {
1299
+
1300
+ @ Inject
1301
+ private Optional <List <TestBean >> testBean ;
1302
+
1303
+ public Optional <List <TestBean >> getTestBean () {
1304
+ return this .testBean ;
1305
+ }
1306
+ }
1307
+
1308
+
1309
+ public static class OptionalListMethodInjectionBean {
1310
+
1311
+ private Optional <List <TestBean >> testBean ;
1312
+
1313
+ @ Inject
1314
+ public void setTestBean (Optional <List <TestBean >> testBeanFactory ) {
1315
+ this .testBean = testBeanFactory ;
1316
+ }
1317
+
1318
+ public Optional <List <TestBean >> getTestBean () {
1319
+ return this .testBean ;
1320
+ }
1321
+ }
1322
+
1323
+
1242
1324
public static class ProviderOfOptionalFieldInjectionBean {
1243
1325
1244
1326
@ Inject
0 commit comments