diff --git a/common/source/java/ch/systemsx/cisd/common/spring/ExposablePropertyPlaceholderConfigurer.java b/common/source/java/ch/systemsx/cisd/common/spring/ExposablePropertyPlaceholderConfigurer.java index 8fe737b91f516740a854d73513cc4451e03c128a..8dce3f7fc599daf9a468c0427aac278ca7fa6ba8 100644 --- a/common/source/java/ch/systemsx/cisd/common/spring/ExposablePropertyPlaceholderConfigurer.java +++ b/common/source/java/ch/systemsx/cisd/common/spring/ExposablePropertyPlaceholderConfigurer.java @@ -24,6 +24,8 @@ import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer; import org.springframework.core.Constants; +import org.springframework.util.PropertyPlaceholderHelper; +import org.springframework.util.PropertyPlaceholderHelper.PlaceholderResolver; import org.springframework.util.StringUtils; import ch.systemsx.cisd.common.properties.ExtendedProperties; @@ -111,6 +113,16 @@ public class ExposablePropertyPlaceholderConfigurer extends PropertyPlaceholderC private String getResolvedProperty(final Properties props, final String key) { - return resolvePlaceholder(key, props, systemPropertiesMode); + PropertyPlaceholderHelper helper = new PropertyPlaceholderHelper( + placeholderPrefix, placeholderSuffix, valueSeparator, ignoreUnresolvablePlaceholders); + String resolvedPlaceholder = resolvePlaceholder(key, props, systemPropertiesMode); + return helper.replacePlaceholders(resolvedPlaceholder, new PlaceholderResolver() + { + @Override + public String resolvePlaceholder(String placeholderName) + { + return ExposablePropertyPlaceholderConfigurer.this.resolvePlaceholder(placeholderName, props, systemPropertiesMode); + } + }); } } \ No newline at end of file