Spring Integration

org.springframework.integration.config.xml
Class IntegrationNamespaceUtils

java.lang.Object
  extended by org.springframework.integration.config.xml.IntegrationNamespaceUtils

public abstract class IntegrationNamespaceUtils
extends java.lang.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
static java.lang.String DEFAULT_MAX_BROADCAST_SUBSCRIBERS_PROPERTY_NAME
          Property name on ChannelInitializer used to configure the default max subscribers for broadcast channels.
static java.lang.String DEFAULT_MAX_UNICAST_SUBSCRIBERS_PROPERTY_NAME
          Property name on ChannelInitializer used to configure the default max subscribers for unicast channels.
static java.lang.String HANDLER_ALIAS_SUFFIX
           
static java.lang.String REQUEST_HANDLER_ADVICE_CHAIN
           
 
Constructor Summary
IntegrationNamespaceUtils()
           
 
Method Summary
static org.springframework.beans.factory.support.ManagedList configureAdviceChain(org.w3c.dom.Element adviceChainElement, org.w3c.dom.Element txElement, org.springframework.beans.factory.config.BeanDefinition parentBeanDefinition, org.springframework.beans.factory.xml.ParserContext parserContext)
           
static void configureAndSetAdviceChainIfPresent(org.w3c.dom.Element adviceChainElement, org.w3c.dom.Element txElement, org.springframework.beans.factory.config.BeanDefinition parentBeanDefinition, org.springframework.beans.factory.xml.ParserContext parserContext)
           
static void configureAndSetAdviceChainIfPresent(org.w3c.dom.Element adviceChainElement, org.w3c.dom.Element txElement, org.springframework.beans.factory.config.BeanDefinition parentBeanDefinition, org.springframework.beans.factory.xml.ParserContext parserContext, java.lang.String propertyName)
           
static void configureHeaderMapper(org.w3c.dom.Element element, org.springframework.beans.factory.support.BeanDefinitionBuilder rootBuilder, org.springframework.beans.factory.xml.ParserContext parserContext, java.lang.Class<?> headerMapperClass, java.lang.String replyHeaderValue)
          Utility method to configure HeaderMapper for Inbound and Outbound channel adapters/gateway
static void configurePollerMetadata(org.w3c.dom.Element pollerElement, org.springframework.beans.factory.support.BeanDefinitionBuilder targetBuilder, org.springframework.beans.factory.xml.ParserContext parserContext)
          Parse a "poller" element to provide a reference for the target BeanDefinitionBuilder.
static org.springframework.beans.factory.config.BeanDefinition configureTransactionAttributes(org.w3c.dom.Element txElement)
          Parse a "transactional" element and configure a TransactionInterceptor with "transactionManager" and other "transactionDefinition" properties.
static org.springframework.beans.factory.config.BeanDefinition configureTransactionDefinition(org.w3c.dom.Element txElement)
          Parse attributes of "transactional" element and configure a DefaultTransactionAttribute with provided "transactionDefinition" properties.
static java.lang.String createElementDescription(org.w3c.dom.Element element)
          Provides a user friendly description of an element based on its node name and, if available, its "id" attribute value.
static org.springframework.beans.factory.support.RootBeanDefinition createExpressionDefinitionFromValueOrExpression(java.lang.String valueElementName, java.lang.String expressionElementName, org.springframework.beans.factory.xml.ParserContext parserContext, org.w3c.dom.Element element, boolean oneRequired)
           
static java.lang.String[] generateAlias(org.w3c.dom.Element element)
           
static java.lang.String getTextFromAttributeOrNestedElement(org.w3c.dom.Element element, java.lang.String name, org.springframework.beans.factory.xml.ParserContext parserContext)
          Get a text value from a named attribute if it exists, otherwise check for a nested element of the same name.
static org.springframework.beans.factory.parsing.BeanComponentDefinition parseInnerHandlerDefinition(org.w3c.dom.Element element, org.springframework.beans.factory.xml.ParserContext parserContext)
           
