storing type information as specified (SPR-5556, SPR-5562); explicit XML array element in spring-beans-3.0.xsd (SPR-5543)
This commit is contained in:
@@ -0,0 +1,380 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
|
||||
|
||||
<bean id="jenny" class="test.beans.TestBean">
|
||||
<property name="name"><value>Jenny</value></property>
|
||||
<property name="age"><value>30</value></property>
|
||||
<property name="spouse">
|
||||
<!-- Could use id and href -->
|
||||
<ref local="david"/>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="david" class="test.beans.TestBean">
|
||||
<description>
|
||||
Simple bean, without any collections.
|
||||
</description>
|
||||
<property name="name">
|
||||
<description>The name of the user</description>
|
||||
<value>David</value>
|
||||
</property>
|
||||
<property name="age"><value>27</value></property>
|
||||
</bean>
|
||||
|
||||
<bean id="rod" class="test.beans.TestBean">
|
||||
<property name="name"><value>Rod</value></property>
|
||||
<property name="age"><value>32</value></property>
|
||||
<property name="friends">
|
||||
<description>List of Rod's friends</description>
|
||||
<list>
|
||||
<ref local="jenny"/>
|
||||
<ref local="david"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="pJenny" class="test.beans.TestBean" scope="prototype">
|
||||
<property name="name"><value>Jenny</value></property>
|
||||
<property name="age"><value>30</value></property>
|
||||
<property name="spouse">
|
||||
<!-- Could use id and href -->
|
||||
<ref local="david"/>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="pDavid" class="test.beans.TestBean" scope="prototype">
|
||||
<property name="name"><value>David</value></property>
|
||||
<property name="age"><value>27</value></property>
|
||||
</bean>
|
||||
|
||||
<bean id="pRod" class="test.beans.TestBean" scope="prototype">
|
||||
<property name="name"><value>Rod</value></property>
|
||||
<property name="age"><value>32</value></property>
|
||||
<property name="friends">
|
||||
<list>
|
||||
<ref local="pJenny"/>
|
||||
<ref local="pDavid"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!--
|
||||
Try setting a collection property to a single value
|
||||
-->
|
||||
<bean id="loner" class="test.beans.TestBean">
|
||||
<property name="name"><value>loner</value></property>
|
||||
<property name="age"><value>26</value></property>
|
||||
<property name="friends">
|
||||
<list>
|
||||
<description>My List</description>
|
||||
<ref local="david"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="jumble" class="org.springframework.beans.factory.xml.MixedCollectionBean">
|
||||
<property name="jumble">
|
||||
<list>
|
||||
<ref local="david"/>
|
||||
<value>literal</value>
|
||||
<ref local="jenny"/>
|
||||
<idref local="rod"/>
|
||||
<array>
|
||||
<ref local="david"/>
|
||||
<value>literal2</value>
|
||||
</array>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="jumble2" class="org.springframework.beans.factory.xml.MixedCollectionBean" lazy-init="true">
|
||||
<property name="jumble">
|
||||
<list>
|
||||
<ref local="david"/>
|
||||
<value>literal</value>
|
||||
<ref local="jenny"/>
|
||||
<idref bean="rod"/>
|
||||
<idref bean="rod2"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="verbose" class="test.beans.TestBean">
|
||||
<property name="name"><value>verbose</value></property>
|
||||
</bean>
|
||||
|
||||
<bean id="verbose2" class="test.beans.TestBean">
|
||||
<property name="name"><idref local="verbose"/></property>
|
||||
</bean>
|
||||
|
||||
<bean id="verbose3" class="test.beans.TestBean">
|
||||
<property name="name"><idref bean="verbose"/></property>
|
||||
</bean>
|
||||
|
||||
<bean id="emptyMap" class="org.springframework.beans.factory.xml.HasMap">
|
||||
<property name="map">
|
||||
<map>
|
||||
</map>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="literalMap" class="org.springframework.beans.factory.xml.HasMap">
|
||||
<property name="map">
|
||||
<map>
|
||||
<entry key="foo" value="bar"/>
|
||||
<entry key="fi" value="fum"/>
|
||||
<entry key="fa"><null/></entry>
|
||||
</map>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="mixedMap" class="org.springframework.beans.factory.xml.HasMap">
|
||||
<property name="map">
|
||||
<map>
|
||||
<entry key-ref="fooKey">
|
||||
<value type="java.lang.Integer">10</value>
|
||||
</entry>
|
||||
<entry>
|
||||
<key>
|
||||
<ref bean="jennyKey"/>
|
||||
</key>
|
||||
<ref local="jenny"/>
|
||||
</entry>
|
||||
<entry>
|
||||
<key>
|
||||
<bean class="java.lang.Integer">
|
||||
<constructor-arg value="5"/>
|
||||
</bean>
|
||||
</key>
|
||||
<idref bean="david"/>
|
||||
</entry>
|
||||
</map>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="fooKey" class="java.lang.String">
|
||||
<constructor-arg value="foo"/>
|
||||
</bean>
|
||||
|
||||
<bean id="jennyKey" class="java.lang.String">
|
||||
<constructor-arg value="jenny"/>
|
||||
</bean>
|
||||
|
||||
<bean id="pMixedMap" class="org.springframework.beans.factory.xml.HasMap" scope="prototype">
|
||||
<property name="map">
|
||||
<map>
|
||||
<entry key="foo" value="bar"/>
|
||||
<entry key="jenny" value-ref="pJenny"/>
|
||||
</map>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="mixedMapWithList" class="org.springframework.beans.factory.xml.HasMap">
|
||||
<property name="map">
|
||||
<map>
|
||||
<entry>
|
||||
<key><null/></key>
|
||||
<value>bar</value>
|
||||
</entry>
|
||||
<entry key="jenny"><ref local="jenny"/></entry>
|
||||
<entry key="list">
|
||||
<list>
|
||||
<value>zero</value>
|
||||
<map>
|
||||
<entry key="fo"><value>bar</value></entry>
|
||||
<entry key="jen"><ref local="jenny"/></entry>
|
||||
</map>
|
||||
<list>
|
||||
<ref local="jenny"/>
|
||||
<value>ba</value>
|
||||
</list>
|
||||
<null/>
|
||||
</list>
|
||||
</entry>
|
||||
<entry key="map">
|
||||
<map>
|
||||
<entry key="foo"><value>bar</value></entry>
|
||||
<entry key="jenny"><ref local="jenny"/></entry>
|
||||
</map>
|
||||
</entry>
|
||||
</map>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="emptySet" class="org.springframework.beans.factory.xml.HasMap">
|
||||
<property name="set">
|
||||
<set>
|
||||
</set>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
|
||||
<bean id="set" class="org.springframework.beans.factory.xml.HasMap">
|
||||
<property name="set">
|
||||
<set>
|
||||
<value>bar</value>
|
||||
<ref local="jenny"/>
|
||||
<null/>
|
||||
</set>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="emptyProps" class="org.springframework.beans.factory.xml.HasMap">
|
||||
<property name="props">
|
||||
<props>
|
||||
</props>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
|
||||
<bean id="props" class="org.springframework.beans.factory.xml.HasMap">
|
||||
<property name="props">
|
||||
<props>
|
||||
<prop key="foo">bar</prop>
|
||||
<prop key="2">TWO</prop>
|
||||
</props>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="propsViaMap" class="org.springframework.beans.factory.xml.HasMap">
|
||||
<property name="props">
|
||||
<map>
|
||||
<entry key="foo" value="bar"/>
|
||||
<entry key="2" value="TWO"/>
|
||||
</map>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="objectArray" class="org.springframework.beans.factory.xml.HasMap">
|
||||
<property name="objectArray">
|
||||
<list>
|
||||
<value>one</value>
|
||||
<ref local="jenny"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="classArray" class="org.springframework.beans.factory.xml.HasMap">
|
||||
<property name="classArray">
|
||||
<list>
|
||||
<value>java.lang.String</value>
|
||||
<value>java.lang.Exception</value>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="integerArray" class="org.springframework.beans.factory.xml.HasMap">
|
||||
<property name="integerArray">
|
||||
<list>
|
||||
<value>0</value>
|
||||
<value>1</value>
|
||||
<value>2</value>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="listFactory" class="org.springframework.beans.factory.config.ListFactoryBean">
|
||||
<property name="sourceList">
|
||||
<list>
|
||||
<value>bar</value>
|
||||
<value>jenny</value>
|
||||
</list>
|
||||
</property>
|
||||
<property name="targetListClass">
|
||||
<value>java.util.LinkedList</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="pListFactory" class="org.springframework.beans.factory.config.ListFactoryBean">
|
||||
<property name="sourceList">
|
||||
<list>
|
||||
<value>bar</value>
|
||||
<value>jenny</value>
|
||||
</list>
|
||||
</property>
|
||||
<property name="targetListClass">
|
||||
<value>java.util.LinkedList</value>
|
||||
</property>
|
||||
<property name="singleton">
|
||||
<value>true</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="setFactory" class="org.springframework.beans.factory.config.SetFactoryBean">
|
||||
<property name="sourceSet">
|
||||
<set>
|
||||
<value>bar</value>
|
||||
<value>jenny</value>
|
||||
</set>
|
||||
</property>
|
||||
<property name="targetSetClass">
|
||||
<value>java.util.TreeSet</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="pSetFactory" class="org.springframework.beans.factory.config.SetFactoryBean">
|
||||
<property name="sourceSet">
|
||||
<set>
|
||||
<value>bar</value>
|
||||
<value>jenny</value>
|
||||
</set>
|
||||
</property>
|
||||
<property name="targetSetClass">
|
||||
<value>java.util.TreeSet</value>
|
||||
</property>
|
||||
<property name="singleton">
|
||||
<value>true</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="mapFactory" class="org.springframework.beans.factory.config.MapFactoryBean">
|
||||
<property name="sourceMap">
|
||||
<map>
|
||||
<entry key="foo"><value>bar</value></entry>
|
||||
<entry key="jen"><value>jenny</value></entry>
|
||||
</map>
|
||||
</property>
|
||||
<property name="targetMapClass">
|
||||
<value>java.util.TreeMap</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="pMapFactory" class="org.springframework.beans.factory.config.MapFactoryBean">
|
||||
<property name="sourceMap">
|
||||
<map>
|
||||
<entry key="foo"><value>bar</value></entry>
|
||||
<entry key="jen"><value>jenny</value></entry>
|
||||
</map>
|
||||
</property>
|
||||
<property name="targetMapClass">
|
||||
<value>java.util.TreeMap</value>
|
||||
</property>
|
||||
<property name="singleton">
|
||||
<value>true</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="setAndMap" class="org.springframework.beans.factory.xml.XmlBeanCollectionTests$MapAndSet">
|
||||
<constructor-arg>
|
||||
<map>
|
||||
<description>My Map</description>
|
||||
<entry key="key1" value="val1"/>
|
||||
<entry key="key2" value="val2"/>
|
||||
<entry key="key3" value="val3"/>
|
||||
</map>
|
||||
</constructor-arg>
|
||||
</bean>
|
||||
|
||||
<bean id="enumSetFactory" class="org.springframework.beans.factory.config.SetFactoryBean">
|
||||
<property name="sourceSet">
|
||||
<set>
|
||||
<description>My Set</description>
|
||||
<value type="java.lang.String">ONE</value>
|
||||
<value type="java.lang.String">TWO</value>
|
||||
</set>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
</beans>
|
||||
@@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"
|
||||
"http://www.springframework.org/dtd/spring-beans-2.0.dtd">
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
|
||||
|
||||
<beans>
|
||||
<bean id="testBean" class="test.beans.TestBean">
|
||||
<property name="someList">
|
||||
<list value-type="java.lang.Integer">
|
||||
@@ -58,4 +58,21 @@
|
||||
</map>
|
||||
</property>
|
||||
</bean>
|
||||
</beans>
|
||||
|
||||
<bean id="jumble" class="org.springframework.beans.factory.xml.MixedCollectionBean">
|
||||
<property name="jumble">
|
||||
<list value-type="java.lang.String">
|
||||
<value>literal</value>
|
||||
<array value-type="java.lang.Integer">
|
||||
<value>2</value>
|
||||
<value>4</value>
|
||||
</array>
|
||||
<array value-type="int">
|
||||
<value>3</value>
|
||||
<value>5</value>
|
||||
</array>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
</beans>
|
||||
|
||||
@@ -0,0 +1,149 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
|
||||
|
||||
<beans>
|
||||
|
||||
<bean id="default" class="org.springframework.beans.factory.xml.FactoryMethods"
|
||||
factory-method="defaultInstance">
|
||||
<!-- No constructor-arg elements -->
|
||||
<property name="stringValue"><value>setterString</value></property>
|
||||
</bean>
|
||||
|
||||
<bean id="defaultTestBean" factory-bean="default" factory-method="getTestBean"
|
||||
init-method="haveBirthday" destroy-method="destroy"/>
|
||||
|
||||
<bean id="defaultTestBeanWithInvalidDestroyMethod" factory-bean="default" factory-method="getTestBean"
|
||||
init-method="haveBirthday" destroy-method="xxx" lazy-init="true"/>
|
||||
|
||||
<bean id="defaultTestBean.protected" factory-bean="default" factory-method="protectedGetTestBean"
|
||||
init-method="haveBirthday" destroy-method="destroy"/>
|
||||
|
||||
<bean id="defaultTestBean.private" factory-bean="default" factory-method="privateGetTestBean"
|
||||
init-method="haveBirthday" destroy-method="destroy"/>
|
||||
|
||||
<bean id="testBeanOnly" class="org.springframework.beans.factory.xml.FactoryMethods"
|
||||
factory-method="newInstance">
|
||||
<constructor-arg><ref local="juergen"/></constructor-arg>
|
||||
</bean>
|
||||
|
||||
<bean id="null" class="org.springframework.beans.factory.xml.FactoryMethods"
|
||||
factory-method="nullInstance"/>
|
||||
|
||||
<bean id="nullWithProperty" class="org.springframework.beans.factory.xml.FactoryMethods"
|
||||
factory-method="nullInstance" init-method="getName" scope="prototype">
|
||||
<property name="stringValue"><value>setterString</value></property>
|
||||
</bean>
|
||||
|
||||
<bean id="full" class="org.springframework.beans.factory.xml.FactoryMethods"
|
||||
factory-method="newInstance">
|
||||
<constructor-arg index="0"><ref local="juergen"/></constructor-arg>
|
||||
<constructor-arg index="1"><value>27</value></constructor-arg>
|
||||
<constructor-arg index="2"><value>gotcha</value></constructor-arg>
|
||||
</bean>
|
||||
|
||||
<bean id="fullWithNull" class="org.springframework.beans.factory.xml.FactoryMethods"
|
||||
factory-method="newInstance">
|
||||
<constructor-arg index="0"><ref local="juergen"/></constructor-arg>
|
||||
<constructor-arg index="1"><value>27</value></constructor-arg>
|
||||
<constructor-arg index="2" type="java.lang.Integer"><null/></constructor-arg>
|
||||
</bean>
|
||||
|
||||
<bean id="fullWithGenericNull" class="org.springframework.beans.factory.xml.FactoryMethods"
|
||||
factory-method="newInstance">
|
||||
<constructor-arg><ref local="juergen"/></constructor-arg>
|
||||
<constructor-arg type="int"><value>27</value></constructor-arg>
|
||||
<constructor-arg type="java.lang.Integer"><null/></constructor-arg>
|
||||
</bean>
|
||||
|
||||
<bean id="fullWithAutowire" class="org.springframework.beans.factory.xml.FactoryMethods"
|
||||
factory-method="newInstance" autowire="constructor">
|
||||
<constructor-arg index="0" ref="juergen"/>
|
||||
<constructor-arg index="1" value="27"/>
|
||||
</bean>
|
||||
|
||||
<bean id="stringToBeAutowired" class="java.lang.String">
|
||||
<constructor-arg value="gotchaAutowired"/>
|
||||
</bean>
|
||||
|
||||
<bean id="defaultPrototype" class="org.springframework.beans.factory.xml.FactoryMethods"
|
||||
scope="prototype" factory-method="defaultInstance">
|
||||
<!-- No constructor-arg elements -->
|
||||
<property name="stringValue"><value>setterString</value></property>
|
||||
</bean>
|
||||
|
||||
<bean id="testBeanOnlyPrototype" class="org.springframework.beans.factory.xml.FactoryMethods"
|
||||
factory-method="newInstance" scope="prototype">
|
||||
<constructor-arg><ref local="juergen"/></constructor-arg>
|
||||
<property name="stringValue"><value>testBeanOnlyPrototypeDISetterString</value></property>
|
||||
</bean>
|
||||
|
||||
<bean id="fullPrototype" class="org.springframework.beans.factory.xml.FactoryMethods"
|
||||
factory-method="newInstance" scope="prototype">
|
||||
<constructor-arg type="int"><value>27</value></constructor-arg>
|
||||
<constructor-arg><value>gotcha</value></constructor-arg>
|
||||
<constructor-arg><ref local="juergen"/></constructor-arg>
|
||||
</bean>
|
||||
|
||||
<bean id="noMatchPrototype" class="org.springframework.beans.factory.xml.FactoryMethods"
|
||||
factory-method="newInstance" scope="prototype">
|
||||
<constructor-arg index="0"><ref local="juergen"/></constructor-arg>
|
||||
<constructor-arg index="1"><value>27</value></constructor-arg>
|
||||
<constructor-arg index="2"><value>gotcha</value></constructor-arg>
|
||||
<constructor-arg index="3"><value>bogus</value></constructor-arg>
|
||||
</bean>
|
||||
|
||||
<bean id="listInstance" class="org.springframework.beans.factory.xml.FactoryMethods"
|
||||
factory-method="listInstance"/>
|
||||
|
||||
<bean id="juergen" class="test.beans.TestBean">
|
||||
<property name="name"><value>Juergen</value></property>
|
||||
</bean>
|
||||
|
||||
<!--
|
||||
The class is the factory class, not the created class.
|
||||
-->
|
||||
<bean id="externalFactoryMethodWithoutArgs"
|
||||
class="org.springframework.beans.factory.xml.TestBeanCreator"
|
||||
factory-method="createTestBean">
|
||||
</bean>
|
||||
|
||||
<bean id="externalFactoryMethodWithArgs" class="org.springframework.beans.factory.xml.TestBeanCreator"
|
||||
factory-method="createTestBean">
|
||||
<constructor-arg index="0"><value>Rod</value></constructor-arg>
|
||||
<constructor-arg><value type="java.lang.Integer">33</value></constructor-arg>
|
||||
</bean>
|
||||
|
||||
<bean id="instanceFactoryMethodWithoutArgs"
|
||||
factory-bean="instanceFactory"
|
||||
factory-method="defaultInstance"/>
|
||||
|
||||
<!-- Unnamed bean with factory-bean declaration -->
|
||||
<bean factory-bean="instanceFactory" factory-method="defaultInstance"/>
|
||||
|
||||
<bean id="testBeanWithInnerFactoryMethod" class="test.beans.TestBean">
|
||||
<property name="friends">
|
||||
<list>
|
||||
<!-- Unnamed bean with factory-bean declaration -->
|
||||
<bean factory-bean="instanceFactory" factory-method="defaultInstance"/>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="instanceFactory" class="org.springframework.beans.factory.xml.InstanceFactory" scope="singleton">
|
||||
<property name="factoryBeanProperty"><value>instanceFactory</value></property>
|
||||
</bean>
|
||||
|
||||
<bean name="javaMailSession" class="org.springframework.beans.factory.xml.MailSession"
|
||||
factory-method="getDefaultInstance">
|
||||
<constructor-arg>
|
||||
<props>
|
||||
<prop key="mail.smtp.auth">true</prop>
|
||||
<prop key="mail.smtp.host"></prop>
|
||||
<prop key="mail.smtp.port"></prop>
|
||||
<prop key="mail.smtp.user">someuser</prop>
|
||||
<prop key="mail.smtp.password">somepw</prop>
|
||||
</props>
|
||||
</constructor-arg>
|
||||
</bean>
|
||||
|
||||
</beans>
|
||||
Reference in New Issue
Block a user