@ -32,10 +32,12 @@ import org.springframework.core.env.Environment;
* properties to be sourced from the Spring environment .
* properties to be sourced from the Spring environment .
*
*
* @author Phillip Webb
* @author Phillip Webb
* @author Eddú Meléndez
* /
* /
class SpringPropertyAction extends Action {
class SpringPropertyAction extends Action {
private static final String SOURCE_ATTRIBUTE = "source" ;
private static final String SOURCE_ATTRIBUTE = "source" ;
private static final String DEFAULT_VALUE_ATTRIBUTE = "defaultValue" ;
private final Environment environment ;
private final Environment environment ;
@ -49,18 +51,22 @@ class SpringPropertyAction extends Action {
String name = attributes . getValue ( NAME_ATTRIBUTE ) ;
String name = attributes . getValue ( NAME_ATTRIBUTE ) ;
String source = attributes . getValue ( SOURCE_ATTRIBUTE ) ;
String source = attributes . getValue ( SOURCE_ATTRIBUTE ) ;
Scope scope = ActionUtil . stringToScope ( attributes . getValue ( SCOPE_ATTRIBUTE ) ) ;
Scope scope = ActionUtil . stringToScope ( attributes . getValue ( SCOPE_ATTRIBUTE ) ) ;
String defaultValue = attributes . getValue ( DEFAULT_VALUE_ATTRIBUTE ) ;
if ( OptionHelper . isEmpty ( name ) | | OptionHelper . isEmpty ( source ) ) {
if ( OptionHelper . isEmpty ( name ) | | OptionHelper . isEmpty ( source ) ) {
addError (
addError (
"The \"name\" and \"source\" attributes of <springProperty> must be set" ) ;
"The \"name\" and \"source\" attributes of <springProperty> must be set" ) ;
}
}
ActionUtil . setProperty ( ic , name , getValue ( source ) , scope ) ;
ActionUtil . setProperty ( ic , name , getValue ( source , defaultValue ) , scope ) ;
}
}
private String getValue ( String source ) {
private String getValue ( String source , String defaultValue ) {
if ( this . environment = = null ) {
if ( this . environment = = null ) {
addWarn ( "No Spring Environment available to resolve " + source ) ;
addWarn ( "No Spring Environment available to resolve " + source ) ;
return null ;
return null ;
}
}
if ( source = = null ) {
return defaultValue ;
}
String value = this . environment . getProperty ( source ) ;
String value = this . environment . getProperty ( source ) ;
if ( value ! = null ) {
if ( value ! = null ) {
return value ;
return value ;