diff --git a/java/pom.xml b/java/pom.xml
index 0e06093..ee8aab8 100644
--- a/java/pom.xml
+++ b/java/pom.xml
@@ -64,7 +64,7 @@
io.cucumber
query
- [14.0.1,15.0.0)
+ [14.7.1-SNAPSHOT,15.0.0)
diff --git a/java/src/main/java/io/cucumber/jsonformatter/JsonReportWriter.java b/java/src/main/java/io/cucumber/jsonformatter/JsonReportWriter.java
index 76ae6e6..200d249 100644
--- a/java/src/main/java/io/cucumber/jsonformatter/JsonReportWriter.java
+++ b/java/src/main/java/io/cucumber/jsonformatter/JsonReportWriter.java
@@ -34,8 +34,6 @@
import io.cucumber.messages.types.PickleTable;
import io.cucumber.messages.types.PickleTableCell;
import io.cucumber.messages.types.PickleTag;
-import io.cucumber.messages.types.Rule;
-import io.cucumber.messages.types.RuleChild;
import io.cucumber.messages.types.Scenario;
import io.cucumber.messages.types.SourceReference;
import io.cucumber.messages.types.Step;
@@ -71,7 +69,6 @@
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collector;
-import java.util.stream.Stream;
import static io.cucumber.jsonformatter.IdNamingVisitor.formatId;
import static java.nio.charset.StandardCharsets.UTF_8;
@@ -247,7 +244,7 @@ private List createJvmElement(JvmElementData data) {
// Ensure scenarios without steps are also included
.orElseGet(Collections::emptyList);
JvmElement testCase = createTestCase(data, scenarioTestStepsFinished);
-
+
List elements = new ArrayList<>(2);
background.ifPresent(elements::add);
elements.add(testCase);
@@ -255,9 +252,9 @@ private List createJvmElement(JvmElementData data) {
}
private Map, List> findStepsByBackGround(JvmElementData data) {
- List backgrounds = data.lineage.feature()
- .map(this::findBackgroundsBy)
- .orElseGet(Collections::emptyList);
+ List backgrounds = new ArrayList<>(2);
+ data.lineage.background().ifPresent(backgrounds::add);
+ data.lineage.ruleBackground().ifPresent(backgrounds::add);
Map, List> stepsByBackground = query
.findTestStepFinishedAndTestStepBy(data.testCaseStarted)
@@ -524,26 +521,6 @@ private String createLocation(TestStep step) {
return groupingBy(grouping, LinkedHashMap::new, collectingAndThen(toList(), extractKey));
}
- private List findBackgroundsBy(Feature feature) {
- return feature.getChildren()
- .stream()
- .map(featureChild -> {
- List backgrounds = new ArrayList<>();
- featureChild.getBackground().ifPresent(backgrounds::add);
- featureChild.getRule()
- .map(Rule::getChildren)
- .map(Collection::stream)
- .orElseGet(Stream::empty)
- .map(RuleChild::getBackground)
- .filter(Optional::isPresent)
- .map(Optional::get)
- .forEach(backgrounds::add);
- return backgrounds;
- })
- .flatMap(Collection::stream)
- .collect(toList());
- }
-
private Optional findBackgroundBy(List backgrounds, PickleStep pickleStep) {
return backgrounds.stream()
.filter(background -> background.getSteps().stream()