Skip to content

Commit 28c9cfe

Browse files
committed
fix: Cannot build quick perf from sources
- Replace missing flight recorder dependency with 8.0.1 - Remove unused Maven repository - Update minimum JDK version to 1.8 for JVM module - Fix code that broke because of the updates - Update CI pipeline to use updated versions Resolves #220 Signed-off-by: Esta Nagy <nagyesta@gmail.com>
1 parent dbf5f71 commit 28c9cfe

File tree

12 files changed

+60
-46
lines changed

12 files changed

+60
-46
lines changed

.github/workflows/CI.yml

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,14 @@ jobs:
1313
REPO_SLUG: ${{ github.repository }}
1414
BRANCH: ${{ github.head_ref }}
1515
steps:
16-
- uses: actions/checkout@v2
16+
- uses: actions/checkout@v4
1717
- name: Set up JDK ${{ matrix.java }}
18-
uses: actions/setup-java@v1
18+
uses: actions/setup-java@v4
1919
with:
2020
java-version: ${{ matrix.java }}
21+
distribution: temurin
2122
- name: Cache Maven dependencies
22-
uses: actions/cache@v2
23+
uses: actions/cache@v4
2324
with:
2425
path: ~/.m2
2526
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
@@ -37,13 +38,14 @@ jobs:
3738
REPO_SLUG: ${{ github.repository }}
3839
BRANCH: ${{ github.head_ref }}
3940
steps:
40-
- uses: actions/checkout@v2
41+
- uses: actions/checkout@v4
4142
- name: Set up JDK ${{ matrix.java }}
42-
uses: actions/setup-java@v1
43+
uses: actions/setup-java@v4
4344
with:
4445
java-version: ${{ matrix.java }}
46+
distribution: temurin
4547
- name: Cache Maven dependencies
46-
uses: actions/cache@v2
48+
uses: actions/cache@v4
4749
with:
4850
path: ~/.m2
4951
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
@@ -61,13 +63,14 @@ jobs:
6163
REPO_SLUG: ${{ github.repository }}
6264
BRANCH: ${{ github.head_ref }}
6365
steps:
64-
- uses: actions/checkout@v2
66+
- uses: actions/checkout@v4
6567
- name: Set up JDK ${{ matrix.java }}
66-
uses: actions/setup-java@v1
68+
uses: actions/setup-java@v4
6769
with:
6870
java-version: ${{ matrix.java }}
71+
distribution: temurin
6972
- name: Cache Maven dependencies
70-
uses: actions/cache@v2
73+
uses: actions/cache@v4
7174
with:
7275
path: ~/.m2
7376
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
@@ -85,13 +88,14 @@ jobs:
8588
REPO_SLUG: ${{ github.repository }}
8689
BRANCH: ${{ github.head_ref }}
8790
steps:
88-
- uses: actions/checkout@v2
91+
- uses: actions/checkout@v4
8992
- name: Set up JDK ${{ matrix.java }}
90-
uses: actions/setup-java@v1
93+
uses: actions/setup-java@v4
9194
with:
9295
java-version: ${{ matrix.java }}
96+
distribution: temurin
9397
- name: Cache Maven dependencies
94-
uses: actions/cache@v2
98+
uses: actions/cache@v4
9599
with:
96100
path: ~/.m2
97101
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}

junit4/junit4-12-jvm-test/pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@
2121
<artifactId>quick-perf-junit4-12-jvm-test</artifactId>
2222

2323
<properties>
24-
<maven.compiler.source>1.7</maven.compiler.source>
25-
<maven.compiler.target>1.7</maven.compiler.target>
26-
<dependencies.max.jdk.version>1.7</dependencies.max.jdk.version>
24+
<maven.compiler.source>1.8</maven.compiler.source>
25+
<maven.compiler.target>1.8</maven.compiler.target>
26+
<dependencies.max.jdk.version>1.8</dependencies.max.jdk.version>
2727
<jar.skipIfEmpty>true</jar.skipIfEmpty>
2828
<gpg.skip>true</gpg.skip>
2929
<skipNexusStagingDeployMojo>true</skipNexusStagingDeployMojo>

junit5/junit5-jvm-test/pom.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@
2121
<artifactId>quick-perf-junit5-jvm-test</artifactId>
2222

2323
<properties>
24+
<maven.compiler.source>1.8</maven.compiler.source>
25+
<maven.compiler.target>1.8</maven.compiler.target>
26+
<dependencies.max.jdk.version>1.8</dependencies.max.jdk.version>
2427
<jar.skipIfEmpty>true</jar.skipIfEmpty>
2528
<maven.install.skip>true</maven.install.skip>
2629
<maven.deploy.skip>true</maven.deploy.skip>

