summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2014-02-17 21:39:52 +0000
committerRobert Godfrey <rgodfrey@apache.org>2014-02-17 21:39:52 +0000
commit214533a95a64861dd5b67f977fd171abcad30d4c (patch)
tree0757eaae4a7ff9bcb018209b7b50caf68e6d3c68
parent500491f93c105e109f5933b5d33a12b45bc4b272 (diff)
downloadqpid-python-214533a95a64861dd5b67f977fd171abcad30d4c.tar.gz
QPID-5558 : [Java Broker] update management node to follow definitions in working draft 06
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1569115 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java60
1 files changed, 35 insertions, 25 deletions
diff --git a/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java b/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java
index 3ded20ae6a..200da28e1c 100644
--- a/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java
+++ b/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java
@@ -42,7 +42,6 @@ import org.apache.qpid.server.plugin.MessageConverter;
import org.apache.qpid.server.plugin.SystemNodeCreator;
import org.apache.qpid.server.protocol.AMQSessionModel;
import org.apache.qpid.server.protocol.MessageConverterRegistry;
-import org.apache.qpid.server.security.AuthorizationHolder;
import org.apache.qpid.server.store.StorableMessageMetaData;
import org.apache.qpid.server.store.TransactionLogResource;
import org.apache.qpid.server.txn.ServerTransaction;
@@ -70,7 +69,7 @@ class ManagementNode implements MessageSource<ManagementNodeConsumer,ManagementN
public static final String GET_ATTRIBUTES = "GET-ATTRIBUTES";
public static final String GET_OPERATIONS = "GET-OPERATIONS";
public static final String QUERY = "QUERY";
- public static final String ENTITY_TYPES_HEADER = "entityTypes";
+ public static final String ENTITY_TYPE_HEADER = "entityType";
public static final String STATUS_CODE_HEADER = "statusCode";
public static final int STATUS_CODE_OK = 200;
public static final String ATTRIBUTES_HEADER = "attributes";
@@ -636,7 +635,7 @@ class ManagementNode implements MessageSource<ManagementNodeConsumer,ManagementN
}
else if(QUERY.equals(operation))
{
- responseMessage = performQuery(requestHeader, responseHeader);
+ responseMessage = performQuery(requestHeader, msg.getMessageBody(), responseHeader);
}
else
{
@@ -650,9 +649,9 @@ class ManagementNode implements MessageSource<ManagementNodeConsumer,ManagementN
{
final InternalMessage responseMessage;
List<String> restriction;
- if(requestHeader.containsHeader(ENTITY_TYPES_HEADER))
+ if(requestHeader.containsHeader(ENTITY_TYPE_HEADER))
{
- restriction = (List<String>) requestHeader.getHeader(ENTITY_TYPES_HEADER);
+ restriction = new ArrayList<String>(Collections.singletonList( (String)requestHeader.getHeader(ENTITY_TYPE_HEADER)));
}
else
{
@@ -691,10 +690,10 @@ class ManagementNode implements MessageSource<ManagementNodeConsumer,ManagementN
final MutableMessageHeader responseHeader)
{
final InternalMessage responseMessage;
- List<String> restriction;
- if(requestHeader.containsHeader(ENTITY_TYPES_HEADER))
+ String restriction;
+ if(requestHeader.containsHeader(ENTITY_TYPE_HEADER))
{
- restriction = (List<String>) requestHeader.getHeader(ENTITY_TYPES_HEADER);
+ restriction = (String) requestHeader.getHeader(ENTITY_TYPE_HEADER);
}
else
{
@@ -709,13 +708,18 @@ class ManagementNode implements MessageSource<ManagementNodeConsumer,ManagementN
entityMapCopy = new LinkedHashMap<String, ManagedEntityType>(_entityTypes);
}
- for(ManagedEntityType type : entityMapCopy.values())
+ if(restriction == null)
{
- if(restriction == null || restriction.contains(type.getName()))
+ for(ManagedEntityType type : entityMapCopy.values())
{
responseMap.put(type.getName(), Arrays.asList(type.getAttributes()));
}
}
+ else if(entityMapCopy.containsKey(restriction))
+ {
+ responseMap.put(restriction, Arrays.asList(entityMapCopy.get(restriction).getAttributes()));
+ }
+
responseMessage = InternalMessage.createMapMessage(_virtualHost.getMessageStore(), responseHeader, responseMap);
return responseMessage;
}
@@ -725,10 +729,10 @@ class ManagementNode implements MessageSource<ManagementNodeConsumer,ManagementN
final MutableMessageHeader responseHeader)
{
final InternalMessage responseMessage;
- List<String> restriction;
- if(requestHeader.containsHeader(ENTITY_TYPES_HEADER))
+ String restriction;
+ if(requestHeader.containsHeader(ENTITY_TYPE_HEADER))
{
- restriction = (List<String>) requestHeader.getHeader(ENTITY_TYPES_HEADER);
+ restriction = (String) requestHeader.getHeader(ENTITY_TYPE_HEADER);
}
else
{
@@ -743,19 +747,24 @@ class ManagementNode implements MessageSource<ManagementNodeConsumer,ManagementN
entityMapCopy = new LinkedHashMap<String, ManagedEntityType>(_entityTypes);
}
- for(ManagedEntityType type : entityMapCopy.values())
+ if(restriction == null)
{
- if(restriction == null || restriction.contains(type.getName()))
+ for(ManagedEntityType type : entityMapCopy.values())
{
responseMap.put(type.getName(), Arrays.asList(type.getOperations()));
}
}
+ else if(entityMapCopy.containsKey(restriction))
+ {
+ ManagedEntityType type = entityMapCopy.get(restriction);
+ responseMap.put(type.getName(), Arrays.asList(type.getOperations()));
+ }
responseMessage = InternalMessage.createMapMessage(_virtualHost.getMessageStore(), responseHeader, responseMap);
return responseMessage;
}
private InternalMessage performQuery(final InternalMessageHeader requestHeader,
- final MutableMessageHeader responseHeader)
+ final Object messageBody, final MutableMessageHeader responseHeader)
{
final InternalMessage responseMessage;
List<String> restriction;
@@ -763,10 +772,11 @@ class ManagementNode implements MessageSource<ManagementNodeConsumer,ManagementN
int offset;
int count;
- if(requestHeader.containsHeader(ENTITY_TYPES_HEADER))
+ if(requestHeader.containsHeader(ENTITY_TYPE_HEADER))
{
- restriction = (List<String>) requestHeader.getHeader(ENTITY_TYPES_HEADER);
- responseHeader.setHeader(ENTITY_TYPES_HEADER, restriction);
+ restriction = new ArrayList<String>(Collections.singletonList((String) requestHeader.getHeader(
+ ENTITY_TYPE_HEADER)));
+ responseHeader.setHeader(ENTITY_TYPE_HEADER, restriction);
}
else
{
@@ -774,9 +784,9 @@ class ManagementNode implements MessageSource<ManagementNodeConsumer,ManagementN
}
- if(requestHeader.containsHeader(ATTRIBUTES_HEADER))
+ if(messageBody instanceof List && !((List)messageBody).isEmpty())
{
- attributes = (List<String>) requestHeader.getHeader(ATTRIBUTES_HEADER);
+ attributes = (List<String>) messageBody;
}
else
{
@@ -818,8 +828,8 @@ class ManagementNode implements MessageSource<ManagementNodeConsumer,ManagementN
responseHeader.setHeader(ATTRIBUTES_HEADER, attributes);
responseHeader.setHeader(STATUS_CODE_HEADER, STATUS_CODE_OK);
- List<List<Object>> responseList = new ArrayList<List<Object>>();
-
+ List<List<? extends Object>> responseList = new ArrayList<List<? extends Object>>();
+ responseList.add(attributes);
int rowNo = 0;
for(String type : restriction)
{
@@ -855,7 +865,7 @@ class ManagementNode implements MessageSource<ManagementNodeConsumer,ManagementN
}
responseList.add(Arrays.asList(attrValue));
}
- if(responseList.size()==count)
+ if(responseList.size()==count+1)
{
break;
}
@@ -863,7 +873,7 @@ class ManagementNode implements MessageSource<ManagementNodeConsumer,ManagementN
}
}
- if(responseList.size()==count)
+ if(responseList.size()==count+1)
{
break;
}