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/30 17:48:29 UTC

[karaf] branch master updated: [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 master
in repository https://gitbox.apache.org/repos/asf/karaf.git


The following commit(s) were added to refs/heads/master by this push:
     new 1e49b3e  [KARAF-6298]make SortedProperties working with both JDK8 and JDK11
1e49b3e is described below

commit 1e49b3e00c25eefc1fef04f82d1cd33944f7d498
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
---
 .../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()));
     }
+    
+    
+    
 }