-
-
Notifications
You must be signed in to change notification settings - Fork 6.8k
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Add support for Helidon 4 MP client and server generation #18627
Conversation
thanks for the PR. please update the samples one more time when you've time. |
Signed-off-by: Tim Quinn <tim.quinn@oracle.com>
Signed-off-by: Tim Quinn <tim.quinn@oracle.com>
e9f7717
to
a5d6521
Compare
I updated the samples locally with no change to the spring ones but I rebased and pushed anyway. This time there is one failed spring job instead of two, again seemingly unrelated to my changes. Perhaps this is an intermittent failure separate from this PR. I do not seem to have the ability to trigger a rerun of the failed action. If someone else could do that I'd appreciate it. |
the failure has nothing to do with this PR and I've asked the test author to take a look: #17054 (comment) |
* Copyright 2022 OpenAPI-Generator Contributors (https://openapi-generator.tech) | ||
* Copyright (c) 2022 Oracle and/or its affiliates | ||
* Copyright 2022, 2024 OpenAPI-Generator Contributors (https://openapi-generator.tech) | ||
* Copyright (c) 2022, 2024 Oracle and/or its affiliates |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
for the new java files (not auto-generated) added in this PR, can we use the above instead?
modules/openapi-generator/src/test/java/org/openapitools/codegen/languages/HelidonCommonCodegenTest.java
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think there is only one new .java
file in the PR, and I've fixed that copyright notice.
I also fixed one modified .java
file where I neglected to updated the copyright.
I think those are the only copyright problems, but please let me know if there are more.
Signed-off-by: Tim Quinn <tim.quinn@oracle.com>
Signed-off-by: Tim Quinn <tim.quinn@oracle.com>
…ls#18627) * Add support for Helidon 4 MP client and server generation Signed-off-by: Tim Quinn <tim.quinn@oracle.com> * Rerun samples generation trying to fix spring jobs Signed-off-by: Tim Quinn <tim.quinn@oracle.com> * Update copyright Signed-off-by: Tim Quinn <tim.quinn@oracle.com> * Correct the copyright notice Signed-off-by: Tim Quinn <tim.quinn@oracle.com> --------- Signed-off-by: Tim Quinn <tim.quinn@oracle.com>
Resolves #18261 to support generation of Helidon 4 MP clients and servers. (A later PR will add support for Helidon 4 SE clients and servers.)
Key changes:
Update the
pom.xml
templates for the Helidon client and server generators:pom.xml
template accordingly and set a mustache attribute from the Java code to indicate which one to use.pom.xml
template and set a mustache attribute from the Java code to indicate which to use.Add support for retrieving the list of released Helidon versions and allowing generator users to specify a prefix for the desired Helidon version.
The generators now find the highest Helidon release that matches the user-supplied prefix as
helidonVersion
. Thehelidon.io
website serves a metadata file listing released versions. The Helidon generators attempt to retrieve that list from the website and, if successful, they save the list locally using the Java preferences API. If the internet is not available then previously-stored preferences are used if available and, otherwise, a version list hardcoded in the code is used.The PR also contains a new test to exercise this feature.
Adjust workflows.
samples-jdk21.yaml
. Helidon 4 requires Java 21, so the samples generated for Helidon 4 do as well.samples-java-helidon.yaml
(which deals with samples for Helidon 3) tosamples-java-helidon-v3.yaml
and change thesamples
paths to include/v3
.samples-java-helidon-v4.yaml
(which deals with samples for Helidon 4) and use subdirectories/v4
.samples-jdk17.yaml
to reflect the new locations for the generated Helidon sample projects.Why so many changed files?
Because the build process for all generators creates sample apps using an OpenAPI document and the various generators, and because this PR puts Helidon 3 samples in a new subdirectory, this PR also moves the sample files that were generated by the previous Helidon 3 generators into the new
v3
subdirectory.The number of changed files in the PR seems very large as a result. The generated Helidon 4 MP apps go into the new
v4
subdirectory (to be joined eventually by generated SE samples in a later PR). Doing this allows us to generate samples for multiple Helidon target releases (3 and 4, for now) and avoid collisions between the generated projects while making sure our changes to the generator to support 4.x do not break the generated code for Helidon 3 as we still have active Helidon 3 users.PR checklist
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.
master
(upcoming 7.1.0 minor release - breaking changes with fallbacks),8.0.x
(breaking changes without fallbacks)Attention: @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)