Search in sources :

Example 1 with JMSDestinationResolver

use of org.apache.cxf.transport.jms.util.JMSDestinationResolver in project cxf by apache.

the class JMSConfigFactory method createFromEndpoint.

/**
 * @param bus
 * @param endpointInfo
 * @return
 */
public static JMSConfiguration createFromEndpoint(Bus bus, JMSEndpoint endpoint) {
    JMSConfiguration jmsConfig = new JMSConfiguration();
    int deliveryMode = endpoint.getDeliveryMode() == org.apache.cxf.transport.jms.uri.JMSEndpoint.DeliveryModeType.PERSISTENT ? DeliveryMode.PERSISTENT : DeliveryMode.NON_PERSISTENT;
    jmsConfig.setDeliveryMode(deliveryMode);
    jmsConfig.setPriority(endpoint.getPriority());
    jmsConfig.setExplicitQosEnabled(true);
    jmsConfig.setMessageType(endpoint.getMessageType().value());
    boolean pubSubDomain = endpoint.getJmsVariant().contains(JMSEndpoint.TOPIC);
    jmsConfig.setPubSubDomain(pubSubDomain);
    jmsConfig.setDurableSubscriptionName(endpoint.getDurableSubscriptionName());
    jmsConfig.setDurableSubscriptionClientId(endpoint.getDurableSubscriptionClientId());
    jmsConfig.setReceiveTimeout(endpoint.getReceiveTimeout());
    jmsConfig.setTimeToLive(endpoint.getTimeToLive());
    jmsConfig.setSessionTransacted(endpoint.isSessionTransacted());
    if (!endpoint.isUseConduitIdSelector()) {
        jmsConfig.setUseConduitIdSelector(endpoint.isUseConduitIdSelector());
    }
    jmsConfig.setConduitSelectorPrefix(endpoint.getConduitIdSelectorPrefix());
    jmsConfig.setUserName(endpoint.getUsername());
    jmsConfig.setPassword(endpoint.getPassword());
    jmsConfig.setConcurrentConsumers(endpoint.getConcurrentConsumers());
    jmsConfig.setOneSessionPerConnection(endpoint.isOneSessionPerConnection());
    jmsConfig.setMessageSelector(endpoint.getMessageSelector());
    TransactionManager tm = getTransactionManager(bus, endpoint);
    jmsConfig.setTransactionManager(tm);
    if (endpoint.getJndiURL() != null) {
        // Configure Connection Factory using jndi
        jmsConfig.setJndiEnvironment(JMSConfigFactory.getInitialContextEnv(endpoint));
        jmsConfig.setConnectionFactoryName(endpoint.getJndiConnectionFactoryName());
    } else {
        ConfiguredBeanLocator locator = bus.getExtension(ConfiguredBeanLocator.class);
        if (endpoint.getConnectionFactory() != null) {
            jmsConfig.setConnectionFactory(endpoint.getConnectionFactory());
        } else if (locator != null) {
            // Configure ConnectionFactory using locator
            // Lookup connectionFactory in context like blueprint
            ConnectionFactory cf = locator.getBeanOfType(endpoint.getJndiConnectionFactoryName(), ConnectionFactory.class);
            if (cf != null) {
                jmsConfig.setConnectionFactory(cf);
            }
        }
    }
    boolean resolveUsingJndi = endpoint.getJmsVariant().contains(JMSEndpoint.JNDI);
    if (resolveUsingJndi) {
        // Setup Destination jndi destination resolver
        JndiHelper jt = new JndiHelper(JMSConfigFactory.getInitialContextEnv(endpoint));
        final JMSDestinationResolver jndiDestinationResolver = new JMSDestinationResolver();
        jndiDestinationResolver.setJndiTemplate(jt);
        jmsConfig.setDestinationResolver(jndiDestinationResolver);
        jmsConfig.setTargetDestination(endpoint.getDestinationName());
        setReplyDestination(jmsConfig, endpoint);
    } else {
        // Use the default dynamic destination resolver
        jmsConfig.setTargetDestination(endpoint.getDestinationName());
        setReplyDestination(jmsConfig, endpoint);
    }
    String requestURI = endpoint.getRequestURI();
    jmsConfig.setRequestURI(requestURI);
    String targetService = endpoint.getTargetService();
    jmsConfig.setTargetService(targetService);
    jmsConfig.setMessageSelector(endpoint.getMessageSelector());
    int retryInterval = endpoint.getRetryInterval();
    jmsConfig.setRetryInterval(retryInterval);
    return jmsConfig;
}
Also used : ConnectionFactory(javax.jms.ConnectionFactory) JndiHelper(org.apache.cxf.transport.jms.util.JndiHelper) ConfiguredBeanLocator(org.apache.cxf.configuration.ConfiguredBeanLocator) TransactionManager(javax.transaction.TransactionManager) JMSDestinationResolver(org.apache.cxf.transport.jms.util.JMSDestinationResolver) JMSEndpoint(org.apache.cxf.transport.jms.uri.JMSEndpoint)

Aggregations

ConnectionFactory (javax.jms.ConnectionFactory)1 TransactionManager (javax.transaction.TransactionManager)1 ConfiguredBeanLocator (org.apache.cxf.configuration.ConfiguredBeanLocator)1 JMSEndpoint (org.apache.cxf.transport.jms.uri.JMSEndpoint)1 JMSDestinationResolver (org.apache.cxf.transport.jms.util.JMSDestinationResolver)1 JndiHelper (org.apache.cxf.transport.jms.util.JndiHelper)1