This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag 
org.apache.sling.provisioning.model-1.2.0
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-provisioning-model.git

commit 43429c2a7bdcf626735aa38d4441345e4099f2f7
Author: Carsten Ziegeler <cziege...@apache.org>
AuthorDate: Mon Jun 1 17:43:39 2015 +0000

    SLING-4768 : Sort entries alphabetical in written model
    
    git-svn-id: 
https://svn.apache.org/repos/asf/sling/trunk/tooling/support/provisioning-model@1682959
 13f79535-47bb-0310-9956-ffa450edef68
---
 .../apache/sling/provisioning/model/Artifact.java  |  6 +++---
 .../sling/provisioning/model/Configuration.java    | 25 +++++++++++++++++++++-
 .../apache/sling/provisioning/model/ItemList.java  |  4 +++-
 3 files changed, 30 insertions(+), 5 deletions(-)

diff --git a/src/main/java/org/apache/sling/provisioning/model/Artifact.java 
b/src/main/java/org/apache/sling/provisioning/model/Artifact.java
index 800578d..4478b8f 100644
--- a/src/main/java/org/apache/sling/provisioning/model/Artifact.java
+++ b/src/main/java/org/apache/sling/provisioning/model/Artifact.java
@@ -25,7 +25,7 @@ import java.util.Map;
  * In addition, the classifier and type can be specified as well. If no type 
is specified, "jar" is assumed.
  * An artifact can have any metadata.
  */
-public class Artifact extends Commentable implements Comparable {
+public class Artifact extends Commentable implements Comparable<Artifact> {
 
     /** The required group id. */
     private final String groupId;
@@ -144,10 +144,10 @@ public class Artifact extends Commentable implements 
Comparable {
     }
 
     @Override
-    public int compareTo(Object o) {
+    public int compareTo(final Artifact o) {
         if(o == null) return 1;
         if(!(o instanceof Artifact)) return 1;
-        return toMvnUrl().compareTo(((Artifact)o).toMvnUrl());
+        return toMvnUrl().compareTo(o.toMvnUrl());
     }
 
     /**
diff --git 
a/src/main/java/org/apache/sling/provisioning/model/Configuration.java 
b/src/main/java/org/apache/sling/provisioning/model/Configuration.java
index 5cf98c8..e90ac6b 100644
--- a/src/main/java/org/apache/sling/provisioning/model/Configuration.java
+++ b/src/main/java/org/apache/sling/provisioning/model/Configuration.java
@@ -26,7 +26,7 @@ import java.util.Hashtable;
  * - or a factory pid and an alias (pid)
  * and properties.
  */
-public class Configuration extends Commentable {
+public class Configuration extends Commentable implements 
Comparable<Configuration> {
 
     /** The pid. */
     private final String pid;
@@ -45,6 +45,29 @@ public class Configuration extends Commentable {
         this.factoryPid = (factoryPid != null ? factoryPid.trim() : null);
     }
 
+    private int compareString(final String a, final String b) {
+        if ( a == null ) {
+            if ( b == null ) {
+                return 0;
+            }
+            return -1;
+        }
+        if ( b == null ) {
+            return 1;
+        }
+        return a.compareTo(b);
+    }
+
+    @Override
+    public int compareTo(final Configuration o) {
+        int result = compareString(this.factoryPid, o.factoryPid);
+        if ( result == 0 ) {
+            result = compareString(this.pid, o.pid);
+        }
+        return result;
+    }
+
+
     /**
      * Get the pid.
      * If this is a factory configuration, it returns the alias for the 
configuration
diff --git a/src/main/java/org/apache/sling/provisioning/model/ItemList.java 
b/src/main/java/org/apache/sling/provisioning/model/ItemList.java
index 8aa2a0a..bc7a559 100644
--- a/src/main/java/org/apache/sling/provisioning/model/ItemList.java
+++ b/src/main/java/org/apache/sling/provisioning/model/ItemList.java
@@ -17,13 +17,14 @@
 package org.apache.sling.provisioning.model;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
 
 /**
  * Helper class to hold a list of items.
  */
-public class ItemList<T>
+public class ItemList<T extends Comparable<T>>
     extends Commentable
     implements Iterable<T> {
 
@@ -36,6 +37,7 @@ public class ItemList<T>
      */
     public void add(final T item) {
         this.items.add(item);
+        Collections.sort(this.items);
     }
 
     /**

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <commits@sling.apache.org>.

Reply via email to