Coverage Report - org.mule.transport.jms.config.JmsNamespaceHandler
 
Classes in this File Line Coverage Branch Coverage Complexity
JmsNamespaceHandler
0%
0/29
N/A
1
 
 1  
 /*
 2  
  * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
 3  
  * The software in this package is published under the terms of the CPAL v1.0
 4  
  * license, a copy of which has been included with this distribution in the
 5  
  * LICENSE.txt file.
 6  
  */
 7  
 package org.mule.transport.jms.config;
 8  
 
 9  
 import org.mule.config.spring.factories.InboundEndpointFactoryBean;
 10  
 import org.mule.config.spring.factories.OutboundEndpointFactoryBean;
 11  
 import org.mule.config.spring.handlers.AbstractMuleNamespaceHandler;
 12  
 import org.mule.config.spring.parsers.MuleDefinitionParser;
 13  
 import org.mule.config.spring.parsers.assembly.configuration.PrefixValueMap;
 14  
 import org.mule.config.spring.parsers.generic.ChildDefinitionParser;
 15  
 import org.mule.config.spring.parsers.processors.CheckExclusiveAttributes;
 16  
 import org.mule.config.spring.parsers.specific.FilterDefinitionParser;
 17  
 import org.mule.config.spring.parsers.specific.MessageProcessorDefinitionParser;
 18  
 import org.mule.config.spring.parsers.specific.TransactionDefinitionParser;
 19  
 import org.mule.config.spring.parsers.specific.endpoint.TransportEndpointDefinitionParser;
 20  
 import org.mule.config.spring.parsers.specific.endpoint.TransportGlobalEndpointDefinitionParser;
 21  
 import org.mule.endpoint.URIBuilder;
 22  
 import org.mule.transport.jms.JmsClientAcknowledgeTransactionFactory;
 23  
 import org.mule.transport.jms.JmsConnector;
 24  
 import org.mule.transport.jms.JmsTransactionFactory;
 25  
 import org.mule.transport.jms.activemq.ActiveMQJmsConnector;
 26  
 import org.mule.transport.jms.activemq.ActiveMQXAJmsConnector;
 27  
 import org.mule.transport.jms.filters.JmsPropertyFilter;
 28  
 import org.mule.transport.jms.filters.JmsSelectorFilter;
 29  
 import org.mule.transport.jms.jndi.SimpleJndiNameResolver;
 30  
 import org.mule.transport.jms.mulemq.MuleMQJmsConnector;
 31  
 import org.mule.transport.jms.mulemq.MuleMQXAJmsConnector;
 32  
 import org.mule.transport.jms.transformers.JMSMessageToObject;
 33  
 import org.mule.transport.jms.transformers.ObjectToJMSMessage;
 34  
 import org.mule.transport.jms.weblogic.WeblogicJmsConnector;
 35  
 import org.mule.transport.jms.websphere.WebsphereJmsConnector;
 36  
 
 37  
 /**
 38  
  * Registers Bean Definition Parsers for the "jms" namespace.
 39  
  */
 40  0
 public class JmsNamespaceHandler extends AbstractMuleNamespaceHandler
 41  
 {
 42  
 
 43  
     public static final String QUEUE = "queue";
 44  
     public static final String TOPIC = "topic";
 45  
     public static final String NUMBER_OF_CONSUMERS_ATTRIBUTE = "numberOfConsumers";
 46  
     public static final String NUMBER_OF_CONCURRENT_TRANSACTED_RECEIVERS_ATTRIBUTE = "numberOfConcurrentTransactedReceivers";
 47  
     public static final String NUMBER_OF_CONSUMERS_PROPERTY = "numberOfConcurrentTransactedReceivers";
 48  0
     public static final String[][] JMS_ATTRIBUTES = new String[][]{new String[]{QUEUE}, new String[]{TOPIC}};
 49  
 
 50  
     public void init()
 51  
     {
 52  0
         registerJmsTransportEndpoints();
 53  
 
 54  0
         registerMuleBeanDefinitionParser("connector", new JmsConnectorDefinitionParser()).addAlias(
 55  
             NUMBER_OF_CONSUMERS_ATTRIBUTE, NUMBER_OF_CONSUMERS_PROPERTY).registerPreProcessor(
 56  
             new CheckExclusiveAttributes(new String[][]{
 57  
                 new String[]{NUMBER_OF_CONCURRENT_TRANSACTED_RECEIVERS_ATTRIBUTE},
 58  
                 new String[]{NUMBER_OF_CONSUMERS_ATTRIBUTE}}));
 59  0
         registerBeanDefinitionParser("custom-connector", new JmsConnectorDefinitionParser());
 60  0
         registerBeanDefinitionParser("activemq-connector", new JmsConnectorDefinitionParser(ActiveMQJmsConnector.class));
 61  0
         registerBeanDefinitionParser("activemq-xa-connector", new JmsConnectorDefinitionParser(ActiveMQXAJmsConnector.class));
 62  
         
 63  0
         registerBeanDefinitionParser("mulemq-connector", new MuleMQConnectorDefinitionParser(MuleMQJmsConnector.class));
 64  0
         registerBeanDefinitionParser("mulemq-xa-connector", new MuleMQConnectorDefinitionParser(MuleMQXAJmsConnector.class));
 65  
         
 66  0
         registerBeanDefinitionParser("weblogic-connector", new JmsConnectorDefinitionParser(WeblogicJmsConnector.class));
 67  0
         registerBeanDefinitionParser("websphere-connector", new JmsConnectorDefinitionParser(WebsphereJmsConnector.class));
 68  
 
 69  0
         registerBeanDefinitionParser("transaction", new TransactionDefinitionParser(JmsTransactionFactory.class));
 70  0
         registerBeanDefinitionParser("client-ack-transaction", new TransactionDefinitionParser(JmsClientAcknowledgeTransactionFactory.class));
 71  
         
 72  0
         registerBeanDefinitionParser("jmsmessage-to-object-transformer", new MessageProcessorDefinitionParser(JMSMessageToObject.class));
 73  
 
 74  0
         registerBeanDefinitionParser("object-to-jmsmessage-transformer", new MessageProcessorDefinitionParser(ObjectToJMSMessage.class));
 75  0
         registerBeanDefinitionParser("property-filter", new FilterDefinitionParser(JmsPropertyFilter.class));
 76  0
         registerBeanDefinitionParser("selector", new FilterDefinitionParser(JmsSelectorFilter.class));
 77  0
         registerBeanDefinitionParser("default-jndi-name-resolver", new ChildDefinitionParser("jndiNameResolver", SimpleJndiNameResolver.class));
 78  0
         registerBeanDefinitionParser("custom-jndi-name-resolver", new ChildDefinitionParser("jndiNameResolver"));
 79  0
     }
 80  
 
 81  
     /**
 82  
      * Need to use the most complex constructors as have mutually exclusive address aattributes
 83  
      */
 84  
     protected void registerJmsTransportEndpoints()
 85  
     {
 86  0
         registerJmsEndpointDefinitionParser("endpoint", new TransportGlobalEndpointDefinitionParser(JmsConnector.JMS, TransportGlobalEndpointDefinitionParser.PROTOCOL, TransportGlobalEndpointDefinitionParser.RESTRICTED_ENDPOINT_ATTRIBUTES, JMS_ATTRIBUTES, new String[][]{}));
 87  0
         registerJmsEndpointDefinitionParser("inbound-endpoint", new TransportEndpointDefinitionParser(JmsConnector.JMS, TransportEndpointDefinitionParser.PROTOCOL, InboundEndpointFactoryBean.class, TransportEndpointDefinitionParser.RESTRICTED_ENDPOINT_ATTRIBUTES, JMS_ATTRIBUTES, new String[][]{}));
 88  0
         registerJmsEndpointDefinitionParser("outbound-endpoint", new TransportEndpointDefinitionParser(JmsConnector.JMS, TransportEndpointDefinitionParser.PROTOCOL, OutboundEndpointFactoryBean.class, TransportEndpointDefinitionParser.RESTRICTED_ENDPOINT_ATTRIBUTES, JMS_ATTRIBUTES, new String[][]{}));
 89  0
     }
 90  
 
 91  
     protected void registerJmsEndpointDefinitionParser(String element, MuleDefinitionParser parser)
 92  
     {
 93  0
         parser.addAlias(QUEUE, URIBuilder.PATH);
 94  0
         parser.addAlias(TOPIC, URIBuilder.PATH);
 95  0
         parser.addMapping(TOPIC, new PrefixValueMap(TOPIC + ":"));
 96  0
         registerBeanDefinitionParser(element, parser);
 97  0
     }
 98  
 
 99  
 }
 100