11package org .springframework .integration .aws .support .config .xml .parsers ;
22
3- import org .springframework .beans .factory .config .TypedStringValue ;
43import org .springframework .beans .factory .support .AbstractBeanDefinition ;
54import org .springframework .beans .factory .xml .ParserContext ;
5+ import org .springframework .integration .aws .config .xml .ValueFactory ;
66import org .springframework .integration .aws .config .xml .XmlBeanDefinitionBuilder ;
77import org .springframework .integration .aws .outbound .SqsMessageHandler ;
8+ import org .springframework .integration .aws .support .config .xml .InvertedBooleanFactoryBean ;
89import org .springframework .integration .config .xml .AbstractOutboundChannelAdapterParser ;
910import org .w3c .dom .Element ;
1011
1112public class SqsOutboundChannelAdapterParser extends AbstractOutboundChannelAdapterParser {
1213
1314 @ Override
1415 protected AbstractBeanDefinition parseConsumer (Element element , ParserContext parserContext ) {
15- var builder = XmlBeanDefinitionBuilder .newInstance (element , parserContext , SqsMessageHandler .class )
16+ return XmlBeanDefinitionBuilder .newInstance (element , parserContext , SqsMessageHandler .class )
1617 .unsupportedAttributeWarning ("failure-channel" , "resource-id-resolver" , "error-message-strategy" , "async-handler" )
1718 .addConstructorArgReference ("sqs" )
1819 .setPropertyOrExpressionStringIfAttributeDefined ("queue" )
@@ -22,19 +23,7 @@ protected AbstractBeanDefinition parseConsumer(Element element, ParserContext pa
2223 .setPropertyOrExpressionStringIfAttributeDefined ("send-timeout" )
2324 .setPropertyReferenceIfAttributeDefined ("message-converter" )
2425 .setPropertyIfAttributeDefined ("success-channel" , "outputChannelName" )
25- ;
26-
27- if (element .hasAttribute ("sync" )) {
28- var sync = element .getAttribute ("sync" );
29- if ("true" .equalsIgnoreCase (sync )) {
30- builder .getBeanDefinitionBuilder ().addPropertyValue ("async" , new TypedStringValue ("false" ));
31- } else if ("false" .equalsIgnoreCase (sync )) {
32- builder .getBeanDefinitionBuilder ().addPropertyValue ("async" , new TypedStringValue ("true" ));
33- } else {
34- builder .error ("expected boolean for 'sync' attribute" );
35- }
36- }
37-
38- return builder .build ();
26+ .setPropertyIfAttributeDefined ("sync" , "async" , ValueFactory .bean (InvertedBooleanFactoryBean .class ))
27+ .build ();
3928 }
4029}
0 commit comments