You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by gn...@apache.org on 2017/09/06 11:37:54 UTC
svn commit: r1807470 - in /felix/trunk/gogo/runtime/src:
main/java/org/apache/felix/gogo/runtime/Expander.java
test/java/org/apache/felix/gogo/runtime/ExpanderTest.java
Author: gnodet
Date: Wed Sep 6 11:37:53 2017
New Revision: 1807470
URL: http://svn.apache.org/viewvc?rev=1807470&view=rev
Log:
Fix sorting in some cases
Modified:
felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Expander.java
felix/trunk/gogo/runtime/src/test/java/org/apache/felix/gogo/runtime/ExpanderTest.java
Modified: felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Expander.java
URL: http://svn.apache.org/viewvc/felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Expander.java?rev=1807470&r1=1807469&r2=1807470&view=diff
==============================================================================
--- felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Expander.java (original)
+++ felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Expander.java Wed Sep 6 11:37:53 2017
@@ -32,6 +32,7 @@ import java.util.Collections;
import java.util.Comparator;
import java.util.EnumSet;
import java.util.HashSet;
+import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
@@ -1702,7 +1703,7 @@ public class Expander extends BaseTokeni
val = toCollection.apply(val);
if (val instanceof Collection)
{
- val = new ArrayList<>(new HashSet<>(asCollection(val)));
+ val = new ArrayList<>(new LinkedHashSet<>(asCollection(val)));
}
}
Modified: felix/trunk/gogo/runtime/src/test/java/org/apache/felix/gogo/runtime/ExpanderTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/gogo/runtime/src/test/java/org/apache/felix/gogo/runtime/ExpanderTest.java?rev=1807470&r1=1807469&r2=1807470&view=diff
==============================================================================
--- felix/trunk/gogo/runtime/src/test/java/org/apache/felix/gogo/runtime/ExpanderTest.java (original)
+++ felix/trunk/gogo/runtime/src/test/java/org/apache/felix/gogo/runtime/ExpanderTest.java Wed Sep 6 11:37:53 2017
@@ -24,6 +24,7 @@ import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
+import java.util.Arrays;
import java.util.List;
import static org.junit.Assert.assertEquals;
@@ -59,6 +60,52 @@ public class ExpanderTest {
}
@Test
+ public void testSortingFlags() throws Exception {
+ Evaluate evaluate = new Evaluate() {
+ @Override
+ public Object eval(Token t) throws Exception {
+ return null;
+ }
+ @Override
+ public Object get(String key) {
+ switch (key) {
+ case "a":
+ return Arrays.asList(5, 3, 4, 2, 1, 3);
+ case "b":
+ return Arrays.asList(5, 3, 4, 2, 1, 31);
+ case "c":
+ return Arrays.asList("foo1", "foo02", "foo2", "foo3", "foo20", "foo23");
+ case "d":
+ return Arrays.asList("foo1", "foo02", "Foo2", "Foo3", "foo20", "foo23");
+ }
+ return null;
+ }
+ @Override
+ public Object put(String key, Object value) {
+ return null;
+ }
+ @Override
+ public Object expr(Token t) {
+ return null;
+ }
+ @Override
+ public Path currentDir() {
+ return null;
+ }
+ };
+
+ assertEquals("5 3 4 2 1 3", Expander.expand("${(j: :)a}", evaluate));
+ assertEquals("5 3 4 2 1", Expander.expand("${(j: :)${(u)a}}", evaluate));
+ assertEquals("3 1 2 4 3 5", Expander.expand("${(j: :)${(Oa)a}}", evaluate));
+ assertEquals("1 2 3 31 4 5", Expander.expand("${(j: :)${(i)b}}", evaluate));
+ assertEquals("1 2 3 4 5 31", Expander.expand("${(j: :)${(n)b}}", evaluate));
+ assertEquals("foo1 foo02 foo2 foo3 foo20 foo23", Expander.expand("${(j: :)${(n)c}}", evaluate));
+ assertEquals("foo23 foo20 foo3 foo2 foo02 foo1", Expander.expand("${(j: :)${(On)c}}", evaluate));
+ assertEquals("Foo2 Foo3 foo1 foo02 foo20 foo23", Expander.expand("${(j: :)${(n)d}}", evaluate));
+ assertEquals("foo1 foo02 Foo2 Foo3 foo20 foo23", Expander.expand("${(j: :)${(ni)d}}", evaluate));
+ }
+
+ @Test
public void testGenerateFiles() throws IOException {
final Path testdir = Paths.get(".").toAbsolutePath().resolve("target/testdir").normalize();
Evaluate evaluate = new Evaluate() {