diff options
Diffstat (limited to 'qpid/java/broker-plugins')
28 files changed, 293 insertions, 377 deletions
diff --git a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/ACLFileAccessControlProviderImpl.java b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/ACLFileAccessControlProviderImpl.java index c1bd1b0bb8..99db75ac91 100644 --- a/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/ACLFileAccessControlProviderImpl.java +++ b/qpid/java/broker-plugins/access-control/src/main/java/org/apache/qpid/server/security/access/plugins/ACLFileAccessControlProviderImpl.java @@ -20,7 +20,6 @@ */ package org.apache.qpid.server.security.access.plugins; -import java.security.AccessControlException; import java.util.Collection; import java.util.Collections; import java.util.Map; @@ -33,7 +32,6 @@ import org.apache.log4j.Logger; import org.apache.qpid.server.configuration.IllegalConfigurationException; import org.apache.qpid.server.model.AbstractConfiguredObject; -import org.apache.qpid.server.model.AccessControlProvider; import org.apache.qpid.server.model.Broker; import org.apache.qpid.server.model.ConfiguredObject; import org.apache.qpid.server.model.ManagedAttributeField; @@ -41,7 +39,6 @@ import org.apache.qpid.server.model.ManagedObjectFactoryConstructor; import org.apache.qpid.server.model.State; import org.apache.qpid.server.model.StateTransition; import org.apache.qpid.server.security.AccessControl; -import org.apache.qpid.server.security.access.Operation; import org.apache.qpid.server.util.urlstreamhandler.data.Handler; public class ACLFileAccessControlProviderImpl @@ -229,27 +226,6 @@ public class ACLFileAccessControlProviderImpl return returnVal; } - @Override - protected void authoriseSetDesiredState(State desiredState) throws AccessControlException - { - if(desiredState == State.DELETED) - { - if (!_broker.getSecurityManager().authoriseConfiguringBroker(getName(), AccessControlProvider.class, Operation.DELETE)) - { - throw new AccessControlException("Deletion of AccessControlProvider is denied"); - } - } - } - - @Override - protected void authoriseSetAttributes(ConfiguredObject<?> modified, Set<String> attributes) throws AccessControlException - { - if (!_broker.getSecurityManager().authoriseConfiguringBroker(getName(), AccessControlProvider.class, Operation.UPDATE)) - { - throw new AccessControlException("Setting of AccessControlProvider attributes is denied"); - } - } - public AccessControl getAccessControl() { return _accessControl; diff --git a/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/RuleSetTest.java b/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/RuleSetTest.java index a37c0c7858..5301d2e49d 100644 --- a/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/RuleSetTest.java +++ b/qpid/java/broker-plugins/access-control/src/test/java/org/apache/qpid/server/security/access/plugins/RuleSetTest.java @@ -22,14 +22,10 @@ package org.apache.qpid.server.security.access.plugins; import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; import javax.security.auth.Subject; -import org.apache.qpid.server.exchange.ExchangeImpl; import org.apache.qpid.server.logging.EventLoggerProvider; -import org.apache.qpid.server.model.VirtualHost; -import org.apache.qpid.server.queue.AMQQueue; import org.apache.qpid.server.security.Result; import org.apache.qpid.server.security.access.ObjectProperties; import org.apache.qpid.server.security.access.ObjectType; @@ -65,8 +61,6 @@ public class RuleSetTest extends QpidTestCase private String _exchangeName = "amq.direct"; private String _exchangeType = "direct"; private Subject _testSubject = TestPrincipalUtils.createTestSubject(TEST_USER); - private AMQQueue<?> _queue; - private VirtualHost<?,?,?> _virtualHost; @Override public void setUp() throws Exception @@ -74,11 +68,6 @@ public class RuleSetTest extends QpidTestCase super.setUp(); _ruleSet = new RuleSet(mock(EventLoggerProvider.class)); - - _virtualHost = mock(VirtualHost.class); - _queue = mock(AMQQueue.class); - when(_queue.getName()).thenReturn(_queueName); - when(_queue.getParent(VirtualHost.class)).thenReturn(_virtualHost); } @Override @@ -178,11 +167,13 @@ public class RuleSetTest extends QpidTestCase { _ruleSet.grant(0, TEST_USER, Permission.ALLOW, Operation.CREATE, ObjectType.QUEUE, new ObjectProperties(Property.VIRTUALHOST_NAME, ALLOWED_VH)); - when(_virtualHost.getName()).thenReturn(ALLOWED_VH); - assertEquals(Result.ALLOWED, _ruleSet.check(_testSubject, Operation.CREATE, ObjectType.QUEUE, new ObjectProperties(_queue))); + ObjectProperties allowedQueueObjectProperties = new ObjectProperties(_queueName); + allowedQueueObjectProperties.put(Property.VIRTUALHOST_NAME, ALLOWED_VH); + assertEquals(Result.ALLOWED, _ruleSet.check(_testSubject, Operation.CREATE, ObjectType.QUEUE, new ObjectProperties(allowedQueueObjectProperties))); - when(_virtualHost.getName()).thenReturn(DENIED_VH); - assertEquals(Result.DEFER, _ruleSet.check(_testSubject, Operation.CREATE, ObjectType.QUEUE, new ObjectProperties(_queue))); + ObjectProperties deniedQueueObjectProperties = new ObjectProperties(_queueName); + deniedQueueObjectProperties.put(Property.VIRTUALHOST_NAME, DENIED_VH); + assertEquals(Result.DEFER, _ruleSet.check(_testSubject, Operation.CREATE, ObjectType.QUEUE, deniedQueueObjectProperties)); } public void testQueueCreateNamedNullRoutingKey() @@ -197,15 +188,16 @@ public class RuleSetTest extends QpidTestCase { _ruleSet.grant(0, TEST_USER, Permission.ALLOW, Operation.CREATE, ObjectType.EXCHANGE, new ObjectProperties(Property.VIRTUALHOST_NAME, ALLOWED_VH)); - ExchangeImpl<?> exchange = mock(ExchangeImpl.class); - when(exchange.getParent(VirtualHost.class)).thenReturn(_virtualHost); - when(exchange.getType()).thenReturn(_exchangeType); - when(_virtualHost.getName()).thenReturn(ALLOWED_VH); + ObjectProperties allowedExchangeProperties = new ObjectProperties(_exchangeName); + allowedExchangeProperties.put(Property.TYPE, _exchangeType); + allowedExchangeProperties.put(Property.VIRTUALHOST_NAME, ALLOWED_VH); - assertEquals(Result.ALLOWED, _ruleSet.check(_testSubject, Operation.CREATE, ObjectType.EXCHANGE, new ObjectProperties(exchange))); + assertEquals(Result.ALLOWED, _ruleSet.check(_testSubject, Operation.CREATE, ObjectType.EXCHANGE, allowedExchangeProperties)); - when(_virtualHost.getName()).thenReturn(DENIED_VH); - assertEquals(Result.DEFER, _ruleSet.check(_testSubject, Operation.CREATE, ObjectType.EXCHANGE, new ObjectProperties(exchange))); + ObjectProperties deniedExchangeProperties = new ObjectProperties(_exchangeName); + deniedExchangeProperties.put(Property.TYPE, _exchangeType); + deniedExchangeProperties.put(Property.VIRTUALHOST_NAME, DENIED_VH); + assertEquals(Result.DEFER, _ruleSet.check(_testSubject, Operation.CREATE, ObjectType.EXCHANGE, deniedExchangeProperties)); } public void testExchangeCreate() diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ProtocolEngine_0_10.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ProtocolEngine_0_10.java index 10bf0e761e..e391bd6771 100755 --- a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ProtocolEngine_0_10.java +++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ProtocolEngine_0_10.java @@ -70,7 +70,7 @@ public class ProtocolEngine_0_10 extends InputHandler implements ServerProtocol public ProtocolEngine_0_10(ServerConnection conn, NetworkConnection network) { - super(new Assembler(conn)); + super(new ServerAssembler(conn)); _connection = conn; if(network != null) diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerAssembler.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerAssembler.java new file mode 100644 index 0000000000..456c9d36d9 --- /dev/null +++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerAssembler.java @@ -0,0 +1,57 @@ +/* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ +package org.apache.qpid.server.protocol.v0_10; + + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.apache.qpid.transport.network.Assembler; +import org.apache.qpid.transport.network.NetworkEvent; + +public class ServerAssembler extends Assembler +{ + private static final Logger LOGGER = LoggerFactory.getLogger(ServerAssembler.class); + + + private final ServerConnection _connection; + + public ServerAssembler(final ServerConnection connection) + { + super(connection); + _connection = connection; + } + + @Override + public void received(final NetworkEvent event) + { + if (!_connection.isIgnoreFutureInput()) + { + super.received(event); + } + else + { + LOGGER.debug("Ignored network event " + event + " as connection is ignoring further input "); + } + } + + +} diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java index a6ed8c452a..2280377fca 100644 --- a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java +++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java @@ -97,6 +97,7 @@ public class ServerConnection extends Connection implements AMQConnectionModel<S private final int _maxMessageSize; private ServerProtocolEngine _serverProtocolEngine; + private boolean _ignoreFutureInput; public ServerConnection(final long connectionId, Broker<?> broker, @@ -734,4 +735,15 @@ public class ServerConnection extends Connection implements AMQConnectionModel<S } } + + public void closeAndIgnoreFutureInput() + { + _ignoreFutureInput = true; + getSender().close(); + } + + public boolean isIgnoreFutureInput() + { + return _ignoreFutureInput; + } } diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java index 6e2a6cac7d..7f646b43b4 100644 --- a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java +++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnectionDelegate.java @@ -250,7 +250,7 @@ public class ServerConnectionDelegate extends ServerDelegate ") above the server's offered limit (" + getChannelMax() +")"); //Due to the error we must forcefully close the connection without negotiation - sconn.getSender().close(); + sconn.closeAndIgnoreFutureInput(); return; } @@ -261,7 +261,8 @@ public class ServerConnectionDelegate extends ServerDelegate ") above the server's offered limit (" + getFrameMax() +")"); //Due to the error we must forcefully close the connection without negotiation - sconn.getSender().close(); + sconn.closeAndIgnoreFutureInput(); + return; } else if(okMaxFrameSize > 0 && okMaxFrameSize < Constant.MIN_MAX_FRAME_SIZE) @@ -271,7 +272,7 @@ public class ServerConnectionDelegate extends ServerDelegate ") below the minimum permitted size (" + Constant.MIN_MAX_FRAME_SIZE +")"); //Due to the error we must forcefully close the connection without negotiation - sconn.getSender().close(); + sconn.closeAndIgnoreFutureInput(); return; } else if(okMaxFrameSize == 0) diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java index d58ac36ff5..d7b5b00b26 100644 --- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java +++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java @@ -920,15 +920,13 @@ public class AMQProtocolEngine implements ServerProtocolEngine, try { markChannelAwaitingCloseOk(channelId); - closeSession(false); // currently performs the delete actions. + closeSession(false); } finally { try { writeFrame(frame); - - // add an async job and not } finally { diff --git a/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageMetaData_1_0.java b/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageMetaData_1_0.java index fbc24ba454..6800b14d65 100755 --- a/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageMetaData_1_0.java +++ b/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageMetaData_1_0.java @@ -493,7 +493,13 @@ public class MessageMetaData_1_0 implements StorableMessageMetaData public String getType() { + String subject = getSubject(); + if(subject != null) + { + return subject; + } + // Use legacy annotation if present and there was no subject if(_messageAnnotations == null || _messageAnnotations.get(JMS_TYPE) == null) { return null; diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java index 19d498e240..93ff1adb63 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java @@ -406,6 +406,13 @@ public class RestServlet extends AbstractServlet @Override protected void doPutWithSubjectAndActor(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + performCreateOrUpdate(request, response); + } + + private void performCreateOrUpdate(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException + { + boolean createOrUpdate = "PUT".equalsIgnoreCase(request.getMethod()); + response.setContentType("application/json"); List<String> names = new ArrayList<String>(); @@ -461,6 +468,13 @@ public class RestServlet extends AbstractServlet { if (_hierarchy.length == 0) { + if (!createOrUpdate) + { + sendErrorResponse(request, response, + "Only object creation is allowed with POST requests. Use PUT method to update broker attributes"); + return; + } + try { doUpdate(getBroker(), providedObject); @@ -484,7 +498,7 @@ public class RestServlet extends AbstractServlet Collection<ConfiguredObject>[] objects = new Collection[_hierarchy.length]; if (_hierarchy.length == 1) { - createOrUpdate(providedObject, _hierarchy[0], getBroker(), null, request, response); + createOrUpdate(providedObject, _hierarchy[0], getBroker(), null, request, response, createOrUpdate); } else { @@ -547,26 +561,29 @@ public class RestServlet extends AbstractServlet ConfiguredObject theParent = parents.remove(0); ConfiguredObject[] otherParents = parents.toArray(new ConfiguredObject[parents.size()]); - createOrUpdate(providedObject, objClass, theParent, otherParents, request, response); + createOrUpdate(providedObject, objClass, theParent, otherParents, request, response, createOrUpdate); } - } private void createOrUpdate(Map<String, Object> providedObject, Class<? extends ConfiguredObject> objClass, ConfiguredObject theParent, ConfiguredObject[] otherParents, HttpServletRequest request, - HttpServletResponse response) throws IOException + HttpServletResponse response, boolean createOrUpdate) throws IOException { try { Collection<? extends ConfiguredObject> existingChildren = theParent.getChildren(objClass); - for(ConfiguredObject obj: existingChildren) + + if (createOrUpdate) { - if((providedObject.containsKey("id") && String.valueOf(providedObject.get("id")).equals(obj.getId().toString())) - || (obj.getName().equals(providedObject.get("name")) && equalParents(obj, otherParents, objClass))) + for (ConfiguredObject obj : existingChildren) { - doUpdate(obj, providedObject); - response.setStatus(HttpServletResponse.SC_OK); - return; + if ((providedObject.containsKey("id") && String.valueOf(providedObject.get("id")).equals(obj.getId().toString())) + || (obj.getName().equals(providedObject.get("name")) && equalParents(obj, otherParents, objClass))) + { + doUpdate(obj, providedObject); + response.setStatus(HttpServletResponse.SC_OK); + return; + } } } @@ -626,11 +643,12 @@ public class RestServlet extends AbstractServlet } else { + String message = e.getMessage(); if (e instanceof IllegalConfigurationException || e instanceof IllegalArgumentException) { if (LOGGER.isDebugEnabled()) { - LOGGER.debug(e.getClass().getSimpleName() + " processing request : " + e.getMessage()); + LOGGER.debug(e.getClass().getSimpleName() + " processing request : " + message); } else if (LOGGER.isTraceEnabled()) { @@ -642,17 +660,22 @@ public class RestServlet extends AbstractServlet LOGGER.warn("Unexpected exception processing request ", e); } - response.setStatus(HttpServletResponse.SC_CONFLICT); + sendErrorResponse(request, response, message); - response.setContentType("application/json"); - response.setCharacterEncoding("UTF-8"); + } + } - Writer out = getOutputWriter(request, response); - ObjectMapper mapper = new ObjectMapper(); - mapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, true); - mapper.writeValue(out, Collections.singletonMap("errorMessage", e.getMessage())); + private void sendErrorResponse(HttpServletRequest request, HttpServletResponse response, String message) throws IOException + { + response.setStatus(HttpServletResponse.SC_CONFLICT); - } + response.setContentType("application/json"); + response.setCharacterEncoding("UTF-8"); + + Writer out = getOutputWriter(request, response); + ObjectMapper mapper = new ObjectMapper(); + mapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, true); + mapper.writeValue(out, Collections.singletonMap("errorMessage", message)); } @Override @@ -678,6 +701,12 @@ public class RestServlet extends AbstractServlet } } + @Override + protected void doPostWithSubjectAndActor(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + performCreateOrUpdate(request, response); + } + private void setCachingHeadersOnResponse(HttpServletResponse response) { response.setHeader("Cache-Control","no-cache"); diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/UserPreferencesServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/UserPreferencesServlet.java index b782022986..11876f115e 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/UserPreferencesServlet.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/UserPreferencesServlet.java @@ -65,16 +65,6 @@ public class UserPreferencesServlet extends AbstractServlet private void getUserPreferences(String authenticationProviderName, String userId, HttpServletRequest request, HttpServletResponse response) throws IOException { - try - { - assertUserPreferencesOperationAuthorized(userId); - } - catch (SecurityException e) - { - response.sendError(HttpServletResponse.SC_FORBIDDEN, "Viewing of preferences is not allowed"); - return; - } - Map<String, Object> preferences = null; PreferencesProvider preferencesProvider = getPreferencesProvider(authenticationProviderName); if (preferencesProvider == null) @@ -82,9 +72,17 @@ public class UserPreferencesServlet extends AbstractServlet response.sendError(HttpServletResponse.SC_NOT_FOUND, "Preferences provider is not configured"); return; } - preferences = preferencesProvider.getPreferences(userId); + try + { + preferences = preferencesProvider.getPreferences(userId); - sendJsonResponse(preferences, request, response); + sendJsonResponse(preferences, request, response); + } + catch (SecurityException e) + { + response.sendError(HttpServletResponse.SC_FORBIDDEN, "Viewing of preferences is not allowed"); + return; + } } private void getUserList(String[] pathElements, HttpServletRequest request, HttpServletResponse response) throws IOException @@ -177,16 +175,6 @@ public class UserPreferencesServlet extends AbstractServlet String userId = elements[1]; - try - { - assertUserPreferencesOperationAuthorized(userId); - } - catch (SecurityException e) - { - response.sendError(HttpServletResponse.SC_FORBIDDEN, "Deletion of preferences is not allowed"); - return; - } - String providerName = elements[0]; Set<String> users = providerUsers.get(providerName); @@ -216,7 +204,15 @@ public class UserPreferencesServlet extends AbstractServlet if (preferencesProvider != null && !usersToDelete.isEmpty()) { String[] users = usersToDelete.toArray(new String[usersToDelete.size()]); - preferencesProvider.deletePreferences(users); + try + { + preferencesProvider.deletePreferences(users); + } + catch (SecurityException e) + { + response.sendError(HttpServletResponse.SC_FORBIDDEN, "Deletion of preferences is not allowed"); + return; + } } } } @@ -237,8 +233,4 @@ public class UserPreferencesServlet extends AbstractServlet return provider; } - private void assertUserPreferencesOperationAuthorized(String userId) - { - getBroker().getSecurityManager().authoriseUserOperation(Operation.UPDATE, userId); - } } diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/metadata.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/metadata.js index 1520cb8f7a..1a9ceb7419 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/metadata.js +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/metadata.js @@ -68,8 +68,12 @@ define(["dojo/_base/xhr", }, implementsManagedInterface: function (category, type, managedInterfaceName) { - var managedInterfaces = this.getMetaData(category, type).managedInterfaces; - return array.indexOf(managedInterfaces, managedInterfaceName) >= 0 ; + var md = this.getMetaData(category, type); + if (md && md.managedInterfaces) + { + return array.indexOf(md.managedInterfaces, managedInterfaceName) >= 0 ; + } + return false; }, validChildTypes: function (category, type, childCategory) { diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js index 746eb4bbbc..5bf5574347 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/util.js @@ -791,5 +791,52 @@ define(["dojo/_base/xhr", on(window, "resize", resize); } + util.submit = function(method, resourceUrl, data, successAction, failureAction) + { + var result = {success: true, failureReason: null}; + var xhrArguments = { + url: resourceUrl, + sync: true, + handleAs: "json", + headers: { "Content-Type": "application/json"}, + load: function(x) { + result.success = true; + result.data = x; + if (successAction) + { + successAction(x); + } + }, + error: function(error) { + result.success = false; + result.failureReason = error; + if (failureAction) + { + failureAction(error); + } + else + { + util.xhrErrorHandler(error); + } + } + } + if (data && method != "del") + { + xhrArguments[method + "Data"] = json.stringify(data); + } + xhr[method](xhrArguments); + return result; + } + + util.post = function(resourceUrl, data, successAction, failureAction) + { + return util.submit("post", resourceUrl, data, successAction, failureAction) + } + + util.put = function(resourceUrl, data, successAction, failureAction) + { + return util.submit("put", resourceUrl, data, successAction, failureAction) + } + return util; }); diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/widgetconfigurer.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/widgetconfigurer.js index af8f1fc2fb..baafc6f71d 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/widgetconfigurer.js +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/common/widgetconfigurer.js @@ -119,12 +119,17 @@ define(["dojo/_base/xhr", if (widget instanceof dijit.form.FilteringSelect || widget instanceof dojox.form.CheckedMultiSelect) { - var widgetValue = dataValue ? dataValue : defaultValue; + var widgetValue = dataValue == null ? defaultValue : dataValue; if (widgetValue) { widget.set("value", widgetValue); } } + else if (widget instanceof dijit.form.CheckBox) + { + var widgetValue = dataValue == null ? (defaultValue == "true") : dataValue; + widget.set("checked", widgetValue ? true : false); + } else { if (dataValue) diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAccessControlProvider.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAccessControlProvider.js index 83bf23f669..a8b2b60a75 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAccessControlProvider.js +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAccessControlProvider.js @@ -99,30 +99,11 @@ define(["dojo/_base/lang", { if (this.accessControlProviderForm.validate()) { - var success = false,failureReason=null; - var accessControlProviderData = util.getFormWidgetValues(this.accessControlProviderForm, this.initialData); var encodedAccessControlProviderName = encodeURIComponent(this.accessControlProviderName.value); - - xhr.put( - { - url: "api/latest/accesscontrolprovider/" + encodedAccessControlProviderName, - sync: true, - handleAs: "json", - headers: { "Content-Type": "application/json"}, - putData: json.stringify(accessControlProviderData), - load: function(x) {success = true; }, - error: function(error) {success = false; failureReason = error;} - }); - - if (success == true) - { - this.dialog.hide(); - } - else - { - util.xhrErrorHandler(failureReason); - } + var that = this; + util.post("api/latest/accesscontrolprovider/" + encodedAccessControlProviderName, + accessControlProviderData, function(x){that.dialog.hide();}); } else { diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAuthenticationProvider.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAuthenticationProvider.js index ccae89d6c1..d367537731 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAuthenticationProvider.js +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAuthenticationProvider.js @@ -155,31 +155,21 @@ define(["dojo/_base/xhr", var authenticationProviderData = util.getFormWidgetValues(this.authenticationProviderForm, this.initialData); var encodedAuthenticationProviderName = encodeURIComponent(this.authenticationProviderName.value); - xhr.put({ - url: "api/latest/authenticationprovider/" + encodedAuthenticationProviderName, - sync: true, - handleAs: "json", - headers: { "Content-Type": "application/json"}, - putData: json.stringify(authenticationProviderData), - load: function(x) {success = true; }, - error: function(error) {success = false; failureReason = error;} - }); - - if(success === true) - { - var preferencesProviderResult = this.preferencesProviderForm.submit(encodedAuthenticationProviderName); - success = preferencesProviderResult.success; - failureReason = preferencesProviderResult.failureReason; - } + var that = this; - if (success == true) - { - this.dialog.hide(); - } - else - { - util.xhrErrorHandler(failureReason); - } + var methodName = this.initialData ? "put" : "post"; + util[methodName]("api/latest/authenticationprovider/" + encodedAuthenticationProviderName, authenticationProviderData, + function(x){ + var preferencesProviderResult = that.preferencesProviderForm.submit(encodedAuthenticationProviderName); + if (preferencesProviderResult.success == true) + { + that.dialog.hide(); + } + else + { + util.xhrErrorHandler(preferencesProviderResult.failureReason); + } + }); } else { diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addBinding.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addBinding.js index 56950c88b0..8257b7e54c 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addBinding.js +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addBinding.js @@ -308,30 +308,13 @@ define(["dojo/_base/connect", var newBinding = convertToBinding(theForm.getValues()); var that = this; - - xhr.put({url: "api/latest/binding/"+encodeURIComponent(addBinding.vhostnode) - +"/"+encodeURIComponent(addBinding.vhost) - +"/"+encodeURIComponent(newBinding.exchange) - +"/"+encodeURIComponent(newBinding.queue) - +"/"+encodeURIComponent(newBinding.name), - sync: true, handleAs: "json", - headers: { "Content-Type": "application/json"}, - putData: json.toJson(newBinding), - load: function(x) {that.success = true; }, - error: function(error) {that.success = false; that.failureReason = error;}}); - - if(this.success === true) - { - registry.byId("addBinding").hide(); - } - else - { - util.xhrErrorHandler(this.failureReason); - } - + var url = "api/latest/binding/"+encodeURIComponent(addBinding.vhostnode) + + "/"+encodeURIComponent(addBinding.vhost) + + "/"+encodeURIComponent(newBinding.exchange) + + "/"+encodeURIComponent(newBinding.queue) + + "/"+encodeURIComponent(newBinding.name); + util.post(url, newBinding, function(x){registry.byId("addBinding").hide();}); return false; - - }else{ alert('Form contains invalid data. Please correct first'); return false; diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addExchange.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addExchange.js index c7f281b8dc..ca43eca5d3 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addExchange.js +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addExchange.js @@ -110,23 +110,10 @@ define(["dojo/_base/xhr", var newExchange = convertToExchange(theForm.getValues()); var that = this; - xhr.put({url: "api/latest/exchange/"+encodeURIComponent(addExchange.vhostnode) + - "/"+encodeURIComponent(addExchange.vhost) + - "/"+encodeURIComponent(newExchange.name), sync: true, handleAs: "json", - headers: { "Content-Type": "application/json"}, - putData: json.toJson(newExchange), - load: function(x) {that.success = true; }, - error: function(error) {that.success = false; that.failureReason = error;}}); - - if(this.success === true) - { - registry.byId("addExchange").hide(); - } - else - { - util.xhrErrorHandler(this.failureReason); - } - + util.post("api/latest/exchange/" + encodeURIComponent(addExchange.vhostnode) + + "/" + encodeURIComponent(addExchange.vhost) + + "/" + encodeURIComponent(newExchange.name), + newExchange, function(x){ registry.byId("addExchange").hide(); }); return false; diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addGroupProvider.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addGroupProvider.js index 81ce40ebe9..f658a8ec3b 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addGroupProvider.js +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addGroupProvider.js @@ -124,33 +124,9 @@ define([ var groupProviderData = util.getFormWidgetValues(this.groupProviderForm, this.initialData); var encodedName = encodeURIComponent(this.groupProviderName.value); - var jsonString = json.stringify(groupProviderData); - - try { - xhr.put( - { - url: "api/latest/groupprovider/" + encodedName, - sync: true, - handleAs: "json", - headers: { "Content-Type": "application/json"}, - putData: jsonString, - load: function(x) {success = true; }, - error: function(error) {success = false; failureReason = error;} - }); - } - catch (e) - { - console.warn(e); - } - - if (success == true) - { - this.dialog.hide(); - } - else - { - util.xhrErrorHandler(failureReason); - } + var that = this; + var method = this.initialData ? "put" : "post"; + util[method]("api/latest/groupprovider/" + encodedName, groupProviderData, function(x){that.dialog.hide();}); } else { diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js index befb5df9c1..1069e2300b 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js @@ -267,33 +267,9 @@ define(["dojo/_base/xhr", alert("A trust store must be selected when requesting client certificates."); return false; } - var that = this; - - xhr.put({url: "api/latest/port/" + encodeURIComponent(newPort.name), sync: true, handleAs: "json", - headers: { "Content-Type": "application/json"}, - putData: json.toJson(newPort), - load: function (x) - { - that.success = true; - }, - error: function (error) - { - that.success = false; - that.failureReason = error; - }}); - - if (this.success === true) - { - registry.byId("addPort").hide(); - } - else - { - util.xhrErrorHandler(this.failureReason); - } - + var method = registry.byId("formAddPort.name").get("disabled") ? "put" : "post"; + util[method]("api/latest/port/" + encodeURIComponent(newPort.name), newPort, function(x){registry.byId("addPort").hide()}); return false; - - } else { alert('Form contains invalid data. Please correct first'); diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addQueue.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addQueue.js index 236efb2efa..da7879d671 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addQueue.js +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addQueue.js @@ -149,25 +149,9 @@ define(["dojo/_base/xhr", if(theForm.validate()){ var newQueue = convertToQueue(theForm.getValues()); - var that = this; - - xhr.put({url: "api/latest/queue/"+encodeURIComponent(addQueue.vhostnode) - +"/"+encodeURIComponent(addQueue.vhost) - +"/"+encodeURIComponent(newQueue.name), sync: true, handleAs: "json", - headers: { "Content-Type": "application/json"}, - putData: json.toJson(newQueue), - load: function(x) {that.success = true; }, - error: function(error) {that.success = false; that.failureReason = error;}}); - - if(this.success === true) - { - registry.byId("addQueue").hide(); - } - else - { - util.xhrErrorHandler(this.failureReason); - } - + util.post("api/latest/queue/" + encodeURIComponent(addQueue.vhostnode) + + "/"+encodeURIComponent(addQueue.vhost) + "/" + encodeURIComponent(newQueue.name), + newQueue, function(x){registry.byId("addQueue").hide();}); return false; diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addStore.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addStore.js index caf14d0cc8..ff672e92be 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addStore.js +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addStore.js @@ -19,7 +19,6 @@ * */ define(["dojo/_base/lang", - "dojo/_base/xhr", "dojo/dom", "dojo/dom-construct", "dijit/registry", @@ -45,7 +44,7 @@ define(["dojo/_base/lang", "dijit/layout/ContentPane", "dojox/layout/TableContainer", "dojo/domReady!"], - function (lang, xhr, dom, construct, registry, parser, memory, array, event, json, util, metadata, template) + function (lang, dom, construct, registry, parser, memory, array, event, json, util, metadata, template) { var addStore = { @@ -132,33 +131,9 @@ define(["dojo/_base/lang", var storeData = util.getFormWidgetValues(this.storeForm, this.initialData); var encodedStoreName = encodeURIComponent(this.storeName.value); var encodedCategory = encodeURIComponent(this.category.toLowerCase()); - var jsonString = json.stringify(storeData); - - try { - xhr.put( - { - url: "api/latest/" + encodedCategory + "/" + encodedStoreName, - sync: true, - handleAs: "json", - headers: { "Content-Type": "application/json"}, - putData: jsonString, - load: function(x) {success = true; }, - error: function(error) {success = false; failureReason = error;} - }); - } - catch (e) - { - console.warn(e); - } - - if (success == true) - { - this.dialog.hide(); - } - else - { - util.xhrErrorHandler(failureReason); - } + var that = this; + var method = this.effectiveData ? "put" : "post"; + util[method]("api/latest/" + encodedCategory + "/" + encodedStoreName, storeData, function(x){that.dialog.hide();}); } else { diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addVirtualHostNodeAndVirtualHost.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addVirtualHostNodeAndVirtualHost.js index 21927ea0e5..2cba022482 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addVirtualHostNodeAndVirtualHost.js +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addVirtualHostNodeAndVirtualHost.js @@ -18,7 +18,7 @@ * under the License. * */ -define(["dojo/_base/xhr", +define([ "dojo/_base/event", "dojo/_base/lang", "dojo/_base/array", @@ -48,7 +48,7 @@ define(["dojo/_base/xhr", "dojox/validate/us", "dojox/validate/web", "dojo/domReady!"], - function (xhr, event, lang, array, dom, domConstruct, json, parser, Memory, win, on, fobject, registry, Dialog, Button, FilteringSelect, properties, util, metadata, template) + function (event, lang, array, dom, domConstruct, json, parser, Memory, win, on, fobject, registry, Dialog, Button, FilteringSelect, properties, util, metadata, template) { var addVirtualHostNodeAndVirtualHost = @@ -339,27 +339,9 @@ define(["dojo/_base/xhr", return; } - var success = false,failureReason=null; - + var that = this; var encodedVirtualHostNodeName = encodeURIComponent(virtualHostNodeData.name); - xhr.put({ - url: "api/latest/virtualhostnode/" + encodedVirtualHostNodeName, - sync: true, - handleAs: "json", - headers: { "Content-Type": "application/json"}, - putData: json.stringify(virtualHostNodeData), - load: function(x) {success = true; }, - error: function(error) {success = false; failureReason = error;} - }); - - if (success == true) - { - this.dialog.hide(); - } - else - { - util.xhrErrorHandler(failureReason); - } + util.post("api/latest/virtualhostnode/" + encodedVirtualHostNodeName, virtualHostNodeData, function(x){that.dialog.hide();}); }, _getValues: function (form) { diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/authenticationprovider/PrincipalDatabaseAuthenticationManager.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/authenticationprovider/PrincipalDatabaseAuthenticationManager.js index e6f2249f65..87025adfae 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/authenticationprovider/PrincipalDatabaseAuthenticationManager.js +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/authenticationprovider/PrincipalDatabaseAuthenticationManager.js @@ -202,19 +202,7 @@ define(["dojo/_base/xhr", var url = "api/latest/user/"+encodeURIComponent(addUser.authProvider) + "/"+encodeURIComponent(newUser.name); - - xhr.put({url: url, sync: true, handleAs: "json", - headers: { "Content-Type": "application/json"}, - putData: json.toJson(newUser), - load: function(x) {that.success = true; }, - error: function(error) {that.success = false; that.failureReason = error;}}); - - if(that.success === true) { - registry.byId("addUser").hide(); - } else { - util.xhrErrorHandler(this.failureReason); - } - + util.post(url, newUser, function(x){registry.byId("addUser").hide();}); return false; @@ -260,18 +248,7 @@ define(["dojo/_base/xhr", var url = "api/latest/user/"+encodeURIComponent(setPassword.authProvider) + "/"+encodeURIComponent(newUser.name); - xhr.put({url: url, sync: true, handleAs: "json", - headers: { "Content-Type": "application/json"}, - putData: json.toJson(newUser), - load: function(x) {that.success = true; }, - error: function(error) {that.success = false; that.failureReason = error;}}); - - if(that.success === true) { - registry.byId("setPassword").hide(); - } else { - util.xhrErrorHandler(this.failureReason); - } - + util.put(url, newUser, function(x){registry.byId("setPassword").hide();}); return false; diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/group/addGroupMember.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/group/addGroupMember.js index 0a8e6a2e11..baa08d2309 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/group/addGroupMember.js +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/group/addGroupMember.js @@ -71,22 +71,11 @@ define(["dojo/_base/xhr", var newGroupMember = convertToGroupMember(theForm.getValues()); var that = this; - xhr.put({url: "api/latest/groupmember/"+encodeURIComponent(addGroupMember.groupProvider) + - "/" + encodeURIComponent(addGroupMember.group) + "/" + encodeURIComponent(newGroupMember.name), sync: true, handleAs: "json", - headers: { "Content-Type": "application/json"}, - putData: json.toJson(newGroupMember), - load: function(x) {that.success = true; }, - error: function(error) {that.success = false; that.failureReason = error;}}); - - if(this.success === true) - { - registry.byId("addGroupMember").hide(); - } - else - { - util.xhrErrorHandler(this.failureReason); - } + var url = "api/latest/groupmember/"+encodeURIComponent(addGroupMember.groupProvider) + + "/" + encodeURIComponent(addGroupMember.group) + + "/" + encodeURIComponent(newGroupMember.name); + util.post(url, newGroupMember, function(x){registry.byId("addGroupMember").hide();}); return false; diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/GroupManagingGroupProvider.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/GroupManagingGroupProvider.js index 5788fad8af..4182b580b7 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/GroupManagingGroupProvider.js +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/GroupManagingGroupProvider.js @@ -177,18 +177,7 @@ define(["dojo/_base/xhr", var url = "api/latest/group/"+encodeURIComponent(addGroup.groupProvider) + "/"+encodeURIComponent(newGroup.name); - xhr.put({url: url, sync: true, handleAs: "json", - headers: { "Content-Type": "application/json"}, - putData: json.toJson(newGroup), - load: function(x) {that.success = true; }, - error: function(error) {that.success = false; that.failureReason = error;}}); - - if(that.success === true) { - registry.byId("addGroup").hide(); - } else { - util.xhrErrorHandler(this.failureReason); - } - + util.post(url, newGroup, function(x){registry.byId("addGroup").hide();}); return false; diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/preferencesprovider/PreferencesProviderForm.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/preferencesprovider/PreferencesProviderForm.js index ef8273328b..099a75837b 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/preferencesprovider/PreferencesProviderForm.js +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/preferencesprovider/PreferencesProviderForm.js @@ -87,18 +87,26 @@ function (util, metadata, xhr, declare, array, domConstruct, win, query, json, _ { var preferencesProviderData = util.getFormWidgetValues(this.preferencesProviderForm, this.data) var encodedPreferencesProviderName = encodeURIComponent(this.preferencesProviderNameWidget.get("value")); - var success = false; - var failureReason = null; - xhr.put({ - url: "api/latest/preferencesprovider/" + encodedAuthenticationProviderName + "/" + encodedPreferencesProviderName, - sync: true, - handleAs: "json", - headers: { "Content-Type": "application/json"}, - putData: json.stringify(preferencesProviderData), - load: function (x) { success = true; }, - error: function (error) { success = false; failureReason = error; } - }); - return { success: success, failureReason: failureReason }; + var url = "api/latest/preferencesprovider/" + encodedAuthenticationProviderName + "/" + encodedPreferencesProviderName; + if (this.data) + { + var success = false; + var failureReason = null; + xhr.put({ + url: url, + sync: true, + handleAs: "json", + headers: { "Content-Type": "application/json"}, + putData: json.stringify(preferencesProviderData), + load: function (x) { success = true; }, + error: function (error) { success = false; failureReason = error; } + }); + return { success: success, failureReason: failureReason }; + } + else + { + return util.post(url, preferencesProviderData); + } } return { success: true, failureReason: null }; }, diff --git a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBean.java b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBean.java index 3b3d6b9cd2..bdf44e54da 100644 --- a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBean.java +++ b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBean.java @@ -216,7 +216,7 @@ public class VirtualHostManagerMBean extends AbstractStatisticsGatheringMBean<Vi try { - exchange.deleteWithChecks(); + exchange.delete(); } catch(RequiredExchangeException e) { diff --git a/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBeanTest.java b/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBeanTest.java index 5a804e7605..c8c27d386c 100644 --- a/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBeanTest.java +++ b/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBeanTest.java @@ -201,7 +201,7 @@ public class VirtualHostManagerMBeanTest extends TestCase _virtualHostManagerMBean.unregisterExchange(EXCHANGE_1_NAME); - verify(mockExchange).deleteWithChecks(); + verify(mockExchange).delete(); } public void testUnregisterExchangeWhenExchangeDoesNotExist() throws Exception |