@Test public void abstractApplicationContextValidatesRequiredPropertiesOnRefresh() { { ConfigurableApplicationContext ctx = new AnnotationConfigApplicationContext(); ctx.refresh(); } { ConfigurableApplicationContext ctx = new AnnotationConfigApplicationContext(); ctx.getEnvironment().setRequiredProperties("foo", "bar"); try { ctx.refresh(); fail("expected missing property exception"); } catch (MissingRequiredPropertiesException ex) { } } { ConfigurableApplicationContext ctx = new AnnotationConfigApplicationContext(); ctx.getEnvironment().setRequiredProperties("foo"); ctx.setEnvironment(new MockEnvironment().withProperty("foo", "fooValue")); ctx.refresh(); // should succeed } }
@Override public void setRequiredProperties(String... requiredProperties) { delegate.setRequiredProperties(requiredProperties); }
@Override public void setRequiredProperties(String... requiredProperties) { delegate.setRequiredProperties(requiredProperties); }
@Override public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) { /** * Get SOFABoot version properties */ Properties defaultConfiguration = getSofaBootVersionProperties(); /** * Config default value of {@literal management.endpoints.web.exposure.include} */ defaultConfiguration.put(SofaBootInfraConstants.ENDPOINTS_WEB_EXPOSURE_INCLUDE_CONFIG, SofaBootInfraConstants.SOFA_DEFAULT_ENDPOINTS_WEB_EXPOSURE_VALUE); PropertiesPropertySource propertySource = new PropertiesPropertySource( SofaBootInfraConstants.SOFA_DEFAULT_PROPERTY_SOURCE, defaultConfiguration); environment.getPropertySources().addLast(propertySource); /** * set required properties, {@link MissingRequiredPropertiesException} **/ environment.setRequiredProperties(SofaBootInfraConstants.APP_NAME_KEY); }