Example usage for org.springframework.jms.support.destination JndiDestinationResolver JndiDestinationResolver

List of usage examples for org.springframework.jms.support.destination JndiDestinationResolver JndiDestinationResolver

Introduction

In this page you can find the example usage for org.springframework.jms.support.destination JndiDestinationResolver JndiDestinationResolver.

Prototype

JndiDestinationResolver

Source Link

Usage

From source file:org.apache.cxf.transport.jms.JMSOldConfigHolder.java

public JMSConfiguration createJMSConfigurationFromEndpointInfo(Bus bus, EndpointInfo endpointInfo,
        boolean isConduit) {

    // Retrieve configuration information that was extracted from the WSDL
    address = endpointInfo.getTraversedExtensor(new AddressType(), AddressType.class);
    clientConfig = endpointInfo.getTraversedExtensor(new ClientConfig(), ClientConfig.class);
    runtimePolicy = endpointInfo.getTraversedExtensor(new ClientBehaviorPolicyType(),
            ClientBehaviorPolicyType.class);
    serverConfig = endpointInfo.getTraversedExtensor(new ServerConfig(), ServerConfig.class);
    sessionPool = endpointInfo.getTraversedExtensor(new SessionPoolType(), SessionPoolType.class);
    serverBehavior = endpointInfo.getTraversedExtensor(new ServerBehaviorPolicyType(),
            ServerBehaviorPolicyType.class);
    String name = endpointInfo.getName().toString() + (isConduit ? ".jms-conduit" : ".jms-destination");

    // Try to retrieve configuration information from the spring
    // config. Search for a conduit or destination with name=endpoint name + ".jms-conduit"
    // or ".jms-destination"

    Configurer configurer = bus.getExtension(Configurer.class);
    if (null != configurer) {
        configurer.configureBean(name, this);
    }/*from ww  w. j  av a  2 s.  c  o  m*/

    if (jmsConfig == null) {
        jmsConfig = new JMSConfiguration();
    }

    if (jmsConfig.isUsingEndpointInfo()) {
        JndiTemplate jt = new JndiTemplate();
        jt.setEnvironment(JMSOldConfigHolder.getInitialContextEnv(address));
        boolean pubSubDomain = false;
        if (address.isSetDestinationStyle()) {
            pubSubDomain = DestinationStyleType.TOPIC == address.getDestinationStyle();
        }
        JNDIConfiguration jndiConfig = new JNDIConfiguration();
        jndiConfig.setJndiConnectionFactoryName(address.getJndiConnectionFactoryName());
        jmsConfig.setJndiTemplate(jt);
        jndiConfig.setConnectionUserName(address.getConnectionUserName());
        jndiConfig.setConnectionPassword(address.getConnectionPassword());
        jmsConfig.setJndiConfig(jndiConfig);
        if (address.isSetReconnectOnException()) {
            jmsConfig.setReconnectOnException(address.isReconnectOnException());
        }
        jmsConfig.setDurableSubscriptionName(serverBehavior.getDurableSubscriberName());
        jmsConfig.setExplicitQosEnabled(true);
        jmsConfig.setMessageSelector(serverBehavior.getMessageSelector());
        if (isConduit && runtimePolicy.isSetMessageType()) {
            jmsConfig.setMessageType(runtimePolicy.getMessageType().value());
        }
        jmsConfig.setPubSubDomain(pubSubDomain);
        jmsConfig.setPubSubNoLocal(true);
        //if (clientConfig.isSetClientReceiveTimeout()) {
        jmsConfig.setReceiveTimeout(clientConfig.getClientReceiveTimeout());
        //}
        jmsConfig.setUseConduitIdSelector(clientConfig.isUseConduitIdSelector());
        if (clientConfig.isSetConduitSelectorPrefix()) {
            jmsConfig.setConduitSelectorPrefix(clientConfig.getConduitSelectorPrefix());
        }
        jmsConfig.setSubscriptionDurable(serverBehavior.isSetDurableSubscriberName());
        jmsConfig.setDurableSubscriptionName(serverBehavior.getDurableSubscriberName());
        if (sessionPool.isSetHighWaterMark()) {
            jmsConfig.setMaxConcurrentTasks(sessionPool.getHighWaterMark());
        }
        long timeToLive = isConduit ? clientConfig.getMessageTimeToLive() : serverConfig.getMessageTimeToLive();
        jmsConfig.setTimeToLive(timeToLive);
        if (address.isSetUseJms11()) {
            jmsConfig.setUseJms11(address.isUseJms11());
        }
        if (serverBehavior.isSetTransactional()) {
            jmsConfig.setSessionTransacted(serverBehavior.isTransactional());
        }
        boolean useJndi = address.isSetJndiDestinationName();
        jmsConfig.setUseJndi(useJndi);
        if (useJndi) {
            // Setup Destination jndi destination resolver
            final JndiDestinationResolver jndiDestinationResolver = new JndiDestinationResolver();
            jndiDestinationResolver.setJndiTemplate(jt);
            jmsConfig.setDestinationResolver(jndiDestinationResolver);
            jmsConfig.setTargetDestination(address.getJndiDestinationName());
            jmsConfig.setReplyDestination(address.getJndiReplyDestinationName());
        } else {
            // Use the default dynamic destination resolver
            jmsConfig.setTargetDestination(address.getJmsDestinationName());
            jmsConfig.setReplyDestination(address.getJmsReplyDestinationName());
        }
    }
    return jmsConfig;
}