Skip to content

Commit 20d0b66

Browse files
authored
fix(template): correct return of String-encoded Optional (#482)
* build container image in CI, therefore enabling container-only itests * enable test case in CI * fix incorrect return of String-encoded Optional * remove outdated event types * update TargetConnectionManager event types * rename and enable match expression events
1 parent f913208 commit 20d0b66

File tree

5 files changed

+21
-55
lines changed

5 files changed

+21
-55
lines changed

.github/workflows/pr-ci.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ jobs:
156156
- name: Set DOCKER_HOST environment variable
157157
run: echo "DOCKER_HOST=unix:///run/user/$(id -u)/podman/podman.sock" >> "$GITHUB_ENV"
158158
- name: Build application
159-
run: ./mvnw -B -U -Dquarkus.container-image.build=false clean verify
159+
run: ./mvnw -B -U clean verify
160160
continue-on-error: ${{ matrix.java != '17' }}
161161

162162
- name: Add workflow result as comment on PR

src/main/docker/include/cryostat.jfc

Lines changed: 7 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3,58 +3,36 @@
33
see Window -> Flight Recorder Template Manager.
44
-->
55
<configuration version="2.0" label="Cryostat" description="Continuous self-profiling for Cryostat" provider="Cryostat">
6-
<event name="io.cryostat.net.OpenShiftAuthManager.AuthRequest">
7-
<setting name="enabled">
8-
true
9-
</setting>
10-
<setting name="threshold">
11-
0 ms
12-
</setting>
13-
<setting name="stackTrace">
14-
true
15-
</setting>
16-
</event>
17-
<event name="io.cryostat.net.TargetConnectionManager.JMXConnectionOpened">
6+
<event name="io.cryostat.targets.TargetConnectionManager.TargetConnectionOpened">
187
<setting name="enabled">
198
true
209
</setting>
2110
<setting name="threshold">
2211
0 ms
2312
</setting>
2413
</event>
25-
<event name="io.cryostat.net.TargetConnectionManager.JMXConnectionClosed">
14+
<event name="io.cryostat.targets.TargetConnectionManager.TargetConnectionClosed">
2615
<setting name="enabled">
2716
true
2817
</setting>
2918
<setting name="threshold">
3019
0 ms
3120
</setting>
3221
</event>
33-
<event name="io.cyostat.net.web.WebServer.WebServerRequest">
22+
<event name="io.cryostat.expressions.MatchExpressionEvaluator.MatchExpressionApplies">
3423
<setting name="enabled">
3524
true
3625
</setting>
3726
<setting name="threshold">
38-
0 ms
39-
</setting>
40-
<setting name="stackTrace">
41-
true
42-
</setting>
43-
</event>
44-
<event name="io.cyostat.net.web.MessagingServer.WsMessageEmitted">
45-
<setting name="enabled">
46-
true
47-
</setting>
48-
<setting name="threshold">
49-
0 ms
27+
0 ms
5028
</setting>
5129
</event>
52-
<event name="io.cryostat.core.reports.InterruptibleReportGenerator.ReportRuleEvalEvent">
30+
<event name="io.cryostat.expressions.MatchExpressionEvaluator.ScriptCreation">
5331
<setting name="enabled">
54-
true
32+
true
5533
</setting>
5634
<setting name="threshold">
57-
0 ms
35+
0 ms
5836
</setting>
5937
</event>
6038
<event name="jdk.ThreadAllocationStatistics">

src/main/java/io/cryostat/events/TargetTemplateService.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -63,13 +63,9 @@ public List<Template> getTemplates() throws FlightRecorderException {
6363
@Override
6464
public Optional<String> getXml(String templateName, TemplateType unused)
6565
throws FlightRecorderException {
66-
Optional doc =
67-
connectionManager.executeConnectedTask(
68-
target,
69-
conn ->
70-
conn.getTemplateService()
71-
.getXml(templateName, TemplateType.TARGET));
72-
return doc.isPresent() ? Optional.of(doc.toString()) : Optional.empty();
66+
return connectionManager.executeConnectedTask(
67+
target,
68+
conn -> conn.getTemplateService().getXml(templateName, TemplateType.TARGET));
7369
}
7470

7571
@Override

src/main/java/io/cryostat/expressions/MatchExpressionEvaluator.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ void onMessage(ExpressionEvent event) {
7474
}
7575

7676
Script createScript(String matchExpression) throws ScriptCreateException {
77-
ScriptCreationEvent evt = new ScriptCreationEvent();
77+
ScriptCreation evt = new ScriptCreation();
7878
try {
7979
evt.begin();
8080
return scriptHost
@@ -113,7 +113,7 @@ void invalidate(String matchExpression) {
113113
}
114114

115115
public boolean applies(MatchExpression matchExpression, Target target) throws ScriptException {
116-
MatchExpressionAppliesEvent evt = new MatchExpressionAppliesEvent(matchExpression);
116+
MatchExpressionApplies evt = new MatchExpressionApplies(matchExpression);
117117
try {
118118
evt.begin();
119119
return load(matchExpression.script, target);
@@ -147,27 +147,27 @@ public List<Target> getMatchedTargets(MatchExpression matchExpression) {
147147
}
148148
}
149149

150-
@Name("io.cryostat.rules.MatchExpressionEvaluator.MatchExpressionAppliesEvent")
150+
@Name("io.cryostat.rules.MatchExpressionEvaluator.MatchExpressionApplies")
151151
@Label("Match Expression Evaluation")
152152
@Category("Cryostat")
153153
@SuppressFBWarnings(value = {"EI_EXPOSE_REP", "URF_UNREAD_FIELD"})
154-
public static class MatchExpressionAppliesEvent extends Event {
154+
public static class MatchExpressionApplies extends Event {
155155

156156
String matchExpression;
157157

158-
MatchExpressionAppliesEvent(MatchExpression matchExpression) {
158+
MatchExpressionApplies(MatchExpression matchExpression) {
159159
this.matchExpression = matchExpression.script;
160160
}
161161
}
162162

163-
@Name("io.cryostat.rules.MatchExpressionEvaluator.ScriptCreationEvent")
163+
@Name("io.cryostat.rules.MatchExpressionEvaluator.ScriptCreation")
164164
@Label("Match Expression Script Creation")
165165
@Category("Cryostat")
166166
// @SuppressFBWarnings(
167167
// value = "URF_UNREAD_FIELD",
168168
// justification = "The event fields are recorded with JFR instead of accessed
169169
// directly")
170-
public static class ScriptCreationEvent extends Event {}
170+
public static class ScriptCreation extends Event {}
171171

172172
/**
173173
* Restricted view of a {@link io.cryostat.targets.Target} with only particular

src/test/java/itest/CryostatTemplateIT.java

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,30 +28,22 @@
2828
import org.hamcrest.MatcherAssert;
2929
import org.hamcrest.Matchers;
3030
import org.junit.jupiter.api.Assertions;
31-
import org.junit.jupiter.api.BeforeEach;
3231
import org.junit.jupiter.api.Test;
33-
import org.junit.jupiter.api.condition.DisabledIfEnvironmentVariable;
3432

35-
@DisabledIfEnvironmentVariable(named = "CI", matches = "true")
3633
@QuarkusIntegrationTest
3734
public class CryostatTemplateIT extends StandardSelfTest {
3835

39-
File file;
40-
41-
@BeforeEach
42-
void setup() throws Exception {
36+
@Test
37+
public void shouldHaveCryostatTemplate() throws Exception {
4338
String url =
4439
String.format(
4540
"/api/v1/targets/%s/templates/Cryostat/type/TARGET",
4641
getSelfReferenceConnectUrlEncoded());
47-
file =
42+
File file =
4843
downloadFile(url, "cryostat", ".jfc")
4944
.get(REQUEST_TIMEOUT_SECONDS, TimeUnit.SECONDS)
5045
.toFile();
51-
}
5246

53-
@Test
54-
public void shouldHaveCryostatTemplate() throws Exception {
5547
XMLModel model = EventConfiguration.createModel(file);
5648
model.checkErrors();
5749

0 commit comments

Comments
 (0)