List of usage examples for org.springframework.jms.support.destination JndiDestinationResolver setJndiTemplate
public void setJndiTemplate(@Nullable JndiTemplate jndiTemplate)
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 w w w . j a v a2 s . c om 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; }