@@ -1549,6 +1549,31 @@ void orderFromAttributeOverridesAnnotation() {
1549
1549
.containsExactly ("fromLowestPrecedenceTestBeanFactoryBean" );
1550
1550
}
1551
1551
1552
+ @ Test
1553
+ void orderIsHonoredByMapOfBeans () {
1554
+ RootBeanDefinition bd1 = new RootBeanDefinition ();
1555
+ bd1 .setBeanClass (TestBean .class );
1556
+ bd1 .setPropertyValues (new MutablePropertyValues (List .of (new PropertyValue ("name" , "bean1" ))));
1557
+ bd1 .setAttribute (AbstractBeanDefinition .ORDER_ATTRIBUTE , Ordered .LOWEST_PRECEDENCE );
1558
+ lbf .registerBeanDefinition ("bean1" , bd1 );
1559
+ RootBeanDefinition bd2 = new RootBeanDefinition ();
1560
+ bd2 .setBeanClass (DerivedTestBean .class );
1561
+ bd2 .setPropertyValues (new MutablePropertyValues (List .of (new PropertyValue ("name" , "bean2" ))));
1562
+ bd2 .setAttribute (AbstractBeanDefinition .ORDER_ATTRIBUTE , Ordered .HIGHEST_PRECEDENCE );
1563
+ lbf .registerBeanDefinition ("bean2" , bd2 );
1564
+ RootBeanDefinition bd3 = new RootBeanDefinition ();
1565
+ bd3 .setBeanClass (TestBean .class );
1566
+ bd3 .setPropertyValues (new MutablePropertyValues (List .of (new PropertyValue ("name" , "bean3" ))));
1567
+ bd3 .setAttribute (AbstractBeanDefinition .ORDER_ATTRIBUTE , Ordered .HIGHEST_PRECEDENCE + 1 );
1568
+ lbf .registerBeanDefinition ("bean3" , bd3 );
1569
+ RootBeanDefinition bd4 = new RootBeanDefinition ();
1570
+ bd4 .setBeanClass (TestBean .class );
1571
+ bd4 .setPropertyValues (new MutablePropertyValues (List .of (new PropertyValue ("name" , "bean4" ))));
1572
+ bd4 .setAttribute (AbstractBeanDefinition .ORDER_ATTRIBUTE , Ordered .LOWEST_PRECEDENCE - 1 );
1573
+ lbf .registerBeanDefinition ("bean4" , bd4 );
1574
+ assertThat (lbf .getBeansOfType (TestBean .class ).keySet ()).containsExactly ("bean2" , "bean3" , "bean4" , "bean1" );
1575
+ }
1576
+
1552
1577
@ Test
1553
1578
void invalidOrderAttribute () {
1554
1579
GenericBeanDefinition bd1 = new GenericBeanDefinition ();
0 commit comments