Skip to content

refactor(plugins): unify persistence reporting layout and deprecate legacy GraalVM output property - #111

Merged
yannickebongue merged 2 commits into
mainfrom
feature/unify-structured-json-execution-reporting
Oct 29, 2026
Merged

yannickebongue merged 2 commits into
mainfrom
feature/unify-structured-json-execution-reporting

Conversation

@yannickebongue

Copy link
Copy Markdown
Contributor

Summary

This PR consolidates structured task reporting under a single reports/persistence/ directory and modernizes the GraalVM metadata task's output API by deprecating the legacy outputFile property in favor of the explicitly named reflectConfigFile.

Motivation

  • Task report files (validatePersistenceSchema, lintNamedQueries) were previously scattered across individual directories (reports/<taskName>/), making it harder to locate all persistence-related telemetry in one place.
  • The outputFile property on GenerateJPAGraalVMMetadata was too generic and clashed with Gradle's built-in output tracking when annotated with @OutputFile, causing overlapping validation concerns.

Changes

Unified reporting directory (65276e4)

  • Converged all structured JSON report outputs to ${buildDir}/reports/persistence/<taskName>-report.json.
  • Updated functional test assertions to verify the new report locations.

Deprecate outputFile in favor of reflectConfigFile (7ed23f5)

  • Introduced reflectConfigFile as the primary @OutputFile property on GenerateJPAGraalVMMetadata.
  • Deprecated the legacy outputFile property (now @Internal) with bi-directional convention wiring to preserve full backward compatibility.
  • Updated plugin wiring in JakartaPersistencePlugin to use the new property.
  • Updated the generate() task action to read from reflectConfigFile.

Testing

  • Extended existing Spock functional specs to assert that both schema validation and named-query linter reports are emitted under the new unified reports/persistence/ directory with correct JSON content.

Migration Notes

  • outputFile on GenerateJPAGraalVMMetadata is deprecated. Consumers should migrate to reflectConfigFile. The legacy property continues to work transparently via convention forwarding and will be removed in a future release.
  • Report file paths have changed from reports/<taskName>/validation-report.json to reports/persistence/<taskName>-report.json. Update any CI scripts or tooling that reference the old paths.

Closes #100

…single directory

- Converge `lintNamedQueries` and `validatePersistenceSchema` execution metrics reports under the standardized `${buildDir}/reports/persistence/` directory tree layout.
- Remove redundant telemetry logging overhead from the GraalVM metadata task to maintain a lean, high-performance task execution graph.
- Update Spock functional specification paths to assert metrics data boundaries against the new corporate namespace location.
…eflectConfigFile

- Introduce the modern `reflectConfigFile` property annotated with `@OutputFile` inside the `GenerateJPAGraalVMMetadata` task configuration.
- Deprecate the legacy `outputFile` property, migrating its runtime state tracking boundary to `@Internal` to eliminate overlapping validation outputs exceptions.
- Configure lazy, bi-directional property convention assignments in the task constructor wrapper to safeguard full backward compatibility.
- Update `JakartaPersistencePlugin` wiring layouts to target the new non-deprecated configuration fields natively.
@yannickebongue yannickebongue self-assigned this Oct 29, 2026
@yannickebongue yannickebongue added documentation Improvements or additions to documentation maintenance Improvements or additions to documentation labels Oct 29, 2026
@yannickebongue yannickebongue added the plugins Gradle plugin wrappers (Gradle Plugin Portal artifacts) label Oct 29, 2026
@sonarqubecloud

Copy link
Copy Markdown

@sonarqubecloud

Copy link
Copy Markdown

@yannickebongue
yannickebongue merged commit 69e5da6 into main Oct 29, 2026
4 checks passed
@yannickebongue
yannickebongue deleted the feature/unify-structured-json-execution-reporting branch October 29, 2026 14:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation maintenance Improvements or additions to documentation plugins Gradle plugin wrappers (Gradle Plugin Portal artifacts)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEAT] Unify structured JSON execution reporting across all verification targets

1 participant