Skip to content

Commit 178b5b6

Browse files
committed
refactor: XmlBeanDefinitionBuilder attributes first
1 parent a598971 commit 178b5b6

File tree

8 files changed

+84
-85
lines changed

8 files changed

+84
-85
lines changed

int-aws-support/src/main/java/org/springframework/integration/aws/config/xml/S3MessageHandlerParser.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ public XmlBeanDefinitionBuilder parse(Element element, ParserContext parserConte
1818
.addExclusiveConstructorArgReference("s3", "transfer-manager")
1919
.addExclusiveConstructorArgValue("bucket", "bucket-expression", TypedStringValue::new, new ExpressionBeanDefinitionFactory()::createBeanDefinition)
2020
.configure(def -> def.addConstructorArgValue(produceReply))
21-
.setPropertyValueIfAttributeDefined("key-expression")
22-
.setPropertyValueIfAttributeDefined("destination-bucket-expression")
23-
.setPropertyValueIfAttributeDefined("destination-key-expression")
24-
.setPropertyValueIfExclusiveAttributeDefined("command", "command-expression")
21+
.setPropertyOrExpressionIfAttributeDefined("key")
22+
.setPropertyOrExpressionIfAttributeDefined("destination-bucket")
23+
.setPropertyOrExpressionIfAttributeDefined("destination-key")
24+
.setPropertyOrExpressionIfAttributeDefined("command")
2525
.setPropertyReferenceIfAttributeDefined("upload-metadata-provider")
2626
;
2727
}

int-aws-support/src/main/java/org/springframework/integration/aws/config/xml/S3OutboundGatewayParser.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ protected String getInputChannelAttributeName() {
1616
protected BeanDefinitionBuilder parseHandler(Element element, ParserContext parserContext) {
1717
return new S3MessageHandlerParser(true)
1818
.parse(element, parserContext)
19-
.setPropertyValue("outputChannelName", "reply-channel")
20-
.setPropertyValue("sendTimeout", "reply-timeout")
19+
.setProperty("reply-channel", "outputChannelName")
20+
.setProperty("reply-timeout", "sendTimeout")
2121
.getBeanDefinitionBuilder()
2222
;
2323
}

int-aws-support/src/main/java/org/springframework/integration/aws/config/xml/SnsInboundChannelAdapterParser.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ protected AbstractBeanDefinition doParse(Element element, ParserContext parserCo
1313
return XmlBeanDefinitionBuilder.newInstance(element, parserContext, SnsInboundChannelAdapter.class)
1414
.addConstructorArgReference("sns")
1515
.addConstructorArgValue("path")
16-
.setPropertyValue("handle-notification-status")
17-
.setPropertyValueIfAttributeDefined("requestTimeout", "send-timeout")
18-
.setPropertyValueIfAttributeDefined("errorChannelName", "error-channel")
19-
.setPropertyValueIfAttributeDefined("payloadExpression", "payload-expression", new ExpressionBeanDefinitionFactory()::createBeanDefinition)
16+
.setProperty("handle-notification-status")
17+
.setPropertyIfAttributeDefined("send-timeout", "requestTimeout")
18+
.setPropertyIfAttributeDefined("error-channel", "errorChannelName")
19+
.setPropertyIfAttributeDefined("payload-expression", "payloadExpression", new ExpressionBeanDefinitionFactory()::createBeanDefinition)
2020
.build();
2121
}
2222
}

int-aws-support/src/main/java/org/springframework/integration/aws/config/xml/SnsOutboundChannelAdapterParser.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ protected AbstractBeanDefinition parseConsumer(Element element, ParserContext pa
1313
return XmlBeanDefinitionBuilder.newInstance(element, parserContext, SnsMessageHandler.class)
1414
.unsupportedAttributeWarning("failure-channel", "resource-id-resolver", "error-message-strategy", "async-handler")
1515
.addConstructorArgReference("sns")
16-
.setExpressionPropertyIfAttributeDefined("topic-arn")
17-
.setExpressionPropertyIfAttributeDefined("subject")
18-
.setExpressionPropertyIfAttributeDefined("message-group-id")
19-
.setExpressionPropertyIfAttributeDefined("message-deduplication-id")
20-
.setExpressionPropertyIfAttributeDefined("body")
21-
.setExpressionValueIfAttributeDefined("send-timeout")
22-
.setPropertyValueIfAttributeDefined("outputChannelName", "success-channel")
16+
.setPropertyOrExpressionIfAttributeDefined("topic-arn")
17+
.setPropertyOrExpressionIfAttributeDefined("subject")
18+
.setPropertyOrExpressionIfAttributeDefined("message-group-id")
19+
.setPropertyOrExpressionIfAttributeDefined("message-deduplication-id")
20+
.setPropertyOrExpressionIfAttributeDefined("body")
21+
.setPropertyOrExpressionIfAttributeDefined("send-timeout")
22+
.setPropertyIfAttributeDefined("success-channel", "outputChannelName")
2323
.build();
2424
}
2525
}

