Context namespace exposes value-separator attribute for property-placeholder element
Issue: SPR-7794
This commit is contained in:
@@ -33,7 +33,7 @@ import org.springframework.util.StringUtils;
|
||||
*/
|
||||
class PropertyPlaceholderBeanDefinitionParser extends AbstractPropertyLoadingBeanDefinitionParser {
|
||||
|
||||
private static final String SYSTEM_PROPERTIES_MODE_ATTRIB = "system-properties-mode";
|
||||
private static final String SYSTEM_PROPERTIES_MODE_ATTRIBUTE = "system-properties-mode";
|
||||
|
||||
private static final String SYSTEM_PROPERTIES_MODE_DEFAULT = "ENVIRONMENT";
|
||||
|
||||
@@ -43,13 +43,13 @@ class PropertyPlaceholderBeanDefinitionParser extends AbstractPropertyLoadingBea
|
||||
// As of Spring 3.1, the default value of system-properties-mode has changed from
|
||||
// 'FALLBACK' to 'ENVIRONMENT'. This latter value indicates that resolution of
|
||||
// placeholders against system properties is a function of the Environment and
|
||||
// its current set of PropertySources
|
||||
if (element.getAttribute(SYSTEM_PROPERTIES_MODE_ATTRIB).equals(SYSTEM_PROPERTIES_MODE_DEFAULT)) {
|
||||
// its current set of PropertySources.
|
||||
if (SYSTEM_PROPERTIES_MODE_DEFAULT.equals(element.getAttribute(SYSTEM_PROPERTIES_MODE_ATTRIBUTE))) {
|
||||
return PropertySourcesPlaceholderConfigurer.class;
|
||||
}
|
||||
|
||||
// the user has explicitly specified a value for system-properties-mode. Revert
|
||||
// to PropertyPlaceholderConfigurer to ensure backward compatibility.
|
||||
// The user has explicitly specified a value for system-properties-mode: revert to
|
||||
// PropertyPlaceholderConfigurer to ensure backward compatibility with 3.0 and earlier.
|
||||
return PropertyPlaceholderConfigurer.class;
|
||||
}
|
||||
|
||||
@@ -60,12 +60,16 @@ class PropertyPlaceholderBeanDefinitionParser extends AbstractPropertyLoadingBea
|
||||
builder.addPropertyValue("ignoreUnresolvablePlaceholders",
|
||||
Boolean.valueOf(element.getAttribute("ignore-unresolvable")));
|
||||
|
||||
String systemPropertiesModeName = element.getAttribute(SYSTEM_PROPERTIES_MODE_ATTRIB);
|
||||
String systemPropertiesModeName = element.getAttribute(SYSTEM_PROPERTIES_MODE_ATTRIBUTE);
|
||||
if (StringUtils.hasLength(systemPropertiesModeName) &&
|
||||
!systemPropertiesModeName.equals(SYSTEM_PROPERTIES_MODE_DEFAULT)) {
|
||||
builder.addPropertyValue("systemPropertiesModeName", "SYSTEM_PROPERTIES_MODE_" + systemPropertiesModeName);
|
||||
}
|
||||
|
||||
if (element.hasAttribute("value-separator")) {
|
||||
builder.addPropertyValue("valueSeparator", element.getAttribute("value-separator"));
|
||||
}
|
||||
|
||||
if (element.hasAttribute("null-value")) {
|
||||
builder.addPropertyValue("nullValue", element.getAttribute("null-value"));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user