From f1a3f8885cdd90eac8a6e0003217bf5fde70e9f1 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Mon, 27 Dec 2010 17:41:58 +0100 Subject: [PATCH] use collection instead of arrays --- .../main/java/sonia/scm/ScmServletModule.java | 3 +-- .../scm/api/rest/JsonJaxbContextResolver.java | 11 +++++------ .../api/rest/resources/AbstractResource.java | 5 +++-- .../api/rest/resources/RepositoryResource.java | 6 ++---- .../scm/api/rest/resources/UserResource.java | 17 ++++------------- .../main/webapp/resources/js/sonia.plugin.js | 1 - .../webapp/resources/js/sonia.repository.js | 1 - .../src/main/webapp/resources/js/sonia.user.js | 1 - 8 files changed, 15 insertions(+), 30 deletions(-) diff --git a/scm-webapp/src/main/java/sonia/scm/ScmServletModule.java b/scm-webapp/src/main/java/sonia/scm/ScmServletModule.java index 025a7f47ee..9d79ad3b07 100644 --- a/scm-webapp/src/main/java/sonia/scm/ScmServletModule.java +++ b/scm-webapp/src/main/java/sonia/scm/ScmServletModule.java @@ -204,8 +204,7 @@ public class ScmServletModule extends ServletModule * params.put("com.sun.jersey.config.feature.Trace", "true"); * params.put("com.sun.jersey.config.feature.TracePerRequest", "true"); */ - params.put(JSONConfiguration.FEATURE_POJO_MAPPING, - Boolean.TRUE.toString()); + params.put(JSONConfiguration.FEATURE_POJO_MAPPING, Boolean.TRUE.toString()); params.put(ResourceConfig.FEATURE_REDIRECT, Boolean.TRUE.toString()); params.put(ServletContainer.RESOURCE_CONFIG_CLASS, UriExtensionsConfig.class.getName()); diff --git a/scm-webapp/src/main/java/sonia/scm/api/rest/JsonJaxbContextResolver.java b/scm-webapp/src/main/java/sonia/scm/api/rest/JsonJaxbContextResolver.java index 94166a553f..f5b3d554a6 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/rest/JsonJaxbContextResolver.java +++ b/scm-webapp/src/main/java/sonia/scm/api/rest/JsonJaxbContextResolver.java @@ -71,12 +71,11 @@ public class JsonJaxbContextResolver implements ContextResolver */ public JsonJaxbContextResolver() throws Exception { - this.context = new JSONJAXBContext( - JSONConfiguration.mapped().rootUnwrapping(true).arrays( - "member", "groups", "permissions", "repositories", "repositoryTypes", - "users", "plugin-information").nonStrings( - "readable", "writeable", "groupPermission", - "admin").build(), types.toArray(new Class[0])); + this.context = + new JSONJAXBContext(JSONConfiguration.mapped().arrays("member", "groups", + "permissions", "repositories", "repositoryTypes", "users", + "plugin-information").nonStrings("readable", "writeable", + "groupPermission", "admin").build(), types.toArray(new Class[0])); } //~--- get methods ---------------------------------------------------------- diff --git a/scm-webapp/src/main/java/sonia/scm/api/rest/resources/AbstractResource.java b/scm-webapp/src/main/java/sonia/scm/api/rest/resources/AbstractResource.java index ea50897f30..4375198c30 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/rest/resources/AbstractResource.java +++ b/scm-webapp/src/main/java/sonia/scm/api/rest/resources/AbstractResource.java @@ -35,6 +35,7 @@ package sonia.scm.api.rest.resources; //~--- JDK imports ------------------------------------------------------------ +import java.util.Collection; import javax.ws.rs.Consumes; import javax.ws.rs.DELETE; import javax.ws.rs.GET; @@ -97,7 +98,7 @@ public abstract class AbstractResource * * @return */ - protected abstract T[] getAllItems(); + protected abstract Collection getAllItems(); /** * Method description @@ -248,7 +249,7 @@ public abstract class AbstractResource */ @GET @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) - public T[] getAll() + public Collection getAll() { return getAllItems(); } 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 c55e11f5cb..10f2356df8 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 @@ -144,11 +144,9 @@ public class RepositoryResource extends AbstractResource * @return */ @Override - protected Repository[] getAllItems() + protected Collection getAllItems() { - Collection repositoryCollection = repositoryManager.getAll(); - Repository[] repositories = - repositoryCollection.toArray(new Repository[repositoryCollection.size()]); + Collection repositories = repositoryManager.getAll(); for (Repository repository : repositories) { 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 96306d7582..dd7dfb575d 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 @@ -149,24 +149,15 @@ public class UserResource extends AbstractResource * @return */ @Override - protected User[] getAllItems() + protected Collection getAllItems() { - User[] users = null; - Collection userCollection = userManager.getAll(); + Collection users = userManager.getAll(); - if (Util.isNotEmpty(userCollection)) + if (Util.isNotEmpty(users)) { - int size = userCollection.size(); - - users = new User[size]; - - int i = 0; - - for (User u : userCollection) + for (User u : users) { u.setPassword(DUMMY_PASSWORT); - users[i] = u; - i++; } } diff --git a/scm-webapp/src/main/webapp/resources/js/sonia.plugin.js b/scm-webapp/src/main/webapp/resources/js/sonia.plugin.js index fa6b908fc5..84990fa916 100644 --- a/scm-webapp/src/main/webapp/resources/js/sonia.plugin.js +++ b/scm-webapp/src/main/webapp/resources/js/sonia.plugin.js @@ -36,7 +36,6 @@ Sonia.plugin.Store = Ext.extend(Sonia.rest.JsonStore, { constructor: function(config) { var baseConfig = { - root: 'plugin-information', fields: [ 'name', 'author', 'description', 'url', 'version', 'state', 'groupId', 'artifactId' ], sortInfo: { field: 'name' diff --git a/scm-webapp/src/main/webapp/resources/js/sonia.repository.js b/scm-webapp/src/main/webapp/resources/js/sonia.repository.js index a92abe6a17..166e061c00 100644 --- a/scm-webapp/src/main/webapp/resources/js/sonia.repository.js +++ b/scm-webapp/src/main/webapp/resources/js/sonia.repository.js @@ -102,7 +102,6 @@ Sonia.repository.Grid = Ext.extend(Sonia.rest.Grid, { var repositoryStore = new Sonia.rest.JsonStore({ url: restUrl + 'repositories.json', - root: 'repositories', fields: [ 'id', 'name', 'type', 'contact', 'description', 'creationDate', 'url', 'permissions' ], sortInfo: { field: 'name' diff --git a/scm-webapp/src/main/webapp/resources/js/sonia.user.js b/scm-webapp/src/main/webapp/resources/js/sonia.user.js index b32aefdeb7..754b78a1cd 100644 --- a/scm-webapp/src/main/webapp/resources/js/sonia.user.js +++ b/scm-webapp/src/main/webapp/resources/js/sonia.user.js @@ -59,7 +59,6 @@ Sonia.user.Grid = Ext.extend(Sonia.rest.Grid, { var userStore = new Sonia.rest.JsonStore({ url: restUrl + 'users.json', - root: 'users', fields: [ 'name', 'displayName', 'mail', 'admin', 'creationDate', 'lastLogin', 'type'], sortInfo: { field: 'name'