You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by ff...@apache.org on 2019/05/31 13:52:53 UTC
[karaf] 02/04: [KARAF-6298]make SortedProperties working with both
JDK8 and JDK11
This is an automated email from the ASF dual-hosted git repository.
ffang pushed a commit to branch karaf-4.2.x
in repository https://gitbox.apache.org/repos/asf/karaf.git
commit fb92de7fb4c31fe49430e6da9afa07c73c565249
Author: Freeman Fang <fr...@gmail.com>
AuthorDate: Thu May 30 13:48:18 2019 -0400
[KARAF-6298]make SortedProperties working with both JDK8 and JDK11
(cherry picked from commit 1e49b3e00c25eefc1fef04f82d1cd33944f7d498)
---
.../apache/karaf/tools/utils/SortedProperties.java | 22 +++++++++++++++++++++-
1 file changed, 21 insertions(+), 1 deletion(-)
diff --git a/tooling/utils/src/main/java/org/apache/karaf/tools/utils/SortedProperties.java b/tooling/utils/src/main/java/org/apache/karaf/tools/utils/SortedProperties.java
index d1c171a..6658dc2 100644
--- a/tooling/utils/src/main/java/org/apache/karaf/tools/utils/SortedProperties.java
+++ b/tooling/utils/src/main/java/org/apache/karaf/tools/utils/SortedProperties.java
@@ -17,7 +17,10 @@
package org.apache.karaf.tools.utils;
import java.util.Collections;
+import java.util.Comparator;
import java.util.Enumeration;
+import java.util.Iterator;
+import java.util.LinkedHashSet;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
@@ -37,11 +40,28 @@ public class SortedProperties extends Properties {
@Override
public Set<Map.Entry<Object, Object>> entrySet() {
- return Collections.unmodifiableSet(new TreeSet<>(super.entrySet()));
+ Set<Map.Entry<Object, Object>> origSet = super.entrySet();
+ Set<Map.Entry<Object, Object>> sortedSet = new LinkedHashSet<Map.Entry<Object, Object>>(origSet.size());
+
+ Iterator<Map.Entry<Object, Object>> iterator = origSet.stream().sorted(new Comparator<Map.Entry<Object, Object>>() {
+
+ @Override
+ public int compare(java.util.Map.Entry<Object, Object> o1, java.util.Map.Entry<Object, Object> o2) {
+ return o1.getKey().toString().compareTo(o2.getKey().toString());
+ }
+ }).iterator();
+
+ while (iterator.hasNext())
+ sortedSet.add(iterator.next());
+
+ return sortedSet;
}
@Override
public synchronized Enumeration<Object> keys() {
return Collections.enumeration(new TreeSet<>(super.keySet()));
}
+
+
+
}