Skip to content
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

[#20718] [Java] fixed code generation for jersey2/3 and okhttp-gson when using modelMapping with a package and anyOf/oneOf #20721

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

xtroce
Copy link

@xtroce xtroce commented Feb 24, 2025

issue-20718 fixed code generation for jersey2/3 and okhttp-gson when using modelMapping with a package and anyOf/oneOf

Added a method to get a sanitized dataType string
Added sanitation when the datatype is used in variable names in the Jersey2/Jersey3/OkHttp-Gson mustache files for anyOf and oneOf
Added 1 test that tests the sanitizing method itself
Added 3 tests for the combination anyOf & oneOf with jersey2, jersey3 and okhttp-gson

Since the fix has a problem with mappedSchema's I decided to add a separate file, since adding to the fake petstore would make it necessary to add a mapping to all tests that currently use it.

The sanitation consists of:

  1. removing annotations (which was already done in most cases)
  2. stripping all characters except alphanumeric ones from the dataType

The sanitize method is then used in the mustache files, when the dataType would be used as a variable name or in the name of a method.

The changes only impact the Java code generation:
@bbdouglas (2017/07) @sreeshas (2017/08) @jfiala (2017/08) @lukoyanov (2017/09) @cbornet (2017/09) @jeff9finger (2018/01) @karismann (2019/03) @Zomzog (2019/04) @lwlee2608 (2019/10) @martin-mfg (2023/08)

Since it introduces a feature/but does not introduce a change in any behaviour, this commit is imho a minor version change.

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 Git BASH)
    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 is targeting a particular programming language, @mention the technical committee members, so they are more likely to review the pull request.

…using modelMapping with a package and anyOf/oneOf
@xtroce xtroce changed the title issue-20718 fixed code generation for jersey2/3 and okhttp-gson when using modelMapping with a package and anyOf/oneOf [#20718] [Java] fixed code generation for jersey2/3 and okhttp-gson when using modelMapping with a package and anyOf/oneOf Feb 24, 2025
@wing328
Copy link
Member

wing328 commented Mar 2, 2025

please resolve the merge conflicts when you've time

@xtroce xtroce closed this Mar 4, 2025
@xtroce xtroce deleted the bugfix/issue-20718_java-fix-generating-schemaModel-anyof-oneof branch March 4, 2025 15:37
@xtroce xtroce restored the bugfix/issue-20718_java-fix-generating-schemaModel-anyof-oneof branch March 4, 2025 15:37
…emaModel-anyof-oneof

# Conflicts:
#	modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenTest.java
@xtroce xtroce reopened this Mar 4, 2025
@xtroce
Copy link
Author

xtroce commented Mar 5, 2025

@wing328 i merged master again and solved the conflict

@wing328
Copy link
Member

wing328 commented Mar 5, 2025

just merged another java related pr

can you please resolve the merge conflicts one more time? will try to get this PR reviewed first tomorrow

thanks again for the contribution

…emaModel-anyof-oneof

# Conflicts:
#	modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java
@xtroce
Copy link
Author

xtroce commented Mar 6, 2025

just merged master again : )

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.

2 participants