junit5/junit5-test-util/pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
<maven.deploy.skip>true</maven.deploy.skip>
2525
<gpg.skip>true</gpg.skip>
2626
<skipNexusStagingDeployMojo>true</skipNexusStagingDeployMojo>
27+
<allowIncompleteProjects>true</allowIncompleteProjects>
2728
</properties>
2829

2930
<build>

jvm/jfr-annotations/pom.xml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@
2222
<artifactId>quick-perf-jfr-annotations</artifactId>
2323

2424
<properties>
25+
<maven.compiler.source>1.8</maven.compiler.source>
26+
<maven.compiler.target>1.8</maven.compiler.target>
27+
<dependencies.max.jdk.version>1.8</dependencies.max.jdk.version>
2528
<javadoc-subpackages>org.quickperf.jvm.jfr.annotation</javadoc-subpackages>
2629
</properties>
2730

@@ -39,7 +42,7 @@
3942
<dependency>
4043
<groupId>org.openjdk.jmc</groupId>
4144
<artifactId>flightrecorder.rules.jdk</artifactId>
42-
<version>7.1.1</version>
45+
<version>8.0.1</version>
4346
</dependency>
4447
<dependency>
4548
<groupId>org.jsoup</groupId>

jvm/jfr-annotations/src/main/java/org/quickperf/jvm/jmcrule/JmcRuleCountMeasureExtractor.java

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@
1414

1515
import org.openjdk.jmc.common.item.IItemCollection;
1616
import org.openjdk.jmc.common.util.IPreferenceValueProvider;
17+
import org.openjdk.jmc.flightrecorder.rules.IResult;
1718
import org.openjdk.jmc.flightrecorder.rules.IRule;
18-
import org.openjdk.jmc.flightrecorder.rules.Result;
19+
import org.openjdk.jmc.flightrecorder.rules.ResultProvider;
1920
import org.openjdk.jmc.flightrecorder.rules.RuleRegistry;
20-
import org.openjdk.jmc.flightrecorder.rules.Severity;
2121
import org.quickperf.ExtractablePerformanceMeasure;
2222
import org.quickperf.jvm.jfr.JfrRecording;
2323
import org.quickperf.unit.Count;
@@ -33,26 +33,28 @@ public class JmcRuleCountMeasureExtractor implements ExtractablePerformanceMeasu
3333

3434
public static final JmcRuleCountMeasureExtractor INSTANCE = new JmcRuleCountMeasureExtractor();
3535

36-
private JmcRuleCountMeasureExtractor() {}
36+
private JmcRuleCountMeasureExtractor() {
37+
}
3738

3839
@Override
3940
public JmcRulesMeasure extractPerfMeasureFrom(JfrRecording jfrRecording) {
4041

4142
IItemCollection jfrEvents = jfrRecording.getJfrEvents();
42-
List<Result> ruleEvaluations = evaluateJmcRules(jfrEvents);
43+
List<IResult> ruleEvaluations = evaluateJmcRules(jfrEvents);
4344

4445
List<Count> jmcRules = buildJmcRuleCountsFrom(ruleEvaluations);
4546

4647
return new JmcRulesMeasure(jmcRules);
4748

4849
}
4950

