@Test public void testNestedProperties() { AbstractConfiguration override = new BaseConfiguration(); override.setProperty("models.1", "class=ImmutableTestBean, a=1, b=2, bean2=${class=TestBean2; " + "testField=${class=TestType}}, bean1=${class=TestBean1; x=1; name=testProperty}"); override.setProperty("models.3", "class=NestedBean, bean1=${models.1}, " + "bean3=${class=TestBean3; bean1=${class=TestBean1; x=1; name=testProperty}; a=1; b=2}"); new LocallyConfiguredThread() { @Override public void run() { NestedBean nestedBean = classInjector.injectConstructor(new ConfKey("models.3")); assertEquals(1, nestedBean.getBean1().getA()); assertEquals(2, nestedBean.getBean3().getB()); assertEquals("testProperty", nestedBean.getBean3().getBean1().getName()); } }.withOverriddenConfiguration(override).execute(); }
public <T> T injectConstructor(ConfigurationKey key) { return injectConstructor(new ConfigurationProperties(key)); }
ClassInjector { public <T> T injectConstructor(ConfigurationKey key) { return injectConstructor(new ConfigurationProperties(key)); } }
ClassInjector { public <T> T injectConstructor(ConfigurationKey key) { return injectConstructor(new ConfigurationProperties(key)); } ClassInjector();  ClassInjector(ClassResolver resolver); }
ClassInjector { public <T> T injectConstructor(ConfigurationKey key) { return injectConstructor(new ConfigurationProperties(key)); } ClassInjector();  ClassInjector(ClassResolver resolver); Sequence<T> injectMultipleConstructors(ConfigurationKey key); T injectConstructor(ConfigurationKey key); T injectConstructor(ConfigurationProperties properties); }
ClassInjector { public <T> T injectConstructor(ConfigurationKey key) { return injectConstructor(new ConfigurationProperties(key)); } ClassInjector();  ClassInjector(ClassResolver resolver); Sequence<T> injectMultipleConstructors(ConfigurationKey key); T injectConstructor(ConfigurationKey key); T injectConstructor(ConfigurationProperties properties);  }