From 53c088345406f2246035e10813c90fb1fa63904c Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Wed, 16 Feb 2011 17:18:00 +0100 Subject: [PATCH] fix problem with xml representation of collections --- .../resources/AbstractManagerResource.java | 19 +++++++++++++++-- .../scm/api/rest/resources/GroupResource.java | 21 +++++++++++++++++++ .../rest/resources/RepositoryResource.java | 17 +++++++++++++++ .../scm/api/rest/resources/UserResource.java | 17 +++++++++++++++ .../java/sonia/scm/ic/AbstractITCaseBase.java | 14 +++++++------ .../test/java/sonia/scm/ic/UserITCase.java | 7 ++++--- 6 files changed, 84 insertions(+), 11 deletions(-) diff --git a/scm-webapp/src/main/java/sonia/scm/api/rest/resources/AbstractManagerResource.java b/scm-webapp/src/main/java/sonia/scm/api/rest/resources/AbstractManagerResource.java index d10abc8145..963fcd098e 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/rest/resources/AbstractManagerResource.java +++ b/scm-webapp/src/main/java/sonia/scm/api/rest/resources/AbstractManagerResource.java @@ -60,6 +60,7 @@ import javax.ws.rs.WebApplicationException; import javax.ws.rs.core.CacheControl; import javax.ws.rs.core.Context; import javax.ws.rs.core.EntityTag; +import javax.ws.rs.core.GenericEntity; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Request; import javax.ws.rs.core.Response; @@ -93,6 +94,19 @@ public abstract class AbstractManagerResource> createGenericEntity( + Collection items); + //~--- get methods ---------------------------------------------------------- /** @@ -271,14 +285,15 @@ public abstract class AbstractManagerResource> createGenericEntity( + Collection items) + { + return new GenericEntity>(items) {} + ; + } + //~--- get methods ---------------------------------------------------------- /** diff --git a/scm-webapp/src/main/java/sonia/scm/api/rest/resources/RepositoryResource.java b/scm-webapp/src/main/java/sonia/scm/api/rest/resources/RepositoryResource.java index 8511fb88d9..9b7face367 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/rest/resources/RepositoryResource.java +++ b/scm-webapp/src/main/java/sonia/scm/api/rest/resources/RepositoryResource.java @@ -58,6 +58,7 @@ import java.util.Collection; import javax.servlet.http.HttpServletRequest; import javax.ws.rs.Path; +import javax.ws.rs.core.GenericEntity; /** * @@ -99,6 +100,22 @@ public class RepositoryResource //~--- methods -------------------------------------------------------------- + /** + * Method description + * + * + * @param items + * + * @return + */ + @Override + protected GenericEntity> createGenericEntity( + Collection items) + { + return new GenericEntity>(items) {} + ; + } + /** * Method description * diff --git a/scm-webapp/src/main/java/sonia/scm/api/rest/resources/UserResource.java b/scm-webapp/src/main/java/sonia/scm/api/rest/resources/UserResource.java index 893687b209..5f0611c6a0 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/rest/resources/UserResource.java +++ b/scm-webapp/src/main/java/sonia/scm/api/rest/resources/UserResource.java @@ -50,6 +50,7 @@ import sonia.scm.util.Util; import java.util.Collection; import javax.ws.rs.Path; +import javax.ws.rs.core.GenericEntity; /** * @@ -85,6 +86,22 @@ public class UserResource extends AbstractManagerResource //~--- methods -------------------------------------------------------------- + /** + * Method description + * + * + * @param items + * + * @return + */ + @Override + protected GenericEntity> createGenericEntity( + Collection items) + { + return new GenericEntity>(items) {} + ; + } + /** * Method description * diff --git a/scm-webapp/src/test/java/sonia/scm/ic/AbstractITCaseBase.java b/scm-webapp/src/test/java/sonia/scm/ic/AbstractITCaseBase.java index 944e339005..7069ee563b 100644 --- a/scm-webapp/src/test/java/sonia/scm/ic/AbstractITCaseBase.java +++ b/scm-webapp/src/test/java/sonia/scm/ic/AbstractITCaseBase.java @@ -46,7 +46,6 @@ import static org.junit.Assert.*; import com.sun.jersey.api.client.Client; import com.sun.jersey.api.client.ClientResponse; import com.sun.jersey.api.client.WebResource; -import com.sun.jersey.api.client.config.ClientConfig; import com.sun.jersey.client.apache.ApacheHttpClient; import com.sun.jersey.client.apache.config.ApacheHttpClientConfig; import com.sun.jersey.client.apache.config.DefaultApacheHttpClientConfig; @@ -65,7 +64,10 @@ public class AbstractITCaseBase /** Field description */ public static final String BASE_URL = - "http://localhost:8081/scm-webapp/api/rest/"; + "http://localhost:8080/scm-webapp/api/rest/"; + + /** Field description */ + public static final String EXTENSION = ".xml"; //~--- methods -------------------------------------------------------------- @@ -103,7 +105,7 @@ public class AbstractITCaseBase */ protected Client createClient() { - ClientConfig config = new DefaultApacheHttpClientConfig(); + DefaultApacheHttpClientConfig config = new DefaultApacheHttpClientConfig(); config.getProperties().put(ApacheHttpClientConfig.PROPERTY_HANDLE_COOKIES, true); @@ -122,7 +124,7 @@ public class AbstractITCaseBase */ protected WebResource createResource(Client client, String url) { - return client.resource(BASE_URL.concat(url)); + return client.resource(BASE_URL.concat(url).concat(EXTENSION)); } /** @@ -138,7 +140,7 @@ public class AbstractITCaseBase protected ClientResponse login(Client client, String username, String password) { - WebResource wr = createResource(client, "authentication/login.json"); + WebResource wr = createResource(client, "authentication/login"); MultivaluedMap formData = new MultivaluedMapImpl(); formData.add("username", username); @@ -156,7 +158,7 @@ public class AbstractITCaseBase */ protected void logout(Client client) { - WebResource wr = createResource(client, "authentication/logout.json"); + WebResource wr = createResource(client, "authentication/logout"); ClientResponse response = wr.get(ClientResponse.class); assertNotNull(response); diff --git a/scm-webapp/src/test/java/sonia/scm/ic/UserITCase.java b/scm-webapp/src/test/java/sonia/scm/ic/UserITCase.java index 4e88cfc425..fae6de34ba 100644 --- a/scm-webapp/src/test/java/sonia/scm/ic/UserITCase.java +++ b/scm-webapp/src/test/java/sonia/scm/ic/UserITCase.java @@ -89,7 +89,7 @@ public class UserITCase extends AbstractITCaseBase @Test public void get() { - WebResource wr = createResource(client, "users/scmadmin.json"); + WebResource wr = createResource(client, "users/scmadmin"); ClientResponse respone = wr.get(ClientResponse.class); assertNotNull(respone); @@ -102,11 +102,12 @@ public class UserITCase extends AbstractITCaseBase /** * Method description - * @Test + * */ + @Test public void getAll() { - WebResource wr = createResource(client, "users.json"); + WebResource wr = createResource(client, "users"); ClientResponse respone = wr.get(ClientResponse.class); assertNotNull(respone);