Browse Source
* 3.1.x:
Warn re Environment construction and instance vars
Disallow empty @PropertySource(value = {})
Fix @PropertySource bug with multiple values
final preparations for 3.1.1 release
added "receive-timeout" attribute to "jms:listener-container" element
pull/41/merge
11 changed files with 218 additions and 36 deletions
@ -1 +1,2 @@
@@ -1 +1,2 @@
|
||||
testbean.name=p1TestBean |
||||
testbean.name=p1TestBean |
||||
from.p1=p1Value |
||||
@ -1 +1,2 @@
@@ -1 +1,2 @@
|
||||
testbean.name=p2TestBean |
||||
testbean.name=p2TestBean |
||||
from.p2=p2Value |
||||
@ -0,0 +1,65 @@
@@ -0,0 +1,65 @@
|
||||
/* |
||||
* Copyright 2002-2012 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.core.env; |
||||
|
||||
import java.util.LinkedHashSet; |
||||
import java.util.Set; |
||||
|
||||
/** |
||||
* Composite {@link PropertySource} implementation that iterates over a set of |
||||
* {@link PropertySource} instances. Necessary in cases where multiple property sources |
||||
* share the same name, e.g. when multiple values are supplied to {@code @PropertySource}. |
||||
* |
||||
* @author Chris Beams |
||||
* @since 3.1.1 |
||||
*/ |
||||
public class CompositePropertySource extends PropertySource<Object> { |
||||
|
||||
private Set<PropertySource<?>> propertySources = new LinkedHashSet<PropertySource<?>>(); |
||||
|
||||
|
||||
/** |
||||
* Create a new {@code CompositePropertySource}. |
||||
* |
||||
* @param name the name of the property source |
||||
*/ |
||||
public CompositePropertySource(String name) { |
||||
super(name); |
||||
} |
||||
|
||||
|
||||
@Override |
||||
public Object getProperty(String name) { |
||||
for (PropertySource<?> propertySource : this.propertySources) { |
||||
Object candidate = propertySource.getProperty(name); |
||||
if (candidate != null) { |
||||
return candidate; |
||||
} |
||||
} |
||||
return null; |
||||
} |
||||
|
||||
public void addPropertySource(PropertySource<?> propertySource) { |
||||
this.propertySources.add(propertySource); |
||||
} |
||||
|
||||
@Override |
||||
public String toString() { |
||||
return String.format("%s [name='%s', propertySources=%s]", |
||||
this.getClass().getSimpleName(), this.name, this.propertySources); |
||||
} |
||||
} |
||||
Loading…
Reference in new issue