Search in sources :

Example 1 with AbstractRefreshableWebApplicationContext

use of org.springframework.web.context.support.AbstractRefreshableWebApplicationContext in project spring-framework by spring-projects.

the class EnvironmentSystemIntegrationTests method xmlWebApplicationContext.

@Test
public void xmlWebApplicationContext() {
    AbstractRefreshableWebApplicationContext ctx = new XmlWebApplicationContext();
    ctx.setConfigLocation("classpath:" + XML_PATH);
    ctx.setEnvironment(prodWebEnv);
    ctx.refresh();
    assertHasEnvironment(ctx, prodWebEnv);
    assertEnvironmentBeanRegistered(ctx);
    assertEnvironmentAwareInvoked(ctx, prodWebEnv);
    assertThat(ctx.containsBean(DEV_BEAN_NAME), is(false));
    assertThat(ctx.containsBean(PROD_BEAN_NAME), is(true));
}
Also used : XmlWebApplicationContext(org.springframework.web.context.support.XmlWebApplicationContext) AbstractRefreshableWebApplicationContext(org.springframework.web.context.support.AbstractRefreshableWebApplicationContext) Test(org.junit.Test)

Example 2 with AbstractRefreshableWebApplicationContext

use of org.springframework.web.context.support.AbstractRefreshableWebApplicationContext in project spring-framework by spring-projects.

the class EnvironmentSystemIntegrationTests method registerServletParamPropertySources_AbstractRefreshableWebApplicationContext.

@Test
public void registerServletParamPropertySources_AbstractRefreshableWebApplicationContext() {
    MockServletContext servletContext = new MockServletContext();
    servletContext.addInitParameter("pCommon", "pCommonContextValue");
    servletContext.addInitParameter("pContext1", "pContext1Value");
    MockServletConfig servletConfig = new MockServletConfig(servletContext);
    servletConfig.addInitParameter("pCommon", "pCommonConfigValue");
    servletConfig.addInitParameter("pConfig1", "pConfig1Value");
    AbstractRefreshableWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
    ctx.setConfigLocation(EnvironmentAwareBean.class.getName());
    ctx.setServletConfig(servletConfig);
    ctx.refresh();
    ConfigurableEnvironment environment = ctx.getEnvironment();
    assertThat(environment, instanceOf(StandardServletEnvironment.class));
    MutablePropertySources propertySources = environment.getPropertySources();
    assertThat(propertySources.contains(StandardServletEnvironment.SERVLET_CONTEXT_PROPERTY_SOURCE_NAME), is(true));
    assertThat(propertySources.contains(StandardServletEnvironment.SERVLET_CONFIG_PROPERTY_SOURCE_NAME), is(true));
    // ServletConfig gets precedence
    assertThat(environment.getProperty("pCommon"), is("pCommonConfigValue"));
    assertThat(propertySources.precedenceOf(PropertySource.named(StandardServletEnvironment.SERVLET_CONFIG_PROPERTY_SOURCE_NAME)), lessThan(propertySources.precedenceOf(PropertySource.named(StandardServletEnvironment.SERVLET_CONTEXT_PROPERTY_SOURCE_NAME))));
    // but all params are available
    assertThat(environment.getProperty("pContext1"), is("pContext1Value"));
    assertThat(environment.getProperty("pConfig1"), is("pConfig1Value"));
    // Servlet* PropertySources have precedence over System* PropertySources
    assertThat(propertySources.precedenceOf(PropertySource.named(StandardServletEnvironment.SERVLET_CONFIG_PROPERTY_SOURCE_NAME)), lessThan(propertySources.precedenceOf(PropertySource.named(StandardEnvironment.SYSTEM_PROPERTIES_PROPERTY_SOURCE_NAME))));
    // Replace system properties with a mock property source for convenience
    MockPropertySource mockSystemProperties = new MockPropertySource(StandardEnvironment.SYSTEM_PROPERTIES_PROPERTY_SOURCE_NAME);
    mockSystemProperties.setProperty("pCommon", "pCommonSysPropsValue");
    mockSystemProperties.setProperty("pSysProps1", "pSysProps1Value");
    propertySources.replace(StandardEnvironment.SYSTEM_PROPERTIES_PROPERTY_SOURCE_NAME, mockSystemProperties);
    // assert that servletconfig params resolve with higher precedence than sysprops
    assertThat(environment.getProperty("pCommon"), is("pCommonConfigValue"));
    assertThat(environment.getProperty("pSysProps1"), is("pSysProps1Value"));
}
Also used : MockServletConfig(org.springframework.mock.web.MockServletConfig) AbstractRefreshableWebApplicationContext(org.springframework.web.context.support.AbstractRefreshableWebApplicationContext) MockPropertySource(org.springframework.mock.env.MockPropertySource) AnnotationConfigWebApplicationContext(org.springframework.web.context.support.AnnotationConfigWebApplicationContext) StandardServletEnvironment(org.springframework.web.context.support.StandardServletEnvironment) MockServletContext(org.springframework.mock.web.MockServletContext) Test(org.junit.Test)

Aggregations

Test (org.junit.Test)2 AbstractRefreshableWebApplicationContext (org.springframework.web.context.support.AbstractRefreshableWebApplicationContext)2 MockPropertySource (org.springframework.mock.env.MockPropertySource)1 MockServletConfig (org.springframework.mock.web.MockServletConfig)1 MockServletContext (org.springframework.mock.web.MockServletContext)1 AnnotationConfigWebApplicationContext (org.springframework.web.context.support.AnnotationConfigWebApplicationContext)1 StandardServletEnvironment (org.springframework.web.context.support.StandardServletEnvironment)1 XmlWebApplicationContext (org.springframework.web.context.support.XmlWebApplicationContext)1