summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Gemmell <robbie@apache.org>2009-12-08 04:01:54 +0000
committerRobert Gemmell <robbie@apache.org>2009-12-08 04:01:54 +0000
commitf9edf5fc5a33865ae70ddc783aac46acb359d425 (patch)
tree8b29547ccd0c16032771303845e9b04d534a4902
parent5a63e55645834cf654db9a5c1367289c879330da (diff)
downloadqpid-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.java58
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());