diff options
author | Robert Gemmell <robbie@apache.org> | 2009-12-08 04:01:54 +0000 |
---|---|---|
committer | Robert Gemmell <robbie@apache.org> | 2009-12-08 04:01:54 +0000 |
commit | f9edf5fc5a33865ae70ddc783aac46acb359d425 (patch) | |
tree | 8b29547ccd0c16032771303845e9b04d534a4902 | |
parent | 5a63e55645834cf654db9a5c1367289c879330da (diff) | |
download | qpid-python-f9edf5fc5a33865ae70ddc783aac46acb359d425.tar.gz |
QPID-2244: output additional MessageTransferMessage header properties, add fallback support to ensure display of other types of message
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@888244 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueMBean.java | 58 |
1 files changed, 35 insertions, 23 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueMBean.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueMBean.java index 78c956ef19..eafc73dc97 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueMBean.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueMBean.java @@ -36,6 +36,7 @@ import org.apache.qpid.server.message.AMQMessage; import org.apache.qpid.server.message.MessageTransferMessage; import org.apache.qpid.server.txn.ServerTransaction; import org.apache.qpid.server.txn.LocalTransaction; +import org.apache.qpid.transport.MessageProperties; import javax.management.JMException; import javax.management.MBeanNotificationInfo; @@ -409,20 +410,24 @@ public class AMQQueueMBean extends AMQManagedObject implements ManagedQueue, Que _messageList.put(messageData); } - else + else if(serverMsg instanceof MessageTransferMessage) { // We have a 0-10 message - if (serverMsg instanceof MessageTransferMessage) - { - MessageTransferMessage msg = (MessageTransferMessage) serverMsg; - - AMQMessageHeader header = msg.getMessageHeader(); - // Create header attributes list - String[] headerAttributes = getAMQMessageHeaderProperties(header); - Object[] itemValues = {msg.getMessageNumber(), headerAttributes, msg.getSize(), queueEntry.isRedelivered(), position}; - CompositeData messageData = new CompositeDataSupport(_messageDataType, VIEW_MSGS_COMPOSITE_ITEM_NAMES, itemValues); - _messageList.put(messageData); - } + MessageTransferMessage msg = (MessageTransferMessage) serverMsg; + + // Create header attributes list + String[] headerAttributes = getMessageTransferMessageHeaderProps(msg); + Object[] itemValues = {msg.getMessageNumber(), headerAttributes, msg.getSize(), queueEntry.isRedelivered(), position}; + CompositeData messageData = new CompositeDataSupport(_messageDataType, VIEW_MSGS_COMPOSITE_ITEM_NAMES, itemValues); + _messageList.put(messageData); + } + else + { + //unknown message + String[] headerAttributes = new String[]{"N/A"}; + Object[] itemValues = { serverMsg.getMessageNumber(), headerAttributes, serverMsg.getSize(), queueEntry.isRedelivered(), position}; + CompositeData messageData = new CompositeDataSupport(_messageDataType, VIEW_MSGS_COMPOSITE_ITEM_NAMES, itemValues); + _messageList.put(messageData); } } } @@ -466,23 +471,30 @@ public class AMQQueueMBean extends AMQManagedObject implements ManagedQueue, Que return list.toArray(new String[list.size()]); } - private String[] getAMQMessageHeaderProperties(AMQMessageHeader header) + private String[] getMessageTransferMessageHeaderProps(MessageTransferMessage msg) { List<String> list = new ArrayList<String>(); + + AMQMessageHeader header = msg.getMessageHeader(); + MessageProperties msgProps = msg.getHeader().get(MessageProperties.class); + + String appID = null; + String userID = null; + + if(msgProps != null) + { + appID = msgProps.getAppId() == null ? "null" : new String(msgProps.getAppId()); + userID = msgProps.getUserId() == null ? "null" : new String(msgProps.getUserId()); + } list.add("reply-to = " + header.getReplyTo()); - //TODO - Complete header property extraction -// list.add("propertyFlags = " + header.getgetPropertyFlags()); -// list.add("ApplicationID = " + header.getAppIdAsString()); -// list.add("ClusterID = " + header.getClusterIdAsString()); -// list.add("UserId = " + header.getUserIdAsString()); + list.add("propertyFlags = "); //TODO + list.add("ApplicationID = " + appID); + list.add("ClusterID = "); //TODO + list.add("UserId = " + userID); list.add("JMSMessageID = " + header.getMessageId()); list.add("JMSCorrelationID = " + header.getCorrelationId()); - -// int delMode = header.getDeliveryMode(); -// list.add("JMSDeliveryMode = " + -// ((delMode == BasicContentHeaderProperties.PERSISTENT) ? "Persistent" : "Non_Persistent")); - + list.add("JMSDeliveryMode = " + (msg.isPersistent() ? "Persistent" : "Non_Persistent")); list.add("JMSPriority = " + header.getPriority()); list.add("JMSType = " + header.getType()); |