/** * Create a JMS MapMessage for the given Map. * @param map the Map to convert * @param session current JMS session * @return the resulting message * @throws JMSException if thrown by JMS methods * @see javax.jms.Session#createMapMessage */ protected MapMessage createMessageForMap(Map<?, ?> map, Session session) throws JMSException { MapMessage message = session.createMapMessage(); for (Map.Entry<?, ?> entry : map.entrySet()) { Object key = entry.getKey(); if (!(key instanceof String)) { throw new MessageConversionException("Cannot convert non-String key of type [" + ObjectUtils.nullSafeClassName(key) + "] to JMS MapMessage entry"); } message.setObject((String) key, entry.getValue()); } return message; }
@Test public void testMapConversion() throws JMSException { Session session = mock(Session.class); MapMessage message = mock(MapMessage.class); Map<String, String> content = new HashMap<>(2); content.put("key1", "value1"); content.put("key2", "value2"); given(session.createMapMessage()).willReturn(message); given(message.getMapNames()).willReturn(Collections.enumeration(content.keySet())); given(message.getObject("key1")).willReturn("value1"); given(message.getObject("key2")).willReturn("value2"); SimpleMessageConverter converter = new SimpleMessageConverter(); Message msg = converter.toMessage(content, session); assertEquals(content, converter.fromMessage(msg)); verify(message).setObject("key1", "value1"); verify(message).setObject("key2", "value2"); }
message.setBytes(name, array, 0, array.length); } else { message.setObject(name, v);
@Override public void setObject(final String name, final Object value) throws JMSException { message.setObject(name, value); }
public void setObject(String name, Object value) throws JMSException { ((MapMessage) message).setObject(name, value); }
public void setObject(String name, Object value) throws JMSException { ((MapMessage) message).setObject(name, value); }
/** * JMSペイロードに{@link #setMap map}プロパティの値を設定します。 * * @param message * JMSメッセージ * @throws JMSException * JMSメッセージにペイロードを設定できなかった場合にスローされます */ @Override protected void setupPayload(final MapMessage message) throws JMSException { for (final Map.Entry<String, Object> entry : map.entrySet()) { message.setObject(entry.getKey(), entry.getValue()); } }
/** * Populates a {@link MapMessage} from a {@link Map} instance. */ protected void populateMapMessage(MapMessage message, Map<?, ?> map, CamelContext context) throws JMSException { for (Entry<?, ?> entry : map.entrySet()) { String keyString = CamelContextHelper.convertTo(context, String.class, entry.getKey()); if (keyString != null) { message.setObject(keyString, entry.getValue()); } } }
@Override public void accept(final String key, final Object value) { try { jmsMapMessage.setObject(key, value); } catch (final JMSException e) { throw new IllegalArgumentException(String.format("%s mapping key '%s' to value '%s': %s", e.getClass(), key, value, e.getLocalizedMessage()), e); } } });
public MapMessage publish(Map<String, Object> map, String destinationName, Map<String, Object> properties, int deliveryMode, int priority, long expiration) throws JMSException, NamingException { MapMessage msg = session.createMapMessage(); for (Entry<String, Object> me : map.entrySet()) { msg.setObject(me.getKey(), me.getValue()); } return (MapMessage)setPropertiesAndSend(destinationName, properties, msg, deliveryMode, priority, expiration); }
public MapMessage createMessage(Map<String, Object> body, Map<String, Object> properties) throws JMSException { MapMessage message = this.createMapMessage(); if (body != null) { for (Map.Entry<String, Object> entry : body.entrySet()) { message.setObject(entry.getKey(), entry.getValue()); } } setMessageProperties(message, properties); return message; }
public MapMessage createMessage(Map<String, Object> body, Map<String, Object> properties) { MapMessage message = this.createMapMessage(); if (body != null) { for (Map.Entry<String, Object> entry : body.entrySet()) { try { message.setObject(entry.getKey(), entry.getValue()); } catch (JMSException jmsEx) { throw new EmbeddedJMSResourceException(String.format("Failed to set body entry {%s = %s} on MapMessage", entry.getKey(), entry.getValue().toString()), jmsEx); } } } setMessageProperties(message, properties); return message; }
@Override public Message toMessageInternal(Session session) throws JMSException { MapMessage message = session.createMapMessage(); map.forEach(ThrowingBiConsumer.silent((k, v) -> message.setObject(k, v))); return message; } }
@Override public JMSProducer send(Destination destination, Map<String, Object> body) { try { MapMessage message = session.createMapMessage(); for (Map.Entry<String, Object> entry : body.entrySet()) { message.setObject(entry.getKey(), entry.getValue()); } doSend(destination, message); } catch (JMSException jmse) { throw JmsExceptionSupport.createRuntimeException(jmse); } return this; }
@Override public JMSProducer send(Destination destination, Map<String, Object> body) { try { MapMessage message = session.createMapMessage(); for (Map.Entry<String, Object> entry : body.entrySet()) { message.setObject(entry.getKey(), entry.getValue()); } doSend(destination, message); } catch (JMSException jmse) { throw JmsExceptionSupport.createRuntimeException(jmse); } return this; }
/** * Set * * @param name The name * @param value The value * @throws JMSException Thrown if an error occurs */ @Override public void setObject(final String name, final Object value) throws JMSException { if (ActiveMQRALogger.LOGGER.isTraceEnabled()) { ActiveMQRALogger.LOGGER.trace("setObject(" + name + ", " + value + ")"); } ((MapMessage) message).setObject(name, value); }
@Override void sendMapMessage(Map<String, ?> map, Map properties) throws JMSException { if (map == null) return; MapMessage message = session.createMapMessage(); for (Map.Entry<String, ?> entry : map.entrySet()) message.setObject(entry.getKey(), entry.getValue()); copyHeadersToProperties(properties, message); publisher.publish(message, getDeliveryMode(), messagePriority, getTimeToLive(properties)); } }
@Override void sendMapMessage(Map<String, ?> map, Map properties) throws JMSException { if (map == null) return; MapMessage message = session.createMapMessage(); for (Map.Entry<String, ?> entry : map.entrySet()) message.setObject(entry.getKey(), entry.getValue()); copyHeadersToProperties(properties, message); sender.send(message, getDeliveryMode(), messagePriority, getTimeToLive(properties)); } }
@Override void sendMapMessage(Map<String, ?> map, Map properties) throws JMSException { if (map == null) return; MapMessage message = session.createMapMessage(); for (Map.Entry<String, ?> entry : map.entrySet()) message.setObject(entry.getKey(), entry.getValue()); copyHeadersToProperties(properties, message); publisher.publish(message, getDeliveryMode(), messagePriority, getTimeToLive(properties)); } }
@Override void sendMapMessage(Map<String, ?> map, Map properties) throws JMSException { if (map == null) return; MapMessage message = session.createMapMessage(); for (Map.Entry<String, ?> entry : map.entrySet()) message.setObject(entry.getKey(), entry.getValue()); copyHeadersToProperties(properties, message); sender.send(message, getDeliveryMode(), messagePriority, getTimeToLive(properties)); } }