int-aws-support/src/main/java/org/springframework/integration/aws/config/xml/SqsMessageDrivenChannelAdapterParser.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ protected AbstractBeanDefinition doParse(Element element, ParserContext parserCo
1414
.unsupportedAttributeWarning("resource-id-resolver")
1515
.addConstructorArgReference("sqs")
1616
.addConstructorArgValue("queues")
17-
.setPropertyValueIfAttributeDefined("send-timeout")
18-
.setPropertyValueIfAttributeDefined("errorChannelName", "error-channel")
19-
.setPropertyReferenceIfAttributeDefined("channelResolver", "destination-resolver")
17+
.setPropertyIfAttributeDefined("send-timeout")
18+
.setPropertyIfAttributeDefined("error-channel", "errorChannelName")
19+
.setPropertyReferenceIfAttributeDefined("destination-resolver", "channelResolver")
2020
.getBeanDefinitionBuilder()
2121
.addPropertyValue("outputChannelName", channelName)
2222
.addPropertyValue("sqsContainerOptions", sqsContainerOptions(element, parserContext))
@@ -29,12 +29,12 @@ private AbstractBeanDefinition sqsContainerOptions(Element element, ParserContex
2929
.warning("NO_REDRIVE message-deletion-policy is not supported and will be handled as ON_SUCCESS", element);
3030
}
3131
return XmlBeanDefinitionBuilder.newInstance(element, parserContext, SqsContainerOptionsFactoryBean.class)
32-
.setPropertyValueIfAttributeDefined("max-number-of-messages")
33-
.setPropertyValueIfAttributeDefined("visibility-timeout")
34-
.setPropertyValueIfAttributeDefined("queue-stop-timeout")
35-
.setPropertyValueIfAttributeDefined("wait-time-out")
36-
.setPropertyValueIfAttributeDefined("message-deletion-policy")
37-
.setPropertyValueIfAttributeDefined("fail-on-missing-queue")
32+
.setPropertyIfAttributeDefined("max-number-of-messages")
33+
.setPropertyIfAttributeDefined("visibility-timeout")
34+
.setPropertyIfAttributeDefined("queue-stop-timeout")
35+
.setPropertyIfAttributeDefined("wait-time-out")
36+
.setPropertyIfAttributeDefined("message-deletion-policy")
37+
.setPropertyIfAttributeDefined("fail-on-missing-queue")
3838
.setPropertyReferenceIfAttributeDefined("task-executor")
3939
.getBeanDefinitionBuilder()
4040
.applyCustomizers(bean -> bean.setAutowireCandidate(false))

int-aws-support/src/main/java/org/springframework/integration/aws/config/xml/SqsOutboundChannelAdapterParser.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ protected AbstractBeanDefinition parseConsumer(Element element, ParserContext pa
1414
var builder = XmlBeanDefinitionBuilder.newInstance(element, parserContext, SqsMessageHandler.class)
1515
.unsupportedAttributeWarning("failure-channel", "resource-id-resolver", "error-message-strategy", "async-handler")
1616
.addConstructorArgReference("sqs")
17-
.setExpressionValueIfAttributeDefined("queue")
18-
.setExpressionValueIfAttributeDefined("delay")
19-
.setExpressionValueIfAttributeDefined("message-group-id")
20-
.setExpressionValueIfAttributeDefined("message-deduplication-id")
21-
.setExpressionValueIfAttributeDefined("send-timeout")
17+
.setPropertyOrExpressionStringIfAttributeDefined("queue")
18+
.setPropertyOrExpressionStringIfAttributeDefined("delay")
19+
.setPropertyOrExpressionStringIfAttributeDefined("message-group-id")
20+
.setPropertyOrExpressionStringIfAttributeDefined("message-deduplication-id")
21+
.setPropertyOrExpressionStringIfAttributeDefined("send-timeout")
2222
.setPropertyReferenceIfAttributeDefined("message-converter")
23-
.setPropertyValueIfAttributeDefined("outputChannelName", "success-channel")
23+
.setPropertyIfAttributeDefined("success-channel", "outputChannelName")
2424
;
2525

2626
if (element.hasAttribute("sync")) {

int-aws-support/src/main/java/org/springframework/integration/aws/config/xml/XmlBeanDefinitionBuilder.java

Lines changed: 28 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313

1414
import static org.springframework.core.Conventions.attributeNameToPropertyName;
1515
import static org.springframework.integration.config.xml.IntegrationNamespaceUtils.setReferenceIfAttributeDefined;
16-
import static org.springframework.integration.config.xml.IntegrationNamespaceUtils.setValueIfAttributeDefined;
1716

1817
public class XmlBeanDefinitionBuilder {
1918

@@ -61,11 +60,10 @@ public XmlBeanDefinitionBuilder addExclusiveConstructorArgValue(String attribute
6160
}
6261

6362
public XmlBeanDefinitionBuilder setPropertyReference(String attributeName) {
64-
builder.addPropertyReference(attributeNameToPropertyName(attributeName), element.getAttribute(attributeName));
65-
return this;
63+
return setPropertyReference(attributeName, attributeNameToPropertyName(attributeName));
6664
}
6765

68-
public XmlBeanDefinitionBuilder setPropertyReference(String propertyName, String attributeName) {
66+
public XmlBeanDefinitionBuilder setPropertyReference(String attributeName, String propertyName) {
6967
builder.addPropertyReference(propertyName, element.getAttribute(attributeName));
7068
return this;
7169
}
@@ -75,61 +73,62 @@ public XmlBeanDefinitionBuilder setPropertyReferenceIfAttributeDefined(String at
7573
return this;
7674
}
7775

78-
public XmlBeanDefinitionBuilder setPropertyReferenceIfAttributeDefined(String propertyName, String attributeName) {
76+
public XmlBeanDefinitionBuilder setPropertyReferenceIfAttributeDefined(String attributeName, String propertyName) {
7977
setReferenceIfAttributeDefined(builder, element, attributeName, propertyName);
8078
return this;
8179
}
8280

83-
public XmlBeanDefinitionBuilder setPropertyValue(String attributeName) {
84-
builder.addPropertyValue(attributeNameToPropertyName(attributeName), new TypedStringValue(element.getAttribute(attributeName)));
85-
return this;
81+
public XmlBeanDefinitionBuilder setProperty(String attributeName) {
82+
return setProperty(attributeName, attributeNameToPropertyName(attributeName));
8683
}
8784

88-
public XmlBeanDefinitionBuilder setPropertyValue(String propertyName, String attributeName) {
89-
builder.addPropertyValue(propertyName, new TypedStringValue(element.getAttribute(attributeName)));
90-
return this;
85+
public XmlBeanDefinitionBuilder setProperty(String attributeName, String propertyName) {
86+
return setProperty(attributeName, propertyName, TypedStringValue::new);
9187
}
9288

93-
public XmlBeanDefinitionBuilder setPropertyValueIfAttributeDefined(String attributeName) {
94-
setValueIfAttributeDefined(builder, element, attributeName);
89+
public XmlBeanDefinitionBuilder setProperty(String attributeName, String propertyName, Function<String, ?> attributeValueMapper) {
90+
builder.addPropertyValue(propertyName, attributeValueMapper.apply(element.getAttribute(attributeName)));
9591
return this;
9692
}
9793

98-
public XmlBeanDefinitionBuilder setPropertyValueIfAttributeDefined(String propertyName, String attributeName) {
99-
setValueIfAttributeDefined(builder, element, attributeName, propertyName);
100-
return this;
94+
public XmlBeanDefinitionBuilder setPropertyIfAttributeDefined(String attributeName) {
95+
return setPropertyIfAttributeDefined(attributeName, attributeNameToPropertyName(attributeName));
96+
}
97+
98+
public XmlBeanDefinitionBuilder setPropertyIfAttributeDefined(String attributeName, String propertyName) {
99+
return setPropertyIfAttributeDefined(attributeName, propertyName, TypedStringValue::new);
101100
}
102101

103-
public XmlBeanDefinitionBuilder setPropertyValueIfAttributeDefined(String propertyName, String attributeName, Function<String, ?> attributeValueMapper) {
102+
public XmlBeanDefinitionBuilder setPropertyIfAttributeDefined(String attributeName, String propertyName, Function<String, ?> attributeValueMapper) {
104103
var value = element.getAttribute(attributeName);
105104
if (StringUtils.hasText(value)) {
106105
builder.addPropertyValue(propertyName, attributeValueMapper.apply(value));
107106
}
108107
return this;
109108
}
110109

111-
public XmlBeanDefinitionBuilder setExpressionPropertyIfAttributeDefined(String attribute) {
112-
return setExpressionPropertyIfAttributeDefined(attribute, attribute + "-expression");
110+
public XmlBeanDefinitionBuilder setPropertyOrExpressionStringIfAttributeDefined(String attribute) {
111+
return setPropertyIfExclusiveAttributeDefined(attribute, attribute + "-expression", attributeNameToPropertyName(attribute), attributeNameToPropertyName(attribute + "-expression-string"));
113112
}
114113

115-
public XmlBeanDefinitionBuilder setExpressionPropertyIfAttributeDefined(String attribute, String expressionAttribute) {
116-
return setExpressionPropertyIfAttributeDefined(attribute, expressionAttribute, attributeNameToPropertyName(attribute), attributeNameToPropertyName(expressionAttribute));
114+
public XmlBeanDefinitionBuilder setPropertyOrExpressionIfAttributeDefined(String attribute) {
115+
return setPropertyOrExpressionIfAttributeDefined(attribute, attribute + "-expression");
117116
}
118117

119-
public XmlBeanDefinitionBuilder setExpressionPropertyIfAttributeDefined(String attribute, String expressionAttribute, String property, String expressionProperty) {
120-
return setIfExclusiveAttributeDefined(attribute, expressionAttribute, (b, v) -> b.addPropertyValue(property, v), (b, v) -> b.addPropertyValue(expressionProperty, new ExpressionBeanDefinitionFactory().createBeanDefinition(v)));
118+
public XmlBeanDefinitionBuilder setPropertyOrExpressionIfAttributeDefined(String attribute, String expressionAttribute) {
119+
return setPropertyOrExpressionIfAttributeDefined(attribute, expressionAttribute, attributeNameToPropertyName(attribute), attributeNameToPropertyName(expressionAttribute));
121120
}
122121

123-
public XmlBeanDefinitionBuilder setExpressionValueIfAttributeDefined(String attribute) {
124-
return setPropertyValueIfExclusiveAttributeDefined(attribute, attribute + "-expression", attributeNameToPropertyName(attribute), attributeNameToPropertyName(attribute + "-expression-string"));
122+
public XmlBeanDefinitionBuilder setPropertyOrExpressionIfAttributeDefined(String attribute, String expressionAttribute, String property, String expressionProperty) {
123+
return setIfExclusiveAttributeDefined(attribute, expressionAttribute, (b, v) -> b.addPropertyValue(property, new TypedStringValue(v)), (b, v) -> b.addPropertyValue(expressionProperty, new ExpressionBeanDefinitionFactory().createBeanDefinition(v)));
125124
}
126125

127-
public XmlBeanDefinitionBuilder setPropertyValueIfExclusiveAttributeDefined(String attribute1, String attribute2) {
128-
return setPropertyValueIfExclusiveAttributeDefined(attribute1, attribute2, attributeNameToPropertyName(attribute1), attributeNameToPropertyName(attribute2));
126+
public XmlBeanDefinitionBuilder setPropertyIfExclusiveAttributeDefined(String attribute1, String attribute2) {
127+
return setPropertyIfExclusiveAttributeDefined(attribute1, attribute2, attributeNameToPropertyName(attribute1), attributeNameToPropertyName(attribute2));
129128
}
130129

131-
public XmlBeanDefinitionBuilder setPropertyValueIfExclusiveAttributeDefined(String attribute1, String attribute2, String property1, String property2) {
132-
return setIfExclusiveAttributeDefined(attribute1, attribute2, (b, v) -> b.addPropertyValue(property1, v), (b, v) -> b.addPropertyValue(property2, v));
130+
public XmlBeanDefinitionBuilder setPropertyIfExclusiveAttributeDefined(String attribute1, String attribute2, String property1, String property2) {
131+
return setIfExclusiveAttributeDefined(attribute1, attribute2, (b, v) -> b.addPropertyValue(property1, new TypedStringValue(v)), (b, v) -> b.addPropertyValue(property2, new TypedStringValue(v)));
133132
}
134133

135134
public XmlBeanDefinitionBuilder setExclusiveAttribute(String attribute1, String attribute2, BiConsumer<BeanDefinitionBuilder, String> arg1, BiConsumer<BeanDefinitionBuilder, String> arg2) {

0 commit comments

Comments
 (0)