Introduction
In this page you can find the example usage for org.springframework.core.env CompositePropertySource CompositePropertySource.
Prototype
public CompositePropertySource(String name)
Source Link
Document
Create a new CompositePropertySource .
Usage
From source file:
com.bose.aem.spring.config.ConfigServicePropertySourceLocator.java
@Override
public org.springframework.core.env.PropertySource<?> locate(
org.springframework.core.env.Environment environment) {
ConfigClientProperties client = this.defaults.override(environment);
CompositePropertySource composite = new CompositePropertySource("configService");
RestTemplate restTemplate = this.restTemplate == null ? getSecureRestTemplate(client) : this.restTemplate;
Exception error = null;/*w w w. ja v a2 s . c o m*/
String errorBody = null;
//logger.info("Fetching config from server at: " + client.getRawUri());
try {
String[] labels = new String[] { "" };
if (StringUtils.hasText(client.getLabel())) {
labels = StringUtils.commaDelimitedListToStringArray(client.getLabel());
// Try all the labels until one works
for (String label : labels) {
Environment result = getRemoteEnvironment(restTemplate, client.getRawUri(), client.getName(),
client.getProfile(), label.trim());
if (result != null) {
// logger.info(String.format("Located environment: name=%s, profiles=%s, label=%s, version=%s",
// result.getName(),
// result.getProfiles() == null ? "" : Arrays.asList(result.getProfiles()),
// result.getLabel(), result.getVersion()));
for (PropertySource source : result.getPropertySources()) {
@SuppressWarnings("unchecked")
Map<String, Object> map = (Map<String, Object>) source.getSource();
composite.addPropertySource(new MapPropertySource(source.getName(), map));
return composite;
} catch (HttpServerErrorException e) {
error = e;
if (MediaType.APPLICATION_JSON.includes(e.getResponseHeaders().getContentType())) {
errorBody = e.getResponseBodyAsString();
} catch (Exception e) {
error = e;
if (client != null && client.isFailFast()) {
throw new IllegalStateException(
"Could not locate PropertySource and the fail fast property is set, failing", error);
// logger.warn("Could not locate PropertySource: "
// + (errorBody == null ? error == null ? "label not found" : error.getMessage() : errorBody));
return null;
From source file:
io.kahu.hawaii.config.HawaiiAppContextInitializer.java
private PropertySource<Object> getPropertySource() {
List<Resource> resources = new ArrayList<Resource>();
String configurationFiles = System.getProperty("properties.configuration");
String[] files = StringUtils.split(configurationFiles, ",");
for (String configFileName : files) {
try {// w w w .jav a 2 s. c om
File file = new File(configFileName);
if (file.exists()) {
resources.add(0, new FileSystemResource(file));
} else {
System.err.println("Configured properties file '" + configFileName + "' does not exist.");
} catch (Throwable t) {
System.err.print("Error loading properties from file '" + configFileName + "': " + t.getMessage());
resources = null;
try {
CompositePropertySource propertySource = new CompositePropertySource("properties");
for (Resource resource : resources) {
propertySource.addPropertySource(new ResourcePropertySource(resource));
return propertySource;
} catch (IOException e) {
throw new IllegalStateException(e);
From source file:
ch.sdi.core.impl.cfg.ConfigUtilsTest.java
/**
* Test method for {@link ch.sdi.core.impl.cfg.ConfigUtils#getPropertyNamesStartingWith(Class)}.
*/// ww w.j a v a 2 s . com
@Test
public void testGetPropertyNamesStartingWith() {
Properties props1 = new Properties();
PropertiesPropertySource pps1 = new PropertiesPropertySource("Props1", props1);
props1.put("sdi.collect.comment.2", "//");
props1.put("sdi.collect.comment.1", "#");
props1.put("key", "value");
Properties props2 = new Properties();
PropertiesPropertySource pps2 = new PropertiesPropertySource("Props2", props2);
props1.put("sdi.collect.comment.2", ";");
props1.put("sdi.collect.comment.1", "?");
MutablePropertySources mps = myEnv.getPropertySources();
mps.addFirst(pps1);
mps.addLast(pps2);
Collection<String> received = ConfigUtils.getPropertyNamesStartingWith(myEnv, "sdi.collect.comment.");
Assert.assertNotNull(received);
myLog.debug("received: " + received);
Assert.assertEquals(2, received.size());
// assert also if the retrieved keys are sorted:
int i = 1;
for (Iterator<String> iterator = received.iterator(); iterator.hasNext();) {
String key = iterator.next();
Assert.assertEquals("sdi.collect.comment." + i, key);
myLog.debug("testing composite property source");
CompositePropertySource cps = new CompositePropertySource("CompositeTest");
cps.addPropertySource(pps1);
cps.addPropertySource(pps2);
TestUtils.removeAllFromEnvironment(myEnv);
mps = myEnv.getPropertySources();
mps.addFirst(pps1);
received = ConfigUtils.getPropertyNamesStartingWith(myEnv, "sdi.collect.comment.");
Assert.assertNotNull(received);
myLog.debug("received: " + received);
Assert.assertEquals(2, received.size());
for (Iterator<String> iterator = received.iterator(); iterator.hasNext();) {
String key = iterator.next();
Assert.assertTrue(key.startsWith("sdi.collect.comment."));
From source file:
org.apache.servicecomb.config.TestConfigurationSpringInitializer.java
@Test
public void testSetEnvironment() {
ConfigurableEnvironment environment = Mockito.mock(ConfigurableEnvironment.class);
MutablePropertySources propertySources = new MutablePropertySources();
Map<String, String> propertyMap = new HashMap<>();
final String map0Key0 = "map0-Key0";
final String map1Key0 = "map1-Key0";
final String map2Key0 = "map2-Key0";
final String map3Key0 = "map3-Key0";
propertyMap.put(map0Key0, "map0-Value0");
propertyMap.put(map1Key0, "map1-Value0");
propertyMap.put(map2Key0, "map2-Value0");
propertyMap.put(map3Key0, "map3-Value0");
/*//from w w w . j av a 2 s . co m
propertySources
|- compositePropertySource0
| |- mapPropertySource0
| | |- map0-Key0 = map0-Value0
| |- compositePropertySource1
| |- mapPropertySource1
| | |- map1-Key0 = map1-Value0
| |- mapPropertySource2
| |- map2-Key0 = map2-Value0
| |- JndiPropertySource(mocked)
|- mapPropertySource3
|- map3-Key0 = map3-Value0
CompositePropertySource compositePropertySource0 = new CompositePropertySource("compositePropertySource0");
propertySources.addFirst(compositePropertySource0);
HashMap<String, Object> map0 = new HashMap<>();
map0.put(map0Key0, propertyMap.get(map0Key0));
MapPropertySource mapPropertySource0 = new MapPropertySource("mapPropertySource0", map0);
compositePropertySource0.addFirstPropertySource(mapPropertySource0);
CompositePropertySource compositePropertySource1 = new CompositePropertySource("compositePropertySource1");
compositePropertySource0.addPropertySource(compositePropertySource1);
HashMap<String, Object> map1 = new HashMap<>();
map1.put(map1Key0, propertyMap.get(map1Key0));
MapPropertySource mapPropertySource1 = new MapPropertySource("mapPropertySource1", map1);
compositePropertySource1.addPropertySource(mapPropertySource1);
HashMap<String, Object> map2 = new HashMap<>();
map2.put(map2Key0, propertyMap.get(map2Key0));
MapPropertySource mapPropertySource2 = new MapPropertySource("mapPropertySource2", map2);
compositePropertySource1.addPropertySource(mapPropertySource2);
compositePropertySource1.addPropertySource(Mockito.mock(JndiPropertySource.class));
HashMap<String, Object> map3 = new HashMap<>();
map3.put(map3Key0, propertyMap.get(map3Key0));
MapPropertySource mapPropertySource3 = new MapPropertySource("mapPropertySource3", map3);
compositePropertySource0.addPropertySource(mapPropertySource3);
Mockito.when(environment.getPropertySources()).thenReturn(propertySources);
Mockito.doAnswer((Answer<String>) invocation -> {
Object[] args = invocation.getArguments();
String propertyName = (String) args[0];
if ("spring.config.name".equals(propertyName) || "spring.application.name".equals(propertyName)) {
return null;
String value = propertyMap.get(propertyName);
if (null == value) {
fail("get unexpected property name: " + propertyName);
return value;
}).when(environment).getProperty(anyString());
new ConfigurationSpringInitializer().setEnvironment(environment);
Map<String, Map<String, Object>> extraLocalConfig = getExtraConfigMapFromConfigUtil();
assertFalse(extraLocalConfig.isEmpty());
Map<String, Object> extraProperties = extraLocalConfig
.get(ConfigurationSpringInitializer.EXTRA_CONFIG_SOURCE_PREFIX + environment.getClass().getName()
+ "@" + environment.hashCode());
assertNotNull(extraLocalConfig);
for (Entry<String, String> entry : propertyMap.entrySet()) {
assertEquals(entry.getValue(), extraProperties.get(entry.getKey()));
From source file:
org.springframework.boot.SpringApplication.java
/**
* Add, remove or re-order any {@link PropertySource}s in this application's
* environment.//from ww w .j a v a 2 s .c o m
* @param environment this application's environment
* @param args arguments passed to the {@code run} method
* @see #configureEnvironment(ConfigurableEnvironment, String[])
protected void configurePropertySources(ConfigurableEnvironment environment, String[] args) {
MutablePropertySources sources = environment.getPropertySources();
if (this.defaultProperties != null && !this.defaultProperties.isEmpty()) {
sources.addLast(new MapPropertySource("defaultProperties", this.defaultProperties));
if (this.addCommandLineProperties && args.length > 0) {
String name = CommandLinePropertySource.COMMAND_LINE_PROPERTY_SOURCE_NAME;
if (sources.contains(name)) {
PropertySource<?> source = sources.get(name);
CompositePropertySource composite = new CompositePropertySource(name);
composite
.addPropertySource(new SimpleCommandLinePropertySource(name + "-" + args.hashCode(), args));
composite.addPropertySource(source);
sources.replace(name, composite);
} else {
sources.addFirst(new SimpleCommandLinePropertySource(args));
From source file:
org.springframework.cloud.aws.paramstore.AwsParamStorePropertySourceLocator.java
@Override
public PropertySource<?> locate(Environment environment) {
if (!(environment instanceof ConfigurableEnvironment)) {
return null;
}// ww w.j a v a 2 s .co m
ConfigurableEnvironment env = (ConfigurableEnvironment) environment;
String appName = properties.getName();
if (appName == null) {
appName = env.getProperty("spring.application.name");
List<String> profiles = Arrays.asList(env.getActiveProfiles());
String prefix = this.properties.getPrefix();
String defaultContext = prefix + "/" + this.properties.getDefaultContext();
this.contexts.add(defaultContext + "/");
addProfiles(this.contexts, defaultContext, profiles);
String baseContext = prefix + "/" + appName;
this.contexts.add(baseContext + "/");
addProfiles(this.contexts, baseContext, profiles);
Collections.reverse(this.contexts);
CompositePropertySource composite = new CompositePropertySource("aws-param-store");
for (String propertySourceContext : this.contexts) {
try {
composite.addPropertySource(create(propertySourceContext));
} catch (Exception e) {
if (this.properties.isFailFast()) {
logger.error(
"Fail fast is set and there was an error reading configuration from AWS Parameter Store:\n"
+ e.getMessage());
ReflectionUtils.rethrowRuntimeException(e);
} else {
logger.warn("Unable to load AWS config from " + propertySourceContext, e);
return composite;
From source file:
org.springframework.cloud.aws.secretsmanager.AwsSecretsManagerPropertySourceLocator.java
@Override
public PropertySource<?> locate(Environment environment) {
if (!(environment instanceof ConfigurableEnvironment)) {
return null;
}/* www .j av a2s . co m*/
ConfigurableEnvironment env = (ConfigurableEnvironment) environment;
String appName = properties.getName();
if (appName == null) {
appName = env.getProperty("spring.application.name");
List<String> profiles = Arrays.asList(env.getActiveProfiles());
String prefix = this.properties.getPrefix();
String defaultContext = prefix + "/" + this.properties.getDefaultContext();
this.contexts.add(defaultContext);
addProfiles(this.contexts, defaultContext, profiles);
String baseContext = prefix + "/" + appName;
this.contexts.add(baseContext);
addProfiles(this.contexts, baseContext, profiles);
Collections.reverse(this.contexts);
CompositePropertySource composite = new CompositePropertySource("aws-secrets-manager");
for (String propertySourceContext : this.contexts) {
try {
composite.addPropertySource(create(propertySourceContext));
} catch (Exception e) {
if (this.properties.isFailFast()) {
logger.error(
"Fail fast is set and there was an error reading configuration from AWS Secrets Manager:\n"
+ e.getMessage());
ReflectionUtils.rethrowRuntimeException(e);
} else {
logger.warn("Unable to load AWS secret from " + propertySourceContext, e);
return composite;
From source file:
org.springframework.cloud.bootstrap.config.ConfigServiceBootstrapConfiguration.java
@Override
public void initialize(ConfigurableApplicationContext applicationContext) {
CompositePropertySource composite = new CompositePropertySource("bootstrap");
AnnotationAwareOrderComparator.sort(propertySourceLocators);
boolean empty = true;
for (PropertySourceLocator locator : propertySourceLocators) {
PropertySource<?> source = null;
try {/*ww w . java 2 s . c o m*/
source = locator.locate();
} catch (Exception e) {
logger.error("Could not locate PropertySource: " + e.getMessage());
if (source == null) {
continue;
logger.info("Located property source: " + source);
composite.addPropertySource(source);
empty = false;
if (!empty) {
MutablePropertySources propertySources = applicationContext.getEnvironment().getPropertySources();
if (propertySources.contains("bootstrap")) {
propertySources.replace("bootstrap", composite);
} else {
propertySources.addFirst(composite);
From source file:
org.springframework.cloud.bootstrap.config.PropertySourceBootstrapConfiguration.java
@Override
public void initialize(ConfigurableApplicationContext applicationContext) {
CompositePropertySource composite = new CompositePropertySource(BOOTSTRAP_PROPERTY_SOURCE_NAME);
AnnotationAwareOrderComparator.sort(propertySourceLocators);
boolean empty = true;
for (PropertySourceLocator locator : propertySourceLocators) {
PropertySource<?> source = null;
try {/*from w w w . java2s. com*/
source = locator.locate(applicationContext.getEnvironment());
} catch (Exception e) {
logger.error("Could not locate PropertySource: " + e.getMessage());
if (source == null) {
continue;
logger.info("Located property source: " + source);
composite.addPropertySource(source);
empty = false;
if (!empty) {
MutablePropertySources propertySources = applicationContext.getEnvironment().getPropertySources();
if (propertySources.contains(BOOTSTRAP_PROPERTY_SOURCE_NAME)) {
propertySources.replace(BOOTSTRAP_PROPERTY_SOURCE_NAME, composite);
} else {
propertySources.addFirst(composite);
From source file:
org.springframework.cloud.config.client.AbstractConfigServicePropertyLocator.java
@Override
public PropertySource<?> locate(Environment environment) {
final ConfigClientProperties client = defaults.override(environment);
final CompositePropertySource composite = new CompositePropertySource("configService");
Exception error;/*from ww w . j av a 2 s.c o m*/
String errorBody = null;
try {
return tryLocating(client, composite, environment);
} catch (HttpServerErrorException e) {
error = e;
if (MediaType.APPLICATION_JSON.includes(e.getResponseHeaders().getContentType())) {
errorBody = e.getResponseBodyAsString();
} catch (Exception e) {
error = e;
if (client != null && client.isFailFast()) {
throw new IllegalStateException(
"Could not locate PropertySource and the fail fast property is set, failing", error);
logger.error("Could not locate PropertySource: " + (errorBody == null ? error.getMessage() : errorBody));