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

Refactor OpenAPI client generation #433

Open
4 tasks
Tracked by #429
emerkle826 opened this issue Nov 21, 2023 · 0 comments
Open
4 tasks
Tracked by #429

Refactor OpenAPI client generation #433

emerkle826 opened this issue Nov 21, 2023 · 0 comments

Comments

@emerkle826
Copy link
Contributor

emerkle826 commented Nov 21, 2023

Issue:

When building the project, the code in the server module generates a Swagger/OpenAPI spec document that describes all of the available endpoints. The document is then used to generate a Java client that can be used by other projects to exercise the Management API. Unfortunately, the client generation is just a stand-alone Maven project that is dumped into the generated-sources folder under the server project, and isn't compiled via the normal Maven lifecycle. To compile it, you have to first compile the project, then run Maven lifecycles on the generated source as a follow-on step.

This creates a problem where we can't test the auto-generated client in e2e/integration tests. We need to resolve this.

Definition of Done

  • The OpenAPI client is generated into a sub-module of the main project
  • The OpenAPI client is compiled during the main project Maven lifecycle
  • A separate Maven sub-module is added that depends on the current server module artifacts as well as the OpenAPI client artifacts and has integration tests that use the generated client to exercise the API
  • The new auto-generated client sub-module tests are run as part of the main project's Maven lifecycle test phase.

┆Issue is synchronized with this Jira Story by Unito

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Status: No status
Development

No branches or pull requests

1 participant