Skip to content

[JAVA-SPRING;KOTLIN-SPRING]: honor useTags=false for HTTP interface libraries - #24971

Merged
wing328 merged 7 commits into
masterfrom
Picazsoo-bugfix/allow-useTags=false-for-http-interface2
Sep 20, 2026
Merged

wing328 merged 7 commits into
masterfrom
Picazsoo-bugfix/allow-useTags=false-for-http-interface2

Conversation

@wing328

@wing328 wing328 commented Sep 20, 2026

Copy link
Copy Markdown
Member

based on #24862 with resolved merge conflicts

  • SpringCodegen: include spring-http-interface in supportLibraryUseTags() so useTags=false groups operations by first path segment instead of tag.
  • KotlinSpringServerCodegen: include spring-declarative-http-interface in the addOperationToGroup path-grouping condition alongside spring-boot. spring-cloud was deliberately left out of this condition since useTags defaults to false there and changing it would alter existing default grouping behavior for that library.
  • Add regression tests covering useTags=false/true grouping for both spring-http-interface and spring-declarative-http-interface.
  • Update two pre-existing kotlin-spring tests whose expected output filenames assumed the old (buggy) tag-based grouping for spring-declarative-http-interface.

PR checklist

  • Read the contribution guidelines.
  • 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.
  • 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

Fixes useTags=false being ignored for Spring HTTP interface libraries so operations group by first path segment instead of tag.

  • Adds spring-http-interface and spring-declarative-http-interface to the path-grouping condition.
  • Sanitizes path segments into valid Java identifiers (e.g. another-fake becomes anotherFake), prefixes digit-leading segments with Class, and falls back to Path for segments that sanitize to empty (e.g. @ or !), with root paths grouped under default.
  • Keeps groups unique when sanitization causes collisions by appending a numeric suffix (e.g. anotherFake2, Path2).
  • Leaves spring-cloud unchanged because useTags defaults to false there, and altering it would change existing grouping behavior.
  • Updates petstore samples and sample configs to set useTags: "true" for spring-http-interface, which also renames FakeClassnameTags123Api to FakeClassnameTestApi and moves a few operations between FakeApi and PetApi.

Written for commit 70948e0. Summary will update on new commits.

Review in cubic

Picazsoo and others added 7 commits September 4, 2026 06:49
- SpringCodegen: include spring-http-interface in supportLibraryUseTags()
  so useTags=false groups operations by first path segment instead of tag.
- KotlinSpringServerCodegen: include spring-declarative-http-interface in
  the addOperationToGroup path-grouping condition alongside spring-boot.
  spring-cloud was deliberately left out of this condition since useTags
  defaults to false there and changing it would alter existing default
  grouping behavior for that library.
- Add regression tests covering useTags=false/true grouping for both
  spring-http-interface and spring-declarative-http-interface.
- Update two pre-existing kotlin-spring tests whose expected output
  filenames assumed the old (buggy) tag-based grouping for
  spring-declarative-http-interface.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@wing328 wing328 changed the title Picazsoo bugfix/allow use tags=false for http interface2 [JAVA-SPRING;KOTLIN-SPRING]: honor useTags=false for HTTP interface libraries Sep 20, 2026
@wing328
wing328 marked this pull request as ready for review September 20, 2026 16:35
@wing328 wing328 added this to the 7.26.0 milestone Sep 20, 2026
@wing328
wing328 merged commit 57fec6a into master Sep 20, 2026
432 of 509 checks passed
@wing328
wing328 deleted the Picazsoo-bugfix/allow-useTags=false-for-http-interface2 branch September 20, 2026 16:36
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.

2 participants