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>.