static void setReferenceIfAttributeDefined(org.springframework.beans.factory.support.BeanDefinitionBuilder builder, org.w3c.dom.Element element, java.lang.String attributeName)
          Configures the provided bean definition builder with a property reference to a bean.
static void setReferenceIfAttributeDefined(org.springframework.beans.factory.support.BeanDefinitionBuilder builder, org.w3c.dom.Element element, java.lang.String attributeName, java.lang.String propertyName)
          Configures the provided bean definition builder with a property reference to a bean.
static void setValueIfAttributeDefined(org.springframework.beans.factory.support.BeanDefinitionBuilder builder, org.w3c.dom.Element element, java.lang.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(org.springframework.beans.factory.support.BeanDefinitionBuilder builder, org.w3c.dom.Element element, java.lang.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(org.springframework.beans.factory.support.BeanDefinitionBuilder builder, org.w3c.dom.Element element, java.lang.String attributeName, java.lang.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(org.springframework.beans.factory.support.BeanDefinitionBuilder builder, org.w3c.dom.Element element, java.lang.String attributeName, java.lang.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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

HANDLER_ALIAS_SUFFIX

public static final java.lang.String HANDLER_ALIAS_SUFFIX
See Also:
Constant Field Values

REQUEST_HANDLER_ADVICE_CHAIN

public static final java.lang.String REQUEST_HANDLER_ADVICE_CHAIN
See Also:
Constant Field Values

DEFAULT_MAX_UNICAST_SUBSCRIBERS_PROPERTY_NAME

public static java.lang.String DEFAULT_MAX_UNICAST_SUBSCRIBERS_PROPERTY_NAME
Property name on ChannelInitializer used to configure the default max subscribers for unicast channels.


DEFAULT_MAX_BROADCAST_SUBSCRIBERS_PROPERTY_NAME

public static java.lang.String DEFAULT_MAX_BROADCAST_SUBSCRIBERS_PROPERTY_NAME
Property name on ChannelInitializer used to configure the default max subscribers for broadcast channels.

Constructor Detail

IntegrationNamespaceUtils

public IntegrationNamespaceUtils()
Method Detail

setValueIfAttributeDefined

public static void setValueIfAttributeDefined(org.springframework.beans.factory.support.BeanDefinitionBuilder builder,
                                              org.w3c.dom.Element element,
                                              java.lang.String attributeName,
                                              java.lang.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 configured
element - the XML element where the attribute should be defined
attributeName - the name of the attribute whose value will be used to populate the property
propertyName - the name of the property to be populated

setValueIfAttributeDefined

public static void setValueIfAttributeDefined(org.springframework.beans.factory.support.BeanDefinitionBuilder builder,
                                              org.w3c.dom.Element element,
                                              java.lang.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 configured
element - - the XML element where the attribute should be defined
attributeName - - the name of the attribute whose value will be set on the property
See Also:
Conventions.attributeNameToPropertyName(String)

setValueIfAttributeDefined

public static void setValueIfAttributeDefined(org.springframework.beans.factory.support.BeanDefinitionBuilder builder,
                                              org.w3c.dom.Element element,
                                              java.lang.String attributeName,
                                              java.lang.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 configured
element - the XML element where the attribute should be defined
attributeName - the name of the attribute whose value will be used to populate the property
propertyName - the name of the property to be populated
emptyStringAllowed - - 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(org.springframework.beans.factory.support.BeanDefinitionBuilder builder,
                                              org.w3c.dom.Element element,
                                              java.lang.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 configured
element - - the XML element where the attribute should be defined
attributeName - - the name of the attribute whose value will be set on the property
emptyStringAllowed - - 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(org.springframework.beans.factory.support.BeanDefinitionBuilder builder,
                                                  org.w3c.dom.Element element,
                                                  java.lang.String attributeName,
                                                  java.lang.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 configured
element - the XML element where the attribute should be defined
attributeName - the name of the attribute whose value will be used as a bean reference to populate the property
propertyName - the name of the property to be populated

setReferenceIfAttributeDefined

public static void setReferenceIfAttributeDefined(org.springframework.beans.factory.support.BeanDefinitionBuilder builder,
                                                  org.w3c.dom.Element element,
                                                  java.lang.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 configured
element - - the XML element where the attribute should be defined
attributeName - - the name of the attribute whose value will be used as a bean reference to populate the property
See Also:
Conventions.attributeNameToPropertyName(String), Conventions.attributeNameToPropertyName(String)

createElementDescription

public static java.lang.String createElementDescription(org.w3c.dom.Element element)
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.


configurePollerMetadata

public static void configurePollerMetadata(org.w3c.dom.Element pollerElement,
                                           org.springframework.beans.factory.support.BeanDefinitionBuilder targetBuilder,
                                           org.springframework.beans.factory.xml.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 parse
targetBuilder - the builder that expects the "trigger" property
parserContext - the parserContext for the target builder

getTextFromAttributeOrNestedElement

public static java.lang.String getTextFromAttributeOrNestedElement(org.w3c.dom.Element element,
                                                                   java.lang.String name,
                                                                   org.springframework.beans.factory.xml.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 node
name - the name of the property (attribute or child element)
parserContext - the current context
Returns:
the text from the attribite or element or null

parseInnerHandlerDefinition

public static org.springframework.beans.factory.parsing.BeanComponentDefinition parseInnerHandlerDefinition(org.w3c.dom.Element element,
                                                                                                            org.springframework.beans.factory.xml.ParserContext parserContext)

configureHeaderMapper

public static void configureHeaderMapper(org.w3c.dom.Element element,
                                         org.springframework.beans.factory.support.BeanDefinitionBuilder rootBuilder,
                                         org.springframework.beans.factory.xml.ParserContext parserContext,
                                         java.lang.Class<?> headerMapperClass,
                                         java.lang.String replyHeaderValue)
Utility method to configure HeaderMapper for Inbound and Outbound channel adapters/gateway


configureTransactionAttributes

public static org.springframework.beans.factory.config.BeanDefinition configureTransactionAttributes(org.w3c.dom.Element txElement)
Parse a "transactional" element and configure a TransactionInterceptor with "transactionManager" and other "transactionDefinition" properties. For example, this advisor will be applied on the Polling Task proxy

See Also:
AbstractPollingEndpoint

configureTransactionDefinition

public static org.springframework.beans.factory.config.BeanDefinition configureTransactionDefinition(org.w3c.dom.Element txElement)
Parse attributes of "transactional" element and configure a DefaultTransactionAttribute with provided "transactionDefinition" properties.


generateAlias

public static java.lang.String[] generateAlias(org.w3c.dom.Element element)

configureAndSetAdviceChainIfPresent

public static void configureAndSetAdviceChainIfPresent(org.w3c.dom.Element adviceChainElement,
                                                       org.w3c.dom.Element txElement,
                                                       org.springframework.beans.factory.config.BeanDefinition parentBeanDefinition,
                                                       org.springframework.beans.factory.xml.ParserContext parserContext)

configureAndSetAdviceChainIfPresent

public static void configureAndSetAdviceChainIfPresent(org.w3c.dom.Element adviceChainElement,
                                                       org.w3c.dom.Element txElement,
                                                       org.springframework.beans.factory.config.BeanDefinition parentBeanDefinition,
                                                       org.springframework.beans.factory.xml.ParserContext parserContext,
                                                       java.lang.String propertyName)

configureAdviceChain

public static org.springframework.beans.factory.support.ManagedList configureAdviceChain(org.w3c.dom.Element adviceChainElement,
                                                                                         org.w3c.dom.Element txElement,
                                                                                         org.springframework.beans.factory.config.BeanDefinition parentBeanDefinition,
                                                                                         org.springframework.beans.factory.xml.ParserContext parserContext)

createExpressionDefinitionFromValueOrExpression

public static org.springframework.beans.factory.support.RootBeanDefinition createExpressionDefinitionFromValueOrExpression(java.lang.String valueElementName,
                                                                                                                           java.lang.String expressionElementName,
                                                                                                                           org.springframework.beans.factory.xml.ParserContext parserContext,
                                                                                                                           org.w3c.dom.Element element,
                                                                                                                           boolean oneRequired)

Spring Integration