From a46930a27d21ada19805220f6e3ded05f1776efe Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Wed, 26 Jun 2013 12:38:33 +0200 Subject: [PATCH] SONAR-4443 The wsclient class PropertyCreateQuery can not be used to create properties --- .../WEB-INF/app/controllers/api/properties_controller.rb | 4 ++-- .../java/org/sonar/wsclient/services/PropertyCreateQuery.java | 3 +-- .../main/java/org/sonar/wsclient/services/PropertyQuery.java | 4 ++-- .../org/sonar/wsclient/services/PropertyCreateQueryTest.java | 4 ++-- .../java/org/sonar/wsclient/services/PropertyQueryTest.java | 4 ++-- 5 files changed, 9 insertions(+), 10 deletions(-) diff --git a/sonar-server/src/main/webapp/WEB-INF/app/controllers/api/properties_controller.rb b/sonar-server/src/main/webapp/WEB-INF/app/controllers/api/properties_controller.rb index e1feb9bfd87..b0f0a97aa96 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/controllers/api/properties_controller.rb +++ b/sonar-server/src/main/webapp/WEB-INF/app/controllers/api/properties_controller.rb @@ -82,12 +82,12 @@ class Api::PropertiesController < Api::ApiController end end - # curl -u admin:admin -v -X PUT http://localhost:9000/api/properties/foo?value=bar[&resource=] + # curl -u admin:admin -v -X POST http://localhost:9000/api/properties/foo?value=bar[&resource=] def create update end - # curl -u admin:admin -v -X POST http://localhost:9000/api/properties/foo?value=bar[&resource=] + # curl -u admin:admin -v -X PUT http://localhost:9000/api/properties/foo?value=bar[&resource=] def update key = params[:id] bad_request('missing key') unless key.present? diff --git a/sonar-ws-client/src/main/java/org/sonar/wsclient/services/PropertyCreateQuery.java b/sonar-ws-client/src/main/java/org/sonar/wsclient/services/PropertyCreateQuery.java index 9572bb39616..406b5205b3e 100644 --- a/sonar-ws-client/src/main/java/org/sonar/wsclient/services/PropertyCreateQuery.java +++ b/sonar-ws-client/src/main/java/org/sonar/wsclient/services/PropertyCreateQuery.java @@ -78,8 +78,7 @@ public class PropertyCreateQuery extends CreateQuery { public String getUrl() { StringBuilder url = new StringBuilder(); url.append(PropertyQuery.BASE_URL); - url.append("/").append(encode(key)); - url.append('?'); + url.append("?id=").append(encode(key)).append("&"); appendUrlParameter(url, "value", value); appendUrlParameter(url, "resource", resourceKeyOrId); return url.toString(); diff --git a/sonar-ws-client/src/main/java/org/sonar/wsclient/services/PropertyQuery.java b/sonar-ws-client/src/main/java/org/sonar/wsclient/services/PropertyQuery.java index 5e2abc4547f..3fee1d82af9 100644 --- a/sonar-ws-client/src/main/java/org/sonar/wsclient/services/PropertyQuery.java +++ b/sonar-ws-client/src/main/java/org/sonar/wsclient/services/PropertyQuery.java @@ -46,10 +46,10 @@ public class PropertyQuery extends Query { @Override public String getUrl() { StringBuilder url = new StringBuilder(BASE_URL); + url.append('?'); if (key != null) { - url.append("/").append(encode(key)); + url.append("id=").append(encode(key)).append("&"); } - url.append('?'); appendUrlParameter(url, "resource", resourceKeyOrId); return url.toString(); } diff --git a/sonar-ws-client/src/test/java/org/sonar/wsclient/services/PropertyCreateQueryTest.java b/sonar-ws-client/src/test/java/org/sonar/wsclient/services/PropertyCreateQueryTest.java index 7a4c710fd18..b72e2e86b87 100644 --- a/sonar-ws-client/src/test/java/org/sonar/wsclient/services/PropertyCreateQueryTest.java +++ b/sonar-ws-client/src/test/java/org/sonar/wsclient/services/PropertyCreateQueryTest.java @@ -29,14 +29,14 @@ public class PropertyCreateQueryTest extends QueryTestCase { @Test public void create() { PropertyCreateQuery query = new PropertyCreateQuery("foo", "bar"); - assertThat(query.getUrl(), is("/api/properties/foo?value=bar&")); + assertThat(query.getUrl(), is("/api/properties?id=foo&value=bar&")); assertThat(query.getModelClass().getName(), is(Property.class.getName())); } @Test public void createForResource() { PropertyCreateQuery query = new PropertyCreateQuery("foo", "bar", "my:resource"); - assertThat(query.getUrl(), is("/api/properties/foo?value=bar&resource=my%3Aresource&")); + assertThat(query.getUrl(), is("/api/properties?id=foo&value=bar&resource=my%3Aresource&")); assertThat(query.getModelClass().getName(), is(Property.class.getName())); } } \ No newline at end of file diff --git a/sonar-ws-client/src/test/java/org/sonar/wsclient/services/PropertyQueryTest.java b/sonar-ws-client/src/test/java/org/sonar/wsclient/services/PropertyQueryTest.java index fef66ec4658..52d51e16154 100644 --- a/sonar-ws-client/src/test/java/org/sonar/wsclient/services/PropertyQueryTest.java +++ b/sonar-ws-client/src/test/java/org/sonar/wsclient/services/PropertyQueryTest.java @@ -43,14 +43,14 @@ public class PropertyQueryTest extends QueryTestCase { @Test public void test_global_property() { PropertyQuery query = PropertyQuery.createForKey("myprop"); - assertThat(query.getUrl(), is("/api/properties/myprop?")); + assertThat(query.getUrl(), is("/api/properties?id=myprop&")); assertThat(query.getModelClass().getName(), is(Property.class.getName())); } @Test public void test_project_property() { PropertyQuery query = PropertyQuery.createForResource("myprop", "my:resource"); - assertThat(query.getUrl(), is("/api/properties/myprop?resource=my%3Aresource&")); + assertThat(query.getUrl(), is("/api/properties?id=myprop&resource=my%3Aresource&")); assertThat(query.getModelClass().getName(), is(Property.class.getName())); } } -- 2.39.5