/** * Registers Madvoc component with given name. */ public <T> void registerComponent(final String name, final Class<T> component, final Consumer<T> consumer) { log.debug(() -> "Madvoc WebApp component: [" + name + "] --> " + component.getName()); madpc.removeBean(name); madpc.registerPetiteBean(component, name, null, null, false, consumer); }
/** * Adds object instance to the container as singleton bean. */ public void addBean(final String name, final Object bean, WiringMode wiringMode) { wiringMode = petiteConfig.resolveWiringMode(wiringMode); registerPetiteBean(bean.getClass(), name, SingletonScope.class, wiringMode, false, null); BeanDefinition def = lookupExistingBeanDefinition(name); registerBeanAndWireAndInjectParamsAndInvokeInitMethods(new BeanData(this, def, bean)); }
@Test void testWireMode_strict() { PetiteContainer pc = new PetiteContainer(); final WiringMode wiringMode = WiringMode.STRICT; pc.registerPetiteBean(Green.class, null, null, wiringMode, false, null); pc.registerPetiteBean(Blue.class, null, null, wiringMode, false, null); pc.registerPetiteBean(Yellow.class, null, null, wiringMode, false, null); assertThrows(PetiteException.class, () -> pc.getBean("green")); }
@BeforeEach void setupPetiteContainer() { PetiteConfig petiteConfig = PetiteHelper.createPetiteConfig(); ProxyProxetta proxyProxetta = PetiteHelper.createProxyProxetta(); petiteContainer = new PetiteProxettaContainer(proxyProxetta, petiteConfig); //AutomagicPetiteConfigurator petiteConfigurator = new AutomagicPetiteConfigurator(); //petiteConfigurator.configure(petiteContainer); petiteContainer.registerPetiteBean(Bean1.class); petiteContainer.registerPetiteBean(Bean2.class); }
@Test void test244() { PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(BeanOne.class, null, null, null, false, null); pc.registerPetiteBean(BeanTwo.class, null, null, null, false, null); BeanOne petiteBean = pc.getBean(BeanOne.class); assertTrue(petiteBean.ctor != petiteBean.setter); }
@Test void testPrivateInjection() { PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(Loo.class); pc.registerPetiteBean(YujinpingBaseService.class); pc.registerPetiteBean(YujinpingUserService.class); YujinpingUserService service = pc.getBean(YujinpingUserService.class); assertTrue(service.check2()); assertTrue(service.check()); } }
@Test void testConsumer() { PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(SomeService.class, null, null, null, false, null); pc.registerPetiteBean(PojoBean.class, "pojo", null, null, false, pb -> pb.count = 7); pc.registerPetiteCtorInjectionPoint("pojo", null, null); PojoBean pb = pc.getBean("pojo"); assertEquals(7, pb.count); } }
@Test void testInstanceStaticMethodProvider() { PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(Solar3.class, null, null, null, false, null); // still needs to be a bean pc.registerPetiteBean(Sun.class, null, null, null, false, null); Sun sun = pc.getBean(Sun.class); assertEquals("Sun{Earth}", sun.toString()); }
@Test void testSingletonDestroyMethods() { PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(Foo.class, null, null, null, false, null); pc.registerPetiteBean(Zoo.class, null, null, null, false, null); pc.registerPetiteBean(Boo.class, null, null, null, false, null); Boo boo = (Boo) pc.getBean("boo"); assertEquals(0, boo.getCount2()); pc.shutdown(); assertEquals(2, boo.getCount2()); }
@Test void testCollection() { final PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(Superman.class, null, null, null, false, null); pc.registerPetiteBean(Metropolis.class, null, null, null, false, null); Metropolis metropolis = pc.getBean(Metropolis.class); assertNotNull(metropolis.superHeros); assertFalse(metropolis.superHeros.isEmpty()); assertEquals(1, metropolis.superHeros.size()); String str = metropolis.whoIsThere(); assertTrue(str.contains("Superman")); }
@Test void testOneHero() { final PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(Batman.class, null, null, null, false, null); pc.registerPetiteBean(GothamCity.class, null, null, null, false, null); GothamCity gothamCity = pc.getBean(GothamCity.class); assertNotNull(gothamCity.superHeros); assertFalse(gothamCity.superHeros.isEmpty()); assertEquals(1, gothamCity.superHeros.size()); String str = gothamCity.whoIsThere(); assertEquals("Batman", str); }
@Test void testInstanceMethodProviderManualRegistration() { PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(Solar2.class, null, null, null, false, null); pc.registerPetiteBean(Sun2.class, null, null, null, false, null); pc.registerPetiteProvider("planet", "solar2", "planetProvider", ClassUtil.EMPTY_CLASS_ARRAY); pc.registerPetitePropertyInjectionPoint("sun2", "planet", null); Sun2 sun = pc.getBean(Sun2.class); assertEquals("Sun{Earth}", sun.toString()); }
@Test void testShutdown() { PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(SomeService.class, null, null, null, false, null); pc.registerPetiteBean(PojoBean.class, "pojo", null, null, false, null); assertEquals(2, pc.beansCount()); pc.shutdown(); assertEquals(0, pc.beansCount()); } }
@Test void testSingleImplementation() { final PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(BizUser.class, null, null, null, false, null); pc.registerPetiteBean(OneBiz.class, null, null, null, false, null); assertEquals(2, pc.beansCount()); final BizUser bizUser = pc.getBean(BizUser.class); assertNotNull(bizUser); assertNotNull(bizUser.biz); assertTrue(bizUser.biz instanceof OneBiz); } }
@Test void testProviderLookup() { PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(Solar3.class, null, null, null, false, null); Planet earth = pc.getBean("planet"); assertEquals("Earth", earth.toString()); }
@Test void testGet() { PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(PojoBean2.class, null, null, null, false, null); PojoBean2 pojo2 = pc.getBean("pojoBean2"); pojo2.setVal1("value"); pojo2.setVal2(Integer.valueOf(173)); pc.setBeanProperty("pojoBean2.val1", "value"); pc.setBeanProperty("pojoBean2.val2", "173"); assertEquals("value", pc.getBeanProperty("pojoBean2.val1")); assertEquals(Integer.valueOf(173), pc.getBeanProperty("pojoBean2.val2")); }
@Test void testSet() { PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(PojoBean2.class, null, null, null, false, null); pc.setBeanProperty("pojoBean2.val1", "value"); pc.setBeanProperty("pojoBean2.val2", "173"); PojoBean2 pojo2 = pc.getBean("pojoBean2"); assertEquals("value", pojo2.getVal1()); assertEquals(173, pojo2.getVal2().intValue()); }
@Test void testSimpleParams() { PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(Foo.class, null, null, null, false, null); pc.defineParameter("foo.name", "FOONAME"); Foo foo = pc.getBean("foo"); assertNotNull(foo); assertEquals("FOONAME", foo.getName()); }
@Test void testEmptyParam() { final PetiteContainer pc = new PetiteContainer(); pc.registerPetiteBean(Val.class, null, null, null, false, null); pc.config().setImplicitParamInjection(false); pc.defineParameter("someValue", "173"); pc.defineParameter("justValue", "aaa"); Val val = pc.getBean("val"); assertNotNull(val); assertEquals("aaa", val.getJustValue()); }
@Test void testRefParamsNoResolve() { PetiteContainer pc = new PetiteContainer(); pc.config().setResolveReferenceParameters(false); pc.registerPetiteBean(Foo.class, null, null, null, false, null); pc.defineParameter("foo.name", "${name}"); pc.defineParameter("name", "${name2}"); pc.defineParameter("name2", "FOONAME"); Foo foo = pc.getBean("foo"); assertNotNull(foo); assertEquals("${name}", foo.getName()); }