diff --git a/scm-webapp/pom.xml b/scm-webapp/pom.xml
index 54451a0502..7fe2a40dd2 100644
--- a/scm-webapp/pom.xml
+++ b/scm-webapp/pom.xml
@@ -106,6 +106,20 @@
google-collections
1.0
+
+
+
+
+ commons-beanutils
+ commons-beanutils
+ 1.8.3
+
+
+
+ commons-collections
+ commons-collections
+ 3.2.1
+
org.freemarker
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 655b817530..474ee4ef31 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
@@ -35,6 +35,8 @@ package sonia.scm.api.rest.resources;
//~--- non-JDK imports --------------------------------------------------------
+import org.apache.commons.beanutils.BeanComparator;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -48,6 +50,7 @@ import sonia.scm.util.Util;
//~--- JDK imports ------------------------------------------------------------
import java.util.Collection;
+import java.util.Comparator;
import java.util.Date;
import javax.ws.rs.Consumes;
@@ -484,6 +487,31 @@ public abstract class AbstractManagerResource createComparator(String sortby, boolean desc)
+ {
+ Comparator comparator = null;
+
+ if (desc)
+ {
+ comparator = new BeanReverseComparator(sortby);
+ }
+ else
+ {
+ comparator = new BeanComparator(sortby);
+ }
+
+ return comparator;
+ }
+
/**
* Method description
*
@@ -505,13 +533,20 @@ public abstract class AbstractManagerResource 0)
{
+ if (Util.isEmpty(sortby))
+ {
- // TODO create comparator
- items = manager.getAll(start, limit);
+ // replace with somethind useful
+ sortby = "id";
+ }
+
+ items = manager.getAll(createComparator(sortby, desc), start, limit);
}
else
{
items = manager.getAll();
+
+ // TODO sort result if sortby is not empty
}
return items;
@@ -540,6 +575,53 @@ public abstract class AbstractManagerResource