INT-3902: XML: SmartLifecycle, Order Attributes

JIRA: https://jira.spring.io/browse/INT-3902

Polishing

Polishing - PR Comments

Introduce `RouterFactoryBean.setSendTimeout` and deprecate `setTimeout`
This commit is contained in:
Gary Russell
2016-01-06 13:22:48 -05:00
committed by Artem Bilan
parent 74cbc58698
commit d684dc4d0e
31 changed files with 487 additions and 143 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2010 the original author or authors.
* Copyright 2002-2016 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,6 +17,7 @@
package org.springframework.integration.xml.config;
import org.w3c.dom.Element;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.ParserContext;
import org.springframework.integration.config.xml.AbstractTransformerParser;
@@ -38,8 +39,8 @@ public class MarshallingTransformerParser extends AbstractTransformerParser {
@Override
protected void parseTransformer(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) {
String resultTransformer = element.getAttribute("result-transformer");
IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "result-type", "resultType");
IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "result-factory", "resultFactoryName");
IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "result-type", "resultType");
IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "result-factory", "resultFactoryName");
String marshaller = element.getAttribute("marshaller");
Assert.hasText(marshaller, "the 'marshaller' attribute is required");
builder.addConstructorArgReference(marshaller);

View File

@@ -33,13 +33,13 @@ import org.springframework.util.StringUtils;
/**
* Parser for the <xpath-filter> element.
*
*
* @author Mark Fisher
* @since 2.1
*/
public class XPathFilterParser extends AbstractConsumerEndpointParser {
private XPathExpressionParser xpathParser = new XPathExpressionParser();
private final XPathExpressionParser xpathParser = new XPathExpressionParser();
@Override
@@ -65,6 +65,7 @@ public class XPathFilterParser extends AbstractConsumerEndpointParser {
builder.addPropertyValue("targetObject", selectorBuilder.getBeanDefinition());
IntegrationNamespaceUtils.setReferenceIfAttributeDefined(builder, element, "discard-channel");
IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "throw-exception-on-rejection");
IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "send-timeout");
return builder;
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2015 the original author or authors.
* Copyright 2002-2016 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -30,6 +30,7 @@ import org.springframework.util.StringUtils;
/**
* @author Jonas Partner
* @author Artem Bilan
* @author Gary Russell
*/
public class XPathMessageSplitterParser extends AbstractConsumerEndpointParser {
@@ -55,6 +56,7 @@ public class XPathMessageSplitterParser extends AbstractConsumerEndpointParser {
IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "apply-sequence");
IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "iterator");
IntegrationNamespaceUtils.setReferenceIfAttributeDefined(builder, element, "output-properties");
IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "send-timeout");
return builder;
}

View File

@@ -16,7 +16,6 @@
package org.springframework.integration.xml.config;
import org.springframework.integration.xml.selector.XmlValidatingMessageSelector;
import org.w3c.dom.Element;
import org.springframework.beans.factory.BeanDefinitionStoreException;
@@ -25,6 +24,7 @@ import org.springframework.beans.factory.xml.ParserContext;
import org.springframework.integration.config.FilterFactoryBean;
import org.springframework.integration.config.xml.AbstractConsumerEndpointParser;
import org.springframework.integration.config.xml.IntegrationNamespaceUtils;
import org.springframework.integration.xml.selector.XmlValidatingMessageSelector;
import org.springframework.util.StringUtils;
/**
@@ -60,6 +60,7 @@ public class XmlPayloadValidatingFilterParser extends AbstractConsumerEndpointPa
}
IntegrationNamespaceUtils.setValueIfAttributeDefined(selectorBuilder, element, "throw-exception-on-rejection");
filterBuilder.addPropertyValue("targetObject", selectorBuilder.getBeanDefinition());
IntegrationNamespaceUtils.setValueIfAttributeDefined(filterBuilder, element, "send-timeout");
return filterBuilder;
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2013 the original author or authors.
* Copyright 2002-2016 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -38,6 +38,7 @@ import org.springframework.util.xml.DomUtils;
* @author Oleg Zhurakousky
* @author Mike Bazos
* @author liujiong
* @author Gary Russell
*/
public class XsltPayloadTransformerParser extends AbstractTransformerParser {
@@ -51,7 +52,7 @@ public class XsltPayloadTransformerParser extends AbstractTransformerParser {
String xslResource = element.getAttribute("xsl-resource");
String xslTemplates = element.getAttribute("xsl-templates");
String resultTransformer = element.getAttribute("result-transformer");
IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "result-type");
IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "result-type");
IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "result-factory", "resultFactoryName");
String transformerFactoryClass = element.getAttribute("transformer-factory-class");
IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "xslt-param-headers");

View File

@@ -822,27 +822,6 @@
<xsd:element ref="integration:poller" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string"/>
<xsd:attribute name="input-channel" type="xsd:string">
<xsd:annotation>
<xsd:appinfo>
<tool:annotation kind="ref">
<tool:expected-type type="org.springframework.messaging.MessageChannel"/>
</tool:annotation>
</xsd:appinfo>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="output-channel" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
Message Channel where you want accepted messages to be sent.
</xsd:documentation>
<xsd:appinfo>
<tool:annotation kind="ref">
<tool:expected-type type="org.springframework.messaging.MessageChannel" />
</tool:annotation>
</xsd:appinfo>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="discard-channel" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
@@ -856,6 +835,7 @@
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="throw-exception-on-rejection" type="xsd:boolean" default="false"/>
<xsd:attributeGroup ref="integration:inputOutputChannelGroup"/>
</xsd:complexType>
<xsd:complexType name="inputOutputEndpoint">
@@ -863,24 +843,7 @@
<xsd:element ref="integration:poller" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string"/>
<xsd:attribute name="input-channel" type="xsd:string">
<xsd:annotation>
<xsd:appinfo>
<tool:annotation kind="ref">
<tool:expected-type type="org.springframework.messaging.MessageChannel"/>
</tool:annotation>
</xsd:appinfo>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="output-channel" type="xsd:string">
<xsd:annotation>
<xsd:appinfo>
<tool:annotation kind="ref">
<tool:expected-type type="org.springframework.messaging.MessageChannel"/>
</tool:annotation>
</xsd:appinfo>
</xsd:annotation>
</xsd:attribute>
<xsd:attributeGroup ref="integration:inputOutputChannelGroup"/>
</xsd:complexType>
<xsd:complexType name="paramType">