1919import java .util .ArrayList ;
2020import java .util .Arrays ;
2121import java .util .Collections ;
22- import java .util .LinkedHashMap ;
2322import java .util .LinkedHashSet ;
2423import java .util .List ;
25- import java .util .Map ;
2624import java .util .Set ;
2725
2826import org .springframework .beans .BeanUtils ;
3634import org .springframework .core .SpringVersion ;
3735import org .springframework .core .annotation .AnnotatedElementUtils ;
3836import org .springframework .core .env .ConfigurableEnvironment ;
39- import org .springframework .core .env .MapPropertySource ;
4037import org .springframework .core .env .StandardEnvironment ;
4138import org .springframework .test .context .ContextConfigurationAttributes ;
4239import org .springframework .test .context .ContextCustomizer ;
@@ -90,8 +87,6 @@ public ApplicationContext loadContext(MergedContextConfiguration config)
9087 if (!ObjectUtils .isEmpty (config .getActiveProfiles ())) {
9188 setActiveProfiles (environment , config .getActiveProfiles ());
9289 }
93- Map <String , Object > properties = getEnvironmentProperties (config );
94- addProperties (environment , properties );
9590 application .setEnvironment (environment );
9691 List <ApplicationContextInitializer <?>> initializers = getInitializers (config ,
9792 application );
@@ -135,29 +130,19 @@ private void setActiveProfiles(ConfigurableEnvironment environment,
135130 + StringUtils .arrayToCommaDelimitedString (profiles ));
136131 }
137132
138- protected Map <String , Object > getEnvironmentProperties (
139- MergedContextConfiguration config ) {
140- Map <String , Object > properties = new LinkedHashMap <String , Object >();
133+ protected String [] getInlinedProperties (MergedContextConfiguration config ) {
134+ ArrayList <String > properties = new ArrayList <String >();
141135 // JMX bean names will clash if the same bean is used in multiple contexts
142136 disableJmx (properties );
143- properties .putAll (TestPropertySourceUtils
144- .convertInlinedPropertiesToMap (config .getPropertySourceProperties ()));
137+ properties .addAll (Arrays .asList (config .getPropertySourceProperties ()));
145138 if (!isEmbeddedWebEnvironment (config )) {
146- properties .put ("server.port" , " -1" );
139+ properties .add ("server.port= -1" );
147140 }
148- return properties ;
141+ return properties . toArray ( new String [ properties . size ()]) ;
149142 }
150143
151- private void disableJmx (Map <String , Object > properties ) {
152- properties .put ("spring.jmx.enabled" , "false" );
153- }
154-
155- private void addProperties (ConfigurableEnvironment environment ,
156- Map <String , Object > properties ) {
157- // @IntegrationTest properties go before external configuration and after system
158- environment .getPropertySources ().addAfter (
159- StandardEnvironment .SYSTEM_ENVIRONMENT_PROPERTY_SOURCE_NAME ,
160- new MapPropertySource ("integrationTest" , properties ));
144+ private void disableJmx (List <String > properties ) {
145+ properties .add ("spring.jmx.enabled=false" );
161146 }
162147
163148 private List <ApplicationContextInitializer <?>> getInitializers (
@@ -166,8 +151,8 @@ private List<ApplicationContextInitializer<?>> getInitializers(
166151 for (ContextCustomizer contextCustomizer : config .getContextCustomizers ()) {
167152 initializers .add (new ContextCustomizerAdapter (contextCustomizer , config ));
168153 }
169- initializers .add (new PropertySourceLocationsInitializer (
170- config .getPropertySourceLocations ()));
154+ initializers .add (new TestPropertySourcesInitializer (
155+ config .getPropertySourceLocations (), getInlinedProperties ( config ) ));
171156 initializers .addAll (application .getInitializers ());
172157 for (Class <? extends ApplicationContextInitializer <?>> initializerClass : config
173158 .getContextInitializerClasses ()) {
@@ -258,21 +243,27 @@ private void addMockServletContext(
258243 }
259244
260245 /**
261- * {@link ApplicationContextInitializer} to setup test property source locations .
246+ * {@link ApplicationContextInitializer} to set up test property sources .
262247 */
263- private static class PropertySourceLocationsInitializer
248+ private static class TestPropertySourcesInitializer
264249 implements ApplicationContextInitializer <ConfigurableApplicationContext > {
265250
266251 private final String [] propertySourceLocations ;
267252
268- PropertySourceLocationsInitializer (String [] propertySourceLocations ) {
253+ private final String [] inlinedProperties ;
254+
255+ TestPropertySourcesInitializer (String [] propertySourceLocations ,
256+ String [] inlinedProperties ) {
269257 this .propertySourceLocations = propertySourceLocations ;
258+ this .inlinedProperties = inlinedProperties ;
270259 }
271260
272261 @ Override
273262 public void initialize (ConfigurableApplicationContext applicationContext ) {
274263 TestPropertySourceUtils .addPropertiesFilesToEnvironment (applicationContext ,
275264 this .propertySourceLocations );
265+ TestPropertySourceUtils .addInlinedPropertiesToEnvironment (applicationContext ,
266+ this .inlinedProperties );
276267 }
277268
278269 }
0 commit comments