Skip to content

Message based json formatter #2888

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 47 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
8cb50c2
WIP
mpkorstanje Apr 18, 2024
d8ea3b4
WIP
mpkorstanje Apr 18, 2024
799cea7
WIP
mpkorstanje Apr 18, 2024
209fc9f
WIP
mpkorstanje Apr 18, 2024
73e0763
Some greens
mpkorstanje Apr 19, 2024
eeaa600
Some greens
mpkorstanje Apr 19, 2024
352549c
Some greens
mpkorstanje Apr 19, 2024
e9c9e9b
Some greens
mpkorstanje Apr 20, 2024
d4d14f1
Merge remote-tracking branch 'origin/main' into message-based-json-fo…
mpkorstanje May 24, 2024
d93b0a0
WIP
mpkorstanje May 24, 2024
3fc0f97
Merge remote-tracking branch 'origin/main' into message-based-json-fo…
mpkorstanje Jul 5, 2025
89d2775
Fixup
mpkorstanje Jul 5, 2025
c374460
Fix a few tests
mpkorstanje Jul 5, 2025
5eb1e2e
WIP
mpkorstanje Jul 7, 2025
e200a2a
Merge remote-tracking branch 'origin/main' into message-based-json-fo…
mpkorstanje Jul 13, 2025
f573701
Fixed hooks
mpkorstanje Jul 13, 2025
465f9d6
Add methods
mpkorstanje Jul 13, 2025
3fbce35
Spotless
mpkorstanje Jul 13, 2025
bb6c6fc
Fix ordering
mpkorstanje Jul 13, 2025
280622e
Fix methods
mpkorstanje Jul 13, 2025
67ecaee
Spotless
mpkorstanje Jul 13, 2025
d30c519
Fix missing rule id segment in json formatter implementation
mpkorstanje Jul 13, 2025
c04fc95
Improve performance
mpkorstanje Jul 13, 2025
fb87cf1
Simplify hooks
mpkorstanje Jul 15, 2025
c8a525b
Simplify
mpkorstanje Jul 15, 2025
3abb8b3
Simplify
mpkorstanje Jul 15, 2025
72af87d
Extract formatters
mpkorstanje Jul 15, 2025
e96fad1
Order and formatting
mpkorstanje Jul 15, 2025
431fe2d
Resolve nulls
mpkorstanje Jul 15, 2025
f89a084
Resolve nulls
mpkorstanje Jul 15, 2025
5fe806e
Resolve nulls
mpkorstanje Jul 15, 2025
90bc96f
Extract inners
mpkorstanje Jul 15, 2025
b504efd
Touch ups
mpkorstanje Jul 15, 2025
2e1fc68
Remove old
mpkorstanje Jul 15, 2025
9aa6c3c
Merge remote-tracking branch 'origin/main' into message-based-json-fo…
mpkorstanje Jul 15, 2025
d41694f
Clean up
mpkorstanje Jul 15, 2025
80d4205
Clean up
mpkorstanje Jul 15, 2025
4b3f081
Use comparators from messages
mpkorstanje Jul 21, 2025
eeb93a5
Extract to library
mpkorstanje Jul 21, 2025
16278fb
Source locations are formatted with a .
mpkorstanje Jul 21, 2025
79802af
Merge remote-tracking branch 'origin/main' into message-based-json-fo…
mpkorstanje Jul 24, 2025
f7ba8d1
Fix
mpkorstanje Jul 24, 2025
32ee4f6
Remove now redundant tests
mpkorstanje Jul 24, 2025
98f42d5
Update CHANGELOG
mpkorstanje Jul 24, 2025
3b4b215
Suppress Revapi findings
mpkorstanje Jul 24, 2025
4cc7e8b
Remove unused class
mpkorstanje Jul 28, 2025
053e9f4
Merge remote-tracking branch 'origin/main' into message-based-json-fo…
mpkorstanje Jul 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 5 additions & 15 deletions .revapi/api-changes.json
Original file line number Diff line number Diff line change
Expand Up @@ -71,22 +71,12 @@
],
"internal": [
{
"extension": "revapi.differences",
"id": "internal-api-issues",
"ignore": true,
"configuration": {
"differences": [
{
"ignore": true,
"code": "java.method.visibilityIncreased",
"old": "method io.cucumber.core.eventbus.UuidGenerator io.cucumber.core.runtime.UuidGeneratorServiceLoader::loadUuidGenerator()",
"new": "method io.cucumber.core.eventbus.UuidGenerator io.cucumber.core.runtime.UuidGeneratorServiceLoader::loadUuidGenerator()",
"oldVisibility": "package",
"newVisibility": "public",
"justification": "Expose internal API to other internal components"
}
]
}
"code": "java.class.nowImplementsInterface",
"old": "class io.cucumber.core.plugin.JsonFormatter",
"new": "class io.cucumber.core.plugin.JsonFormatter",
"interface": "io.cucumber.plugin.ConcurrentEventListener",
"justification": "The JsonFormatter is consumed by Cucumber"
}
],
"testng": [
Expand Down
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]
### Changed
- [Core] Use a [message based Cucumber JSON Formatter](https://github.com/cucumber/cucumber-json-formatter) ([##2888](https://github.com/cucumber/cucumber-jvm/pull/#2888) M.P. Korstanje)

## [7.27.0] - 2025-07-27
### Changed
Expand Down
6 changes: 6 additions & 0 deletions cucumber-bom/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
<properties>
<ci-environment.version>10.0.1</ci-environment.version>
<cucumber-expressions.version>18.0.1</cucumber-expressions.version>
<cucumber-json-formatter.version>0.1.1</cucumber-json-formatter.version>
<gherkin.version>33.1.0</gherkin.version>
<html-formatter.version>21.13.0</html-formatter.version>
<junit-xml-formatter.version>0.8.0</junit-xml-formatter.version>
Expand All @@ -38,6 +39,11 @@
<artifactId>cucumber-expressions</artifactId>
<version>${cucumber-expressions.version}</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-json-formatter</artifactId>
<version>${cucumber-json-formatter.version}</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>gherkin</artifactId>
Expand Down
4 changes: 4 additions & 0 deletions cucumber-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,10 @@
<groupId>io.cucumber</groupId>
<artifactId>cucumber-expressions</artifactId>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-json-formatter</artifactId>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>datatable</artifactId>
Expand Down
Loading
Loading