msg.setText(messageInfo.getMessage()); msg.setJMSCorrelationID(messageInfo.getCorrelationId()); msg.setJMSPriority(messageInfo.getPriority()); msg.setJMSType(messageInfo.getJmsType()); producer.send(msg, deliveryMode, messageInfo.getPriority(), TextMessage.DEFAULT_TIME_TO_LIVE);
private static Pipeline buildPipeline() { Pipeline p = Pipeline.create(); p.drawFrom(Sources.jmsTopic(() -> new ActiveMQConnectionFactory(ActiveMQBroker.BROKER_URL), INPUT_TOPIC)) .filter(message -> message.getJMSPriority() > 3) .map(message -> (TextMessage) message) // print the message text to the log .peek(TextMessage::getText) .drainTo(Sinks.<TextMessage>jmsTopicBuilder(() -> new ActiveMQConnectionFactory(ActiveMQBroker.BROKER_URL)) .destinationName(OUTPUT_TOPIC) .messageFn((session, message) -> { TextMessage textMessage = session.createTextMessage(message.getText()); textMessage.setBooleanProperty("isActive", true); textMessage.setJMSPriority(8); return textMessage; }) .build()); return p; }
private static Pipeline buildPipeline() { Pipeline p = Pipeline.create(); p.drawFrom(Sources.jmsQueue(() -> new ActiveMQConnectionFactory(ActiveMQBroker.BROKER_URL), INPUT_QUEUE)) .filter(message -> message.getJMSPriority() > 3) .map(message -> (TextMessage) message) // print the message text to the log .peek(TextMessage::getText) .drainTo(Sinks.<TextMessage>jmsQueueBuilder(() -> new ActiveMQConnectionFactory(ActiveMQBroker.BROKER_URL)) .destinationName(OUTPUT_QUEUE) .messageFn((session, message) -> { // create new text message with the same text and few additional properties TextMessage textMessage = session.createTextMessage(message.getText()); textMessage.setBooleanProperty("isActive", true); textMessage.setJMSPriority(8); return textMessage; } ) .build()); return p; }
@Override public TextMessage marshallEvent(EventServiceBindingDescriptor bindingDescriptor, Event event, Object session) throws CougarException { try { TextMessage message = ((Session)session).createTextMessage(marshallEventBody(event)); //Sets the routing string message.setStringProperty(JMSPropertyConstants.MESSAGE_ROUTING_FIELD_NAME, getHostString(event)); //Sets the message id guid. If there isn't one, make one up String messageId = event.getMessageId(); if (messageId == null) { messageId = new RequestUUIDImpl().toString(); } message.setStringProperty(JMSPropertyConstants.MESSAGE_ID_FIELD_NAME, messageId); //Sets the version header message.setStringProperty(JMSPropertyConstants.EVENT_VERSION_FIELD_NAME, bindingDescriptor.getServiceVersion().toString()); //Sets the event name header message.setStringProperty(JMSPropertyConstants.EVENT_NAME_FIELD_NAME, event.getClass().getSimpleName()); message.setBooleanProperty("JMS_SonicMQ_preserveUndelivered", true); message.setBooleanProperty("JMS_SonicMQ_notifyUndelivered", true); message.setJMSDeliveryMode(deliveryMode); message.setJMSExpiration(expirationTime); message.setJMSPriority(priority); return message; } catch (JMSException jmsex) { throw new CougarFrameworkException("Error marshalling Event", jmsex); } catch (UnknownHostException e) { throw new CougarFrameworkException("Error looking up local host name", e); } }
public void sendMessage() throws JMSException { Message message = null; // Filtering messages context.createTextMessage().setIntProperty("orderAmount", 1530); context.createTextMessage().setJMSPriority(5); // Setting Message Time-to-Live context.createProducer().setTimeToLive(1000).send(queue, message); context.createProducer().setTimeToLive(1000).setDeliveryMode(DeliveryMode.NON_PERSISTENT).send(queue, message); // Specifying Message Persistence context.createProducer().setDeliveryMode(DeliveryMode.NON_PERSISTENT).send(queue, message); // Controlling Acknowledgment message.acknowledge(); context.createProducer().setDeliveryMode(DeliveryMode.NON_PERSISTENT).send(queue, message); // Creating Durable Consumers context.createDurableConsumer(topic, "javaee7DurableSubscription").receive(); // Setting Priorities context.createProducer().setPriority(2).send(queue, message); // All together context.createProducer().setPriority(2).setTimeToLive(1000).setDeliveryMode(DeliveryMode.NON_PERSISTENT).send(queue, message); } }