diff --git a/pom.xml b/pom.xml
index e6bd6934..26e21150 100644
--- a/pom.xml
+++ b/pom.xml
@@ -32,7 +32,7 @@
11
${java.version}
${java.version}
- 7.1.1
+ 8.2.0
3.11.0
3.0.0
diff --git a/src/main/java/io/cryostat/core/reports/InterruptibleReportGenerator.java b/src/main/java/io/cryostat/core/reports/InterruptibleReportGenerator.java
index 8c43cfd0..ff240a58 100644
--- a/src/main/java/io/cryostat/core/reports/InterruptibleReportGenerator.java
+++ b/src/main/java/io/cryostat/core/reports/InterruptibleReportGenerator.java
@@ -45,9 +45,12 @@
import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Map.Entry;
import java.util.Objects;
+import java.util.Queue;
import java.util.Set;
-import java.util.concurrent.Callable;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -58,17 +61,25 @@
import org.openjdk.jmc.common.io.IOToolkit;
import org.openjdk.jmc.common.item.IItemCollection;
+import org.openjdk.jmc.common.unit.IQuantity;
import org.openjdk.jmc.common.util.IPreferenceValueProvider;
import org.openjdk.jmc.common.util.Pair;
import org.openjdk.jmc.common.util.XmlToolkit;
import org.openjdk.jmc.flightrecorder.CouldNotLoadRecordingException;
import org.openjdk.jmc.flightrecorder.JfrLoaderToolkit;
+import org.openjdk.jmc.flightrecorder.rules.DependsOn;
+import org.openjdk.jmc.flightrecorder.rules.IResult;
import org.openjdk.jmc.flightrecorder.rules.IRule;
-import org.openjdk.jmc.flightrecorder.rules.Result;
+import org.openjdk.jmc.flightrecorder.rules.ResultBuilder;
+import org.openjdk.jmc.flightrecorder.rules.ResultProvider;
+import org.openjdk.jmc.flightrecorder.rules.ResultToolkit;
import org.openjdk.jmc.flightrecorder.rules.RuleRegistry;
+import org.openjdk.jmc.flightrecorder.rules.Severity;
+import org.openjdk.jmc.flightrecorder.rules.TypedResult;
import org.openjdk.jmc.flightrecorder.rules.report.html.internal.HtmlResultGroup;
import org.openjdk.jmc.flightrecorder.rules.report.html.internal.HtmlResultProvider;
import org.openjdk.jmc.flightrecorder.rules.report.html.internal.RulesHtmlToolkit;
+import org.openjdk.jmc.flightrecorder.rules.util.RulesToolkit;
import io.cryostat.core.log.Logger;
@@ -78,6 +89,7 @@
import jdk.jfr.Label;
import jdk.jfr.Name;
import org.apache.commons.io.input.CountingInputStream;
+import org.apache.commons.lang3.StringUtils;
import org.jsoup.Jsoup;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -126,9 +138,9 @@ public Future generateReportInterruptibly(
// but calling our cancellable evaluate() method rather than the
// RulesToolkit.evaluateParallel as explained further down.
try {
- Pair, Long> helperPair =
+ Pair, Long> helperPair =
generateResultHelper(recording, predicate);
- Collection results = helperPair.left;
+ Collection results = helperPair.left;
List groups = loadResultGroups();
String html =
@@ -142,12 +154,9 @@ public Future generateReportInterruptibly(
int rulesEvaluated = results.size();
int rulesApplicable =
results.stream()
- .filter(
- result ->
- result.getScore() != Result.NOT_APPLICABLE)
+ .filter(result -> result.getSeverity() != Severity.NA)
.collect(Collectors.toList())
.size();
-
return new ReportResult(
html,
new ReportStats(
@@ -177,17 +186,24 @@ public Future