@Test public void propertyPlaceholderEnvironmentProperties() throws Exception { MockEnvironment env = new MockEnvironment().withProperty("foo", "spam"); GenericXmlApplicationContext applicationContext = new GenericXmlApplicationContext(); applicationContext.setEnvironment(env); applicationContext.load(new ClassPathResource("contextNamespaceHandlerTests-simple.xml", getClass())); applicationContext.refresh(); assertEquals("spam", applicationContext.getBean("string")); assertEquals("none", applicationContext.getBean("fallback")); }
@Test public void genericXmlApplicationContext() { GenericXmlApplicationContext ctx = new GenericXmlApplicationContext(); assertHasStandardEnvironment(ctx); ctx.setEnvironment(prodEnv); ctx.load(XML_PATH); ctx.refresh(); assertHasEnvironment(ctx, prodEnv); assertEnvironmentBeanRegistered(ctx); assertEnvironmentAwareInvoked(ctx, prodEnv); assertThat(ctx.containsBean(DEV_BEAN_NAME), is(false)); assertThat(ctx.containsBean(PROD_BEAN_NAME), is(true)); }
@Override protected void customizeContext(GenericApplicationContext context) { GenericXmlApplicationContext parent = new GenericXmlApplicationContext(); parent.setEnvironment(TestProfileEnvironment.getEnvironment()); parent.load(parentLocation); parent.refresh(); super.customizeContext(context); context.setParent(parent); } }
/******************************************************************************************************************* * ******************************************************************************************************************/ @Nonnull private ApplicationContext createSpringContext (final @Nonnull Map<String, Object> properties, final @Nonnull Consumer<GenericApplicationContext> modifier, final @Nonnull Collection<String> configurationFiles) { configurationFiles.add(test.getClass().getSimpleName() + "/TestBeans.xml"); final StandardEnvironment environment = new StandardEnvironment(); environment.getPropertySources().addFirst(new MapPropertySource("test", properties)); final GenericXmlApplicationContext context = new GenericXmlApplicationContext(); context.setEnvironment(environment); context.load(configurationFiles.toArray(new String[0])); modifier.accept(context); context.refresh(); log.info("Beans: {}", Arrays.asList(context.getBeanFactory().getBeanDefinitionNames())); return context; }
ctx.setEnvironment((ConfigurableEnvironment) environment);