41
41
* @author Mark Fisher
42
42
* @author Artem Bilan
43
43
* @author Liujiong
44
+ * @author Kris Jacyna
44
45
* @since 2.1
45
46
*/
46
47
public class EnricherParser extends AbstractConsumerEndpointParser {
@@ -51,6 +52,7 @@ protected BeanDefinitionBuilder parseHandler(Element element, ParserContext pars
51
52
52
53
IntegrationNamespaceUtils .setReferenceIfAttributeDefined (builder , element , "request-channel" );
53
54
IntegrationNamespaceUtils .setReferenceIfAttributeDefined (builder , element , "reply-channel" );
55
+ IntegrationNamespaceUtils .setReferenceIfAttributeDefined (builder , element , "error-channel" );
54
56
IntegrationNamespaceUtils .setValueIfAttributeDefined (builder , element , "request-timeout" );
55
57
IntegrationNamespaceUtils .setValueIfAttributeDefined (builder , element , "reply-timeout" );
56
58
IntegrationNamespaceUtils .setValueIfAttributeDefined (builder , element , "requires-reply" );
@@ -69,19 +71,21 @@ protected BeanDefinitionBuilder parseHandler(Element element, ParserContext pars
69
71
boolean hasAttributeExpression = StringUtils .hasText (expression );
70
72
boolean hasAttributeNullResultExpression = StringUtils .hasText (nullResultExpression );
71
73
72
- if (hasAttributeValue && hasAttributeExpression ){
74
+ if (hasAttributeValue && hasAttributeExpression ) {
73
75
parserContext .getReaderContext ().error ("Only one of 'value' or 'expression' is allowed" , element );
74
76
}
75
77
76
- if (!hasAttributeValue && !hasAttributeExpression && !hasAttributeNullResultExpression ){
77
- parserContext .getReaderContext ().error ("One of 'value' or 'expression' or 'null-result-expression' is required" , element );
78
+ if (!hasAttributeValue && !hasAttributeExpression && !hasAttributeNullResultExpression ) {
79
+ parserContext .getReaderContext ()
80
+ .error ("One of 'value' or 'expression' or 'null-result-expression' is required" , element );
78
81
}
79
82
80
83
BeanDefinition expressionDef = null ;
81
84
BeanDefinition nullResultExpressionExpressionDef ;
82
85
83
86
if (hasAttributeValue ) {
84
- BeanDefinitionBuilder expressionBuilder = BeanDefinitionBuilder .genericBeanDefinition (ValueExpression .class );
87
+ BeanDefinitionBuilder expressionBuilder =
88
+ BeanDefinitionBuilder .genericBeanDefinition (ValueExpression .class );
85
89
if (StringUtils .hasText (type )) {
86
90
expressionBuilder .addConstructorArgValue (new TypedStringValue (value , type ));
87
91
}
@@ -93,19 +97,20 @@ protected BeanDefinitionBuilder parseHandler(Element element, ParserContext pars
93
97
else if (hasAttributeExpression ) {
94
98
if (StringUtils .hasText (type )) {
95
99
parserContext .getReaderContext ().error ("The 'type' attribute for '<property>' of '<enricher>' " +
96
- "is not allowed with an 'expression' attribute." , element );
100
+ "is not allowed with an 'expression' attribute." , element );
97
101
}
98
102
expressionDef = BeanDefinitionBuilder
99
103
.genericBeanDefinition (ExpressionFactoryBean .class )
100
104
.addConstructorArgValue (expression )
101
105
.getBeanDefinition ();
102
106
}
103
- if (expressionDef != null ){
107
+ if (expressionDef != null ) {
104
108
expressions .put (name , expressionDef );
105
109
}
106
110
if (hasAttributeNullResultExpression ) {
107
- nullResultExpressionExpressionDef = BeanDefinitionBuilder .genericBeanDefinition (ExpressionFactoryBean .class )
108
- .addConstructorArgValue (nullResultExpression ).getBeanDefinition ();
111
+ nullResultExpressionExpressionDef =
112
+ BeanDefinitionBuilder .genericBeanDefinition (ExpressionFactoryBean .class )
113
+ .addConstructorArgValue (nullResultExpression ).getBeanDefinition ();
109
114
nullResultExpressions .put (name , nullResultExpressionExpressionDef );
110
115
}
111
116
}
@@ -129,21 +134,23 @@ else if (hasAttributeExpression) {
129
134
boolean hasAttributeValue = StringUtils .hasText (valueElementValue );
130
135
boolean hasAttributeExpression = StringUtils .hasText (expressionElementValue );
131
136
boolean hasAttributeNullResultExpression = StringUtils .hasText (nullResultHeaderExpression );
132
- if (hasAttributeValue && hasAttributeExpression ){
137
+ if (hasAttributeValue && hasAttributeExpression ) {
133
138
parserContext .getReaderContext ().error ("Only one of '" + "value" + "' or '"
134
- + "expression" + "' is allowed" , subElement );
139
+ + "expression" + "' is allowed" , subElement );
135
140
}
136
141
137
- if (!hasAttributeValue && !hasAttributeExpression && !hasAttributeNullResultExpression ){
138
- parserContext .getReaderContext ().error ("One of 'value' or 'expression' or 'null-result-expression' is required" , subElement );
142
+ if (!hasAttributeValue && !hasAttributeExpression && !hasAttributeNullResultExpression ) {
143
+ parserContext .getReaderContext ()
144
+ .error ("One of 'value' or 'expression' or 'null-result-expression' is required" , subElement );
139
145
}
140
146
BeanDefinition expressionDef = null ;
141
147
if (hasAttributeValue ) {
142
148
expressionDef = new RootBeanDefinition (LiteralExpression .class );
143
149
expressionDef .getConstructorArgumentValues ().addGenericArgumentValue (valueElementValue );
144
150
}
145
151
else if (hasAttributeExpression ) {
146
- expressionDef = IntegrationNamespaceUtils .createExpressionDefIfAttributeDefined ("expression" , subElement );
152
+ expressionDef =
153
+ IntegrationNamespaceUtils .createExpressionDefIfAttributeDefined ("expression" , subElement );
147
154
}
148
155
149
156
if (StringUtils .hasText (subElement .getAttribute ("expression" ))
@@ -167,7 +174,8 @@ else if (hasAttributeExpression) {
167
174
.genericBeanDefinition (ExpressionEvaluatingHeaderValueMessageProcessor .class )
168
175
.addConstructorArgValue (nullResultExpressionDefinition )
169
176
.addConstructorArgValue (subElement .getAttribute ("type" ));
170
- IntegrationNamespaceUtils .setValueIfAttributeDefined (nullResultValueProcessorBuilder , subElement , "overwrite" );
177
+ IntegrationNamespaceUtils .setValueIfAttributeDefined (nullResultValueProcessorBuilder , subElement ,
178
+ "overwrite" );
171
179
nullResultHeaderExpressions .put (name , nullResultValueProcessorBuilder .getBeanDefinition ());
172
180
}
173
181
}
@@ -184,8 +192,9 @@ else if (hasAttributeExpression) {
184
192
String requestPayloadExpression = element .getAttribute ("request-payload-expression" );
185
193
186
194
if (StringUtils .hasText (requestPayloadExpression )) {
187
- BeanDefinitionBuilder expressionBuilder = BeanDefinitionBuilder .genericBeanDefinition (ExpressionFactoryBean .class );
188
- expressionBuilder .addConstructorArgValue (requestPayloadExpression );
195
+ BeanDefinitionBuilder expressionBuilder =
196
+ BeanDefinitionBuilder .genericBeanDefinition (ExpressionFactoryBean .class )
197
+ .addConstructorArgValue (requestPayloadExpression );
189
198
builder .addPropertyValue ("requestPayloadExpression" , expressionBuilder .getBeanDefinition ());
190
199
}
191
200
0 commit comments