You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by or...@apache.org on 2015/03/13 10:21:17 UTC
svn commit: r1666380 - in /qpid/trunk/qpid/java:
broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/
broker-plugins/management-http/src/main/java/resources/js/qpid/management/
broker-plugins/management-ht...
Author: orudyy
Date: Fri Mar 13 09:21:16 2015
New Revision: 1666380
URL: http://svn.apache.org/r1666380
Log:
QPID-6438: [Java Broker] Extend REST interfaces to result in errors when object already exist on create and when object does not exist on update
Modified:
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAccessControlProvider.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAuthenticationProvider.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addBinding.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addExchange.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addGroupProvider.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addQueue.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addStore.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addVirtualHostNodeAndVirtualHost.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/authenticationprovider/PrincipalDatabaseAuthenticationManager.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editBroker.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editQueue.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editVirtualHost.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editVirtualHostNode.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/group/addGroupMember.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/GroupManagingGroupProvider.js
qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/preferencesprovider/PreferencesProviderForm.js
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/RestTestHelper.java
qpid/trunk/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/GroupRestTest.java
qpid/trunk/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/UserRestTest.java
qpid/trunk/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/VirtualHostNodeRestTest.java
qpid/trunk/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/VirtualHostRestTest.java
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java?rev=1666380&r1=1666379&r2=1666380&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java Fri Mar 13 09:21:16 2015
@@ -412,15 +412,16 @@ public class RestServlet extends Abstrac
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>();
String[] pathInfoElements = getPathInfoElements(request);
+
+ boolean parentRequest = false;
if (pathInfoElements != null)
{
- if (pathInfoElements.length != _hierarchy.length)
+ parentRequest = _hierarchy.length > 0 && pathInfoElements.length == _hierarchy.length - 1;
+ if (pathInfoElements.length != _hierarchy.length && !parentRequest)
{
throw new IllegalArgumentException("Path to object to create must be fully specified. "
+ "Found "
@@ -432,6 +433,10 @@ public class RestServlet extends Abstrac
}
names.addAll(Arrays.asList(pathInfoElements));
}
+ else
+ {
+ parentRequest = _hierarchy.length == 1;
+ }
Map<String, Object> providedObject;
@@ -469,16 +474,9 @@ public class RestServlet extends Abstrac
{
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);
+ getBroker().setAttributes(providedObject);
response.setStatus(HttpServletResponse.SC_OK);
}
catch (RuntimeException e)
@@ -487,19 +485,22 @@ public class RestServlet extends Abstrac
}
return;
}
- else
+ else if (!parentRequest)
{
throw new ServletException("Cannot identify request target object");
}
}
- providedObject.put("name", names.get(names.size() - 1));
+ if (!parentRequest)
+ {
+ providedObject.put("name", names.get(names.size() - 1));
+ }
@SuppressWarnings("unchecked")
Collection<ConfiguredObject>[] objects = new Collection[_hierarchy.length];
if (_hierarchy.length == 1)
{
- createOrUpdate(providedObject, _hierarchy[0], getBroker(), null, request, response, createOrUpdate);
+ createOrUpdate(providedObject, _hierarchy[0], getBroker(), null, request, response, parentRequest);
}
else
{
@@ -562,30 +563,38 @@ public class RestServlet extends Abstrac
ConfiguredObject theParent = parents.remove(0);
ConfiguredObject[] otherParents = parents.toArray(new ConfiguredObject[parents.size()]);
- createOrUpdate(providedObject, objClass, theParent, otherParents, request, response, createOrUpdate);
+ createOrUpdate(providedObject, objClass, theParent, otherParents, request, response, parentRequest);
}
}
private void createOrUpdate(Map<String, Object> providedObject, Class<? extends ConfiguredObject> objClass,
ConfiguredObject theParent, ConfiguredObject[] otherParents, HttpServletRequest request,
- HttpServletResponse response, boolean createOrUpdate) throws IOException
+ HttpServletResponse response, boolean parentRequest) throws IOException
{
try
{
Collection<? extends ConfiguredObject> existingChildren = theParent.getChildren(objClass);
- if (createOrUpdate)
+ if (!parentRequest)
{
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, objClass)))
{
- doUpdate(obj, providedObject);
+ obj.setAttributes(providedObject);
response.setStatus(HttpServletResponse.SC_OK);
return;
}
}
+
+ if ("POST".equalsIgnoreCase(request.getMethod()))
+ {
+ sendErrorResponse(request, response, HttpServletResponse.SC_NOT_FOUND, "Object with "
+ + (providedObject.containsKey("id") ? " id '" + providedObject.get("id") : " name '" + providedObject.get("name"))
+ + "' does not exist!" );
+ return;
+ }
}
theParent.createChild(objClass, providedObject, otherParents);
@@ -597,11 +606,6 @@ public class RestServlet extends Abstrac
}
}
- private void doUpdate(ConfiguredObject obj, Map<String, Object> providedObject)
- {
- obj.setAttributes(providedObject);
- }
-
private boolean equalParents(ConfiguredObject obj, ConfiguredObject[] otherParents, Class<? extends ConfiguredObject> objClass)
{
if(otherParents == null || otherParents.length == 0)
@@ -644,6 +648,7 @@ public class RestServlet extends Abstrac
}
else
{
+ int responseCode = HttpServletResponse.SC_CONFLICT;
String message = e.getMessage();
if (e instanceof IllegalConfigurationException || e instanceof IllegalArgumentException)
{
@@ -661,14 +666,15 @@ public class RestServlet extends Abstrac
LOGGER.warn("Unexpected exception processing request ", e);
}
- sendErrorResponse(request, response, message);
+
+ sendErrorResponse(request, response, responseCode, message);
}
}
- private void sendErrorResponse(HttpServletRequest request, HttpServletResponse response, String message) throws IOException
+ private void sendErrorResponse(HttpServletRequest request, HttpServletResponse response, int responseCode, String message) throws IOException
{
- response.setStatus(HttpServletResponse.SC_CONFLICT);
+ response.setStatus(responseCode);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAccessControlProvider.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAccessControlProvider.js?rev=1666380&r1=1666379&r2=1666380&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAccessControlProvider.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAccessControlProvider.js Fri Mar 13 09:21:16 2015
@@ -100,10 +100,8 @@ define(["dojo/_base/lang",
if (this.accessControlProviderForm.validate())
{
var accessControlProviderData = util.getFormWidgetValues(this.accessControlProviderForm, this.initialData);
- var encodedAccessControlProviderName = encodeURIComponent(this.accessControlProviderName.value);
var that = this;
- util.post("api/latest/accesscontrolprovider/" + encodedAccessControlProviderName,
- accessControlProviderData, function(x){that.dialog.hide();});
+ util.post("api/latest/accesscontrolprovider", accessControlProviderData, function(x){that.dialog.hide();});
}
else
{
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAuthenticationProvider.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAuthenticationProvider.js?rev=1666380&r1=1666379&r2=1666380&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAuthenticationProvider.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addAuthenticationProvider.js Fri Mar 13 09:21:16 2015
@@ -150,15 +150,17 @@ define(["dojo/_base/xhr",
{
if(this.authenticationProviderForm.validate() && this.preferencesProviderForm.validate())
{
- var success = false,failureReason=null;
-
var authenticationProviderData = util.getFormWidgetValues(this.authenticationProviderForm, this.initialData);
- var encodedAuthenticationProviderName = encodeURIComponent(this.authenticationProviderName.value);
var that = this;
-
- var methodName = this.initialData ? "put" : "post";
- util[methodName]("api/latest/authenticationprovider/" + encodedAuthenticationProviderName, authenticationProviderData,
+ var encodedAuthenticationProviderName = encodeURIComponent(this.authenticationProviderName.value);
+ var url = "api/latest/authenticationprovider";
+ if (this.initialData && this.initialData.id)
+ {
+ // update request
+ url += "/" + encodedAuthenticationProviderName;
+ }
+ util.post(url, authenticationProviderData,
function(x){
var preferencesProviderResult = that.preferencesProviderForm.submit(encodedAuthenticationProviderName);
if (preferencesProviderResult.success == true)
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addBinding.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addBinding.js?rev=1666380&r1=1666379&r2=1666380&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addBinding.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addBinding.js Fri Mar 13 09:21:16 2015
@@ -311,8 +311,7 @@ define(["dojo/_base/connect",
var url = "api/latest/binding/"+encodeURIComponent(addBinding.vhostnode)
+ "/"+encodeURIComponent(addBinding.vhost)
+ "/"+encodeURIComponent(newBinding.exchange)
- + "/"+encodeURIComponent(newBinding.queue)
- + "/"+encodeURIComponent(newBinding.name);
+ + "/"+encodeURIComponent(newBinding.queue);
util.post(url, newBinding, function(x){registry.byId("addBinding").hide();});
return false;
}else{
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addExchange.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addExchange.js?rev=1666380&r1=1666379&r2=1666380&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addExchange.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addExchange.js Fri Mar 13 09:21:16 2015
@@ -111,8 +111,7 @@ define(["dojo/_base/xhr",
var newExchange = convertToExchange(theForm.getValues());
var that = this;
util.post("api/latest/exchange/" + encodeURIComponent(addExchange.vhostnode)
- + "/" + encodeURIComponent(addExchange.vhost)
- + "/" + encodeURIComponent(newExchange.name),
+ + "/" + encodeURIComponent(addExchange.vhost),
newExchange, function(x){ registry.byId("addExchange").hide(); });
return false;
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addGroupProvider.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addGroupProvider.js?rev=1666380&r1=1666379&r2=1666380&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addGroupProvider.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addGroupProvider.js Fri Mar 13 09:21:16 2015
@@ -120,13 +120,17 @@ define([
{
if (this.groupProviderForm.validate())
{
- var success = false,failureReason=null;
-
var groupProviderData = util.getFormWidgetValues(this.groupProviderForm, this.initialData);
- var encodedName = encodeURIComponent(this.groupProviderName.value);
+
var that = this;
- var method = this.initialData ? "put" : "post";
- util[method]("api/latest/groupprovider/" + encodedName, groupProviderData, function(x){that.dialog.hide();});
+ var url = "api/latest/groupprovider";
+ if (this.initialData)
+ {
+ // update request
+ url += "/" + encodeURIComponent(this.groupProviderName.value)
+ }
+
+ util.post( url,groupProviderData, function(x){that.dialog.hide();});
}
else
{
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js?rev=1666380&r1=1666379&r2=1666380&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addPort.js Fri Mar 13 09:21:16 2015
@@ -267,8 +267,13 @@ define(["dojo/_base/xhr",
alert("A trust store must be selected when requesting client certificates.");
return false;
}
- 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()});
+ var url = "api/latest/port";
+ if (registry.byId("formAddPort.name").get("disabled"))
+ {
+ // update request
+ url += "/" + encodeURIComponent(newPort.name);
+ }
+ util.post(url, newPort, function(x){registry.byId("addPort").hide()});
return false;
} else
{
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addQueue.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addQueue.js?rev=1666380&r1=1666379&r2=1666380&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addQueue.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addQueue.js Fri Mar 13 09:21:16 2015
@@ -150,7 +150,7 @@ define(["dojo/_base/xhr",
var newQueue = convertToQueue(theForm.getValues());
util.post("api/latest/queue/" + encodeURIComponent(addQueue.vhostnode)
- + "/"+encodeURIComponent(addQueue.vhost) + "/" + encodeURIComponent(newQueue.name),
+ + "/"+encodeURIComponent(addQueue.vhost),
newQueue, function(x){registry.byId("addQueue").hide();});
return false;
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addStore.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addStore.js?rev=1666380&r1=1666379&r2=1666380&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addStore.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addStore.js Fri Mar 13 09:21:16 2015
@@ -129,11 +129,15 @@ define(["dojo/_base/lang",
var success = false,failureReason=null;
var storeData = util.getFormWidgetValues(this.storeForm, this.initialData);
- var encodedStoreName = encodeURIComponent(this.storeName.value);
- var encodedCategory = encodeURIComponent(this.category.toLowerCase());
var that = this;
- var method = this.effectiveData ? "put" : "post";
- util[method]("api/latest/" + encodedCategory + "/" + encodedStoreName, storeData, function(x){that.dialog.hide();});
+ var url = "api/latest/" + encodeURIComponent(this.category.toLowerCase());
+
+ if (this.effectiveData)
+ {
+ // update request
+ url += "/" + encodeURIComponent(this.storeName.value);
+ }
+ util.post(url, storeData, function(x){that.dialog.hide();});
}
else
{
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addVirtualHostNodeAndVirtualHost.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addVirtualHostNodeAndVirtualHost.js?rev=1666380&r1=1666379&r2=1666380&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addVirtualHostNodeAndVirtualHost.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/addVirtualHostNodeAndVirtualHost.js Fri Mar 13 09:21:16 2015
@@ -340,8 +340,7 @@ define([
}
var that = this;
- var encodedVirtualHostNodeName = encodeURIComponent(virtualHostNodeData.name);
- util.post("api/latest/virtualhostnode/" + encodedVirtualHostNodeName, virtualHostNodeData, function(x){that.dialog.hide();});
+ util.post("api/latest/virtualhostnode", virtualHostNodeData, function(x){that.dialog.hide();});
},
_getValues: function (form)
{
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/authenticationprovider/PrincipalDatabaseAuthenticationManager.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/authenticationprovider/PrincipalDatabaseAuthenticationManager.js?rev=1666380&r1=1666379&r2=1666380&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/authenticationprovider/PrincipalDatabaseAuthenticationManager.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/authenticationprovider/PrincipalDatabaseAuthenticationManager.js Fri Mar 13 09:21:16 2015
@@ -200,8 +200,7 @@ define(["dojo/_base/xhr",
var newUser = convertToUser(theForm.getValues());
- var url = "api/latest/user/"+encodeURIComponent(addUser.authProvider) +
- "/"+encodeURIComponent(newUser.name);
+ var url = "api/latest/user/"+encodeURIComponent(addUser.authProvider);
util.post(url, newUser, function(x){registry.byId("addUser").hide();});
return false;
@@ -248,7 +247,7 @@ define(["dojo/_base/xhr",
var url = "api/latest/user/"+encodeURIComponent(setPassword.authProvider) +
"/"+encodeURIComponent(newUser.name);
- util.put(url, newUser, function(x){registry.byId("setPassword").hide();});
+ util.post(url, newUser, function(x){registry.byId("setPassword").hide();});
return false;
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editBroker.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editBroker.js?rev=1666380&r1=1666379&r2=1666380&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editBroker.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editBroker.js Fri Mar 13 09:21:16 2015
@@ -128,25 +128,8 @@ define(["dojo/_base/xhr",
data["context"] = context;
}
- var success = false,failureReason=null;
- xhr.put({
- url: this.query,
- sync: true,
- handleAs: "json",
- headers: { "Content-Type": "application/json"},
- putData: json.stringify(data),
- 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(this.query, data, function(x){that.dialog.hide()})
}
else
{
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editQueue.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editQueue.js?rev=1666380&r1=1666379&r2=1666380&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editQueue.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editQueue.js Fri Mar 13 09:21:16 2015
@@ -163,25 +163,8 @@ define(["dojo/_base/xhr",
{
data["context"] = context;
}
- var success = false,failureReason=null;
- xhr.put({
- url: this.query,
- sync: true,
- handleAs: "json",
- headers: { "Content-Type": "application/json"},
- putData: json.stringify(data),
- 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(this.query, data, function(x){that.dialog.hide()});
}
else
{
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editVirtualHost.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editVirtualHost.js?rev=1666380&r1=1666379&r2=1666380&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editVirtualHost.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editVirtualHost.js Fri Mar 13 09:21:16 2015
@@ -128,25 +128,8 @@ define(["dojo/_base/xhr",
{
data["context"] = context;
}
- var success = false,failureReason=null;
- xhr.put({
- url: this.query,
- sync: true,
- handleAs: "json",
- headers: { "Content-Type": "application/json"},
- putData: json.stringify(data),
- 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(this.query, data, function(x){ that.dialog.hide();} );
}
else
{
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editVirtualHostNode.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editVirtualHostNode.js?rev=1666380&r1=1666379&r2=1666380&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editVirtualHostNode.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/editVirtualHostNode.js Fri Mar 13 09:21:16 2015
@@ -120,25 +120,8 @@ define(["dojo/_base/xhr",
{
data["context"] = context;
}
- var success = false,failureReason=null;
- xhr.put({
- url: this.query,
- sync: true,
- handleAs: "json",
- headers: { "Content-Type": "application/json"},
- putData: json.stringify(data),
- 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(this.query, data, function(x){ that.dialog.hide();} );
}
else
{
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/group/addGroupMember.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/group/addGroupMember.js?rev=1666380&r1=1666379&r2=1666380&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/group/addGroupMember.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/group/addGroupMember.js Fri Mar 13 09:21:16 2015
@@ -73,8 +73,7 @@ define(["dojo/_base/xhr",
var that = this;
var url = "api/latest/groupmember/"+encodeURIComponent(addGroupMember.groupProvider) +
- "/" + encodeURIComponent(addGroupMember.group) +
- "/" + encodeURIComponent(newGroupMember.name);
+ "/" + encodeURIComponent(addGroupMember.group);
util.post(url, newGroupMember, function(x){registry.byId("addGroupMember").hide();});
return false;
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/GroupManagingGroupProvider.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/GroupManagingGroupProvider.js?rev=1666380&r1=1666379&r2=1666380&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/GroupManagingGroupProvider.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/groupprovider/GroupManagingGroupProvider.js Fri Mar 13 09:21:16 2015
@@ -173,10 +173,7 @@ define(["dojo/_base/xhr",
var newGroup = convertToGroup(theForm.getValues());
-
- var url = "api/latest/group/"+encodeURIComponent(addGroup.groupProvider) +
- "/"+encodeURIComponent(newGroup.name);
-
+ var url = "api/latest/group/"+encodeURIComponent(addGroup.groupProvider);
util.post(url, newGroup, function(x){registry.byId("addGroup").hide();});
return false;
Modified: qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/preferencesprovider/PreferencesProviderForm.js
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/preferencesprovider/PreferencesProviderForm.js?rev=1666380&r1=1666379&r2=1666380&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/preferencesprovider/PreferencesProviderForm.js (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-http/src/main/java/resources/js/qpid/management/preferencesprovider/PreferencesProviderForm.js Fri Mar 13 09:21:16 2015
@@ -87,26 +87,13 @@ function (util, metadata, xhr, declare,
{
var preferencesProviderData = util.getFormWidgetValues(this.preferencesProviderForm, this.data)
var encodedPreferencesProviderName = encodeURIComponent(this.preferencesProviderNameWidget.get("value"));
- var url = "api/latest/preferencesprovider/" + encodedAuthenticationProviderName + "/" + encodedPreferencesProviderName;
+ var url = "api/latest/preferencesprovider/" + encodedAuthenticationProviderName;
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);
+ // update request
+ url += "/" + encodedPreferencesProviderName;
}
+ return util.post(url, preferencesProviderData);
}
return { success: true, failureReason: null };
},
Modified: qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/RestTestHelper.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/RestTestHelper.java?rev=1666380&r1=1666379&r2=1666380&view=diff
==============================================================================
--- qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/RestTestHelper.java (original)
+++ qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/RestTestHelper.java Fri Mar 13 09:21:16 2015
@@ -307,7 +307,7 @@ public class RestTestHelper
{
HttpURLConnection connection = openManagementConnection(
"groupmember/" + encodeAsUTF(groupProviderName) + "/"+ encodeAsUTF(groupName) + "/" + encodeAsUTF(memberName),
- "POST");
+ "PUT");
Map<String, Object> groupMemberData = new HashMap<String, Object>();
// TODO add type
@@ -360,7 +360,7 @@ public class RestTestHelper
{
HttpURLConnection connection = openManagementConnection(
"group/" + encodeAsUTF(groupProviderName) + "/"+ encodeAsUTF(groupName),
- "POST");
+ "PUT");
Map<String, Object> groupData = new HashMap<String, Object>();
writeJsonRequest(connection, groupData);
Modified: qpid/trunk/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/GroupRestTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/GroupRestTest.java?rev=1666380&r1=1666379&r2=1666380&view=diff
==============================================================================
--- qpid/trunk/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/GroupRestTest.java (original)
+++ qpid/trunk/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/GroupRestTest.java Fri Mar 13 09:21:16 2015
@@ -74,7 +74,7 @@ public class GroupRestTest extends QpidR
assertEquals(EXISTING_MEMBER, (String)member1.get(GroupMember.NAME));
}
- public void testCreateNewMemberByPut() throws Exception
+ public void testCreateNewMemberByPutUsingMemberURI() throws Exception
{
Map<String, Object> group = getRestTestHelper().getJsonAsSingletonList("group/" + FILE_GROUP_MANAGER + "/myGroup");
getRestTestHelper().assertNumberOfGroupMembers(group, 1);
@@ -86,19 +86,36 @@ public class GroupRestTest extends QpidR
assertEquals("Unexpected group name", NEW_MEMBER, member.get(GroupMember.NAME));
}
- public void testCreateNewMemberByPost() throws Exception
+ public void testCreateNewMemberByPostUsingParentURI() throws Exception
{
Map<String, Object> group = getRestTestHelper().getJsonAsSingletonList("group/" + FILE_GROUP_MANAGER + "/myGroup");
getRestTestHelper().assertNumberOfGroupMembers(group, 1);
- String url = "groupmember/" + FILE_GROUP_MANAGER + "/"+ GROUP_NAME + "/" + NEW_MEMBER;
- getRestTestHelper().submitRequest(url, "POST", Collections.<String, Object>emptyMap(), HttpServletResponse.SC_CREATED);
+ String url = "groupmember/" + FILE_GROUP_MANAGER + "/"+ GROUP_NAME;
+ Map<String, Object> data = Collections.<String, Object>singletonMap("name", NEW_MEMBER);
+ getRestTestHelper().submitRequest(url, "POST", data, HttpServletResponse.SC_CREATED);
- Map<String, Object> member = getRestTestHelper().getJsonAsSingletonList(url);
+ Map<String, Object> member = getRestTestHelper().getJsonAsSingletonList(url + "/" + NEW_MEMBER);
+ assertEquals("Unexpected group name", NEW_MEMBER, member.get(GroupMember.NAME));
+
+ // verify that second creation request fails
+ getRestTestHelper().submitRequest(url, "POST", data, HttpServletResponse.SC_CONFLICT);
+ }
+
+ public void testCreateNewMemberByPutUsingParentURI() throws Exception
+ {
+ Map<String, Object> group = getRestTestHelper().getJsonAsSingletonList("group/" + FILE_GROUP_MANAGER + "/myGroup");
+ getRestTestHelper().assertNumberOfGroupMembers(group, 1);
+
+ String url = "groupmember/" + FILE_GROUP_MANAGER + "/"+ GROUP_NAME;
+ Map<String, Object> data = Collections.<String, Object>singletonMap("name", NEW_MEMBER);
+ getRestTestHelper().submitRequest(url, "PUT", data, HttpServletResponse.SC_CREATED);
+
+ Map<String, Object> member = getRestTestHelper().getJsonAsSingletonList(url + "/" + NEW_MEMBER);
assertEquals("Unexpected group name", NEW_MEMBER, member.get(GroupMember.NAME));
- // verify that second creation request by POST fails
- getRestTestHelper().submitRequest(url, "POST", Collections.<String, Object>emptyMap(), HttpServletResponse.SC_CONFLICT);
+ // verify that second creation request fails
+ getRestTestHelper().submitRequest(url, "PUT", data, HttpServletResponse.SC_CONFLICT);
}
public void testRemoveMemberFromGroup() throws Exception
Modified: qpid/trunk/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/UserRestTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/UserRestTest.java?rev=1666380&r1=1666379&r2=1666380&view=diff
==============================================================================
--- qpid/trunk/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/UserRestTest.java (original)
+++ qpid/trunk/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/UserRestTest.java Fri Mar 13 09:21:16 2015
@@ -67,7 +67,7 @@ public class UserRestTest extends QpidRe
}
}
- public void testCreateUserByPut() throws Exception
+ public void testCreateUserByPutUsingUserURI() throws Exception
{
String userName = getTestName();
getRestTestHelper().createOrUpdateUser(userName, "newPassword");
@@ -78,17 +78,18 @@ public class UserRestTest extends QpidRe
assertEquals("Unexpected user name", userName, userDetails.get(User.NAME));
}
- public void testCreateUserByPost() throws Exception
+ public void testCreateUserByPostUsingParentURI() throws Exception
{
String userName = getTestName();
Map<String,Object> userAttributes = new HashMap<>();
userAttributes.put("password", "newPassword");
+ userAttributes.put("name", userName);
- String url = "user/" + TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER + "/" + userName;
+ String url = "user/" + TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER;
getRestTestHelper().submitRequest(url, "POST", userAttributes, HttpServletResponse.SC_CREATED);
- Map<String, Object> userDetails = getRestTestHelper().getJsonAsSingletonList(url);
+ Map<String, Object> userDetails = getRestTestHelper().getJsonAsSingletonList(url+ "/" + userName);
assertUser(userDetails);
assertEquals("Unexpected user name", userName, userDetails.get(User.NAME));
@@ -96,6 +97,40 @@ public class UserRestTest extends QpidRe
getRestTestHelper().submitRequest(url, "POST", userAttributes, HttpServletResponse.SC_CONFLICT);
}
+ public void testCreateUserByPutUsingParentURI() throws Exception
+ {
+ String userName = getTestName();
+
+ Map<String,Object> userAttributes = new HashMap<>();
+ userAttributes.put("password", "newPassword");
+ userAttributes.put("name", userName);
+
+ String url = "user/" + TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER;
+ getRestTestHelper().submitRequest(url, "PUT", userAttributes, HttpServletResponse.SC_CREATED);
+
+ Map<String, Object> userDetails = getRestTestHelper().getJsonAsSingletonList(url+ "/" + userName);
+ assertUser(userDetails);
+ assertEquals("Unexpected user name", userName, userDetails.get(User.NAME));
+
+ // verify that second create request fails
+ getRestTestHelper().submitRequest(url, "PUT", userAttributes, HttpServletResponse.SC_CONFLICT);
+ }
+
+ public void testSetPasswordForNonExistingUserByPostFails() throws Exception
+ {
+ String userName = getTestName();
+
+ Map<String,Object> userAttributes = new HashMap<>();
+ userAttributes.put("password", "newPassword");
+ userAttributes.put("name", userName);
+
+ String url = "user/" + TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER + "/" + userName;
+ getRestTestHelper().submitRequest(url, "POST", userAttributes, HttpServletResponse.SC_NOT_FOUND);
+
+ List<Map<String, Object>> userDetails = getRestTestHelper().getJsonAsList(url);
+ assertTrue("User should not be created", userDetails.isEmpty());
+ }
+
public void testDelete() throws Exception
{
String userName = getTestName();
Modified: qpid/trunk/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/VirtualHostNodeRestTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/VirtualHostNodeRestTest.java?rev=1666380&r1=1666379&r2=1666380&view=diff
==============================================================================
--- qpid/trunk/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/VirtualHostNodeRestTest.java (original)
+++ qpid/trunk/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/VirtualHostNodeRestTest.java Fri Mar 13 09:21:16 2015
@@ -126,23 +126,40 @@ public class VirtualHostNodeRestTest ex
assertEquals(newDescription, virtualhostNode.get(VirtualHostNode.DESCRIPTION));
}
- public void testCreateVirtualHostNodeByPost() throws Exception
+ public void testCreateVirtualHostNodeByPostUsingParentURI() throws Exception
{
String nodeName = getTestName();
Map<String, Object> nodeData = new HashMap<>();
nodeData.put(VirtualHostNode.NAME, nodeName);
nodeData.put(VirtualHostNode.TYPE, getTestProfileVirtualHostNodeType());
- String url = "virtualhostnode/" + nodeName;
+ String url = "virtualhostnode";
getRestTestHelper().submitRequest(url, "POST", nodeData, HttpServletResponse.SC_CREATED);
- Map<String, Object> virtualhostNode = getRestTestHelper().getJsonAsSingletonList(url);
+ Map<String, Object> virtualhostNode = getRestTestHelper().getJsonAsSingletonList(url + "/" + nodeName);
Asserts.assertVirtualHostNode(nodeName, virtualhostNode);
// verify that second create request fails
getRestTestHelper().submitRequest(url, "POST", nodeData, HttpServletResponse.SC_CONFLICT);
}
+ public void testCreateVirtualHostNodeByPutUsingParentURI() throws Exception
+ {
+ String nodeName = getTestName();
+ Map<String, Object> nodeData = new HashMap<>();
+ nodeData.put(VirtualHostNode.NAME, nodeName);
+ nodeData.put(VirtualHostNode.TYPE, getTestProfileVirtualHostNodeType());
+
+ String url = "virtualhostnode";
+ getRestTestHelper().submitRequest(url, "PUT", nodeData, HttpServletResponse.SC_CREATED);
+
+ Map<String, Object> virtualhostNode = getRestTestHelper().getJsonAsSingletonList(url + "/" + nodeName);
+ Asserts.assertVirtualHostNode(nodeName, virtualhostNode);
+
+ // verify that second create request fails
+ getRestTestHelper().submitRequest(url, "PUT", nodeData, HttpServletResponse.SC_CONFLICT);
+ }
+
private void createAndDeleteVirtualHostNode(final String virtualhostNodeType,
final String nodeName,
final File storePathAsFile) throws Exception
Modified: qpid/trunk/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/VirtualHostRestTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/VirtualHostRestTest.java?rev=1666380&r1=1666379&r2=1666380&view=diff
==============================================================================
--- qpid/trunk/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/VirtualHostRestTest.java (original)
+++ qpid/trunk/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/VirtualHostRestTest.java Fri Mar 13 09:21:16 2015
@@ -31,7 +31,6 @@ import javax.jms.Destination;
import javax.jms.Session;
import javax.servlet.http.HttpServletResponse;
-import org.apache.qpid.server.virtualhost.ProvidedStoreVirtualHostImpl;
import org.apache.qpid.client.AMQConnection;
import org.apache.qpid.server.model.Exchange;
import org.apache.qpid.server.model.Queue;
@@ -118,8 +117,8 @@ public class VirtualHostRestTest extends
public void testCreateProvidedVirtualHost() throws Exception
{
- String hostName = getTestName();
- createVirtualHost(hostName, ProvidedStoreVirtualHostImpl.VIRTUAL_HOST_TYPE, "PUT");
+ Map<String, Object> requestData = submitVirtualHost(true, "PUT", HttpServletResponse.SC_CREATED);
+ String hostName = (String)requestData.get(VirtualHost.NAME);
Map<String, Object> hostDetails = getRestTestHelper().getJsonAsSingletonList("virtualhost/" + EMPTY_VIRTUALHOSTNODE_NAME + "/" + hostName);
Asserts.assertVirtualHost(hostName, hostDetails);
@@ -127,42 +126,53 @@ public class VirtualHostRestTest extends
assertNewVirtualHost(hostDetails);
}
- public void testCreateVirtualHostByPut() throws Exception
+ public void testCreateVirtualHostByPutUsingParentURI() throws Exception
{
- String hostName = getTestName();
- String vhnType = getTestProfileVirtualHostNodeType();
- if (JsonVirtualHostNodeImpl.VIRTUAL_HOST_NODE_TYPE.equals(vhnType))
- {
- vhnType = DerbyVirtualHostImpl.VIRTUAL_HOST_TYPE;
- }
- createVirtualHost(hostName, vhnType, "PUT");
- Map<String, Object> hostDetails = getRestTestHelper().getJsonAsSingletonList("virtualhost/" + EMPTY_VIRTUALHOSTNODE_NAME + "/" + hostName);
- Asserts.assertVirtualHost(hostName, hostDetails);
+ Map<String, Object> data = submitVirtualHost(true, "PUT", HttpServletResponse.SC_CREATED);
+ String hostName = (String)data.get(VirtualHost.NAME);
+ String url = "virtualhost/" + EMPTY_VIRTUALHOSTNODE_NAME + "/" + hostName;
+ Map<String, Object> hostDetails = getRestTestHelper().getJsonAsSingletonList(url);
+ Asserts.assertVirtualHost(hostName, hostDetails);
assertNewVirtualHost(hostDetails);
+
+ // verify second create request fails
+ submitVirtualHost(true, "PUT", HttpServletResponse.SC_CONFLICT);
}
- public void testCreateVirtualHostByPost() throws Exception
+ public void testCreateVirtualHostByPostUsingParentURI() throws Exception
{
- String hostName = getTestName();
- String type = getTestProfileVirtualHostNodeType();
- if (JsonVirtualHostNodeImpl.VIRTUAL_HOST_NODE_TYPE.equals(type))
- {
- type = DerbyVirtualHostImpl.VIRTUAL_HOST_TYPE;
- }
- Map<String, Object> data = new HashMap<>();
- data.put(VirtualHost.NAME, hostName);
- data.put(VirtualHost.TYPE, type);
-
- String url = "virtualhost/" + EMPTY_VIRTUALHOSTNODE_NAME + "/" + hostName;
- getRestTestHelper().submitRequest(url, "POST", data, HttpServletResponse.SC_CREATED);
+ Map<String, Object> data = submitVirtualHost(true, "POST", HttpServletResponse.SC_CREATED);
+ String hostName = (String)data.get(VirtualHost.NAME);
- Map<String, Object> hostDetails = getRestTestHelper().getJsonAsSingletonList(url);
+ Map<String, Object> hostDetails = getRestTestHelper().getJsonAsSingletonList("virtualhost/" + EMPTY_VIRTUALHOSTNODE_NAME + "/" + hostName);
Asserts.assertVirtualHost(hostName, hostDetails);
assertNewVirtualHost(hostDetails);
// verify second create request fails
- getRestTestHelper().submitRequest(url, "POST", data, HttpServletResponse.SC_CONFLICT);
+ submitVirtualHost(true, "POST", HttpServletResponse.SC_CONFLICT);
+ }
+
+ public void testCreateVirtualHostByPutUsingVirtualHostURI() throws Exception
+ {
+ Map<String, Object> data = submitVirtualHost(false, "PUT", HttpServletResponse.SC_CREATED);
+ String hostName = (String)data.get(VirtualHost.NAME);
+ Map<String, Object> hostDetails = getRestTestHelper().getJsonAsSingletonList("virtualhost/" + EMPTY_VIRTUALHOSTNODE_NAME + "/" + hostName);
+ Asserts.assertVirtualHost(hostName, hostDetails);
+
+ assertNewVirtualHost(hostDetails);
+
+ // verify VH is updated successfully
+ submitVirtualHost(false, "PUT", HttpServletResponse.SC_OK);
+ }
+
+ public void testCreateVirtualHostByPostUsingVirtualHostURI() throws Exception
+ {
+ Map<String, Object> data = submitVirtualHost(false, "POST", HttpServletResponse.SC_NOT_FOUND);
+
+ String hostName = (String)data.get(VirtualHost.NAME);
+ List<Map<String, Object>> hostDetails = getRestTestHelper().getJsonAsList("virtualhost/" + EMPTY_VIRTUALHOSTNODE_NAME + "/" + hostName);
+ assertTrue("VH should not exist", hostDetails.isEmpty());
}
public void testDeleteHost() throws Exception
@@ -180,7 +190,17 @@ public class VirtualHostRestTest extends
getRestTestHelper().submitRequest("virtualhost/" + TEST1_VIRTUALHOST, "DELETE", HttpServletResponse.SC_CONFLICT);
}
- public void testMutateAttributes() throws Exception
+ public void testUpdateByPut() throws Exception
+ {
+ assertVirtualHostUpdate("PUT");
+ }
+
+ public void testUpdateByPost() throws Exception
+ {
+ assertVirtualHostUpdate("PUT");
+ }
+
+ private void assertVirtualHostUpdate(String method) throws IOException
{
String hostToUpdate = TEST3_VIRTUALHOST;
String restHostUrl = "virtualhost/" + hostToUpdate + "/" + hostToUpdate;
@@ -189,7 +209,7 @@ public class VirtualHostRestTest extends
Asserts.assertVirtualHost(hostToUpdate, hostDetails);
Map<String, Object> newAttributes = Collections.<String, Object>singletonMap(VirtualHost.DESCRIPTION, "This is a virtual host");
- getRestTestHelper().submitRequest(restHostUrl, "PUT", newAttributes, HttpServletResponse.SC_OK);
+ getRestTestHelper().submitRequest(restHostUrl, method, newAttributes, HttpServletResponse.SC_OK);
Map<String, Object> rereadHostDetails = getRestTestHelper().getJsonAsSingletonList(restHostUrl);
Asserts.assertVirtualHost(hostToUpdate, rereadHostDetails);
@@ -598,17 +618,28 @@ public class VirtualHostRestTest extends
return getRestTestHelper().submitRequest("queue/test/test/" + queueName, "PUT", queueData);
}
- private void createVirtualHost(final String virtualHostName,
- final String virtualHostType, String method) throws IOException
+ private Map<String, Object> submitVirtualHost(boolean useParentURI, String method, int statusCode) throws IOException
{
+ String hostName = getTestName();
+ String type = getTestProfileVirtualHostNodeType();
+ if (JsonVirtualHostNodeImpl.VIRTUAL_HOST_NODE_TYPE.equals(type))
+ {
+ type = DerbyVirtualHostImpl.VIRTUAL_HOST_TYPE;
+ }
Map<String, Object> virtualhostData = new HashMap<>();
- virtualhostData.put(VirtualHost.NAME, virtualHostName);
- virtualhostData.put(VirtualHost.TYPE, virtualHostType);
+ virtualhostData.put(VirtualHost.NAME, hostName);
+ virtualhostData.put(VirtualHost.TYPE, type);
- getRestTestHelper().submitRequest("virtualhost/" + EMPTY_VIRTUALHOSTNODE_NAME + "/" + virtualHostName,
+ String url = "virtualhost/" + EMPTY_VIRTUALHOSTNODE_NAME;
+ if (!useParentURI)
+ {
+ url += "/" + hostName;
+ }
+ getRestTestHelper().submitRequest(url,
method,
virtualhostData,
- HttpServletResponse.SC_CREATED);
+ statusCode);
+ return virtualhostData;
}
private void assertNewVirtualHost(Map<String, Object> hostDetails)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org