This is an automated email from the ASF dual-hosted git repository. paulk pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/groovy.git
commit 0e07e7faaa1e14397c5f1541fcdee7c2cf83339b Author: Paul King <[email protected]> AuthorDate: Mon Aug 4 13:28:52 2025 +1000 GROOVY-8162: Update Groovysh to JLine3 (retain ordering of fragments) --- .../org/apache/groovy/groovysh/jline/GroovyEngine.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/jline/GroovyEngine.java b/subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/jline/GroovyEngine.java index 7aeda02138..c9ce985fc4 100644 --- a/subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/jline/GroovyEngine.java +++ b/subprojects/groovy-groovysh/src/main/groovy/org/apache/groovy/groovysh/jline/GroovyEngine.java @@ -69,9 +69,11 @@ import java.util.EnumSet; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.TreeMap; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; @@ -136,15 +138,15 @@ public class GroovyEngine implements ScriptEngine { "groovy.util.*", "java.math.BigInteger", "java.math.BigDecimal"); - private final Map<String, Class<?>> defaultNameClass = new HashMap<>(); + private final Map<String, Class<?>> defaultNameClass = new TreeMap<>(); private final GroovyShell shell; protected Binding sharedData; private final List<Snippet> snippets = new ArrayList<>(); - private final Map<String, Integer> imports = new HashMap<>(); - private final Map<String, Integer> methods = new HashMap<>(); - private final Map<String, Integer> variables = new HashMap<>(); + private final Map<String, Integer> imports = new LinkedHashMap<>(); + private final Map<String, Integer> methods = new LinkedHashMap<>(); + private final Map<String, Integer> variables = new LinkedHashMap<>(); private final Set<String> methodNames = new HashSet<>(); - private final Map<String, Integer> types = new HashMap<>(); + private final Map<String, Integer> types = new LinkedHashMap<>(); private final Map<String, Class<?>> nameClass; private Cloner objectCloner = new ObjectCloner(); protected final EngineClassLoader classLoader; @@ -170,7 +172,7 @@ public class GroovyEngine implements ScriptEngine { } public Map<String, String> getTypes() { - Map<String, String> out = new HashMap<>(); + Map<String, String> out = new LinkedHashMap<>(); types.forEach((String key, Integer index) -> { Snippet snippet = snippets.get(index); if (snippet.getType() == SnippetType.TYPE) { @@ -181,7 +183,7 @@ public class GroovyEngine implements ScriptEngine { } public Map<String, String> getVariables() { - Map<String, String> out = new HashMap<>(); + Map<String, String> out = new LinkedHashMap<>(); variables.forEach((String key, Integer index) -> { Snippet snippet = snippets.get(index); if (snippet.getType() == SnippetType.VARIABLE) {
