@ -51,6 +51,8 @@ import org.springframework.core.env.PropertySource;
@@ -51,6 +51,8 @@ import org.springframework.core.env.PropertySource;
* /
class ConfigDataEnvironmentContributor implements Iterable < ConfigDataEnvironmentContributor > {
private final ConfigDataLocation location ;
private final ConfigDataResource resource ;
private final PropertySource < ? > propertySource ;
@ -68,6 +70,7 @@ class ConfigDataEnvironmentContributor implements Iterable<ConfigDataEnvironment
@@ -68,6 +70,7 @@ class ConfigDataEnvironmentContributor implements Iterable<ConfigDataEnvironment
/ * *
* Create a new { @link ConfigDataEnvironmentContributor } instance .
* @param kind the contributor kind
* @param location the location of this contributor
* @param resource the resource that contributed the data or { @code null }
* @param propertySource the property source for the data or { @code null }
* @param configurationPropertySource the configuration property source for the data
@ -76,10 +79,12 @@ class ConfigDataEnvironmentContributor implements Iterable<ConfigDataEnvironment
@@ -76,10 +79,12 @@ class ConfigDataEnvironmentContributor implements Iterable<ConfigDataEnvironment
* @param ignoreImports if import properties should be ignored
* @param children the children of this contributor at each { @link ImportPhase }
* /
ConfigDataEnvironmentContributor ( Kind kind , ConfigDataResource resource , PropertySource < ? > propertySource ,
ConfigurationPropertySource configurationPropertySource , ConfigDataProperties properties ,
boolean ignoreImports , Map < ImportPhase , List < ConfigDataEnvironmentContributor > > children ) {
ConfigDataEnvironmentContributor ( Kind kind , ConfigDataLocation location , ConfigDataResource resource ,
PropertySource < ? > propertySource , ConfigurationPropertySource configurationPropertySource ,
ConfigDataProperties properties , boolean ignoreImports ,
Map < ImportPhase , List < ConfigDataEnvironmentContributor > > children ) {
this . kind = kind ;
this . location = location ;
this . resource = resource ;
this . properties = properties ;
this . propertySource = propertySource ;
@ -96,6 +101,10 @@ class ConfigDataEnvironmentContributor implements Iterable<ConfigDataEnvironment
@@ -96,6 +101,10 @@ class ConfigDataEnvironmentContributor implements Iterable<ConfigDataEnvironment
return this . kind ;
}
ConfigDataLocation getLocation ( ) {
return this . location ;
}
/ * *
* Return if this contributor is currently active .
* @param activationContext the activation context
@ -191,8 +200,8 @@ class ConfigDataEnvironmentContributor implements Iterable<ConfigDataEnvironment
@@ -191,8 +200,8 @@ class ConfigDataEnvironmentContributor implements Iterable<ConfigDataEnvironment
if ( this . ignoreImports ) {
properties = properties . withoutImports ( ) ;
}
return new ConfigDataEnvironmentContributor ( Kind . BOUND_IMPORT , this . resource , this . propertyS ource,
this . configurationPropertySource , properties , this . ignoreImports , null ) ;
return new ConfigDataEnvironmentContributor ( Kind . BOUND_IMPORT , this . location , this . res ource,
this . propertySource , this . configurationPropertySource , properties , this . ignoreImports , null ) ;
}
/ * *
@ -206,7 +215,7 @@ class ConfigDataEnvironmentContributor implements Iterable<ConfigDataEnvironment
@@ -206,7 +215,7 @@ class ConfigDataEnvironmentContributor implements Iterable<ConfigDataEnvironment
List < ConfigDataEnvironmentContributor > children ) {
Map < ImportPhase , List < ConfigDataEnvironmentContributor > > updatedChildren = new LinkedHashMap < > ( this . children ) ;
updatedChildren . put ( importPhase , children ) ;
return new ConfigDataEnvironmentContributor ( this . kind , this . resource , this . propertySource ,
return new ConfigDataEnvironmentContributor ( this . kind , this . location , this . resource , this . propertySource ,
this . configurationPropertySource , this . properties , this . ignoreImports , updatedChildren ) ;
}
@ -231,7 +240,7 @@ class ConfigDataEnvironmentContributor implements Iterable<ConfigDataEnvironment
@@ -231,7 +240,7 @@ class ConfigDataEnvironmentContributor implements Iterable<ConfigDataEnvironment
}
updatedChildren . put ( importPhase , Collections . unmodifiableList ( updatedContributors ) ) ;
} ) ;
return new ConfigDataEnvironmentContributor ( this . kind , this . resource , this . propertySource ,
return new ConfigDataEnvironmentContributor ( this . kind , this . location , this . resource , this . propertySource ,
this . configurationPropertySource , this . properties , this . ignoreImports , updatedChildren ) ;
}
@ -243,7 +252,7 @@ class ConfigDataEnvironmentContributor implements Iterable<ConfigDataEnvironment
@@ -243,7 +252,7 @@ class ConfigDataEnvironmentContributor implements Iterable<ConfigDataEnvironment
static ConfigDataEnvironmentContributor of ( List < ConfigDataEnvironmentContributor > contributors ) {
Map < ImportPhase , List < ConfigDataEnvironmentContributor > > children = new LinkedHashMap < > ( ) ;
children . put ( ImportPhase . BEFORE_PROFILE_ACTIVATION , Collections . unmodifiableList ( contributors ) ) ;
return new ConfigDataEnvironmentContributor ( Kind . ROOT , null , null , null , null , false , children ) ;
return new ConfigDataEnvironmentContributor ( Kind . ROOT , null , null , null , null , null , false , children ) ;
}
/ * *
@ -256,7 +265,8 @@ class ConfigDataEnvironmentContributor implements Iterable<ConfigDataEnvironment
@@ -256,7 +265,8 @@ class ConfigDataEnvironmentContributor implements Iterable<ConfigDataEnvironment
static ConfigDataEnvironmentContributor ofInitialImport ( ConfigDataLocation initialImport ) {
List < ConfigDataLocation > imports = Collections . singletonList ( initialImport ) ;
ConfigDataProperties properties = new ConfigDataProperties ( imports , null ) ;
return new ConfigDataEnvironmentContributor ( Kind . INITIAL_IMPORT , null , null , null , properties , false , null ) ;
return new ConfigDataEnvironmentContributor ( Kind . INITIAL_IMPORT , null , null , null , null , properties , false ,
null ) ;
}
/ * *
@ -267,7 +277,7 @@ class ConfigDataEnvironmentContributor implements Iterable<ConfigDataEnvironment
@@ -267,7 +277,7 @@ class ConfigDataEnvironmentContributor implements Iterable<ConfigDataEnvironment
* @return a new { @link ConfigDataEnvironmentContributor } instance
* /
static ConfigDataEnvironmentContributor ofExisting ( PropertySource < ? > propertySource ) {
return new ConfigDataEnvironmentContributor ( Kind . EXISTING , null , propertySource ,
return new ConfigDataEnvironmentContributor ( Kind . EXISTING , null , null , propertySource ,
ConfigurationPropertySource . from ( propertySource ) , null , false , null ) ;
}
@ -275,17 +285,18 @@ class ConfigDataEnvironmentContributor implements Iterable<ConfigDataEnvironment
@@ -275,17 +285,18 @@ class ConfigDataEnvironmentContributor implements Iterable<ConfigDataEnvironment
* Factory method to create an { @link Kind # UNBOUND_IMPORT unbound import } contributor .
* This contributor has been actively imported from another contributor and may itself
* import further contributors later .
* @param resource the condig data resource
* @param location the location of this contributor
* @param resource the config data resource
* @param configData the config data
* @param propertySourceIndex the index of the property source that should be used
* @return a new { @link ConfigDataEnvironmentContributor } instance
* /
static ConfigDataEnvironmentContributor ofUnboundImport ( ConfigDataResource resource , ConfigData configData ,
int propertySourceIndex ) {
static ConfigDataEnvironmentContributor ofUnboundImport ( ConfigDataLocation location , ConfigDataResource resource ,
ConfigData configData , int propertySourceIndex ) {
PropertySource < ? > propertySource = configData . getPropertySources ( ) . get ( propertySourceIndex ) ;
ConfigurationPropertySource configurationPropertySource = ConfigurationPropertySource . from ( propertySource ) ;
boolean ignoreImports = configData . getOptions ( ) . contains ( ConfigData . Option . IGNORE_IMPORTS ) ;
return new ConfigDataEnvironmentContributor ( Kind . UNBOUND_IMPORT , resource , propertySource ,
return new ConfigDataEnvironmentContributor ( Kind . UNBOUND_IMPORT , location , resource , propertySource ,
configurationPropertySource , null , ignoreImports , null ) ;
}