Class IntegrationNamespaceUtils
java.lang.Object
org.springframework.integration.config.xml.IntegrationNamespaceUtils
public abstract class IntegrationNamespaceUtils extends Object
Shared utility methods for integration namespace parsers.
- Author:
- Mark Fisher, Marius Bogoevici, Alex Peters, Oleg Zhurakousky, Gary Russell, Artem Bilan, Gunnar Hillert
-
Field Summary
Fields Modifier and Type Field Description static String
AUTO_STARTUP
static String
EXPRESSION_ATTRIBUTE
static String
METHOD_ATTRIBUTE
static String
ORDER
static String
PHASE
static String
REF_ATTRIBUTE
static String
REQUEST_HANDLER_ADVICE_CHAIN
static String
ROLE
-
Constructor Summary
Constructors Constructor Description IntegrationNamespaceUtils()
-
Method Summary
Modifier and Type Method Description static void
checkAndConfigureFixedSubscriberChannel(Element element, ParserContext parserContext, String channelName, String handlerBeanName)
static ManagedList
configureAdviceChain(Element adviceChainElement, Element txElement, boolean handleMessageAdvice, BeanDefinition parentBeanDefinition, ParserContext parserContext)
static ManagedList
configureAdviceChain(Element adviceChainElement, Element txElement, BeanDefinition parentBeanDefinition, ParserContext parserContext)
static void
configureAndSetAdviceChainIfPresent(Element adviceChainElement, Element txElement, boolean handleMessageAdvice, BeanDefinition parentBeanDefinition, ParserContext parserContext)
static void
configureAndSetAdviceChainIfPresent(Element adviceChainElement, Element txElement, boolean handleMessageAdvice, BeanDefinition parentBeanDefinition, ParserContext parserContext, String propertyName)
static void
configureAndSetAdviceChainIfPresent(Element adviceChainElement, Element txElement, BeanDefinition parentBeanDefinition, ParserContext parserContext)
static void
configureAndSetAdviceChainIfPresent(Element adviceChainElement, Element txElement, BeanDefinition parentBeanDefinition, ParserContext parserContext, String propertyName)
static void
configureHeaderMapper(Element element, BeanDefinitionBuilder rootBuilder, ParserContext parserContext, Class<?> headerMapperClass, String replyHeaderValue)
Utility method to configure a HeaderMapper for Inbound and Outbound channel adapters/gateway.static void
configureHeaderMapper(Element element, BeanDefinitionBuilder rootBuilder, ParserContext parserContext, BeanDefinitionBuilder headerMapperBuilder, String replyHeaderValueArg)
Utility method to configure a HeaderMapper for Inbound and Outbound channel adapters/gateway.static void
configurePollerMetadata(Element pollerElement, BeanDefinitionBuilder targetBuilder, ParserContext parserContext)
Parse a "poller" element to provide a reference for the target BeanDefinitionBuilder.static BeanDefinition
configureTransactionAttributes(Element txElement)
Parse a "transactional" element and configure aTransactionInterceptor
with "transactionManager" and other "transactionDefinition" properties.static BeanDefinition
configureTransactionAttributes(Element txElement, boolean handleMessageAdvice)
Parse a "transactional" element and configure aTransactionInterceptor
orTransactionHandleMessageAdvice
with "transactionManager" and other "transactionDefinition" properties.static BeanDefinition
configureTransactionDefinition(Element txElement)
Parse attributes of "transactional" element and configure aDefaultTransactionAttribute
with provided "transactionDefinition" properties.static String
createDirectChannel(Element element, ParserContext parserContext)
static String
createElementDescription(Element element)
Provides a user friendly description of an element based on its node name and, if available, its "id" attribute value.static BeanDefinition
createExpressionDefIfAttributeDefined(String expressionElementName, Element element)
static BeanDefinition
createExpressionDefinitionFromValueOrExpression(String valueElementName, String expressionElementName, ParserContext parserContext, Element element, boolean oneRequired)
static String[]
generateAlias(Element element)
static String
getTextFromAttributeOrNestedElement(Element element, String name, ParserContext parserContext)
Get a text value from a named attribute if it exists, otherwise check for a nested element of the same name.static void
injectConstructorWithAdapter(String beanRefAttribute, String methodRefAttribute, String expressionAttribute, String adapterClass, Element element, BeanDefinitionBuilder builder, BeanMetadataElement processor, ParserContext parserContext)
static void
injectPropertyWithAdapter(String beanRefAttribute, String methodRefAttribute, String expressionAttribute, String beanProperty, String adapterClass, Element element, BeanDefinitionBuilder builder, BeanMetadataElement processor, ParserContext parserContext)
static BeanComponentDefinition
parseInnerHandlerDefinition(Element element, ParserContext parserContext)
static void
setReferenceIfAttributeDefined(BeanDefinitionBuilder builder, Element element, String attributeName)
Configures the provided bean definition builder with a property reference to a bean.static void
setReferenceIfAttributeDefined(BeanDefinitionBuilder builder, Element element, String attributeName, boolean emptyStringAllowed)
static void
setReferenceIfAttributeDefined(BeanDefinitionBuilder builder, Element element, String attributeName, String propertyName)
Configures the provided bean definition builder with a property reference to a bean.static void
setReferenceIfAttributeDefined(BeanDefinitionBuilder builder, Element element, String attributeName, String propertyName, boolean emptyStringAllowed)
static void
setValueIfAttributeDefined(BeanDefinitionBuilder builder, Element element, String attributeName)
Configures the provided bean definition builder with a property value corresponding to the attribute whose name is provided if that attribute is defined in the given element.static void
setValueIfAttributeDefined(BeanDefinitionBuilder builder, Element element, String attributeName, boolean emptyStringAllowed)
Configures the provided bean definition builder with a property value corresponding to the attribute whose name is provided if that attribute is defined in the given element.static void
setValueIfAttributeDefined(BeanDefinitionBuilder builder, Element element, String attributeName, String propertyName)
Configures the provided bean definition builder with a property value corresponding to the attribute whose name is provided if that attribute is defined in the given element.static void
setValueIfAttributeDefined(BeanDefinitionBuilder builder, Element element, String attributeName, String propertyName, boolean emptyStringAllowed)
Configures the provided bean definition builder with a property value corresponding to the attribute whose name is provided if that attribute is defined in the given element.
-
Field Details
-
REF_ATTRIBUTE
- See Also:
- Constant Field Values
-
METHOD_ATTRIBUTE
- See Also:
- Constant Field Values
-
ORDER
- See Also:
- Constant Field Values
-
EXPRESSION_ATTRIBUTE
- See Also:
- Constant Field Values
-
REQUEST_HANDLER_ADVICE_CHAIN
- See Also:
- Constant Field Values
-
AUTO_STARTUP
- See Also:
- Constant Field Values
-
PHASE
- See Also:
- Constant Field Values
-
ROLE
- See Also:
- Constant Field Values
-
-
Constructor Details
-
IntegrationNamespaceUtils
public IntegrationNamespaceUtils()
-
-
Method Details
-
setValueIfAttributeDefined
public static void setValueIfAttributeDefined(BeanDefinitionBuilder builder, Element element, String attributeName, String propertyName)Configures the provided bean definition builder with a property value corresponding to the attribute whose name is provided if that attribute is defined in the given element.- Parameters:
builder
- the bean definition builder to be configuredelement
- the XML element where the attribute should be definedattributeName
- the name of the attribute whose value will be used to populate the propertypropertyName
- the name of the property to be populated
-
setValueIfAttributeDefined
public static void setValueIfAttributeDefined(BeanDefinitionBuilder builder, Element element, String attributeName)Configures the provided bean definition builder with a property value corresponding to the attribute whose name is provided if that attribute is defined in the given element.The property name will be the camel-case equivalent of the lower case hyphen separated attribute (e.g. the "foo-bar" attribute would match the "fooBar" property).
- Parameters:
builder
- the bean definition builder to be configuredelement
- - the XML element where the attribute should be definedattributeName
- - the name of the attribute whose value will be set on the property- See Also:
Conventions.attributeNameToPropertyName(String)
-
setValueIfAttributeDefined
public static void setValueIfAttributeDefined(BeanDefinitionBuilder builder, Element element, String attributeName, String propertyName, boolean emptyStringAllowed)Configures the provided bean definition builder with a property value corresponding to the attribute whose name is provided if that attribute is defined in the given element.- Parameters:
builder
- the bean definition builder to be configuredelement
- the XML element where the attribute should be definedattributeName
- the name of the attribute whose value will be used to populate the propertypropertyName
- the name of the property to be populatedemptyStringAllowed
- - if true, the value is set, even if an empty String (""); if false, an empty String is treated as if the attribute wasn't provided.
-
setValueIfAttributeDefined
public static void setValueIfAttributeDefined(BeanDefinitionBuilder builder, Element element, String attributeName, boolean emptyStringAllowed)Configures the provided bean definition builder with a property value corresponding to the attribute whose name is provided if that attribute is defined in the given element.The property name will be the camel-case equivalent of the lower case hyphen separated attribute (e.g. the "foo-bar" attribute would match the "fooBar" property).
- Parameters:
builder
- the bean definition builder to be configuredelement
- - the XML element where the attribute should be definedattributeName
- - the name of the attribute whose value will be set on the propertyemptyStringAllowed
- - if true, the value is set, even if an empty String (""); if false, an empty String is treated as if the attribute wasn't provided.- See Also:
Conventions.attributeNameToPropertyName(String)
-
setReferenceIfAttributeDefined
public static void setReferenceIfAttributeDefined(BeanDefinitionBuilder builder, Element element, String attributeName, String propertyName)Configures the provided bean definition builder with a property reference to a bean. The bean reference is identified by the value from the attribute whose name is provided if that attribute is defined in the given element.- Parameters:
builder
- the bean definition builder to be configuredelement
- the XML element where the attribute should be definedattributeName
- the name of the attribute whose value will be used as a bean reference to populate the propertypropertyName
- the name of the property to be populated
-
setReferenceIfAttributeDefined
public static void setReferenceIfAttributeDefined(BeanDefinitionBuilder builder, Element element, String attributeName, String propertyName, boolean emptyStringAllowed) -
setReferenceIfAttributeDefined
public static void setReferenceIfAttributeDefined(BeanDefinitionBuilder builder, Element element, String attributeName)Configures the provided bean definition builder with a property reference to a bean. The bean reference is identified by the value from the attribute whose name is provided if that attribute is defined in the given element.The property name will be the camel-case equivalent of the lower case hyphen separated attribute (e.g. the "foo-bar" attribute would match the "fooBar" property).
- Parameters:
builder
- the bean definition builder to be configuredelement
- - the XML element where the attribute should be definedattributeName
- - the name of the attribute whose value will be used as a bean reference to populate the property- See Also:
Conventions.attributeNameToPropertyName(String)
-
setReferenceIfAttributeDefined
public static void setReferenceIfAttributeDefined(BeanDefinitionBuilder builder, Element element, String attributeName, boolean emptyStringAllowed) -
createElementDescription
Provides a user friendly description of an element based on its node name and, if available, its "id" attribute value. This is useful for creating error messages from within bean definition parsers.- Parameters:
element
- The element.- Returns:
- The description.
-
configurePollerMetadata
public static void configurePollerMetadata(Element pollerElement, BeanDefinitionBuilder targetBuilder, ParserContext parserContext)Parse a "poller" element to provide a reference for the target BeanDefinitionBuilder. If the poller element does not contain a "ref" attribute, this will create and register a PollerMetadata instance and then add it as a property reference of the target builder.- Parameters:
pollerElement
- the "poller" element to parsetargetBuilder
- the builder that expects the "trigger" propertyparserContext
- the parserContext for the target builder
-
getTextFromAttributeOrNestedElement
public static String getTextFromAttributeOrNestedElement(Element element, String name, ParserContext parserContext)Get a text value from a named attribute if it exists, otherwise check for a nested element of the same name. If both are specified it is an error, but if neither is specified, just returns null.- Parameters:
element
- a DOM nodename
- the name of the property (attribute or child element)parserContext
- the current context- Returns:
- the text from the attribute or element or null
-
parseInnerHandlerDefinition
public static BeanComponentDefinition parseInnerHandlerDefinition(Element element, ParserContext parserContext) -
configureHeaderMapper
public static void configureHeaderMapper(Element element, BeanDefinitionBuilder rootBuilder, ParserContext parserContext, Class<?> headerMapperClass, String replyHeaderValue)Utility method to configure a HeaderMapper for Inbound and Outbound channel adapters/gateway.- Parameters:
element
- The element.rootBuilder
- The root builder.parserContext
- The parser context.headerMapperClass
- The header mapper class.replyHeaderValue
- The reply header value.
-
configureHeaderMapper
public static void configureHeaderMapper(Element element, BeanDefinitionBuilder rootBuilder, ParserContext parserContext, BeanDefinitionBuilder headerMapperBuilder, @Nullable String replyHeaderValueArg)Utility method to configure a HeaderMapper for Inbound and Outbound channel adapters/gateway.- Parameters:
element
- The element.rootBuilder
- The root builder.parserContext
- The parser context.headerMapperBuilder
- The header mapper builder.replyHeaderValueArg
- The reply header value.
-
configureTransactionAttributes
Parse a "transactional" element and configure aTransactionInterceptor
with "transactionManager" and other "transactionDefinition" properties. For example, this advisor will be applied on the Polling Task proxy.- Parameters:
txElement
- The transactional element.- Returns:
- The bean definition.
- See Also:
AbstractPollingEndpoint
-
configureTransactionAttributes
public static BeanDefinition configureTransactionAttributes(Element txElement, boolean handleMessageAdvice)Parse a "transactional" element and configure aTransactionInterceptor
orTransactionHandleMessageAdvice
with "transactionManager" and other "transactionDefinition" properties. For example, this advisor will be applied on the Polling Task proxy.- Parameters:
txElement
- The transactional element.handleMessageAdvice
- flag if to useTransactionHandleMessageAdvice
or regularTransactionInterceptor
- Returns:
- The bean definition.
- See Also:
AbstractPollingEndpoint
-
configureTransactionDefinition
Parse attributes of "transactional" element and configure aDefaultTransactionAttribute
with provided "transactionDefinition" properties.- Parameters:
txElement
- The transactional element.- Returns:
- The bean definition.
-
generateAlias
-
configureAndSetAdviceChainIfPresent
public static void configureAndSetAdviceChainIfPresent(Element adviceChainElement, Element txElement, BeanDefinition parentBeanDefinition, ParserContext parserContext) -
configureAndSetAdviceChainIfPresent
public static void configureAndSetAdviceChainIfPresent(Element adviceChainElement, Element txElement, boolean handleMessageAdvice, BeanDefinition parentBeanDefinition, ParserContext parserContext) -
configureAndSetAdviceChainIfPresent
public static void configureAndSetAdviceChainIfPresent(Element adviceChainElement, Element txElement, BeanDefinition parentBeanDefinition, ParserContext parserContext, String propertyName) -
configureAndSetAdviceChainIfPresent
public static void configureAndSetAdviceChainIfPresent(Element adviceChainElement, Element txElement, boolean handleMessageAdvice, BeanDefinition parentBeanDefinition, ParserContext parserContext, String propertyName) -
configureAdviceChain
public static ManagedList configureAdviceChain(Element adviceChainElement, Element txElement, BeanDefinition parentBeanDefinition, ParserContext parserContext) -
configureAdviceChain
public static ManagedList configureAdviceChain(Element adviceChainElement, Element txElement, boolean handleMessageAdvice, BeanDefinition parentBeanDefinition, ParserContext parserContext) -
createExpressionDefinitionFromValueOrExpression
public static BeanDefinition createExpressionDefinitionFromValueOrExpression(String valueElementName, String expressionElementName, ParserContext parserContext, Element element, boolean oneRequired) -
createExpressionDefIfAttributeDefined
public static BeanDefinition createExpressionDefIfAttributeDefined(String expressionElementName, Element element) -
createDirectChannel
-
checkAndConfigureFixedSubscriberChannel
public static void checkAndConfigureFixedSubscriberChannel(Element element, ParserContext parserContext, String channelName, String handlerBeanName) -
injectPropertyWithAdapter
public static void injectPropertyWithAdapter(String beanRefAttribute, String methodRefAttribute, String expressionAttribute, String beanProperty, String adapterClass, Element element, BeanDefinitionBuilder builder, BeanMetadataElement processor, ParserContext parserContext) -
injectConstructorWithAdapter
public static void injectConstructorWithAdapter(String beanRefAttribute, String methodRefAttribute, String expressionAttribute, String adapterClass, Element element, BeanDefinitionBuilder builder, BeanMetadataElement processor, ParserContext parserContext)
-