Polishing
This commit is contained in:
@@ -1567,6 +1567,7 @@ public class DefaultListableBeanFactoryTests {
|
|||||||
RootBeanDefinition bd1 = createConstructorDependencyBeanDefinition(99);
|
RootBeanDefinition bd1 = createConstructorDependencyBeanDefinition(99);
|
||||||
parent.registerBeanDefinition("bd1", bd1);
|
parent.registerBeanDefinition("bd1", bd1);
|
||||||
DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(parent);
|
DefaultListableBeanFactory lbf = new DefaultListableBeanFactory(parent);
|
||||||
|
|
||||||
ConstructorDependency bean = lbf.getBean(ConstructorDependency.class, 42);
|
ConstructorDependency bean = lbf.getBean(ConstructorDependency.class, 42);
|
||||||
assertThat(bean.beanName, equalTo("bd1"));
|
assertThat(bean.beanName, equalTo("bd1"));
|
||||||
assertThat(bean.spouseAge, equalTo(42));
|
assertThat(bean.spouseAge, equalTo(42));
|
||||||
@@ -1579,7 +1580,6 @@ public class DefaultListableBeanFactoryTests {
|
|||||||
RootBeanDefinition bd2 = new RootBeanDefinition(ConstructorDependency.class);
|
RootBeanDefinition bd2 = new RootBeanDefinition(ConstructorDependency.class);
|
||||||
bd2.setScope(RootBeanDefinition.SCOPE_PROTOTYPE);
|
bd2.setScope(RootBeanDefinition.SCOPE_PROTOTYPE);
|
||||||
bd2.getConstructorArgumentValues().addGenericArgumentValue("43");
|
bd2.getConstructorArgumentValues().addGenericArgumentValue("43");
|
||||||
|
|
||||||
lbf.registerBeanDefinition("bd1", bd1);
|
lbf.registerBeanDefinition("bd1", bd1);
|
||||||
lbf.registerBeanDefinition("bd2", bd2);
|
lbf.registerBeanDefinition("bd2", bd2);
|
||||||
|
|
||||||
@@ -1595,6 +1595,7 @@ public class DefaultListableBeanFactoryTests {
|
|||||||
bd2.setPrimary(true);
|
bd2.setPrimary(true);
|
||||||
lbf.registerBeanDefinition("bd1", bd1);
|
lbf.registerBeanDefinition("bd1", bd1);
|
||||||
lbf.registerBeanDefinition("bd2", bd2);
|
lbf.registerBeanDefinition("bd2", bd2);
|
||||||
|
|
||||||
ConstructorDependency bean = lbf.getBean(ConstructorDependency.class, 42);
|
ConstructorDependency bean = lbf.getBean(ConstructorDependency.class, 42);
|
||||||
assertThat(bean.beanName, equalTo("bd2"));
|
assertThat(bean.beanName, equalTo("bd2"));
|
||||||
assertThat(bean.spouseAge, equalTo(42));
|
assertThat(bean.spouseAge, equalTo(42));
|
||||||
@@ -1607,9 +1608,9 @@ public class DefaultListableBeanFactoryTests {
|
|||||||
RootBeanDefinition bd2 = createConstructorDependencyBeanDefinition(43);
|
RootBeanDefinition bd2 = createConstructorDependencyBeanDefinition(43);
|
||||||
bd1.setPrimary(true);
|
bd1.setPrimary(true);
|
||||||
bd2.setPrimary(true);
|
bd2.setPrimary(true);
|
||||||
|
|
||||||
lbf.registerBeanDefinition("bd1", bd1);
|
lbf.registerBeanDefinition("bd1", bd1);
|
||||||
lbf.registerBeanDefinition("bd2", bd2);
|
lbf.registerBeanDefinition("bd2", bd2);
|
||||||
|
|
||||||
thrown.expect(NoUniqueBeanDefinitionException.class);
|
thrown.expect(NoUniqueBeanDefinitionException.class);
|
||||||
thrown.expectMessage(containsString("more than one 'primary'"));
|
thrown.expectMessage(containsString("more than one 'primary'"));
|
||||||
lbf.getBean(ConstructorDependency.class, 42);
|
lbf.getBean(ConstructorDependency.class, 42);
|
||||||
@@ -1661,7 +1662,7 @@ public class DefaultListableBeanFactoryTests {
|
|||||||
private RootBeanDefinition createConstructorDependencyBeanDefinition(int age) {
|
private RootBeanDefinition createConstructorDependencyBeanDefinition(int age) {
|
||||||
RootBeanDefinition bd = new RootBeanDefinition(ConstructorDependency.class);
|
RootBeanDefinition bd = new RootBeanDefinition(ConstructorDependency.class);
|
||||||
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE);
|
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE);
|
||||||
bd.getConstructorArgumentValues().addGenericArgumentValue(String.valueOf(age));
|
bd.getConstructorArgumentValues().addGenericArgumentValue(age);
|
||||||
return bd;
|
return bd;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2383,7 +2384,7 @@ public class DefaultListableBeanFactoryTests {
|
|||||||
}
|
}
|
||||||
sw.stop();
|
sw.stop();
|
||||||
// System.out.println(sw.getTotalTimeMillis());
|
// System.out.println(sw.getTotalTimeMillis());
|
||||||
assertTrue("Prototype creation took too long: " + sw.getTotalTimeMillis(), sw.getTotalTimeMillis() < 3000);
|
assertTrue("Prototype creation took too long: " + sw.getTotalTimeMillis(), sw.getTotalTimeMillis() < 4000);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -26,6 +26,8 @@ import javax.inject.Inject;
|
|||||||
import javax.inject.Named;
|
import javax.inject.Named;
|
||||||
import javax.inject.Provider;
|
import javax.inject.Provider;
|
||||||
|
|
||||||
|
import org.junit.After;
|
||||||
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import org.springframework.beans.factory.BeanCreationException;
|
import org.springframework.beans.factory.BeanCreationException;
|
||||||
@@ -54,12 +56,29 @@ import static org.junit.Assert.*;
|
|||||||
*/
|
*/
|
||||||
public class InjectAnnotationBeanPostProcessorTests {
|
public class InjectAnnotationBeanPostProcessorTests {
|
||||||
|
|
||||||
@Test
|
private DefaultListableBeanFactory bf;
|
||||||
public void testIncompleteBeanDefinition() {
|
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
private AutowiredAnnotationBeanPostProcessor bpp;
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setup() {
|
||||||
|
bf = new DefaultListableBeanFactory();
|
||||||
|
bf.registerResolvableDependency(BeanFactory.class, bf);
|
||||||
|
bpp = new AutowiredAnnotationBeanPostProcessor();
|
||||||
bpp.setBeanFactory(bf);
|
bpp.setBeanFactory(bf);
|
||||||
bf.addBeanPostProcessor(bpp);
|
bf.addBeanPostProcessor(bpp);
|
||||||
|
bf.setAutowireCandidateResolver(new QualifierAnnotationAutowireCandidateResolver());
|
||||||
|
}
|
||||||
|
|
||||||
|
@After
|
||||||
|
public void close() {
|
||||||
|
bf.destroySingletons();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testIncompleteBeanDefinition() {
|
||||||
bf.registerBeanDefinition("testBean", new GenericBeanDefinition());
|
bf.registerBeanDefinition("testBean", new GenericBeanDefinition());
|
||||||
try {
|
try {
|
||||||
bf.getBean("testBean");
|
bf.getBean("testBean");
|
||||||
@@ -71,10 +90,6 @@ public class InjectAnnotationBeanPostProcessorTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testResourceInjection() {
|
public void testResourceInjection() {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
RootBeanDefinition bd = new RootBeanDefinition(ResourceInjectionBean.class);
|
RootBeanDefinition bd = new RootBeanDefinition(ResourceInjectionBean.class);
|
||||||
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE);
|
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE);
|
||||||
bf.registerBeanDefinition("annotatedBean", bd);
|
bf.registerBeanDefinition("annotatedBean", bd);
|
||||||
@@ -92,11 +107,6 @@ public class InjectAnnotationBeanPostProcessorTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testExtendedResourceInjection() {
|
public void testExtendedResourceInjection() {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
bf.registerResolvableDependency(BeanFactory.class, bf);
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
RootBeanDefinition bd = new RootBeanDefinition(TypedExtendedResourceInjectionBean.class);
|
RootBeanDefinition bd = new RootBeanDefinition(TypedExtendedResourceInjectionBean.class);
|
||||||
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE);
|
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE);
|
||||||
bf.registerBeanDefinition("annotatedBean", bd);
|
bf.registerBeanDefinition("annotatedBean", bd);
|
||||||
@@ -124,11 +134,6 @@ public class InjectAnnotationBeanPostProcessorTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testExtendedResourceInjectionWithOverriding() {
|
public void testExtendedResourceInjectionWithOverriding() {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
bf.registerResolvableDependency(BeanFactory.class, bf);
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
RootBeanDefinition annotatedBd = new RootBeanDefinition(TypedExtendedResourceInjectionBean.class);
|
RootBeanDefinition annotatedBd = new RootBeanDefinition(TypedExtendedResourceInjectionBean.class);
|
||||||
TestBean tb2 = new TestBean();
|
TestBean tb2 = new TestBean();
|
||||||
annotatedBd.getPropertyValues().add("testBean2", tb2);
|
annotatedBd.getPropertyValues().add("testBean2", tb2);
|
||||||
@@ -145,16 +150,10 @@ public class InjectAnnotationBeanPostProcessorTests {
|
|||||||
assertSame(tb, bean.getTestBean4());
|
assertSame(tb, bean.getTestBean4());
|
||||||
assertSame(ntb, bean.getNestedTestBean());
|
assertSame(ntb, bean.getNestedTestBean());
|
||||||
assertSame(bf, bean.getBeanFactory());
|
assertSame(bf, bean.getBeanFactory());
|
||||||
bf.destroySingletons();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testExtendedResourceInjectionWithAtRequired() {
|
public void testExtendedResourceInjectionWithAtRequired() {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
bf.registerResolvableDependency(BeanFactory.class, bf);
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
bf.addBeanPostProcessor(new RequiredAnnotationBeanPostProcessor());
|
bf.addBeanPostProcessor(new RequiredAnnotationBeanPostProcessor());
|
||||||
RootBeanDefinition bd = new RootBeanDefinition(TypedExtendedResourceInjectionBean.class);
|
RootBeanDefinition bd = new RootBeanDefinition(TypedExtendedResourceInjectionBean.class);
|
||||||
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE);
|
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE);
|
||||||
@@ -175,11 +174,6 @@ public class InjectAnnotationBeanPostProcessorTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testConstructorResourceInjection() {
|
public void testConstructorResourceInjection() {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
bf.registerResolvableDependency(BeanFactory.class, bf);
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
RootBeanDefinition bd = new RootBeanDefinition(ConstructorResourceInjectionBean.class);
|
RootBeanDefinition bd = new RootBeanDefinition(ConstructorResourceInjectionBean.class);
|
||||||
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE);
|
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE);
|
||||||
bf.registerBeanDefinition("annotatedBean", bd);
|
bf.registerBeanDefinition("annotatedBean", bd);
|
||||||
@@ -207,10 +201,6 @@ public class InjectAnnotationBeanPostProcessorTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testConstructorResourceInjectionWithMultipleCandidatesAsCollection() {
|
public void testConstructorResourceInjectionWithMultipleCandidatesAsCollection() {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
bf.registerBeanDefinition("annotatedBean",
|
bf.registerBeanDefinition("annotatedBean",
|
||||||
new RootBeanDefinition(ConstructorsCollectionResourceInjectionBean.class));
|
new RootBeanDefinition(ConstructorsCollectionResourceInjectionBean.class));
|
||||||
TestBean tb = new TestBean();
|
TestBean tb = new TestBean();
|
||||||
@@ -226,15 +216,10 @@ public class InjectAnnotationBeanPostProcessorTests {
|
|||||||
assertEquals(2, bean.getNestedTestBeans().size());
|
assertEquals(2, bean.getNestedTestBeans().size());
|
||||||
assertSame(ntb1, bean.getNestedTestBeans().get(0));
|
assertSame(ntb1, bean.getNestedTestBeans().get(0));
|
||||||
assertSame(ntb2, bean.getNestedTestBeans().get(1));
|
assertSame(ntb2, bean.getNestedTestBeans().get(1));
|
||||||
bf.destroySingletons();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testConstructorResourceInjectionWithMultipleCandidatesAndFallback() {
|
public void testConstructorResourceInjectionWithMultipleCandidatesAndFallback() {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ConstructorsResourceInjectionBean.class));
|
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ConstructorsResourceInjectionBean.class));
|
||||||
TestBean tb = new TestBean();
|
TestBean tb = new TestBean();
|
||||||
bf.registerSingleton("testBean", tb);
|
bf.registerSingleton("testBean", tb);
|
||||||
@@ -242,15 +227,10 @@ public class InjectAnnotationBeanPostProcessorTests {
|
|||||||
ConstructorsResourceInjectionBean bean = (ConstructorsResourceInjectionBean) bf.getBean("annotatedBean");
|
ConstructorsResourceInjectionBean bean = (ConstructorsResourceInjectionBean) bf.getBean("annotatedBean");
|
||||||
assertSame(tb, bean.getTestBean3());
|
assertSame(tb, bean.getTestBean3());
|
||||||
assertNull(bean.getTestBean4());
|
assertNull(bean.getTestBean4());
|
||||||
bf.destroySingletons();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testConstructorInjectionWithMap() {
|
public void testConstructorInjectionWithMap() {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
RootBeanDefinition bd = new RootBeanDefinition(MapConstructorInjectionBean.class);
|
RootBeanDefinition bd = new RootBeanDefinition(MapConstructorInjectionBean.class);
|
||||||
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE);
|
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE);
|
||||||
bf.registerBeanDefinition("annotatedBean", bd);
|
bf.registerBeanDefinition("annotatedBean", bd);
|
||||||
@@ -276,10 +256,6 @@ public class InjectAnnotationBeanPostProcessorTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFieldInjectionWithMap() {
|
public void testFieldInjectionWithMap() {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
RootBeanDefinition bd = new RootBeanDefinition(MapFieldInjectionBean.class);
|
RootBeanDefinition bd = new RootBeanDefinition(MapFieldInjectionBean.class);
|
||||||
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE);
|
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE);
|
||||||
bf.registerBeanDefinition("annotatedBean", bd);
|
bf.registerBeanDefinition("annotatedBean", bd);
|
||||||
@@ -305,10 +281,6 @@ public class InjectAnnotationBeanPostProcessorTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testMethodInjectionWithMap() {
|
public void testMethodInjectionWithMap() {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
RootBeanDefinition bd = new RootBeanDefinition(MapMethodInjectionBean.class);
|
RootBeanDefinition bd = new RootBeanDefinition(MapMethodInjectionBean.class);
|
||||||
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE);
|
bd.setScope(RootBeanDefinition.SCOPE_PROTOTYPE);
|
||||||
bf.registerBeanDefinition("annotatedBean", bd);
|
bf.registerBeanDefinition("annotatedBean", bd);
|
||||||
@@ -330,10 +302,6 @@ public class InjectAnnotationBeanPostProcessorTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testMethodInjectionWithMapAndMultipleMatches() {
|
public void testMethodInjectionWithMapAndMultipleMatches() {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(MapMethodInjectionBean.class));
|
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(MapMethodInjectionBean.class));
|
||||||
bf.registerBeanDefinition("testBean1", new RootBeanDefinition(TestBean.class));
|
bf.registerBeanDefinition("testBean1", new RootBeanDefinition(TestBean.class));
|
||||||
bf.registerBeanDefinition("testBean2", new RootBeanDefinition(TestBean.class));
|
bf.registerBeanDefinition("testBean2", new RootBeanDefinition(TestBean.class));
|
||||||
@@ -345,15 +313,10 @@ public class InjectAnnotationBeanPostProcessorTests {
|
|||||||
catch (BeanCreationException e) {
|
catch (BeanCreationException e) {
|
||||||
// expected
|
// expected
|
||||||
}
|
}
|
||||||
bf.destroySingletons();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testMethodInjectionWithMapAndMultipleMatchesButOnlyOneAutowireCandidate() {
|
public void testMethodInjectionWithMapAndMultipleMatchesButOnlyOneAutowireCandidate() {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(MapMethodInjectionBean.class));
|
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(MapMethodInjectionBean.class));
|
||||||
bf.registerBeanDefinition("testBean1", new RootBeanDefinition(TestBean.class));
|
bf.registerBeanDefinition("testBean1", new RootBeanDefinition(TestBean.class));
|
||||||
RootBeanDefinition rbd2 = new RootBeanDefinition(TestBean.class);
|
RootBeanDefinition rbd2 = new RootBeanDefinition(TestBean.class);
|
||||||
@@ -366,16 +329,10 @@ public class InjectAnnotationBeanPostProcessorTests {
|
|||||||
assertTrue(bean.getTestBeanMap().keySet().contains("testBean1"));
|
assertTrue(bean.getTestBeanMap().keySet().contains("testBean1"));
|
||||||
assertTrue(bean.getTestBeanMap().values().contains(tb));
|
assertTrue(bean.getTestBeanMap().values().contains(tb));
|
||||||
assertSame(tb, bean.getTestBean());
|
assertSame(tb, bean.getTestBean());
|
||||||
bf.destroySingletons();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testObjectFactoryInjection() {
|
public void testObjectFactoryInjection() {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
bf.setAutowireCandidateResolver(new QualifierAnnotationAutowireCandidateResolver());
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ObjectFactoryQualifierFieldInjectionBean.class));
|
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ObjectFactoryQualifierFieldInjectionBean.class));
|
||||||
RootBeanDefinition bd = new RootBeanDefinition(TestBean.class);
|
RootBeanDefinition bd = new RootBeanDefinition(TestBean.class);
|
||||||
bd.addQualifier(new AutowireCandidateQualifier(Qualifier.class, "testBean"));
|
bd.addQualifier(new AutowireCandidateQualifier(Qualifier.class, "testBean"));
|
||||||
@@ -384,15 +341,10 @@ public class InjectAnnotationBeanPostProcessorTests {
|
|||||||
|
|
||||||
ObjectFactoryQualifierFieldInjectionBean bean = (ObjectFactoryQualifierFieldInjectionBean) bf.getBean("annotatedBean");
|
ObjectFactoryQualifierFieldInjectionBean bean = (ObjectFactoryQualifierFieldInjectionBean) bf.getBean("annotatedBean");
|
||||||
assertSame(bf.getBean("testBean"), bean.getTestBean());
|
assertSame(bf.getBean("testBean"), bean.getTestBean());
|
||||||
bf.destroySingletons();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testObjectFactoryQualifierInjection() {
|
public void testObjectFactoryQualifierInjection() {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ObjectFactoryQualifierFieldInjectionBean.class));
|
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ObjectFactoryQualifierFieldInjectionBean.class));
|
||||||
RootBeanDefinition bd = new RootBeanDefinition(TestBean.class);
|
RootBeanDefinition bd = new RootBeanDefinition(TestBean.class);
|
||||||
bd.addQualifier(new AutowireCandidateQualifier(Qualifier.class, "testBean"));
|
bd.addQualifier(new AutowireCandidateQualifier(Qualifier.class, "testBean"));
|
||||||
@@ -400,16 +352,10 @@ public class InjectAnnotationBeanPostProcessorTests {
|
|||||||
|
|
||||||
ObjectFactoryQualifierFieldInjectionBean bean = (ObjectFactoryQualifierFieldInjectionBean) bf.getBean("annotatedBean");
|
ObjectFactoryQualifierFieldInjectionBean bean = (ObjectFactoryQualifierFieldInjectionBean) bf.getBean("annotatedBean");
|
||||||
assertSame(bf.getBean("testBean"), bean.getTestBean());
|
assertSame(bf.getBean("testBean"), bean.getTestBean());
|
||||||
bf.destroySingletons();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testObjectFactoryFieldInjectionIntoPrototypeBean() {
|
public void testObjectFactoryFieldInjectionIntoPrototypeBean() {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
bf.setAutowireCandidateResolver(new QualifierAnnotationAutowireCandidateResolver());
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
RootBeanDefinition annotatedBeanDefinition = new RootBeanDefinition(ObjectFactoryQualifierFieldInjectionBean.class);
|
RootBeanDefinition annotatedBeanDefinition = new RootBeanDefinition(ObjectFactoryQualifierFieldInjectionBean.class);
|
||||||
annotatedBeanDefinition.setScope(BeanDefinition.SCOPE_PROTOTYPE);
|
annotatedBeanDefinition.setScope(BeanDefinition.SCOPE_PROTOTYPE);
|
||||||
bf.registerBeanDefinition("annotatedBean", annotatedBeanDefinition);
|
bf.registerBeanDefinition("annotatedBean", annotatedBeanDefinition);
|
||||||
@@ -427,11 +373,6 @@ public class InjectAnnotationBeanPostProcessorTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testObjectFactoryMethodInjectionIntoPrototypeBean() {
|
public void testObjectFactoryMethodInjectionIntoPrototypeBean() {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
bf.setAutowireCandidateResolver(new QualifierAnnotationAutowireCandidateResolver());
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
RootBeanDefinition annotatedBeanDefinition = new RootBeanDefinition(ObjectFactoryQualifierMethodInjectionBean.class);
|
RootBeanDefinition annotatedBeanDefinition = new RootBeanDefinition(ObjectFactoryQualifierMethodInjectionBean.class);
|
||||||
annotatedBeanDefinition.setScope(BeanDefinition.SCOPE_PROTOTYPE);
|
annotatedBeanDefinition.setScope(BeanDefinition.SCOPE_PROTOTYPE);
|
||||||
bf.registerBeanDefinition("annotatedBean", annotatedBeanDefinition);
|
bf.registerBeanDefinition("annotatedBean", annotatedBeanDefinition);
|
||||||
@@ -449,10 +390,6 @@ public class InjectAnnotationBeanPostProcessorTests {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testObjectFactoryWithBeanField() throws Exception {
|
public void testObjectFactoryWithBeanField() throws Exception {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ObjectFactoryFieldInjectionBean.class));
|
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ObjectFactoryFieldInjectionBean.class));
|
||||||
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
|
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
|
||||||
bf.setSerializationId("test");
|
bf.setSerializationId("test");
|
||||||
@@ -461,15 +398,10 @@ public class InjectAnnotationBeanPostProcessorTests {
|
|||||||
assertSame(bf.getBean("testBean"), bean.getTestBean());
|
assertSame(bf.getBean("testBean"), bean.getTestBean());
|
||||||
bean = (ObjectFactoryFieldInjectionBean) SerializationTestUtils.serializeAndDeserialize(bean);
|
bean = (ObjectFactoryFieldInjectionBean) SerializationTestUtils.serializeAndDeserialize(bean);
|
||||||
assertSame(bf.getBean("testBean"), bean.getTestBean());
|
assertSame(bf.getBean("testBean"), bean.getTestBean());
|
||||||
bf.destroySingletons();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testObjectFactoryWithBeanMethod() throws Exception {
|
public void testObjectFactoryWithBeanMethod() throws Exception {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ObjectFactoryMethodInjectionBean.class));
|
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ObjectFactoryMethodInjectionBean.class));
|
||||||
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
|
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
|
||||||
bf.setSerializationId("test");
|
bf.setSerializationId("test");
|
||||||
@@ -478,15 +410,10 @@ public class InjectAnnotationBeanPostProcessorTests {
|
|||||||
assertSame(bf.getBean("testBean"), bean.getTestBean());
|
assertSame(bf.getBean("testBean"), bean.getTestBean());
|
||||||
bean = (ObjectFactoryMethodInjectionBean) SerializationTestUtils.serializeAndDeserialize(bean);
|
bean = (ObjectFactoryMethodInjectionBean) SerializationTestUtils.serializeAndDeserialize(bean);
|
||||||
assertSame(bf.getBean("testBean"), bean.getTestBean());
|
assertSame(bf.getBean("testBean"), bean.getTestBean());
|
||||||
bf.destroySingletons();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testObjectFactoryWithTypedListField() throws Exception {
|
public void testObjectFactoryWithTypedListField() throws Exception {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ObjectFactoryListFieldInjectionBean.class));
|
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ObjectFactoryListFieldInjectionBean.class));
|
||||||
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
|
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
|
||||||
bf.setSerializationId("test");
|
bf.setSerializationId("test");
|
||||||
@@ -495,15 +422,10 @@ public class InjectAnnotationBeanPostProcessorTests {
|
|||||||
assertSame(bf.getBean("testBean"), bean.getTestBean());
|
assertSame(bf.getBean("testBean"), bean.getTestBean());
|
||||||
bean = (ObjectFactoryListFieldInjectionBean) SerializationTestUtils.serializeAndDeserialize(bean);
|
bean = (ObjectFactoryListFieldInjectionBean) SerializationTestUtils.serializeAndDeserialize(bean);
|
||||||
assertSame(bf.getBean("testBean"), bean.getTestBean());
|
assertSame(bf.getBean("testBean"), bean.getTestBean());
|
||||||
bf.destroySingletons();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testObjectFactoryWithTypedListMethod() throws Exception {
|
public void testObjectFactoryWithTypedListMethod() throws Exception {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ObjectFactoryListMethodInjectionBean.class));
|
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ObjectFactoryListMethodInjectionBean.class));
|
||||||
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
|
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
|
||||||
bf.setSerializationId("test");
|
bf.setSerializationId("test");
|
||||||
@@ -512,15 +434,10 @@ public class InjectAnnotationBeanPostProcessorTests {
|
|||||||
assertSame(bf.getBean("testBean"), bean.getTestBean());
|
assertSame(bf.getBean("testBean"), bean.getTestBean());
|
||||||
bean = (ObjectFactoryListMethodInjectionBean) SerializationTestUtils.serializeAndDeserialize(bean);
|
bean = (ObjectFactoryListMethodInjectionBean) SerializationTestUtils.serializeAndDeserialize(bean);
|
||||||
assertSame(bf.getBean("testBean"), bean.getTestBean());
|
assertSame(bf.getBean("testBean"), bean.getTestBean());
|
||||||
bf.destroySingletons();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testObjectFactoryWithTypedMapField() throws Exception {
|
public void testObjectFactoryWithTypedMapField() throws Exception {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ObjectFactoryMapFieldInjectionBean.class));
|
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ObjectFactoryMapFieldInjectionBean.class));
|
||||||
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
|
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
|
||||||
bf.setSerializationId("test");
|
bf.setSerializationId("test");
|
||||||
@@ -529,15 +446,10 @@ public class InjectAnnotationBeanPostProcessorTests {
|
|||||||
assertSame(bf.getBean("testBean"), bean.getTestBean());
|
assertSame(bf.getBean("testBean"), bean.getTestBean());
|
||||||
bean = (ObjectFactoryMapFieldInjectionBean) SerializationTestUtils.serializeAndDeserialize(bean);
|
bean = (ObjectFactoryMapFieldInjectionBean) SerializationTestUtils.serializeAndDeserialize(bean);
|
||||||
assertSame(bf.getBean("testBean"), bean.getTestBean());
|
assertSame(bf.getBean("testBean"), bean.getTestBean());
|
||||||
bf.destroySingletons();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testObjectFactoryWithTypedMapMethod() throws Exception {
|
public void testObjectFactoryWithTypedMapMethod() throws Exception {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ObjectFactoryMapMethodInjectionBean.class));
|
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ObjectFactoryMapMethodInjectionBean.class));
|
||||||
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
|
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
|
||||||
bf.setSerializationId("test");
|
bf.setSerializationId("test");
|
||||||
@@ -546,7 +458,6 @@ public class InjectAnnotationBeanPostProcessorTests {
|
|||||||
assertSame(bf.getBean("testBean"), bean.getTestBean());
|
assertSame(bf.getBean("testBean"), bean.getTestBean());
|
||||||
bean = (ObjectFactoryMapMethodInjectionBean) SerializationTestUtils.serializeAndDeserialize(bean);
|
bean = (ObjectFactoryMapMethodInjectionBean) SerializationTestUtils.serializeAndDeserialize(bean);
|
||||||
assertSame(bf.getBean("testBean"), bean.getTestBean());
|
assertSame(bf.getBean("testBean"), bean.getTestBean());
|
||||||
bf.destroySingletons();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -556,10 +467,6 @@ public class InjectAnnotationBeanPostProcessorTests {
|
|||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void testBeanAutowiredWithFactoryBean() {
|
public void testBeanAutowiredWithFactoryBean() {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
bf.registerBeanDefinition("factoryBeanDependentBean", new RootBeanDefinition(FactoryBeanDependentBean.class));
|
bf.registerBeanDefinition("factoryBeanDependentBean", new RootBeanDefinition(FactoryBeanDependentBean.class));
|
||||||
bf.registerSingleton("stringFactoryBean", new StringFactoryBean());
|
bf.registerSingleton("stringFactoryBean", new StringFactoryBean());
|
||||||
|
|
||||||
@@ -570,236 +477,152 @@ public class InjectAnnotationBeanPostProcessorTests {
|
|||||||
assertNotNull("The factoryBeanDependentBean should have been registered.", bean);
|
assertNotNull("The factoryBeanDependentBean should have been registered.", bean);
|
||||||
assertEquals("The FactoryBeanDependentBean should have been autowired 'by type' with the StringFactoryBean.",
|
assertEquals("The FactoryBeanDependentBean should have been autowired 'by type' with the StringFactoryBean.",
|
||||||
factoryBean, bean.getFactoryBean());
|
factoryBean, bean.getFactoryBean());
|
||||||
|
|
||||||
bf.destroySingletons();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testNullableFieldInjectionWithBeanAvailable() {
|
public void testNullableFieldInjectionWithBeanAvailable() {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(NullableFieldInjectionBean.class));
|
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(NullableFieldInjectionBean.class));
|
||||||
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
|
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
|
||||||
|
|
||||||
NullableFieldInjectionBean bean = (NullableFieldInjectionBean) bf.getBean("annotatedBean");
|
NullableFieldInjectionBean bean = (NullableFieldInjectionBean) bf.getBean("annotatedBean");
|
||||||
assertSame(bf.getBean("testBean"), bean.getTestBean());
|
assertSame(bf.getBean("testBean"), bean.getTestBean());
|
||||||
bf.destroySingletons();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testNullableFieldInjectionWithBeanNotAvailable() {
|
public void testNullableFieldInjectionWithBeanNotAvailable() {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(NullableFieldInjectionBean.class));
|
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(NullableFieldInjectionBean.class));
|
||||||
|
|
||||||
NullableFieldInjectionBean bean = (NullableFieldInjectionBean) bf.getBean("annotatedBean");
|
NullableFieldInjectionBean bean = (NullableFieldInjectionBean) bf.getBean("annotatedBean");
|
||||||
assertNull(bean.getTestBean());
|
assertNull(bean.getTestBean());
|
||||||
bf.destroySingletons();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testNullableMethodInjectionWithBeanAvailable() {
|
public void testNullableMethodInjectionWithBeanAvailable() {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(NullableMethodInjectionBean.class));
|
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(NullableMethodInjectionBean.class));
|
||||||
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
|
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
|
||||||
|
|
||||||
NullableMethodInjectionBean bean = (NullableMethodInjectionBean) bf.getBean("annotatedBean");
|
NullableMethodInjectionBean bean = (NullableMethodInjectionBean) bf.getBean("annotatedBean");
|
||||||
assertSame(bf.getBean("testBean"), bean.getTestBean());
|
assertSame(bf.getBean("testBean"), bean.getTestBean());
|
||||||
bf.destroySingletons();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testNullableMethodInjectionWithBeanNotAvailable() {
|
public void testNullableMethodInjectionWithBeanNotAvailable() {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(NullableMethodInjectionBean.class));
|
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(NullableMethodInjectionBean.class));
|
||||||
|
|
||||||
NullableMethodInjectionBean bean = (NullableMethodInjectionBean) bf.getBean("annotatedBean");
|
NullableMethodInjectionBean bean = (NullableMethodInjectionBean) bf.getBean("annotatedBean");
|
||||||
assertNull(bean.getTestBean());
|
assertNull(bean.getTestBean());
|
||||||
bf.destroySingletons();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testOptionalFieldInjectionWithBeanAvailable() {
|
public void testOptionalFieldInjectionWithBeanAvailable() {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(OptionalFieldInjectionBean.class));
|
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(OptionalFieldInjectionBean.class));
|
||||||
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
|
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
|
||||||
|
|
||||||
OptionalFieldInjectionBean bean = (OptionalFieldInjectionBean) bf.getBean("annotatedBean");
|
OptionalFieldInjectionBean bean = (OptionalFieldInjectionBean) bf.getBean("annotatedBean");
|
||||||
assertTrue(bean.getTestBean().isPresent());
|
assertTrue(bean.getTestBean().isPresent());
|
||||||
assertSame(bf.getBean("testBean"), bean.getTestBean().get());
|
assertSame(bf.getBean("testBean"), bean.getTestBean().get());
|
||||||
bf.destroySingletons();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testOptionalFieldInjectionWithBeanNotAvailable() {
|
public void testOptionalFieldInjectionWithBeanNotAvailable() {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(OptionalFieldInjectionBean.class));
|
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(OptionalFieldInjectionBean.class));
|
||||||
|
|
||||||
OptionalFieldInjectionBean bean = (OptionalFieldInjectionBean) bf.getBean("annotatedBean");
|
OptionalFieldInjectionBean bean = (OptionalFieldInjectionBean) bf.getBean("annotatedBean");
|
||||||
assertFalse(bean.getTestBean().isPresent());
|
assertFalse(bean.getTestBean().isPresent());
|
||||||
bf.destroySingletons();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testOptionalMethodInjectionWithBeanAvailable() {
|
public void testOptionalMethodInjectionWithBeanAvailable() {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(OptionalMethodInjectionBean.class));
|
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(OptionalMethodInjectionBean.class));
|
||||||
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
|
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
|
||||||
|
|
||||||
OptionalMethodInjectionBean bean = (OptionalMethodInjectionBean) bf.getBean("annotatedBean");
|
OptionalMethodInjectionBean bean = (OptionalMethodInjectionBean) bf.getBean("annotatedBean");
|
||||||
assertTrue(bean.getTestBean().isPresent());
|
assertTrue(bean.getTestBean().isPresent());
|
||||||
assertSame(bf.getBean("testBean"), bean.getTestBean().get());
|
assertSame(bf.getBean("testBean"), bean.getTestBean().get());
|
||||||
bf.destroySingletons();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testOptionalMethodInjectionWithBeanNotAvailable() {
|
public void testOptionalMethodInjectionWithBeanNotAvailable() {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(OptionalMethodInjectionBean.class));
|
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(OptionalMethodInjectionBean.class));
|
||||||
|
|
||||||
OptionalMethodInjectionBean bean = (OptionalMethodInjectionBean) bf.getBean("annotatedBean");
|
OptionalMethodInjectionBean bean = (OptionalMethodInjectionBean) bf.getBean("annotatedBean");
|
||||||
assertFalse(bean.getTestBean().isPresent());
|
assertFalse(bean.getTestBean().isPresent());
|
||||||
bf.destroySingletons();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testOptionalListFieldInjectionWithBeanAvailable() {
|
public void testOptionalListFieldInjectionWithBeanAvailable() {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(OptionalListFieldInjectionBean.class));
|
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(OptionalListFieldInjectionBean.class));
|
||||||
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
|
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
|
||||||
|
|
||||||
OptionalListFieldInjectionBean bean = (OptionalListFieldInjectionBean) bf.getBean("annotatedBean");
|
OptionalListFieldInjectionBean bean = (OptionalListFieldInjectionBean) bf.getBean("annotatedBean");
|
||||||
assertTrue(bean.getTestBean().isPresent());
|
assertTrue(bean.getTestBean().isPresent());
|
||||||
assertSame(bf.getBean("testBean"), bean.getTestBean().get().get(0));
|
assertSame(bf.getBean("testBean"), bean.getTestBean().get().get(0));
|
||||||
bf.destroySingletons();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testOptionalListFieldInjectionWithBeanNotAvailable() {
|
public void testOptionalListFieldInjectionWithBeanNotAvailable() {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(OptionalListFieldInjectionBean.class));
|
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(OptionalListFieldInjectionBean.class));
|
||||||
|
|
||||||
OptionalListFieldInjectionBean bean = (OptionalListFieldInjectionBean) bf.getBean("annotatedBean");
|
OptionalListFieldInjectionBean bean = (OptionalListFieldInjectionBean) bf.getBean("annotatedBean");
|
||||||
assertFalse(bean.getTestBean().isPresent());
|
assertFalse(bean.getTestBean().isPresent());
|
||||||
bf.destroySingletons();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testOptionalListMethodInjectionWithBeanAvailable() {
|
public void testOptionalListMethodInjectionWithBeanAvailable() {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(OptionalListMethodInjectionBean.class));
|
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(OptionalListMethodInjectionBean.class));
|
||||||
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
|
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
|
||||||
|
|
||||||
OptionalListMethodInjectionBean bean = (OptionalListMethodInjectionBean) bf.getBean("annotatedBean");
|
OptionalListMethodInjectionBean bean = (OptionalListMethodInjectionBean) bf.getBean("annotatedBean");
|
||||||
assertTrue(bean.getTestBean().isPresent());
|
assertTrue(bean.getTestBean().isPresent());
|
||||||
assertSame(bf.getBean("testBean"), bean.getTestBean().get().get(0));
|
assertSame(bf.getBean("testBean"), bean.getTestBean().get().get(0));
|
||||||
bf.destroySingletons();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testOptionalListMethodInjectionWithBeanNotAvailable() {
|
public void testOptionalListMethodInjectionWithBeanNotAvailable() {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(OptionalListMethodInjectionBean.class));
|
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(OptionalListMethodInjectionBean.class));
|
||||||
|
|
||||||
OptionalListMethodInjectionBean bean = (OptionalListMethodInjectionBean) bf.getBean("annotatedBean");
|
OptionalListMethodInjectionBean bean = (OptionalListMethodInjectionBean) bf.getBean("annotatedBean");
|
||||||
assertFalse(bean.getTestBean().isPresent());
|
assertFalse(bean.getTestBean().isPresent());
|
||||||
bf.destroySingletons();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testProviderOfOptionalFieldInjectionWithBeanAvailable() {
|
public void testProviderOfOptionalFieldInjectionWithBeanAvailable() {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ProviderOfOptionalFieldInjectionBean.class));
|
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ProviderOfOptionalFieldInjectionBean.class));
|
||||||
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
|
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
|
||||||
|
|
||||||
ProviderOfOptionalFieldInjectionBean bean = (ProviderOfOptionalFieldInjectionBean) bf.getBean("annotatedBean");
|
ProviderOfOptionalFieldInjectionBean bean = (ProviderOfOptionalFieldInjectionBean) bf.getBean("annotatedBean");
|
||||||
assertTrue(bean.getTestBean().isPresent());
|
assertTrue(bean.getTestBean().isPresent());
|
||||||
assertSame(bf.getBean("testBean"), bean.getTestBean().get());
|
assertSame(bf.getBean("testBean"), bean.getTestBean().get());
|
||||||
bf.destroySingletons();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testProviderOfOptionalFieldInjectionWithBeanNotAvailable() {
|
public void testProviderOfOptionalFieldInjectionWithBeanNotAvailable() {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ProviderOfOptionalFieldInjectionBean.class));
|
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ProviderOfOptionalFieldInjectionBean.class));
|
||||||
|
|
||||||
ProviderOfOptionalFieldInjectionBean bean = (ProviderOfOptionalFieldInjectionBean) bf.getBean("annotatedBean");
|
ProviderOfOptionalFieldInjectionBean bean = (ProviderOfOptionalFieldInjectionBean) bf.getBean("annotatedBean");
|
||||||
assertFalse(bean.getTestBean().isPresent());
|
assertFalse(bean.getTestBean().isPresent());
|
||||||
bf.destroySingletons();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testProviderOfOptionalMethodInjectionWithBeanAvailable() {
|
public void testProviderOfOptionalMethodInjectionWithBeanAvailable() {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ProviderOfOptionalMethodInjectionBean.class));
|
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ProviderOfOptionalMethodInjectionBean.class));
|
||||||
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
|
bf.registerBeanDefinition("testBean", new RootBeanDefinition(TestBean.class));
|
||||||
|
|
||||||
ProviderOfOptionalMethodInjectionBean bean = (ProviderOfOptionalMethodInjectionBean) bf.getBean("annotatedBean");
|
ProviderOfOptionalMethodInjectionBean bean = (ProviderOfOptionalMethodInjectionBean) bf.getBean("annotatedBean");
|
||||||
assertTrue(bean.getTestBean().isPresent());
|
assertTrue(bean.getTestBean().isPresent());
|
||||||
assertSame(bf.getBean("testBean"), bean.getTestBean().get());
|
assertSame(bf.getBean("testBean"), bean.getTestBean().get());
|
||||||
bf.destroySingletons();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testProviderOfOptionalMethodInjectionWithBeanNotAvailable() {
|
public void testProviderOfOptionalMethodInjectionWithBeanNotAvailable() {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
|
|
||||||
bpp.setBeanFactory(bf);
|
|
||||||
bf.addBeanPostProcessor(bpp);
|
|
||||||
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ProviderOfOptionalMethodInjectionBean.class));
|
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(ProviderOfOptionalMethodInjectionBean.class));
|
||||||
|
|
||||||
ProviderOfOptionalMethodInjectionBean bean = (ProviderOfOptionalMethodInjectionBean) bf.getBean("annotatedBean");
|
ProviderOfOptionalMethodInjectionBean bean = (ProviderOfOptionalMethodInjectionBean) bf.getBean("annotatedBean");
|
||||||
assertFalse(bean.getTestBean().isPresent());
|
assertFalse(bean.getTestBean().isPresent());
|
||||||
bf.destroySingletons();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testAnnotatedDefaultConstructor() {
|
public void testAnnotatedDefaultConstructor() {
|
||||||
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
|
|
||||||
bf.addBeanPostProcessor(new AutowiredAnnotationBeanPostProcessor());
|
|
||||||
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(AnnotatedDefaultConstructorBean.class));
|
bf.registerBeanDefinition("annotatedBean", new RootBeanDefinition(AnnotatedDefaultConstructorBean.class));
|
||||||
|
|
||||||
assertNotNull(bf.getBean("annotatedBean"));
|
assertNotNull(bf.getBean("annotatedBean"));
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import java.net.MalformedURLException;
|
|||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
import okhttp3.Cache;
|
||||||
import okhttp3.OkHttpClient;
|
import okhttp3.OkHttpClient;
|
||||||
import okhttp3.Request;
|
import okhttp3.Request;
|
||||||
import okhttp3.RequestBody;
|
import okhttp3.RequestBody;
|
||||||
@@ -118,8 +119,9 @@ public class OkHttp3ClientHttpRequestFactory
|
|||||||
public void destroy() throws IOException {
|
public void destroy() throws IOException {
|
||||||
if (this.defaultClient) {
|
if (this.defaultClient) {
|
||||||
// Clean up the client if we created it in the constructor
|
// Clean up the client if we created it in the constructor
|
||||||
if (this.client.cache() != null) {
|
Cache cache = this.client.cache();
|
||||||
this.client.cache().close();
|
if (cache != null) {
|
||||||
|
cache.close();
|
||||||
}
|
}
|
||||||
this.client.dispatcher().executorService().shutdown();
|
this.client.dispatcher().executorService().shutdown();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user