summaryrefslogtreecommitdiff
path: root/qpid/java/broker-plugins/management-http
diff options
context:
space:
mode:
authorAlex Rudyy <orudyy@apache.org>2013-02-27 17:50:17 +0000
committerAlex Rudyy <orudyy@apache.org>2013-02-27 17:50:17 +0000
commit119554c72479af7ecaeafd12d0f840c8fb50f415 (patch)
treecd59d2081f84dc36158986d573225554c273d19c /qpid/java/broker-plugins/management-http
parent466d209aea03a17c508b887682ab769ba72f9e44 (diff)
downloadqpid-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')
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java3
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java58
-rw-r--r--qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/AuthenticationProvider.js4
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" ];