attempted to repro SPR-7318 to no avail
This commit is contained in:
parent
3f31a1cf75
commit
cd271fca43
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?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.xsd">
|
||||||
|
|
||||||
|
<bean id="fooFactory" class="org.springframework.beans.factory.FooFactoryBean"/>
|
||||||
|
|
||||||
|
</beans>
|
||||||
|
|
@ -0,0 +1,72 @@
|
||||||
|
package org.springframework.beans.factory;
|
||||||
|
|
||||||
|
import static org.hamcrest.CoreMatchers.instanceOf;
|
||||||
|
import static org.junit.Assert.assertNotNull;
|
||||||
|
import static org.junit.Assert.assertThat;
|
||||||
|
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.springframework.beans.factory.BeanFactory;
|
||||||
|
import org.springframework.beans.factory.config.AbstractFactoryBean;
|
||||||
|
import org.springframework.beans.factory.xml.XmlBeanFactory;
|
||||||
|
import org.springframework.core.io.ClassPathResource;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Written with the intention of reproducing SPR-7318.
|
||||||
|
*
|
||||||
|
* @author Chris Beams
|
||||||
|
*/
|
||||||
|
public class FactoryBeanLookupTests {
|
||||||
|
private BeanFactory beanFactory;
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setUp() {
|
||||||
|
beanFactory = new XmlBeanFactory(
|
||||||
|
new ClassPathResource("FactoryBeanLookupTests-context.xml", this.getClass()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void factoryBeanLookupByNameDereferencing() {
|
||||||
|
Object fooFactory = beanFactory.getBean("&fooFactory");
|
||||||
|
assertThat(fooFactory, instanceOf(FooFactoryBean.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void factoryBeanLookupByType() {
|
||||||
|
FooFactoryBean fooFactory = beanFactory.getBean(FooFactoryBean.class);
|
||||||
|
assertNotNull(fooFactory);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void factoryBeanLookupByTypeAndNameDereference() {
|
||||||
|
FooFactoryBean fooFactory = beanFactory.getBean("&fooFactory", FooFactoryBean.class);
|
||||||
|
assertNotNull(fooFactory);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void factoryBeanObjectLookupByName() {
|
||||||
|
Object fooFactory = beanFactory.getBean("fooFactory");
|
||||||
|
assertThat(fooFactory, instanceOf(Foo.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void factoryBeanObjectLookupByNameAndType() {
|
||||||
|
Foo foo = beanFactory.getBean("fooFactory", Foo.class);
|
||||||
|
assertNotNull(foo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class FooFactoryBean extends AbstractFactoryBean<Foo> {
|
||||||
|
@Override
|
||||||
|
protected Foo createInstance() throws Exception {
|
||||||
|
return new Foo();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Class<?> getObjectType() {
|
||||||
|
return Foo.class;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Foo { }
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<beansProjectDescription>
|
<beansProjectDescription>
|
||||||
<version>1</version>
|
<version>1</version>
|
||||||
<pluginVersion><![CDATA[2.3.0.200912170948-RELEASE]]></pluginVersion>
|
<pluginVersion><![CDATA[2.3.3.201004202100-CI-R3763-B716]]></pluginVersion>
|
||||||
<configSuffixes>
|
<configSuffixes>
|
||||||
<configSuffix><![CDATA[xml]]></configSuffix>
|
<configSuffix><![CDATA[xml]]></configSuffix>
|
||||||
</configSuffixes>
|
</configSuffixes>
|
||||||
|
|
@ -11,6 +11,7 @@
|
||||||
<config>src/test/java/org/springframework/context/annotation/configuration/SecondLevelSubConfig-context.xml</config>
|
<config>src/test/java/org/springframework/context/annotation/configuration/SecondLevelSubConfig-context.xml</config>
|
||||||
<config>src/test/java/org/springframework/context/annotation/configuration/ImportXmlWithAopNamespace-context.xml</config>
|
<config>src/test/java/org/springframework/context/annotation/configuration/ImportXmlWithAopNamespace-context.xml</config>
|
||||||
<config>src/test/java/org/springframework/context/annotation/Spr6602Tests-context.xml</config>
|
<config>src/test/java/org/springframework/context/annotation/Spr6602Tests-context.xml</config>
|
||||||
|
<config>src/test/java/org/springframework/beans/factory/FactoryBeanLookupTests-context.xml</config>
|
||||||
</configs>
|
</configs>
|
||||||
<configSets>
|
<configSets>
|
||||||
</configSets>
|
</configSets>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue