/** * Create a JMS ObjectMessage for the given Serializable object. * @param object the Serializable object to convert * @param session current JMS session * @return the resulting message * @throws JMSException if thrown by JMS methods * @see javax.jms.Session#createObjectMessage */ protected ObjectMessage createMessageForSerializable(Serializable object, Session session) throws JMSException { return session.createObjectMessage(object); }
@Override public Message createMessage(Session session) throws JMSException { return session.createObjectMessage(objectMessage); } });
public Message createMessage(Session session) throws JMSException { return session.createObjectMessage(attempt); } });
@Override public ObjectMessage createObjectMessage() throws JMSException { return delegate.createObjectMessage(); }
@Override public ObjectMessage createObjectMessage(Serializable object) throws JMSException { return delegate.createObjectMessage(object); }
public Message createMessage(Session session) throws JMSException { HashMap<String, String> objectMap = new HashMap<String,String>(2); objectMap.put("nameKey", baseNameKey); objectMap.put("typeKey", baseTypeKey); return session.createObjectMessage(objectMap); } });
public void sendMessage(GoMessage message) { try { producer.send(session.createObjectMessage(message)); } catch (JMSException e) { throw bomb(e); } }
@Override public Message createMessage(Session session) throws JMSException { ObjectMessage om = session.createObjectMessage(objectMessage); om.setLongProperty(ScheduledMessage.AMQ_SCHEDULED_DELAY, delay); om.setLongProperty(ScheduledMessage.AMQ_SCHEDULED_PERIOD, 1 * 1000); om.setLongProperty(ScheduledMessage.AMQ_SCHEDULED_REPEAT, 1); return om; } });
@Override public void sendMessage(GoMessage goMessage, long timeToLive) { try { producer.send(session.createObjectMessage(goMessage), producer.getDeliveryMode(), producer.getPriority(), timeToLive); } catch (JMSException e) { throw bomb(e); } }
@Override public ObjectMessage createObjectMessage() { checkSession(); try { return session.createObjectMessage(); } catch (JMSException e) { throw JmsExceptionUtils.convertToRuntimeException(e); } }
@Override public ObjectMessage createObjectMessage(Serializable object) { checkSession(); try { return session.createObjectMessage(object); } catch (JMSException e) { throw JmsExceptionUtils.convertToRuntimeException(e); } }
public Message createMessage(Session session) throws JMSException { ObjectMessage message = session.createObjectMessage(sProps); EmailInfo info = (EmailInfo) props.get(EmailPropertyType.INFO.getType()); message.setJMSPriority(Integer.parseInt(info.getSendAsyncPriority())); return message; } });
public JmsAppenderTest() throws Exception { // this needs to set up before LoggerContextRule given(connectionFactory.createConnection()).willReturn(connection); given(connectionFactory.createConnection(anyString(), anyString())).willThrow(IllegalArgumentException.class); given(connection.createSession(eq(false), eq(Session.AUTO_ACKNOWLEDGE))).willReturn(session); given(session.createProducer(eq(destination))).willReturn(messageProducer); given(session.createTextMessage(anyString())).willReturn(textMessage); given(session.createObjectMessage(isA(Serializable.class))).willReturn(objectMessage); }
@Test public void simpleObject() throws Exception { Session session = mock(Session.class); Serializable payload = mock(Serializable.class); ObjectMessage jmsMessage = mock(ObjectMessage.class); given(session.createObjectMessage(payload)).willReturn(jmsMessage); this.converter.toMessage(MessageBuilder.withPayload(payload).build(), session); verify(session).createObjectMessage(payload); }
@Test public void testSerializableConversion() throws JMSException { Session session = mock(Session.class); ObjectMessage message = mock(ObjectMessage.class); Integer content = new Integer(5); given(session.createObjectMessage(content)).willReturn(message); given(message.getObject()).willReturn(content); SimpleMessageConverter converter = new SimpleMessageConverter(); Message msg = converter.toMessage(content, session); assertEquals(content, converter.fromMessage(msg)); }
public void testChangeMutableObjectInObjectMessageThenRollback() throws Exception { ArrayList<String> list = new ArrayList<String>(); list.add("First"); Message outbound = session.createObjectMessage(list); outbound.setStringProperty("foo", "abc"); beginTx(); producer.send(outbound); commitTx(); LOG.info("About to consume message 1"); beginTx(); Message message = consumer.receive(5000); List<String> body = assertReceivedObjectMessageWithListBody(message); // now lets try mutate it try { message.setStringProperty("foo", "def"); fail("Cannot change properties of the object!"); } catch (JMSException e) { LOG.info("Caught expected exception: " + e, e); } body.clear(); body.add("This should never be seen!"); rollbackTx(); beginTx(); message = consumer.receive(5000); List<String> secondBody = assertReceivedObjectMessageWithListBody(message); assertNotSame("Second call should return a different body", secondBody, body); commitTx(); }
@Test public void testJmsQueueAppenderCompatibility() throws Exception { final JmsAppender appender = (JmsAppender) ctx.getRequiredAppender("JmsQueueAppender"); final LogEvent expected = createLogEvent(); appender.append(expected); then(session).should().createObjectMessage(eq(expected)); then(objectMessage).should().setJMSTimestamp(anyLong()); then(messageProducer).should().send(objectMessage); appender.stop(); then(session).should().close(); then(connection).should().close(); }
@Test public void testJmsTopicAppenderCompatibility() throws Exception { final JmsAppender appender = (JmsAppender) ctx.getRequiredAppender("JmsTopicAppender"); final LogEvent expected = createLogEvent(); appender.append(expected); then(session).should().createObjectMessage(eq(expected)); then(objectMessage).should().setJMSTimestamp(anyLong()); then(messageProducer).should().send(objectMessage); appender.stop(); then(session).should().close(); then(connection).should().close(); }
@org.junit.Ignore public void testSendObjectToQueue() throws Exception { final TestRunner runner = TestRunners.newTestRunner(GetJMSQueue.class); runner.setProperty(JmsProperties.JMS_PROVIDER, JmsProperties.ACTIVEMQ_PROVIDER); runner.setProperty(JmsProperties.URL, "tcp://localhost:61616"); runner.setProperty(JmsProperties.DESTINATION_TYPE, JmsProperties.DESTINATION_TYPE_QUEUE); runner.setProperty(JmsProperties.DESTINATION_NAME, "queue.testing"); runner.setProperty(JmsProperties.ACKNOWLEDGEMENT_MODE, JmsProperties.ACK_MODE_AUTO); WrappedMessageProducer wrappedProducer = JmsFactory.createMessageProducer(runner.getProcessContext(), true); final Session jmsSession = wrappedProducer.getSession(); final MessageProducer producer = wrappedProducer.getProducer(); // Revision class is used because test just needs any Serializable class in core NiFi final ObjectMessage message = jmsSession.createObjectMessage(new Revision(1L, "ID", "COMP_ID")); producer.send(message); jmsSession.commit(); producer.close(); jmsSession.close(); } }
@Override public Message createMessage(Session session) throws JMSException { if (m_jmsDestination.isSendAsObjectMessageEnabled()) { return session.createObjectMessage(alarm); } else { return session.createTextMessage(convertAlarmToText(alarm)); } } });