From: Juergen H. <jho...@us...> - 2006-12-29 19:42:35
|
Update of /cvsroot/springframework/spring/test/org/springframework/beans/factory/xml In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv16113/test/org/springframework/beans/factory/xml Modified Files: reftypes.xml XmlBeanFactoryTests.java Log Message: cache merged bean definitions with bean definition identity as key (to avoid bean name conflicts with inner beans) Index: reftypes.xml =================================================================== RCS file: /cvsroot/springframework/spring/test/org/springframework/beans/factory/xml/reftypes.xml,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** reftypes.xml 6 Dec 2006 05:41:20 -0000 1.15 --- reftypes.xml 29 Dec 2006 19:42:32 -0000 1.16 *************** *** 39,42 **** --- 39,48 ---- </bean> + <!-- This bean must not conflict with the actual inner beans named "innerBean" --> + <bean id="innerBean" class="org.springframework.beans.TestBean" destroy-method="destroy"> + <constructor-arg><value>outer</value></constructor-arg> + <constructor-arg type="int"><value>0</value></constructor-arg> + </bean> + <bean id="hasInnerBeans" class="org.springframework.beans.TestBean"> <constructor-arg><value>hasInner</value></constructor-arg> *************** *** 92,96 **** <constructor-arg index="1" type="int"><value>5</value></constructor-arg> <property name="spouse"> ! <bean id="innerBean" class="org.springframework.beans.TestBean"> <constructor-arg><value>inner1</value></constructor-arg> <constructor-arg type="int"><value>6</value></constructor-arg> --- 98,102 ---- <constructor-arg index="1" type="int"><value>5</value></constructor-arg> <property name="spouse"> ! <bean id="innerBean" class="org.springframework.beans.TestBean" scope="prototype"> <constructor-arg><value>inner1</value></constructor-arg> <constructor-arg type="int"><value>6</value></constructor-arg> *************** *** 104,108 **** </bean> <bean id="innerBeanFactory" class="org.springframework.beans.factory.DummyFactory"/> ! <bean id="innerBean" class="org.springframework.beans.TestBean"> <constructor-arg><value>inner5</value></constructor-arg> <constructor-arg type="int"><value>6</value></constructor-arg> --- 110,114 ---- </bean> <bean id="innerBeanFactory" class="org.springframework.beans.factory.DummyFactory"/> ! <bean id="innerBean" class="org.springframework.beans.TestBean" scope="prototype"> <constructor-arg><value>inner5</value></constructor-arg> <constructor-arg type="int"><value>6</value></constructor-arg> Index: XmlBeanFactoryTests.java =================================================================== RCS file: /cvsroot/springframework/spring/test/org/springframework/beans/factory/xml/XmlBeanFactoryTests.java,v retrieving revision 1.55 retrieving revision 1.56 diff -C2 -d -r1.55 -r1.56 *** XmlBeanFactoryTests.java 24 Dec 2006 12:17:22 -0000 1.55 --- XmlBeanFactoryTests.java 29 Dec 2006 19:42:32 -0000 1.56 *************** *** 132,140 **** } TestBean hasInnerBeans = (TestBean) xbf.getBean("hasInnerBeans"); assertEquals(5, hasInnerBeans.getAge()); TestBean inner1 = (TestBean) hasInnerBeans.getSpouse(); assertNotNull(inner1); ! assertEquals("innerBean", inner1.getBeanName()); assertEquals("inner1", inner1.getName()); assertEquals(6, inner1.getAge()); --- 132,145 ---- } + // Let's create the outer bean named "innerBean", + // to check whether it doesn't create any conflicts + // with the actual inner beans named "innerBean". + xbf.getBean("innerBean"); + TestBean hasInnerBeans = (TestBean) xbf.getBean("hasInnerBeans"); assertEquals(5, hasInnerBeans.getAge()); TestBean inner1 = (TestBean) hasInnerBeans.getSpouse(); assertNotNull(inner1); ! assertEquals("innerBean#1", inner1.getBeanName()); assertEquals("inner1", inner1.getName()); assertEquals(6, inner1.getAge()); *************** *** 146,150 **** assertEquals("inner2", inner2.getName()); assertTrue(inner2.getBeanName().startsWith(DerivedTestBean.class.getName())); ! assertFalse(xbf.containsBean("innerBean")); assertNotNull(inner2); assertEquals(7, inner2.getAge()); --- 151,155 ---- assertEquals("inner2", inner2.getName()); assertTrue(inner2.getBeanName().startsWith(DerivedTestBean.class.getName())); ! assertFalse(xbf.containsBean("innerBean#1")); assertNotNull(inner2); assertEquals(7, inner2.getAge()); *************** *** 152,156 **** assertEquals(DummyFactory.SINGLETON_NAME, innerFactory.getName()); TestBean inner5 = (TestBean) friends[2]; ! assertEquals("innerBean#1", inner5.getBeanName()); assertNotNull(hasInnerBeans.getSomeMap()); --- 157,161 ---- assertEquals(DummyFactory.SINGLETON_NAME, innerFactory.getName()); TestBean inner5 = (TestBean) friends[2]; ! assertEquals("innerBean#2", inner5.getBeanName()); assertNotNull(hasInnerBeans.getSomeMap()); *************** *** 166,170 **** TestBean innerForConstructor = (TestBean) hasInnerBeansForConstructor.getSpouse(); assertNotNull(innerForConstructor); ! assertEquals("innerBean#2", innerForConstructor.getBeanName()); assertEquals("inner1", innerForConstructor.getName()); assertEquals(6, innerForConstructor.getAge()); --- 171,175 ---- TestBean innerForConstructor = (TestBean) hasInnerBeansForConstructor.getSpouse(); assertNotNull(innerForConstructor); ! assertEquals("innerBean#3", innerForConstructor.getBeanName()); assertEquals("inner1", innerForConstructor.getName()); assertEquals(6, innerForConstructor.getAge()); *************** *** 183,186 **** --- 188,196 ---- reader.loadBeanDefinitions(new ClassPathResource("reftypes.xml", getClass())); + // Let's create the outer bean named "innerBean", + // to check whether it doesn't create any conflicts + // with the actual inner beans named "innerBean". + xbf.getBean("innerBean"); + TestBean hasInnerBeans = (TestBean) xbf.getBean("hasInnerBeansWithoutDestroy"); assertEquals(5, hasInnerBeans.getAge()); *************** *** 197,201 **** assertEquals("inner2", inner2.getName()); assertTrue(inner2.getBeanName().startsWith(DerivedTestBean.class.getName())); - assertFalse(xbf.containsBean("innerBean")); assertNotNull(inner2); assertEquals(7, inner2.getAge()); --- 207,210 ---- *************** *** 203,207 **** assertEquals(DummyFactory.SINGLETON_NAME, innerFactory.getName()); TestBean inner5 = (TestBean) friends[2]; ! assertEquals("innerBean#1", inner5.getBeanName()); } --- 212,216 ---- assertEquals(DummyFactory.SINGLETON_NAME, innerFactory.getName()); TestBean inner5 = (TestBean) friends[2]; ! assertEquals("innerBean", inner5.getBeanName()); } |