Use RelaxedDataBinder for excludes

Update `EnableAutoConfigurationImportSelector` to directly use the
RelaxedDataBinder when obtaining excludes. This removes the need for
the additional getProperties method on RelaxedPropertyResolver.

See gh-4352
This commit is contained in:
Phillip Webb
2015-10-30 14:36:53 -07:00
parent abfd139d8f
commit 0ccd33705d
3 changed files with 30 additions and 54 deletions

View File

@@ -16,9 +16,6 @@
package org.springframework.boot.bind;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import org.springframework.core.env.ConfigurableEnvironment;
@@ -131,21 +128,6 @@ public class RelaxedPropertyResolver implements PropertyResolver {
"Unable to resolve placeholders with relaxed properties");
}
/**
* Return the property values associated with the given key, or an empty
* list if the key cannot be resolved.
* @param key the property name to resolve
* @return the property values for that key
*/
public List<Object> getProperties(String key) {
Object[] singular = getProperty(key, Object[].class);
if (singular != null) {
return Arrays.asList(singular);
}
Map<String, Object> subProperties = getSubProperties(key);
return new ArrayList<Object>(subProperties.values());
}
/**
* Return a Map of all values from all underlying properties that start with the
* specified key. NOTE: this method can only be used if the underlying resolver is a

View File

@@ -17,7 +17,6 @@
package org.springframework.boot.bind;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
@@ -31,7 +30,6 @@ import org.springframework.core.env.MutablePropertySources;
import org.springframework.core.env.PropertiesPropertySource;
import org.springframework.core.env.StandardEnvironment;
import static org.hamcrest.Matchers.contains;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.nullValue;
import static org.junit.Assert.assertEquals;
@@ -169,34 +167,6 @@ public class RelaxedPropertyResolverTests {
assertThat(this.resolver.getProperty("foo-bar"), equalTo("spam"));
}
@Test
public void commaSeparatedProperties() throws Exception {
this.source.put("x.y.foo", "1,2");
this.resolver = new RelaxedPropertyResolver(this.environment, "x.y.");
List<Object> properties = this.resolver.getProperties("foo");
assertThat(properties.size(), equalTo(2));
assertThat(properties, contains((Object) "1", (Object) "2"));
}
@Test
public void commaSeparatedPropertiesSingleValue() throws Exception {
this.source.put("x.y.foo", "1");
this.resolver = new RelaxedPropertyResolver(this.environment, "x.y.");
List<Object> properties = this.resolver.getProperties("foo");
assertThat(properties.size(), equalTo(1));
assertThat(properties, contains((Object) "1"));
}
@Test
public void indexedProperties() throws Exception {
this.source.put("x.y.foo[0]", "1");
this.source.put("x.y.foo[1]", "2");
this.resolver = new RelaxedPropertyResolver(this.environment, "x.y.");
List<Object> properties = this.resolver.getProperties("foo");
assertThat(properties.size(), equalTo(2));
assertThat(properties, contains((Object) "1", (Object) "2"));
}
@Test
public void subProperties() throws Exception {
this.source.put("x.y.my-sub.a.b", "1");