50-
private List<Result> evaluateJmcRules(IItemCollection jfrEvents) {
51-
List<Result> ruleEvaluations = new ArrayList<>();
51+
private List<IResult> evaluateJmcRules(IItemCollection jfrEvents) {
52+
List<IResult> ruleEvaluations = new ArrayList<>();
5253
for (IRule rule : RuleRegistry.getRules()) {
53-
RunnableFuture<Result> future = rule.evaluate(jfrEvents, IPreferenceValueProvider.DEFAULT_VALUES);
54+
RunnableFuture<IResult> future = rule.createEvaluation(jfrEvents,
55+
IPreferenceValueProvider.DEFAULT_VALUES, new ResultProvider());
5456
future.run();
55-
Result result;
57+
IResult result;
5658
try {
5759
result = future.get();
5860
} catch (InterruptedException | ExecutionException e) {
@@ -63,11 +65,11 @@ private List<Result> evaluateJmcRules(IItemCollection jfrEvents) {
6365
return ruleEvaluations;
6466
}
6567

66-
private List<Count> buildJmcRuleCountsFrom(List<Result> ruleEvaluations) {
68+
private List<Count> buildJmcRuleCountsFrom(List<IResult> ruleEvaluations) {
6769
List<Count> jmcRules = new ArrayList<>();
68-
for (Result ruleEvaluation : ruleEvaluations) {
70+
for (IResult ruleEvaluation : ruleEvaluations) {
6971
Count ruleScore = buildJmcRuleCountFrom(ruleEvaluation);
70-
if(!ruleToExclude(ruleScore)) {
72+
if (!ruleToExclude(ruleScore)) {
7173
jmcRules.add(ruleScore);
7274
}
7375
}
@@ -76,26 +78,26 @@ private List<Count> buildJmcRuleCountsFrom(List<Result> ruleEvaluations) {
7678

7779
private boolean ruleToExclude(Count ruleScore) {
7880
String ruleDescription = ruleScore.getComment();
79-
return ruleDescription.contains("Rule: TLAB Allocation Ratio")
80-
|| ruleDescription.contains("Rule: Competing Processes")
81-
|| ruleDescription.contains("Rule: Command Line Options Check")
82-
|| ruleDescription.contains("Rule: Metaspace Live Set Trend");
81+
return ruleDescription.contains("Rule: TLAB Allocation Ratio")
82+
|| ruleDescription.contains("Rule: Competing Processes")
83+
|| ruleDescription.contains("Rule: Command Line Options Check")
84+
|| ruleDescription.contains("Rule: Metaspace Live Set Trend");
8385
}
8486

85-
private Count buildJmcRuleCountFrom(Result result) {
87+
private Count buildJmcRuleCountFrom(IResult result) {
8688
StringWriter stringWriter = new StringWriter();
8789

8890
PrintWriter printWriter = new PrintWriter(stringWriter);
8991
printWriter.println("Rule: " + result.getRule().getName());
90-
printWriter.println("Severity: " + Severity.get(result.getScore()));
91-
long score = (long) result.getScore();
92+
printWriter.println("Severity: " + result.getSeverity());
93+
long score = (long) result.getSeverity().getLimit();
9294
printWriter.println("Score: " + score);
93-
String longDescriptionAsHtml = result.getLongDescription();
95+
String longDescriptionAsHtml = result.getExplanation();
9496
String textDesc = HtmlToPlainTextTransformer.INSTANCE.convertHtmlToPlainText(longDescriptionAsHtml);
9597
printWriter.println("Message: " + textDesc);
9698

9799
String description = stringWriter.toString();
98100
return new Count(score, description);
99101
}
100102

101-
}
103+
}

pom.xml

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
<commons-dbcp.version>1.4</commons-dbcp.version>
5050
<maven-jar-plugin.version>3.2.0</maven-jar-plugin.version>
5151
<maven-surefire-plugin.version>2.22.2</maven-surefire-plugin.version>
52+
<maven-enforcer-plugin.version>3.5.0</maven-enforcer-plugin.version>
5253
<logback-classic.version>1.1.0</logback-classic.version>
5354
<jcl-over-slf4j.version>1.7.25</jcl-over-slf4j.version>
5455
<javadoc-subpackages />
@@ -112,8 +113,9 @@
112113
</configuration>
113114
</plugin>
114115
<plugin>
116+
<groupId>org.apache.maven.plugins</groupId>
115117
<artifactId>maven-enforcer-plugin</artifactId>
116-
<version>1.4.1</version>
118+
<version>${maven-enforcer-plugin.version}</version>
117119
<executions>
118120
<execution>
119121
<id>enforce-bytecode-version</id>
@@ -138,7 +140,7 @@
138140
<dependency>
139141
<groupId>org.codehaus.mojo</groupId>
140142
<artifactId>extra-enforcer-rules</artifactId>
141-
<version>1.2</version>
143+
<version>1.9.0</version>
142144
</dependency>
143145
</dependencies>
144146
</plugin>
@@ -292,14 +294,6 @@
292294
<enabled>false</enabled>
293295
</snapshots>
294296
</repository>
295-
<repository>
296-
<id>AdoptOpenJDK</id>
297-
<name>AdoptOpenJDK</name>
298-
<url>https://adoptopenjdk.jfrog.io/adoptopenjdk/jmc-libs</url>
299-
<snapshots>
300-
<enabled>false</enabled>
301-
</snapshots>
302-
</repository>
303297
</repositories>
304298

305299
<developers>

spring/junit4-spring-base-tests/pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
<maven.deploy.skip>true</maven.deploy.skip>
2727
<gpg.skip>true</gpg.skip>
2828
<skipNexusStagingDeployMojo>true</skipNexusStagingDeployMojo>
29+
<allowIncompleteProjects>true</allowIncompleteProjects>
2930
</properties>
3031

3132
<dependencies>

sql/sql-hibernate-test-util/pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
<maven.deploy.skip>true</maven.deploy.skip>
2727
<gpg.skip>true</gpg.skip>
2828
<skipNexusStagingDeployMojo>true</skipNexusStagingDeployMojo>
29+
<allowIncompleteProjects>true</allowIncompleteProjects>
2930
</properties>
3031

3132
<dependencies>

sql/sql-memory-test-util/pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
<maven.deploy.skip>true</maven.deploy.skip>
2828
<gpg.skip>true</gpg.skip>
2929
<skipNexusStagingDeployMojo>true</skipNexusStagingDeployMojo>
30+
<allowIncompleteProjects>true</allowIncompleteProjects>
3031
</properties>
3132

3233
<dependencies>

0 commit comments

Comments
 (0)