private void updateJMSConfig(JMSConfiguration jmsConfig) { if (jmsConfig != null) { if(this.durableSubscriptionClientId!=null){ jmsConfig.setDurableSubscriptionClientId(durableSubscriptionClientId); } if(this.durableSubscriptionName!=null){ jmsConfig.setDurableSubscriptionName(durableSubscriptionName); jmsConfig.setSubscriptionDurable(true); } } }
private static void setReplyDestination(JMSConfiguration jmsConfig, JMSEndpoint endpoint) { if (endpoint.getReplyToName() != null) { jmsConfig.setReplyDestination(endpoint.getReplyToName()); jmsConfig.setReplyPubSubDomain(false); } else if (endpoint.getTopicReplyToName() != null) { jmsConfig.setReplyDestination(endpoint.getTopicReplyToName()); jmsConfig.setReplyPubSubDomain(true); } }
private void checkJmsTransportTransaction() { Destination destination = server.getDestination(); if (destination instanceof JMSDestination) { JMSDestination jmsDestination = (JMSDestination)destination; JMSConfiguration jmsConfig = jmsDestination.getJmsConfig(); if (jmsConfig.isSessionTransacted()) { TransactionManager tm = (TransactionManager) getContext().getTransactionManager(); if (tm == null) { throw new IllegalStateException("No TransactionManager available"); } else if (tm instanceof PlatformTransactionManager) { jmsConfig.setSessionTransacted(true); jmsConfig.setTransactionManager((PlatformTransactionManager)tm); jmsConfig.setUseJms11(false); setSynchronous(true); transactionEnabled = true; } } } }
/** * Retrieve connection factory from JNDI * * @param jmsConfig * @param jndiConfig * @return */ private ConnectionFactory getConnectionFactoryFromJndi() { if (getJndiEnvironment() == null || getConnectionFactoryName() == null) { return null; } try { return new JndiHelper(getJndiEnvironment()). lookup(getConnectionFactoryName(), ConnectionFactory.class); } catch (NamingException e) { throw new RuntimeException(e); } }
JMSConfiguration jmsConfig = new JMSConfiguration(); 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()); jmsConfig.setTransactionManager(tm);
jmsConfiguration.setPubSubNoLocal(pubSubNoLocal); jmsConfiguration.setReceiveTimeout(receiveTimeout); jmsConfiguration.setReceiveTimeout(clientReceiveTimeout); jmsConfiguration.setServerReceiveTimeout(serverReceiveTimeout); jmsConfiguration.setExplicitQosEnabled(explicitQosEnabled); jmsConfiguration.setDeliveryMode(deliveryMode); jmsConfiguration.setPriority(priority); jmsConfiguration.setTimeToLive(timeToLive); jmsConfiguration.setMessageSelector(messageSelector); jmsConfiguration.setConduitSelectorPrefix(conduitSelectorPrefix); jmsConfiguration.setSubscriptionDurable(subscriptionDurable); jmsConfiguration.setDurableSubscriptionName(durableSubscriptionName); jmsConfiguration.setTargetDestination(targetDestination); jmsConfiguration.setReplyDestination(replyDestination); jmsConfiguration.setReplyToDestination(replyToDestination);
@Test(expected = SOAPFaultException.class) public void testReplyAndReplyToDestinations() throws Exception { JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); factory.setWsdlLocation("classpath:/wsdl/jms_test.wsdl"); factory.setServiceName(new QName("http://cxf.apache.org/hello_world_jms", "HelloWorldService")); factory.setEndpointName(new QName("http://cxf.apache.org/hello_world_jms", "HelloWorldPort")); factory.setAddress("jms://"); JMSConfigFeature feature = new JMSConfigFeature(); JMSConfiguration config = new JMSConfiguration(); config.setConnectionFactory(new ActiveMQConnectionFactory(broker.getBrokerURL())); config.setRequestURI("test.jmstransport.text"); config.setTargetDestination("test.jmstransport.text"); // replyDestination and replyToDestination intentionally differ in this test scenario // replyDestination = Destination name to listen on for reply messages config.setReplyDestination("test.jmstransport.text.reply"); // replyToDestination = Destination name to send out as replyTo address in the message config.setReplyToDestination("test.jmstransport.text.replyTo"); config.setReceiveTimeout(1000L); feature.setJmsConfig(config); factory.getFeatures().add(feature); HelloWorldPortType greeter = factory.create(HelloWorldPortType.class); try { greeter.greetMe("FooBar"); // Timeout exception should be thrown } finally { ((java.io.Closeable)greeter).close(); } }
if (!jmsConfig.isOneSessionPerConnection()) { connection = JMSFactory.createConnection(jmsConfig); session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Destination destination = jmsConfig.getTargetDestination(session); container = new PollingMessageListenerContainer(connection, destination, this, exListener); } else { container.setConcurrentConsumers(jmsConfig.getConcurrentConsumers()); container.setTransactionManager(jmsConfig.getTransactionManager()); container.setMessageSelector(jmsConfig.getMessageSelector()); container.setTransacted(jmsConfig.isSessionTransacted()); container.setDurableSubscriptionName(jmsConfig.getDurableSubscriptionName()); container.setPubSubNoLocal(jmsConfig.isPubSubNoLocal()); container.setExecutor((Executor) executor); container.setJndiEnvironment(jmsConfig.getJndiEnvironment()); container.start(); suspendedContinuations.setListenerContainer(container); if (!jmsConfig.isOneSessionPerConnection()) { connection.start();
public static JmsConfigurator create(JaxWsServerFactoryBean factory) { if (factory == null) { return null; } final QName serviceName = factory.getServiceName(); if (serviceName == null) { return null; } final QName endpointName = factory.getEndpointName(); final String portName = endpointName == null ? null : endpointName.getLocalPart(); JmsConfigurator result = new JmsConfigurator(); result.setConfigurationPrefix(portName); result.setJmsConfiguration(new JMSConfiguration()); result.setServiceName(serviceName); return result; }
private void configureJndi(JMSConfiguration jmsConfiguration) { final Configuration cfg = configuration == null ? CallContext.resolveConfiguration(serviceName) : configuration; final String jndiConnectionFactoryName = getJndiProperty("jndiConnectionFactoryName"); if (jndiConnectionFactoryName != null) { jmsConfiguration.setConnectionFactoryName(jndiConnectionFactoryName); } final String connectionUserName = getJndiProperty("connectionUserName"); if (connectionUserName != null) { jmsConfiguration.setUserName(connectionUserName); } final String connectionPassword = getJndiProperty("connectionPassword"); if (connectionPassword != null) { jmsConfiguration.setPassword(connectionPassword); } Properties env = jmsConfiguration.getJndiEnvironment(); final boolean hasNoEnv = env == null; if (hasNoEnv) { env = new Properties(); } cfg.fillProperties("jndiConfig.environment", env); if (workPrefix != null) { cfg.fillProperties(workPrefix + "jndiConfig.environment", env); } if (hasNoEnv && !env.isEmpty()) { jmsConfiguration.setJndiEnvironment(env); } }
String replyTo = headers.getJMSReplyTo(); String jmsMessageID = sendMessage(request, outMessage, jmsConfig.getReplyToDestination(session, replyTo), correlationId, closer, session); Destination replyDestination = jmsConfig.getReplyDestination(session, replyTo); boolean useSyncReceive = ((correlationId == null || userCID != null) && !jmsConfig.isPubSubDomain()) || !replyDestination.equals(staticReplyDestination); if (correlationId == null) { javax.jms.Message replyMessage = JMSUtil.receive(session, replyDestination, correlationId, jmsConfig.getReceiveTimeout(), jmsConfig.isPubSubNoLocal(), exchange); processReplyMessage(exchange, replyMessage); } else { try { exchange.wait(jmsConfig.getReceiveTimeout()); } catch (InterruptedException e) { throw new JMSException("Interrupted while correlating " + e.getMessage());
public void twoWayTestWithCreateMessage(final TestCaseType testcase) throws Exception { String address = testcase.getAddress(); EndpointInfo endpointInfo = new EndpointInfo(); endpointInfo.setAddress(JMSTestUtil.getFullAddress(address, broker.getBrokerURL())); JMSConfiguration jmsConfig = JMSConfigFactory.createFromEndpointInfo(staticBus, endpointInfo, null); ResourceCloser closer = new ResourceCloser(); try { Connection connection = closer.register(JMSFactory.createConnection(jmsConfig)); connection.start(); Session session = closer.register(connection.createSession(false, Session.AUTO_ACKNOWLEDGE)); Destination targetDest = jmsConfig.getTargetDestination(session); Destination replyToDestination = jmsConfig.getReplyToDestination(session, null); JMSSender sender = JMSFactory.createJmsSender(jmsConfig, null); Message jmsMessage = JMSTestUtil.buildJMSMessageFromTestCase(testcase, session, replyToDestination); sender.sendMessage(session, targetDest, jmsMessage); Message replyMessage = JMSUtil.receive(session, replyToDestination, jmsMessage.getJMSMessageID(), 10000, true); checkReplyMessage(replyMessage, testcase); } catch (JMSException e) { throw JMSUtil.convertJmsException(e); } finally { closer.close(); } }
public static JmsConfigurator create(Endpoint endpoint) { if (!(endpoint instanceof EndpointImpl)) { return null; } final EndpointImpl ep = (EndpointImpl) endpoint; final QName serviceName = ep.getServiceName(); if (serviceName == null) { return null; } final QName endpointName = ep.getEndpointName(); final String portName = endpointName == null ? null : endpointName.getLocalPart(); JmsConfigurator result = new JmsConfigurator(); result.setConfigurationPrefix(portName); result.setJmsConfiguration(new JMSConfiguration()); result.setServiceName(serviceName); return result; }
JmsConfigurator result = new JmsConfigurator(); result.setConfigurationPrefix(portName); result.setJmsConfiguration(new JMSConfiguration()); result.setServiceName(serviceName); return result;
JMSConfiguration jmsConfig = new JMSConfiguration();
JMSConfiguration jmsConfig = new JMSConfiguration();
JMSConfiguration jmsConfig = new JMSConfiguration();