You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2014/02/09 23:57:49 UTC
svn commit: r1566462 -
/qpid/branches/java-broker-amqp-1-0-management/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java
Author: rgodfrey
Date: Sun Feb 9 22:57:49 2014
New Revision: 1566462
URL: http://svn.apache.org/r1566462
Log:
Implement update
Modified:
qpid/branches/java-broker-amqp-1-0-management/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java
Modified: qpid/branches/java-broker-amqp-1-0-management/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java
URL: http://svn.apache.org/viewvc/qpid/branches/java-broker-amqp-1-0-management/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java?rev=1566462&r1=1566461&r2=1566462&view=diff
==============================================================================
--- qpid/branches/java-broker-amqp-1-0-management/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java (original)
+++ qpid/branches/java-broker-amqp-1-0-management/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java Sun Feb 9 22:57:49 2014
@@ -422,6 +422,10 @@ class ManagementNode implements MessageS
{
return performDeleteOperation(requestMessage, entity);
}
+ else if(UPDATE_OPERATION.equals(operation))
+ {
+ return performUpdateOperation(requestMessage, entity);
+ }
else
{
return createFailureResponse(requestMessage, NOT_IMPLEMENTED_STATUS_CODE, "Unable to perform the {0} operation",operation);
@@ -486,6 +490,50 @@ class ManagementNode implements MessageS
return InternalMessage.createMapMessage(_virtualHost.getMessageStore(),responseHeader, Collections.emptyMap());
}
+
+ private InternalMessage performUpdateOperation(final InternalMessage requestMessage, final ConfiguredObject entity)
+ {
+ final InternalMessageHeader requestHeader = requestMessage.getMessageHeader();
+ final MutableMessageHeader responseHeader = new MutableMessageHeader();
+ responseHeader.setCorrelationId(requestHeader.getCorrelationId() == null
+ ? requestHeader.getMessageId()
+ : requestHeader.getCorrelationId());
+ responseHeader.setMessageId(UUID.randomUUID().toString());
+ responseHeader.setHeader(NAME_ATTRIBUTE, entity.getName());
+ responseHeader.setHeader(IDENTITY_ATTRIBUTE, entity.getId().toString());
+ final String type = getManagementClass(entity.getClass()).getName();
+ responseHeader.setHeader(TYPE_ATTRIBUTE, type);
+
+ Object messageBody = requestMessage.getMessageBody();
+ if(messageBody instanceof Map)
+ {
+ try
+ {
+ entity.setAttributes((Map)messageBody);
+ return performReadOperation(requestMessage, entity);
+ }
+ catch(RuntimeException e)
+ {
+ if (e instanceof AccessControlException || e.getCause() instanceof AMQSecurityException)
+ {
+ return createFailureResponse(requestMessage, STATUS_CODE_FORBIDDEN, e.getMessage());
+ }
+ else
+ {
+ throw e;
+ }
+ }
+ }
+ else
+ {
+ return createFailureResponse(requestMessage,
+ STATUS_CODE_BAD_REQUEST,
+ "The message body in the request was not of the correct type");
+ }
+
+
+ }
+
private ConfiguredObject findSubject(final String name, final String id, final String type)
{
ConfiguredObject subject;
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org