Java Code Examples for javax.jms.Message#setJMSDeliveryMode()
The following examples show how to use
javax.jms.Message#setJMSDeliveryMode() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: MessageHeaderTest.java From activemq-artemis with Apache License 2.0 | 6 votes |
/** * Test that the <code>JMSDeliveryMode</code> header field value is ignored * when the message is sent and that it holds the value specified by the sending * method (i.e. <code>Message.DEFAULT_ROUTING_TYPE</code> in this test when the message is received. */ @Test public void testJMSDeliveryMode() { try { // sender has been created with the DEFAULT_ROUTING_TYPE which is PERSISTENT Assert.assertEquals(DeliveryMode.PERSISTENT, sender.getDeliveryMode()); Message message = senderSession.createMessage(); // send a message specfiying NON_PERSISTENT for the JMSDeliveryMode header field message.setJMSDeliveryMode(DeliveryMode.NON_PERSISTENT); sender.send(message); Assert.assertTrue("sec. 3.4.2 When a message is sent this value is ignored", message.getJMSDeliveryMode() != DeliveryMode.NON_PERSISTENT); Assert.assertEquals("sec. 3.4.2 After completion of the send it holds the delivery mode specified " + "by the sending method (persistent by default).\n", Message.DEFAULT_DELIVERY_MODE, message.getJMSDeliveryMode()); receiver.receive(TestConfig.TIMEOUT); } catch (JMSException e) { fail(e); } }
Example 2
Source File: ProducerIntegrationTest.java From qpid-jms with Apache License 2.0 | 5 votes |
@Test(timeout = 20000) public void testProducerOverridesMessageDeliveryMode() throws Exception { try (TestAmqpPeer testPeer = new TestAmqpPeer();) { Connection connection = testFixture.establishConnecton(testPeer); testPeer.expectBegin(); testPeer.expectSenderAttach(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Queue queue = session.createQueue("myQueue"); MessageProducer producer = session.createProducer(queue); // Create and transfer a new message, explicitly setting the deliveryMode on the // message (which applications shouldn't) to NON_PERSISTENT and sending it to check // that the producer ignores this value and sends the message as PERSISTENT(/durable) MessageHeaderSectionMatcher headersMatcher = new MessageHeaderSectionMatcher(true).withDurable(equalTo(true)); MessageAnnotationsSectionMatcher msgAnnotationsMatcher = new MessageAnnotationsSectionMatcher(true); TransferPayloadCompositeMatcher messageMatcher = new TransferPayloadCompositeMatcher(); messageMatcher.setHeadersMatcher(headersMatcher); messageMatcher.setMessageAnnotationsMatcher(msgAnnotationsMatcher); testPeer.expectTransfer(messageMatcher); testPeer.expectClose(); Message message = session.createTextMessage(); message.setJMSDeliveryMode(DeliveryMode.NON_PERSISTENT); assertEquals(DeliveryMode.NON_PERSISTENT, message.getJMSDeliveryMode()); producer.send(message); assertEquals(DeliveryMode.PERSISTENT, message.getJMSDeliveryMode()); connection.close(); testPeer.waitForAllHandlersToComplete(1000); } }
Example 3
Source File: MockJMSSession.java From pooled-jms with Apache License 2.0 | 4 votes |
void send(MockJMSMessageProducer producer, Destination destination, Message message, int deliveryMode, int priority, long timeToLive, boolean disableMessageId, boolean disableTimestamp, long deliveryDelay, CompletionListener completionListener) throws JMSException { sendLock.lock(); try { message.setJMSDeliveryMode(deliveryMode); message.setJMSPriority(priority); message.setJMSRedelivered(false); message.setJMSDestination(destination); long timeStamp = System.currentTimeMillis(); boolean hasTTL = timeToLive > Message.DEFAULT_TIME_TO_LIVE; boolean hasDelay = deliveryDelay > Message.DEFAULT_DELIVERY_DELAY; if (!(message instanceof MockJMSMessage)) { throw new IllegalStateException("Mock JMS client cannot handle foreign messages"); } if (!disableTimestamp) { message.setJMSTimestamp(timeStamp); } else { message.setJMSTimestamp(0); } if (hasTTL) { message.setJMSExpiration(timeStamp + timeToLive); } else { message.setJMSExpiration(0); } long messageSequence = producer.getNextMessageSequence(); String messageId = null; if (!disableMessageId) { messageId = producer.getProducerId() + ":"+ messageSequence; } // Set the delivery time. Purposefully avoided doing this earlier so // that we use the 'outbound' JmsMessage object reference when // updating our own message instances, avoids using the interface // in case the JMS 1.1 Message API is actually being used due to // being on the classpath too. long deliveryTime = timeStamp; if (hasDelay) { deliveryTime = timeStamp + deliveryDelay; } message.setJMSDeliveryTime(deliveryTime); // Set the message ID message.setJMSMessageID(messageId); try { connection.onMessageSend(this, message); } catch (JMSException jmsEx) { // If the synchronous portion of the send fails the completion be // notified but might depending on the circumstances of the failures, // remove it from the queue and check if is is already completed // once we decide to add completion support to the mock throw jmsEx; } } finally { sendLock.unlock(); } }
Example 4
Source File: MessageCreator.java From qpid-broker-j with Apache License 2.0 | 4 votes |
private static void setJmsHeader(final MessageDescription messageDescription, final Message message) throws JMSException { final HashMap<MessageDescription.MessageHeader, Serializable> header = messageDescription.getHeaders(); if (header == null) { return; } for (Map.Entry<MessageDescription.MessageHeader, Serializable> entry : header.entrySet()) { try { switch (entry.getKey()) { case DESTINATION: message.setJMSDestination((Destination) entry.getValue()); break; case DELIVERY_MODE: message.setJMSDeliveryMode((Integer) entry.getValue()); break; case MESSAGE_ID: message.setJMSMessageID((String) entry.getValue()); break; case TIMESTAMP: message.setJMSTimestamp((Long) entry.getValue()); break; case CORRELATION_ID: if (entry.getValue() instanceof byte[]) { message.setJMSCorrelationIDAsBytes((byte[]) entry.getValue()); } else { message.setJMSCorrelationID((String) entry.getValue()); } break; case REPLY_TO: throw new RuntimeException("The Test should not set the replyTo header." + " It should rather use the dedicated method"); case REDELIVERED: message.setJMSRedelivered((Boolean) entry.getValue()); break; case TYPE: message.setJMSType((String) entry.getValue()); break; case EXPIRATION: message.setJMSExpiration((Long) entry.getValue()); break; case PRIORITY: message.setJMSPriority((Integer) entry.getValue()); break; default: throw new RuntimeException(String.format("unexpected message header '%s'", entry.getKey())); } } catch (ClassCastException e) { throw new RuntimeException(String.format("Could not set message header '%s' to this value: %s", entry.getKey(), entry.getValue()), e); } } }
Example 5
Source File: JMSTestUtil.java From cxf with Apache License 2.0 | 4 votes |
/** * @param testcase * @param session * @param rtd * @return * @throws JMSException */ public static Message buildJMSMessageFromTestCase(TestCaseType testcase, Session session, Destination rtd) throws JMSException { MessagePropertiesType messageProperties = testcase.getRequestMessage(); Message jmsMessage = null; String messageType = messageProperties.getMessageType(); if ("text".equals(messageType)) { jmsMessage = session.createTextMessage(); ((TextMessage)jmsMessage).setText("test"); } else if ("byte".equals(messageType)) { jmsMessage = session.createBytesMessage(); } else if ("stream".equals(messageType)) { jmsMessage = session.createStreamMessage(); ((StreamMessage)jmsMessage).writeString("test"); } else { jmsMessage = session.createBytesMessage(); } jmsMessage.setJMSReplyTo(rtd); if (messageProperties.isSetDeliveryMode()) { jmsMessage.setJMSDeliveryMode(messageProperties.getDeliveryMode()); } if (messageProperties.isSetExpiration()) { jmsMessage.setJMSExpiration(messageProperties.getExpiration()); } if (messageProperties.isSetPriority()) { jmsMessage.setJMSPriority(messageProperties.getPriority()); } if (messageProperties.isSetExpiration()) { jmsMessage.setJMSPriority(messageProperties.getExpiration()); } if (messageProperties.isSetCorrelationID()) { jmsMessage.setJMSCorrelationID(messageProperties.getCorrelationID()); } if (messageProperties.isSetTargetService() && !"".equals(messageProperties.getTargetService().trim())) { jmsMessage.setStringProperty(JMSSpecConstants.TARGETSERVICE_FIELD, messageProperties .getTargetService().trim()); } if (messageProperties.isSetBindingVersion() && !"".equals(messageProperties.getBindingVersion().trim())) { jmsMessage.setStringProperty(JMSSpecConstants.BINDINGVERSION_FIELD, messageProperties .getBindingVersion().trim()); } if (messageProperties.isSetContentType() && !"".equals(messageProperties.getContentType().trim())) { jmsMessage.setStringProperty(JMSSpecConstants.CONTENTTYPE_FIELD, messageProperties .getContentType().trim()); } if (messageProperties.isSetSoapAction() && !"".equals(messageProperties.getSoapAction().trim())) { jmsMessage.setStringProperty(JMSSpecConstants.SOAPACTION_FIELD, messageProperties .getSoapAction().trim()); } if (messageProperties.isSetRequestURI() && !"".equals(messageProperties.getRequestURI().trim())) { jmsMessage.setStringProperty(JMSSpecConstants.REQUESTURI_FIELD, messageProperties .getRequestURI().trim()); } return jmsMessage; }