Skip to content

Httplib server codegen#21724

Open
rajvesh wants to merge 1 commit intoOpenAPITools:masterfrom
rajvesh:httplib-server-codegen
Open

Httplib server codegen#21724
rajvesh wants to merge 1 commit intoOpenAPITools:masterfrom
rajvesh:httplib-server-codegen

Conversation

@rajvesh
Copy link

@rajvesh rajvesh commented Aug 10, 2025

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.

@rajvesh
Copy link
Author

rajvesh commented Aug 10, 2025

Hello @wing328 ,
Previous pull request got closed. I don't know the reason.
(#21672)

This is the same code with rework on your comments from previous.

Thank you.

@wing328
Copy link
Member

wing328 commented Aug 11, 2025

https://github.com/OpenAPITools/openapi-generator/actions/runs/16865113770/job/47794205903?pr=21724

you can search for toLowerCase in the project and see how other generators call this function to address the build failure

@rajvesh rajvesh force-pushed the httplib-server-codegen branch 2 times, most recently from 474d239 to 145b0b3 Compare August 18, 2025 10:22
@rajvesh
Copy link
Author

rajvesh commented Aug 19, 2025

Hello @wing328 ,
Pushed the new changes. Please check.
Thank you.

@wing328
Copy link
Member

wing328 commented Aug 22, 2025

still failed

Error:    Run 1: GlobalSettingsTest.testNonStringSystemProperties:33 
expected: "test2"
 but was: null
Error:  Forbidden method invocation: java.lang.String#toLowerCase() [Uses default locale]
Error:    in org.openapitools.codegen.languages.CppHttplibServerCodegen (CppHttplibServerCodegen.java:922)
Error:  Forbidden method invocation: java.lang.String#toUpperCase() [Uses default locale]
Error:    in org.openapitools.codegen.languages.CppHttplibServerCodegen (CppHttplibServerCodegen.java:1050)
Error:  Forbidden method invocation: java.lang.String#toUpperCase() [Uses default locale]
Error:    in org.openapitools.codegen.languages.CppHttplibServerCodegen (CppHttplibServerCodegen.java:1052)
Error:  Forbidden method invocation: java.lang.String#toLowerCase() [Uses default locale]
Error:    in org.openapitools.codegen.languages.CppHttplibServerCodegen (CppHttplibServerCodegen.java:1052)
Error:  Forbidden method invocation: java.lang.String#toLowerCase() [Uses default locale]
Error:    in org.openapitools.codegen.languages.CppHttplibServerCodegen (CppHttplibServerCodegen.java:1054)
Error:  Scanned 561 class file(s) for forbidden API invocations (in 1.22s), 5 error(s).
Error:  Failed to execute goal de.thetaphi:forbiddenapis:3.5.1:check (default) on project openapi-generator: Check for forbidden API calls failed, see log. -> [Help 1]

can you try building the project locally to confirm the fix?

@rajvesh rajvesh force-pushed the httplib-server-codegen branch from 145b0b3 to d220c6e Compare August 23, 2025 22:46
@rajvesh
Copy link
Author

rajvesh commented Aug 24, 2025

I am building with this command.It is passing build locally.
./mvnw clean package -DskipTests

@wing328
Copy link
Member

wing328 commented Aug 24, 2025

please try ./mvnw clean package

@rajvesh rajvesh force-pushed the httplib-server-codegen branch from 3234b2f to 10f300d Compare August 28, 2025 07:52
@wing328
Copy link
Member

wing328 commented Aug 28, 2025

@rajvesh
Copy link
Author

rajvesh commented Aug 28, 2025

please try ./mvnw clean package

With the above command , I am facing errors for maven plugin:

[INFO] openapi-generator-project .......................... SUCCESS [ 2.191 s]
[INFO] openapi-generator-core ............................. SUCCESS [ 4.082 s]
[INFO] openapi-generator (core library) ................... SUCCESS [10:47 min]
[INFO] openapi-generator (executable) ..................... SUCCESS [ 35.143 s]
[INFO] openapi-generator (maven-plugin) ................... FAILURE [01:04 min]
[INFO] openapi-generator-gradle-plugin (maven wrapper) .... SKIPPED
[INFO] openapi-generator-online ........................... SKIPPED

@wing328
Copy link
Member

wing328 commented Aug 28, 2025

[INFO]
[INFO] --- maven-dependency-plugin:3.8.1:copy-dependencies (default) @ openapi-generator-online ---
[INFO]
[INFO] --- spring-boot-maven-plugin:2.5.14:repackage (default) @ openapi-generator-online ---
[INFO] Replacing main artifact with repackaged archive
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for openapi-generator-project 7.16.0-SNAPSHOT:
[INFO]
[INFO] openapi-generator-project .......................... SUCCESS [  2.019 s]
[INFO] openapi-generator-core ............................. SUCCESS [  2.947 s]
[INFO] openapi-generator (core library) ................... SUCCESS [06:06 min]
[INFO] openapi-generator (executable) ..................... SUCCESS [ 16.828 s]
[INFO] openapi-generator (maven-plugin) ................... SUCCESS [ 38.142 s]
[INFO] openapi-generator-gradle-plugin (maven wrapper) .... SUCCESS [  2.124 s]
[INFO] openapi-generator-online ........................... SUCCESS [ 34.402 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  07:45 min
[INFO] Finished at: 2025-08-28T18:11:28+08:00
[INFO] ------------------------------------------------------------------------
[INFO] 75 goals, 64 executed, 11 from cache, saving at least 29s
[INFO]
[INFO] Publishing build scan...
[INFO] https://ge.openapi-generator.tech/s/n3o7rpo63ci72

works for me without errors

can you merge the latest master into your branch?

Supports:
All OpenAPI 3.x data types: primitives, arrays, enums, nullable/optional fields, nested objects
All parameter types: path, query, header, cookie, and combinations
Schema composition: allOf (inheritance), oneOf (discriminated unions), anyOf (flexible unions)
Security schemes: API key and bearer token authentication
Discriminator-based polymorphic deserialization and error handling

Provides:
Error handling for invalid JSON, type mismatches, missing/unknown discriminator, and parameter validation
Build system integration (CMake) for easy compilation and linking with required dependencies
Clear build and run instructions for local development and testing
Enables comprehensive, real-world validation of generated C++ server code against OpenAPI specifications
@rajvesh rajvesh force-pushed the httplib-server-codegen branch from 10f300d to 5fa32aa Compare February 9, 2026 09:22
@rajvesh
Copy link
Author

rajvesh commented Feb 9, 2026

Hello @wing328 ,
After long time had time to work on this again. please approve the workflows.
Thank you.

@rajvesh
Copy link
Author

rajvesh commented Feb 9, 2026

Looks like , The CI/CD errors (such as "Null key for a Map not allowed in JSON" and missing schema warnings) are not related to my changes. I have only modified files relevant to the cpp-httplib-server improvements. The errors originate from test specifications or example files within the OpenAPI Generator test suite, not from my OpenAPI spec or any files I changed. My modifications do not introduce these issues. This is my analysis of these checks failed.

In my local, builds for codegen, tests, and sample code builds are successfull.
Please let me know.

restore-keys: ${{ runner.os }}-m2
- name: Build OpenAPI Generator
run: ./mvnw clean package -DskipTests -pl modules/openapi-generator-cli -am
- name: Run unit tests for CppHttplibServerCodegen
Copy link
Member

Choose a reason for hiding this comment

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

suggestion: i don't we need to run these CppHttpLibserver tests in this workflow as it's already covered by mvn clean install in the main workflow.

@wing328
Copy link
Member

wing328 commented Feb 9, 2026

I'm able to repeat the issue locally. I'll take another look to see what I can do to resolve it

Is it correct to say that you've tested with the auto-generated output (C++ server-side code) and it works fine for you?

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