GH-2989 - Make SpEL converter stringify primitive values
Resolves #2989
This commit is contained in:
committed by
Oleg Zhurakousky
parent
6aa9062247
commit
268423327b
@@ -69,7 +69,7 @@ public class SpelExpressionConverterConfiguration {
|
||||
@Bean
|
||||
@ConfigurationPropertiesBinding
|
||||
@IntegrationConverter
|
||||
public Converter<String, Expression> spelConverter(ConfigurableApplicationContext context) {
|
||||
public Converter<Object, Expression> spelConverter(ConfigurableApplicationContext context) {
|
||||
SpelConverter converter = new SpelConverter();
|
||||
ConfigurableConversionService cs = (ConfigurableConversionService) context.getBeanFactory().getConversionService();
|
||||
if (cs != null) {
|
||||
@@ -83,7 +83,7 @@ public class SpelExpressionConverterConfiguration {
|
||||
*
|
||||
* @author Eric Bottard
|
||||
*/
|
||||
public static class SpelConverter implements Converter<String, Expression> {
|
||||
public static class SpelConverter implements Converter<Object, Expression> {
|
||||
|
||||
private SpelExpressionParser parser = new SpelExpressionParser();
|
||||
|
||||
@@ -93,9 +93,12 @@ public class SpelExpressionConverterConfiguration {
|
||||
private EvaluationContext evaluationContext;
|
||||
|
||||
@Override
|
||||
public Expression convert(String source) {
|
||||
public Expression convert(Object source) {
|
||||
try {
|
||||
Expression expression = this.parser.parseExpression(source);
|
||||
if (!(source instanceof String)) {
|
||||
source = String.valueOf(source); // see https://github.com/spring-cloud/spring-cloud-stream/issues/2989
|
||||
}
|
||||
Expression expression = this.parser.parseExpression((String) source);
|
||||
if (expression instanceof SpelExpression) {
|
||||
((SpelExpression) expression)
|
||||
.setEvaluationContext(this.evaluationContext);
|
||||
|
||||
Reference in New Issue
Block a user