Skip to content

[Java-Spring] Enable bean validation for spring-http-interface when configured#23609

Open
thiswasdumb wants to merge 2 commits intoOpenAPITools:masterfrom
thiswasdumb:spring-http-useBean
Open

[Java-Spring] Enable bean validation for spring-http-interface when configured#23609
thiswasdumb wants to merge 2 commits intoOpenAPITools:masterfrom
thiswasdumb:spring-http-useBean

Conversation

@thiswasdumb
Copy link
Copy Markdown
Contributor

@thiswasdumb thiswasdumb commented Apr 23, 2026

Description

The current logic for spring-http-interface always sets useBeanValidation and performBeanValidation to false, which serves problematic when fields are expected to not be nullable. This ensures that if they are set to true, the generated classes contain the @NotNull generation alongside those variables.

This MR will fix #23585

Changes

  • modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SpringCodegen.java I removed the logic which always sets them to false and follows through with setting them based on their expected value.
  • modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java tests to ensure the file is generated as expected

PR checklist

  • Read the contribution guidelines.
  • Pull Request title clearly describes the work in the pull request and Pull Request description provides details about how to validate the work. Missing information here may result in delayed response from the community.
  • Run the following to build the project and update samples:
    ./mvnw clean package || exit
    ./bin/generate-samples.sh ./bin/configs/*.yaml || exit
    ./bin/utils/export_docs_generators.sh || exit
    
    (For Windows users, please run the script in WSL)
    Commit all changed files.
    This is important, as CI jobs will verify all generator outputs of your HEAD commit as it would merge with master.
    These must match the expectations made by your contribution.
    You may regenerate an individual generator by passing the relevant config(s) as an argument to the script, for example ./bin/generate-samples.sh bin/configs/java*.
    IMPORTANT: Do NOT purge/delete any folders/files (e.g. tests) when regenerating the samples as manually written tests may be removed.
  • File the PR against the correct branch: master (upcoming 7.x.0 minor release - breaking changes with fallbacks), 8.0.x (breaking changes without fallbacks)
  • If your PR solves a reported issue, reference it using GitHub's linking syntax (e.g., having "fixes #123" present in the PR description)
  • If your PR is targeting a particular programming language, @mention the technical committee members, so they are more likely to review the pull request.

Summary by cubic

Honor useBeanValidation and performBeanValidation for the Spring HTTP Interface generator so required fields get @NotNull when validation is enabled. Fixes #23585. Updated samples to reflect validation annotations.

  • Bug Fixes
    • Respect useBeanValidation and performBeanValidation in SpringCodegen for spring-http-interface; stop forcing them to false and adjust the warning text.
    • Add a unit test confirming @NotNull is generated when both flags are true, and regenerate samples to include validation annotations (e.g., @Valid on collection elements and request body lists).

Written for commit c9ede04. Summary will update on new commits.

…ted for objects containing required fields
@thiswasdumb thiswasdumb changed the title [Java-Spring] Fixing Logic to Ensure useBeanValidation Is Set to True When Expected [Java-Spring] Enable bean validation for spring-http-interface when configured Apr 23, 2026
@thiswasdumb
Copy link
Copy Markdown
Contributor Author

I'd feel bad pinging because it is such a small change... I just saw the issue and wanted to give a go at addressing it honestly.

Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 2 files

@wing328
Copy link
Copy Markdown
Member

wing328 commented Apr 24, 2026

thanks for the PR

please follow step 3 to update the samples to address https://github.com/OpenAPITools/openapi-generator/actions/runs/24862461150/job/72791337954?pr=23609

@thiswasdumb
Copy link
Copy Markdown
Contributor Author

thanks for the PR

please follow step 3 to update the samples to address https://github.com/OpenAPITools/openapi-generator/actions/runs/24862461150/job/72791337954?pr=23609

Yep sorry I had like 176 files edited when I compiled so I thought I was definitely not doing it right. Was gonna take a look at the errors in the pipeline to know wha to upload, will do this when I get home. Thank you so much for the link!!

@thiswasdumb
Copy link
Copy Markdown
Contributor Author

Added the samples now 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] useBeanValidation is always false

2 participants