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 | ab62ba833b0d08d1fc3b7b35141786ee82240d10 (patch) | |
| tree | 772676474769a71ef922526346156e502d7f8794 /java | |
| parent | 8337b052d090db97cef139084d38ecd9ae0814a0 (diff) | |
| download | qpid-python-ab62ba833b0d08d1fc3b7b35141786ee82240d10.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/qpid@888244 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java')
| -rw-r--r-- | java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueMBean.java | 58 |
1 files changed, 35 insertions, 23 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueMBean.java b/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueMBean.java index 78c956ef19..eafc73dc97 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueMBean.java +++ b/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()); |
