From 4aad0c2cce9c007cd7dffa194b903c3cd4a4699a Mon Sep 17 00:00:00 2001 From: Matthew Kienow Date: Fri, 29 Oct 2021 00:54:30 -0400 Subject: [PATCH 1/2] Maintain insertion order with LinkedHashMap / Set This makes it easier to compare output against the Ruby implementation. --- recog/src/main/java/com/rapid7/recog/RecogMatcher.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/recog/src/main/java/com/rapid7/recog/RecogMatcher.java b/recog/src/main/java/com/rapid7/recog/RecogMatcher.java index a7cf372..442a81d 100644 --- a/recog/src/main/java/com/rapid7/recog/RecogMatcher.java +++ b/recog/src/main/java/com/rapid7/recog/RecogMatcher.java @@ -6,6 +6,8 @@ import java.io.Serializable; import java.util.HashMap; import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; import java.util.Map; import java.util.Map.Entry; import java.util.Objects; @@ -114,9 +116,9 @@ public RecogMatcher(Pattern pattern) { public RecogMatcher(RecogPatternMatcher matcher) { this.matcher = matcher; values = new HashMap<>(); - positionalParameters = new HashMap<>(); + positionalParameters = new LinkedHashMap<>(); namedParameters = new HashSet<>(); - examples = new HashSet<>(); + examples = new LinkedHashSet<>(); } /** @@ -259,7 +261,7 @@ public void verifyExamples(BiConsumer consumer) { } private void verifyExamplesHaveCaptureGroups(BiConsumer consumer) { - Map captureGroupUsed = new HashMap<>(); + Map captureGroupUsed = new LinkedHashMap<>(); // get a list of parameters that are defined by capture groups for (Entry parameter : positionalParameters.entrySet()) { if (parameter.getValue() > 0 && !parameter.getKey().isEmpty()) { From 694a7c01816b37c1e95bdadd6e332272786952df Mon Sep 17 00:00:00 2001 From: Matthew Kienow Date: Fri, 29 Oct 2021 00:57:30 -0400 Subject: [PATCH 2/2] Cleanup description whitespace --- recog/src/main/java/com/rapid7/recog/parser/RecogParser.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recog/src/main/java/com/rapid7/recog/parser/RecogParser.java b/recog/src/main/java/com/rapid7/recog/parser/RecogParser.java index 299daf4..4ff8057 100644 --- a/recog/src/main/java/com/rapid7/recog/parser/RecogParser.java +++ b/recog/src/main/java/com/rapid7/recog/parser/RecogParser.java @@ -171,7 +171,7 @@ public RecogMatchers parse(Reader reader, String path, String name) // description (optional) NodeList description = fingerprint.getElementsByTagName("description"); if (description.getLength() > 0) - fingerprintPattern.setDescription(description.item(0).getTextContent()); + fingerprintPattern.setDescription(description.item(0).getTextContent().replaceAll("\\s+", " ").trim()); // example (optional) NodeList examples = fingerprint.getElementsByTagName("example");