Process CompositePropertySources before EnumerablePropertySources

PropertySourcePropertyValues tries to process a PropertySource first
as an EnumerablePropertySource and then as a CompositePropertySource.
In Spring 4.1.2 CompositePropertySource was updated to extend
EnumerablePropertySource. This change meant that a
CompositePropertySource would always be processed as an
EnumerablePropertySource.

This commit updates PropertySourcePropertyValues to process a
PropertySource as a CompositePropertySource first and to then try it
is an EnumerablePropertySource.

Fixes gh-2608
pull/2707/merge
Andy Wilkinson 10 years ago
parent f1ecf53495
commit fc4376145c

@ -98,14 +98,14 @@ public class PropertySourcesPropertyValues implements PropertyValues {
private void processPropertySource(PropertySource<?> source,
PropertySourcesPropertyResolver resolver,
PropertyNamePatternsMatcher includes, Collection<String> exacts) {
if (source instanceof EnumerablePropertySource) {
processEnumerablePropertySource((EnumerablePropertySource<?>) source,
resolver, includes, exacts);
}
else if (source instanceof CompositePropertySource) {
if (source instanceof CompositePropertySource) {
processCompositePropertySource((CompositePropertySource) source, resolver,
includes, exacts);
}
else if (source instanceof EnumerablePropertySource) {
processEnumerablePropertySource((EnumerablePropertySource<?>) source,
resolver, includes);
}
else {
// We can only do exact matches for non-enumerable property names, but
// that's better than nothing...
@ -114,8 +114,7 @@ public class PropertySourcesPropertyValues implements PropertyValues {
}
private void processEnumerablePropertySource(EnumerablePropertySource<?> source,
PropertySourcesPropertyResolver resolver,
PropertyNamePatternsMatcher includes, Collection<String> exacts) {
PropertySourcesPropertyResolver resolver, PropertyNamePatternsMatcher includes) {
if (source.getPropertyNames().length > 0) {
for (String propertyName : source.getPropertyNames()) {
if (PropertySourcesPropertyValues.PATTERN_MATCHED_PROPERTY_SOURCES

Loading…
Cancel
Save