Skip to content

build: add Checkstyle, SpotBugs and JaCoCo quality gates - #82

Merged
Zhoujie628 merged 2 commits into
project-openan:mainfrom
Zhoujie628:main
Sep 17, 2026
Merged

Zhoujie628 merged 2 commits into
project-openan:mainfrom
Zhoujie628:main

Conversation

@Zhoujie628

Copy link
Copy Markdown
Contributor

Three static-analysis gates join Spotless in the reactor build:

  • Checkstyle (validate phase): naming, complexity and structural checks. Formatting stays with Spotless; thresholds calibrated to the existing codebase with a suppressions file for accepted legacy items.
  • SpotBugs (verify phase, threshold Medium): bug-pattern detection with a documented exclusion filter (mutable-exposure API surface, no-serialization project, demo-code items to revisit on next touch).
  • JaCoCo (test phase): coverage reporting per module, no threshold gate yet.

Also fixes two latent items the gates surfaced: star imports expanded in DefaultWorkflowEngineClient, and JSpecify @NullMarked package-info added to the client and spring packages (jspecify as provided dependency, google-java-format 1.24.0, package-info excluded from Spotless parsing).

The A2A Java SDK annotates its interfaces with JSpecify @NullMarked;
classes overriding those interfaces without the annotation trigger IDEA
inspection warnings. Add @NullMarked to the client and spring packages
via package-info.java (fully qualified annotation name to avoid import
parsing issues in package-info), with jspecify as a provided-scope
dependency. Also upgrade google-java-format to 1.24.0 and exclude
package-info.java from spotless (google-java-format cannot parse it).

Signed-off-by: Zhoujie628 <zhoujie628@users.noreply.github.com>
Three static-analysis gates join Spotless in the reactor build:

- Checkstyle (validate phase): naming, complexity and structural checks.
  Formatting stays with Spotless; thresholds calibrated to the existing
  codebase with a suppressions file for accepted legacy items.
- SpotBugs (verify phase, threshold Medium): bug-pattern detection with a
  documented exclusion filter (mutable-exposure API surface, no-serialization
  project, demo-code items to revisit on next touch).
- JaCoCo (test phase): coverage reporting per module, no threshold gate yet.

Also fix two latent items the gates surfaced: expand star imports in
DefaultWorkflowEngineClient, and add JSpecify @NullMarked package-info to
the client and spring packages (with jspecify as provided dependency and
google-java-format 1.24.0, which handles the newer JDK APIs).

Signed-off-by: Zhoujie628 <zhoujie628@users.noreply.github.com>
@Zhoujie628
Zhoujie628 requested a review from a team as a code owner September 17, 2026 07:01
@Zhoujie628
Zhoujie628 merged commit b63556e into project-openan:main Sep 17, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant