bootstrap();
// ???? BeanContainer<Bean1Type> container1 = (BeanContainer<Bean1Type>) getBean("BeanContainer1Type");
getBean("BeanContainer1Type");
BeanPool<Bean1Type> pool1 = (BeanPool<Bean1Type>) getBean("Bean1TypePool");
BeanContainer<Bean2Type> container2 = (BeanContainer<Bean2Type>) getBean("BeanContainer2Type");
Bean2Type bean21 = container2.getBean();
getLog().debug("bean21: "+bean21);
Bean1Type bean11 = bean21.getBean1();
assertEquals(0, pool1.size());
getLog().debug("bean11: "+bean11);
assertNotNull(bean11);
// Create another Bean2Type instance
Bean2Type bean22 = container2.getBean();
getLog().debug("bean22: "+bean22);
assertTrue(bean22 != bean21);
// The injected bean should not be the same as injected into bean21
Bean1Type bean12 = bean22.getBean1();
getLog().debug("bean12: "+bean12);
assertNotNull(bean12);
assertTrue(bean12 != bean11);
// Create another bean 2 type, should fail
Bean2Type bean23 = container2.getBean();
getLog().debug("bean23: "+bean23);
Bean1Type bean13Injected = bean23.getBean1();
getLog().debug("bean13Injected: "+bean13Injected);
assertNotNull(bean13Injected);
deployer.shutdown();
}