List of usage examples for javax.jms MapMessage getMapNames
Enumeration getMapNames() throws JMSException;
From source file:com.espertech.esperio.regression.adapter.SupportJMSReceiver.java
public static void print(Message msg) throws JMSException { log.info(".print received message: " + msg.getJMSMessageID()); if (msg instanceof ObjectMessage) { ObjectMessage objMsg = (ObjectMessage) msg; log.info(".print object: " + objMsg.getObject().toString()); } else {/*from ww w . ja v a 2 s.c om*/ MapMessage mapMsg = (MapMessage) msg; HashMap map = new HashMap(); Enumeration en = mapMsg.getMapNames(); while (en.hasMoreElements()) { String property = (String) en.nextElement(); Object mapObject = mapMsg.getObject(property); map.put(property, mapObject); } log.info(".print map: " + map); } }
From source file:com.mirth.connect.connectors.jms.JmsMessageUtils.java
public static Object getObjectForMessage(Message source) throws JMSException { Object result = null;/*from w w w .j a va 2 s .co m*/ try { if (source instanceof ObjectMessage) { result = ((ObjectMessage) source).getObject(); } else if (source instanceof MapMessage) { Hashtable map = new Hashtable(); MapMessage m = (MapMessage) source; for (Enumeration e = m.getMapNames(); e.hasMoreElements();) { String name = (String) e.nextElement(); Object obj = m.getObject(name); map.put(name, obj); } result = map; } else if (source instanceof javax.jms.BytesMessage) { javax.jms.BytesMessage bm = (javax.jms.BytesMessage) source; java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream(); byte[] buffer = new byte[1024 * 4]; int len = 0; bm.reset(); while ((len = bm.readBytes(buffer)) != -1) { baos.write(buffer, 0, len); } baos.flush(); result = baos.toByteArray(); baos.close(); if (result != null) { if (logger.isDebugEnabled()) logger.debug("JMSToObject: extracted " + ((byte[]) result).length + " bytes from JMS BytesMessage"); } } else if (source instanceof TextMessage) { result = ((TextMessage) source).getText(); } else if (source instanceof BytesMessage) { byte[] bytes = getBytesFromMessage(source); return CompressionHelper.uncompressByteArray(bytes); } else if (source instanceof StreamMessage) { StreamMessage sm = (javax.jms.StreamMessage) source; result = new java.util.Vector(); try { Object obj = null; while ((obj = sm.readObject()) != null) { ((java.util.Vector) result).addElement(obj); } } catch (MessageEOFException eof) { } catch (Exception e) { throw new JMSException("Failed to extract information from JMS Stream Message: " + e); } } else { result = source; } } catch (Exception e) { throw new JMSException("Failed to transform message: " + e.getMessage()); } return result; }
From source file:org.apache.falcon.regression.core.util.Util.java
/** * Prints JMSConsumer messages content./*from w ww.ja va2 s . c o m*/ * @param messageConsumer the source JMSConsumer * @throws JMSException */ public static void printMessageData(JmsMessageConsumer messageConsumer) throws JMSException { LOGGER.info("dumping all queue data:"); for (MapMessage mapMessage : messageConsumer.getReceivedMessages()) { StringBuilder stringBuilder = new StringBuilder(); final Enumeration mapNames = mapMessage.getMapNames(); while (mapNames.hasMoreElements()) { final String propName = mapNames.nextElement().toString(); final String propValue = mapMessage.getString(propName); stringBuilder.append(propName).append('=').append(propValue).append(' '); } LOGGER.info(stringBuilder); } }
From source file:com.redhat.jenkins.plugins.ci.messaging.ActiveMqMessagingWorker.java
public static String getMessageBody(Message message) { try {//from w ww .jav a2 s.c o m if (message instanceof MapMessage) { MapMessage mm = (MapMessage) message; ObjectMapper mapper = new ObjectMapper(); ObjectNode root = mapper.createObjectNode(); @SuppressWarnings("unchecked") Enumeration<String> e = mm.getMapNames(); while (e.hasMoreElements()) { String field = e.nextElement(); root.set(field, mapper.convertValue(mm.getObject(field), JsonNode.class)); } return mapper.writer().writeValueAsString(root); } else if (message instanceof TextMessage) { TextMessage tm = (TextMessage) message; return tm.getText(); } else if (message instanceof BytesMessage) { BytesMessage bm = (BytesMessage) message; byte[] bytes = new byte[(int) bm.getBodyLength()]; if (bm.readBytes(bytes) == bm.getBodyLength()) { return new String(bytes); } } else { log.log(Level.SEVERE, "Unsupported message type:\n" + formatMessage(message)); } } catch (Exception e) { log.log(Level.SEVERE, "Unhandled exception retrieving message body:\n" + formatMessage(message), e); } return ""; }
From source file:com.redhat.jenkins.plugins.ci.messaging.ActiveMqMessagingWorker.java
public static String formatMessage(Message message) { StringBuilder sb = new StringBuilder(); try {/*ww w . ja v a 2 s . c om*/ String headers = formatHeaders(message); if (headers.length() > 0) { sb.append("Message Headers:\n"); sb.append(headers); } sb.append("Message Properties:\n"); @SuppressWarnings("unchecked") Enumeration<String> propNames = message.getPropertyNames(); while (propNames.hasMoreElements()) { String propertyName = propNames.nextElement(); sb.append(" "); sb.append(propertyName); sb.append(": "); if (message.getObjectProperty(propertyName) != null) { sb.append(message.getObjectProperty(propertyName).toString()); } sb.append("\n"); } sb.append("Message Content:\n"); if (message instanceof TextMessage) { sb.append(((TextMessage) message).getText()); } else if (message instanceof MapMessage) { MapMessage mm = (MapMessage) message; ObjectMapper mapper = new ObjectMapper(); ObjectNode root = mapper.createObjectNode(); @SuppressWarnings("unchecked") Enumeration<String> e = mm.getMapNames(); while (e.hasMoreElements()) { String field = e.nextElement(); root.put(field, mapper.convertValue(mm.getObject(field), JsonNode.class)); } sb.append(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(root)); } else if (message instanceof BytesMessage) { BytesMessage bm = (BytesMessage) message; bm.reset(); byte[] bytes = new byte[(int) bm.getBodyLength()]; if (bm.readBytes(bytes) == bm.getBodyLength()) { sb.append(new String(bytes)); } } else { sb.append(" Unhandled message type: " + message.getJMSType()); } } catch (Exception e) { log.log(Level.SEVERE, "Unable to format message:", e); } return sb.toString(); }
From source file:com.espertech.esperio.jms.JMSDefaultAnyMessageUnmarshaller.java
public EventBean unmarshal(EventAdapterService eventAdapterService, Message message) throws EPException { try {//from w ww. j a v a2s. c om if (message instanceof ObjectMessage) { ObjectMessage objmsg = (ObjectMessage) message; Serializable obj = objmsg.getObject(); return eventAdapterService.adapterForBean(obj); } else if (message instanceof MapMessage) { Map<String, Object> properties = new HashMap<String, Object>(); MapMessage mapMsg = (MapMessage) message; Enumeration en = mapMsg.getMapNames(); while (en.hasMoreElements()) { String property = (String) en.nextElement(); Object mapObject = mapMsg.getObject(property); properties.put(property, mapObject); } // Get event type property Object typeProperty = properties.get(InputAdapter.ESPERIO_MAP_EVENT_TYPE); if (typeProperty == null) { log.warn(".unmarshal Failed to unmarshal map message, expected type property not found: '" + InputAdapter.ESPERIO_MAP_EVENT_TYPE + "'"); return null; } // Get event type String name = typeProperty.toString(); EventType eventType = eventAdapterService.getExistsTypeByName(name); if (eventType == null) { log.warn(".unmarshal Failed to unmarshal map message, event type name '" + name + "' is not a known type"); return null; } return eventAdapterService.adapterForTypedMap(properties, eventType); } else { String error = ".unmarshal Failed to unmarshal message of JMS type: " + message.getJMSType(); log.error(error); throw new EPException(error); } } catch (JMSException ex) { throw new EPException("Error unmarshalling message", ex); } }
From source file:com.adaptris.core.jms.MapMessageTranslator.java
/** * <p>/* w w w .java 2 s . com*/ * Translates a MapMessage into an {@link com.adaptris.core.AdaptrisMessage}. * </p> * * @param msg the <code>MapMessage</code> to translate * @return an <code>AdaptrisMessage</code> * @throws JMSException */ public AdaptrisMessage translate(Message msg) throws JMSException { MapMessage jmsMsg = (MapMessage) msg; AdaptrisMessage result = currentMessageFactory().newMessage(jmsMsg.getString(getKeyForPayload())); Enumeration e = jmsMsg.getMapNames(); while (e.hasMoreElements()) { String mapName = (String) e.nextElement(); if (!mapName.equals(getKeyForPayload())) { result.addMetadata(mapName, jmsMsg.getString(mapName)); } } return helper.moveMetadata(msg, result); }
From source file:com.jkoolcloud.tnt4j.streams.parsers.ActivityJMSMessageParser.java
/** * Parse JMS {@link MapMessage} activity info into activity data map. * * @param mapMessage/* w w w . jav a2 s.c om*/ * JMS map message * @param dataMap * activity data map collected from JMS {@link MapMessage} * @throws JMSException * if JMS exception occurs while getting map entries from message. */ @SuppressWarnings("unchecked") protected void parseMapMessage(MapMessage mapMessage, Map<String, Object> dataMap) throws JMSException { Enumeration<String> en = (Enumeration<String>) mapMessage.getMapNames(); while (en.hasMoreElements()) { String key = en.nextElement(); dataMap.put(key, mapMessage.getObject(key)); } }
From source file:hermes.ext.imq.ImqAdmin.java
@Override public void onMessage(Message msg) { try {/* w ww . j a va 2s .c o m*/ MapMessage mapMsg = (MapMessage) msg; String type = mapMsg.getStringProperty("type"); LOG.debug("Got admin message from broker of type: " + type); if (type.equals(DEST_LIST_TOPIC_NAME)) { List<DestinationConfig> result = new ArrayList<DestinationConfig>(); for (@SuppressWarnings("unchecked") Enumeration e = mapMsg.getMapNames(); e.hasMoreElements();) { String name = (String) e.nextElement(); @SuppressWarnings("unchecked") Map<String, String> object = (Map<String, String>) mapMsg.getObject(name); DestinationConfig dest = HermesBrowser.getConfigDAO().createDestinationConfig(); dest.setName(object.get("name")); dest.setShortName(object.get("name")); dest.setDomain("queue".equals(object.get("type")) ? Domain.QUEUE.getId() : ("topic".equals(object.get("type")) ? Domain.TOPIC.getId() : Domain.UNKNOWN.getId())); result.add(dest); } Collections.sort(result, new Comparator<DestinationConfig>() { @Override public int compare(DestinationConfig o1, DestinationConfig o2) { return o1.getShortName().compareTo(o2.getShortName()); } }); destinations = result; synchronized (destListGuard) { destListGuard.notifyAll(); } } else if (type.startsWith(QUEUE_METRICS_TOPIC_PREFIX)) { LOG.debug("Got queue metrics: " + type); String queueName = type.substring(QUEUE_METRICS_TOPIC_PREFIX.length()); messageCounts.put(queueName, mapMsg.getLong("numMsgs")); HashMap<String, Long> map = new HashMap<String, Long>(); @SuppressWarnings("unchecked") Enumeration<String> e = mapMsg.getMapNames(); while (e.hasMoreElements()) { String name = e.nextElement(); map.put(name, mapMsg.getLong(name)); } stats.put(queueName, map); LOG.debug("Stored stats for: " + queueName); synchronized (destMetricGuard) { destMetricGuard.notifyAll(); } } else if (type.startsWith(TOPIC_METRICS_TOPIC_PREFIX)) { LOG.debug("Got topic metrics: " + type); String topicName = type.substring(TOPIC_METRICS_TOPIC_PREFIX.length()); messageCounts.put(topicName, mapMsg.getLong("numMsgs")); HashMap<String, Long> map = new HashMap<String, Long>(); @SuppressWarnings("unchecked") Enumeration<String> e = mapMsg.getMapNames(); while (e.hasMoreElements()) { String name = e.nextElement(); map.put(name, mapMsg.getLong(name)); } stats.put(topicName, map); LOG.debug("Stored stats for: " + topicName); synchronized (destMetricGuard) { destMetricGuard.notifyAll(); } } } catch (JMSException e) { throw new RuntimeException(e); } }
From source file:hermes.impl.DefaultXMLHelper.java
public XMLMessage createXMLMessage(ObjectFactory factory, Message message) throws JMSException, IOException, EncoderException { try {//from ww w .j ava 2s .c o m XMLMessage rval = factory.createXMLMessage(); if (message instanceof TextMessage) { rval = factory.createXMLTextMessage(); XMLTextMessage textRval = (XMLTextMessage) rval; TextMessage textMessage = (TextMessage) message; if (isBase64EncodeTextMessages()) { byte[] bytes = base64EncoderTL.get().encode(textMessage.getText().getBytes()); textRval.setText(new String(bytes, "ASCII")); textRval.setCodec(BASE64_CODEC); } else { textRval.setText(textMessage.getText()); } } else if (message instanceof MapMessage) { rval = factory.createXMLMapMessage(); XMLMapMessage mapRval = (XMLMapMessage) rval; MapMessage mapMessage = (MapMessage) message; for (Enumeration iter = mapMessage.getMapNames(); iter.hasMoreElements();) { String propertyName = (String) iter.nextElement(); Object propertyValue = mapMessage.getObject(propertyName); Property xmlProperty = factory.createProperty(); if (propertyValue != null) { xmlProperty.setValue(propertyValue.toString()); xmlProperty.setType(propertyValue.getClass().getName()); } xmlProperty.setName(propertyName); mapRval.getBodyProperty().add(xmlProperty); } } else if (message instanceof BytesMessage) { rval = factory.createXMLBytesMessage(); XMLBytesMessage bytesRval = (XMLBytesMessage) rval; BytesMessage bytesMessage = (BytesMessage) message; ByteArrayOutputStream bosream = new ByteArrayOutputStream(); bytesMessage.reset(); try { for (;;) { bosream.write(bytesMessage.readByte()); } } catch (MessageEOFException ex) { // NOP } bytesRval.setBytes(new String(base64EncoderTL.get().encode(bosream.toByteArray()))); } else if (message instanceof ObjectMessage) { rval = factory.createXMLObjectMessage(); XMLObjectMessage objectRval = (XMLObjectMessage) rval; ObjectMessage objectMessage = (ObjectMessage) message; ByteArrayOutputStream bostream = new ByteArrayOutputStream(); ObjectOutputStream oostream = new ObjectOutputStream(bostream); oostream.writeObject(objectMessage.getObject()); oostream.flush(); byte b[] = base64EncoderTL.get().encode(bostream.toByteArray()); String s = new String(b, "ASCII"); objectRval.setObject(s); } if (message.getJMSReplyTo() != null) { rval.setJMSReplyTo(JMSUtils.getDestinationName(message.getJMSReplyTo())); rval.setJMSReplyToDomain(Domain.getDomain(message.getJMSReplyTo()).getId()); } // try/catch each individually as we sometime find some JMS // providers // can barf try { rval.setJMSDeliveryMode(message.getJMSDeliveryMode()); } catch (JMSException ex) { log.error(ex.getMessage(), ex); } try { rval.setJMSExpiration(message.getJMSExpiration()); } catch (JMSException ex) { log.error(ex.getMessage(), ex); } try { rval.setJMSMessageID(message.getJMSMessageID()); } catch (JMSException ex) { log.error(ex.getMessage(), ex); } try { rval.setJMSPriority(message.getJMSPriority()); } catch (JMSException ex) { log.error(ex.getMessage(), ex); } try { rval.setJMSRedelivered(message.getJMSRedelivered()); } catch (JMSException ex) { log.error(ex.getMessage(), ex); } catch (IllegalStateException ex) { // http://hermesjms.com/forum/viewtopic.php?f=4&t=346 log.error(ex.getMessage(), ex); } try { rval.setJMSTimestamp(message.getJMSTimestamp()); } catch (JMSException ex) { log.error(ex.getMessage(), ex); } try { rval.setJMSType(message.getJMSType()); } catch (JMSException ex) { log.error(ex.getMessage(), ex); } try { rval.setJMSCorrelationID(message.getJMSCorrelationID()); } catch (JMSException ex) { log.error(ex.getMessage(), ex); } try { if (message.getJMSDestination() != null) { rval.setJMSDestination(JMSUtils.getDestinationName(message.getJMSDestination())); rval.setFromQueue(JMSUtils.isQueue(message.getJMSDestination())); } } catch (JMSException ex) { log.error(ex.getMessage(), ex); } for (final Enumeration iter = message.getPropertyNames(); iter.hasMoreElements();) { String propertyName = (String) iter.nextElement(); if (!propertyName.startsWith("JMS")) { Object propertyValue = message.getObjectProperty(propertyName); Property property = factory.createProperty(); property.setName(propertyName); if (propertyValue != null) { property.setValue(StringEscapeUtils.escapeXml(propertyValue.toString())); property.setType(propertyValue.getClass().getName()); } rval.getHeaderProperty().add(property); } } return rval; } catch (Exception ex) { throw new HermesException(ex); } }