diff options
| author | Alex Rudyy <orudyy@apache.org> | 2013-02-27 17:50:17 +0000 |
|---|---|---|
| committer | Alex Rudyy <orudyy@apache.org> | 2013-02-27 17:50:17 +0000 |
| commit | 119554c72479af7ecaeafd12d0f840c8fb50f415 (patch) | |
| tree | cd59d2081f84dc36158986d573225554c273d19c /qpid/java/broker-plugins/management-http | |
| parent | 466d209aea03a17c508b887682ab769ba72f9e44 (diff) | |
| download | qpid-python-119554c72479af7ecaeafd12d0f840c8fb50f415.tar.gz | |
QPID-4596: Add java broker ability to create/delete/update virtual hosts, authentication providers and ports via REST interfaces
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1450881 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker-plugins/management-http')
3 files changed, 29 insertions, 36 deletions
diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java index c2ac675e20..8fa9a59038 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java @@ -21,6 +21,7 @@ package org.apache.qpid.server.management.plugin; import java.io.File; +import java.lang.reflect.Type; import java.util.Collection; import java.util.Collections; import java.util.HashMap; @@ -120,7 +121,7 @@ public class HttpManagement extends AbstractPluginAdapter }}); @SuppressWarnings("serial") - private static final Map<String, Class<?>> ATTRIBUTE_TYPES = Collections.unmodifiableMap(new HashMap<String, Class<?>>(){{ + private static final Map<String, Type> ATTRIBUTE_TYPES = Collections.unmodifiableMap(new HashMap<String, Type>(){{ put(HTTP_BASIC_AUTHENTICATION_ENABLED, Boolean.class); put(HTTPS_BASIC_AUTHENTICATION_ENABLED, Boolean.class); put(HTTP_SASL_AUTHENTICATION_ENABLED, Boolean.class); 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 3fab26cde5..8b74eb1dce 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 @@ -348,16 +348,7 @@ public class RestServlet extends AbstractServlet Collection<ConfiguredObject>[] objects = new Collection[_hierarchy.length]; if(_hierarchy.length == 1) { - try - { - getBroker().createChild(_hierarchy[0], providedObject); - } - catch (RuntimeException e) - { - setResponseStatus(response, e); - return; - } - + createOrUpdate(providedObject, _hierarchy[0], getBroker(), null, response); } else { @@ -419,40 +410,39 @@ public class RestServlet extends AbstractServlet ConfiguredObject theParent = parents.remove(0); ConfiguredObject[] otherParents = parents.toArray(new ConfiguredObject[parents.size()]); - try - { + createOrUpdate(providedObject, objClass, theParent, otherParents, response); + } + } - Collection<? extends ConfiguredObject> existingChildren = theParent.getChildren(objClass); - for(ConfiguredObject obj: existingChildren) + private void createOrUpdate(Map<String, Object> providedObject, Class<? extends ConfiguredObject> objClass, + ConfiguredObject theParent, ConfiguredObject[] otherParents, HttpServletResponse response) throws IOException + { + try + { + Collection<? extends ConfiguredObject> existingChildren = theParent.getChildren(objClass); + for(ConfiguredObject obj: existingChildren) + { + if((providedObject.containsKey("id") && String.valueOf(providedObject.get("id")).equals(obj.getId().toString())) + || (obj.getName().equals(providedObject.get("name")) && equalParents(obj, otherParents))) { - if((providedObject.containsKey("id") && String.valueOf(providedObject.get("id")).equals(obj.getId().toString())) - || (obj.getName().equals(providedObject.get("name")) && equalParents(obj, otherParents))) - { - doUpdate(obj, providedObject); - response.setStatus(HttpServletResponse.SC_OK); - return; - } + doUpdate(obj, providedObject); + response.setStatus(HttpServletResponse.SC_OK); + return; } - - theParent.createChild(objClass, providedObject, otherParents); - } - catch (RuntimeException e) - { - setResponseStatus(response, e); - return; } + theParent.createChild(objClass, providedObject, otherParents); + response.setStatus(HttpServletResponse.SC_CREATED); + } + catch (RuntimeException e) + { + setResponseStatus(response, e); } - response.setStatus(HttpServletResponse.SC_CREATED); } private void doUpdate(ConfiguredObject obj, Map<String, Object> providedObject) { - for(Map.Entry<String,Object> entry : providedObject.entrySet()) - { - obj.setAttribute(entry.getKey(), obj.getAttribute(entry.getKey()), entry.getValue()); - } - //TODO - Implement. + obj.setAttributes(providedObject); } private boolean equalParents(ConfiguredObject obj, ConfiguredObject[] otherParents) diff --git a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/AuthenticationProvider.js b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/AuthenticationProvider.js index 7613fd5d71..4273ed5b41 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/AuthenticationProvider.js +++ b/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/AuthenticationProvider.js @@ -72,6 +72,7 @@ define(["dojo/_base/xhr", { this.controller = controller; this.name = query(".name", node)[0]; + this.type = query(".type", node)[0]; /*this.state = dom.byId("state"); this.durable = dom.byId("durable"); this.lifetimePolicy = dom.byId("lifetimePolicy"); @@ -89,7 +90,7 @@ define(["dojo/_base/xhr", that.updateHeader(); - require(["qpid/management/authenticationprovider/"+that.authProviderData.type], + require(["qpid/management/authenticationprovider/"+that.authProviderData.category], function(SpecificProvider) { that.details = new SpecificProvider(node, authProviderObj, controller); that.details.update(); @@ -102,6 +103,7 @@ define(["dojo/_base/xhr", AuthProviderUpdater.prototype.updateHeader = function() { this.name.innerHTML = this.authProviderData[ "name" ]; + this.type.innerHTML = this.authProviderData[ "authenticationProviderType" ]; /* this.state.innerHTML = this.brokerData[ "state" ]; this.durable.innerHTML = this.brokerData[ "durable" ]; this.lifetimePolicy.innerHTML = this.brokerData[ "lifetimePolicy" ]; |
