use of org.apache.cxf.transport.jms.util.JndiHelper 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;
}
Aggregations