registerBeanDefinitionParser("resin-transaction-manager", new TransactionManagerDefinitionParser(Resin3TransactionManagerLookupFactory.class));
registerBeanDefinitionParser("websphere-transaction-manager", new TransactionManagerDefinitionParser(WebsphereTransactionManagerLookupFactory.class));
//Endpoint elements
registerBeanDefinitionParser("endpoint", new OrphanEndpointDefinitionParser(EndpointURIEndpointBuilder.class));
registerBeanDefinitionParser("inbound-endpoint", new ChildEndpointDefinitionParser(InboundEndpointFactoryBean.class));
registerBeanDefinitionParser("outbound-endpoint", new ChildEndpointDefinitionParser(OutboundEndpointFactoryBean.class));
registerBeanDefinitionParser("custom-transaction", new TransactionDefinitionParser());
registerBeanDefinitionParser("xa-transaction", new TransactionDefinitionParser(XaTransactionFactory.class));
registerBeanDefinitionParser("idempotent-redelivery-policy", new ChildDefinitionParser("redeliveryPolicy", IdempotentRedeliveryPolicy.class));
// Message Processors
registerMuleBeanDefinitionParser("processor", new ParentDefinitionParser()).addAlias(AbstractMuleBeanDefinitionParser.ATTRIBUTE_REF, "messageProcessor");
registerMuleBeanDefinitionParser("custom-processor", new MessageProcessorDefinitionParser()).addIgnored("name");
registerBeanDefinitionParser("processor-chain", new MessageProcessorChainDefinitionParser());
registerBeanDefinitionParser("sub-flow", new MuleOrphanDefinitionParser(SubflowMessageProcessorChainFactoryBean.class, false));
registerBeanDefinitionParser("response", new ResponseDefinitionParser());
registerMuleBeanDefinitionParser("message-filter", new MessageFilterDefinitionParser());
registerMuleBeanDefinitionParser("invoke",
new MessageProcessorDefinitionParser(InvokerMessageProcessor.class)).addAlias("method",
"methodName").addAlias("methodArguments", "argumentExpressionsString").addAlias(
"methodArgumentTypes", "ArgumentTypes");
registerMuleBeanDefinitionParser("enricher",
new MessageEnricherDefinitionParser("messageProcessor", MessageEnricher.class)).addIgnored(
"source")
.addIgnored("target")
.registerPreProcessor(
new CheckExclusiveAttributesAndChildren(new String[]{"source", "target"},
new String[]{"enrich"}))
.registerPreProcessor(
new CheckRequiredAttributesWhenNoChildren(new String[][]{new String[]{"target"}}, "enrich"))
.addCollection("enrichExpressionPairs");
registerMuleBeanDefinitionParser("enrich", new ChildDefinitionParser("enrichExpressionPair",
EnrichExpressionPair.class));
registerBeanDefinitionParser("async", new AsyncMessageProcessorsDefinitionParser());
registerBeanDefinitionParser("transactional", new ChildDefinitionParser("messageProcessor",
TransactionalMessageProcessorsFactoryBean.class));
registerMuleBeanDefinitionParser("logger", new ChildDefinitionParser("messageProcessor",
LoggerMessageProcessor.class));
registerMuleBeanDefinitionParser("expression-component",
new ExpressionComponentDefintionParser("messageProcessor", ExpressionLanguageComponent.class)).registerPreProcessor(
new CheckExclusiveAttributeAndText("file"));
// Message Sources
registerBeanDefinitionParser("custom-source", new ChildDefinitionParser("messageSource", null, MessageSource.class));
registerBeanDefinitionParser("composite-source", new ChildDefinitionParser("messageSource", CompositeMessageSourceFactoryBean.class));
registerBeanDefinitionParser("poll", new ChildEndpointDefinitionParser(PollingMessageSourceFactoryBean.class));
registerBeanDefinitionParser("fixed-frequency-scheduler", new ChildDefinitionParser("schedulerFactory", FixedFrequencySchedulerFactory.class));
// Poll overrides
registerBeanDefinitionParser("watermark", new ChildDefinitionParser("override", WatermarkFactoryBean.class));