Skip to content

Commit 0e05cf2

Browse files
authored
Add support for Helidon 4 MP client and server generation (#18627)
* Add support for Helidon 4 MP client and server generation Signed-off-by: Tim Quinn <[email protected]> * Rerun samples generation trying to fix spring jobs Signed-off-by: Tim Quinn <[email protected]> * Update copyright Signed-off-by: Tim Quinn <[email protected]> * Correct the copyright notice Signed-off-by: Tim Quinn <[email protected]> --------- Signed-off-by: Tim Quinn <[email protected]>
1 parent 4b56fd2 commit 0e05cf2

File tree

953 files changed

+27164
-287
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

953 files changed

+27164
-287
lines changed

.github/workflows/samples-java-helidon.yaml renamed to .github/workflows/samples-java-helidon-v3.yaml

+9-9
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
name: Samples Java Helidon
1+
name: Samples Java Helidon v3
22

33
on:
44
push:
55
paths:
6-
- samples/client/petstore/java-helidon-client/**
7-
- samples/server/petstore/java-helidon-server/**
6+
- samples/client/petstore/java-helidon-client/v3/**
7+
- samples/server/petstore/java-helidon-server/v3/**
88
pull_request:
99
paths:
10-
- samples/client/petstore/java-helidon-client/**
11-
- samples/server/petstore/java-helidon-server/**
10+
- samples/client/petstore/java-helidon-client/v3/**
11+
- samples/server/petstore/java-helidon-server/v3/**
1212
jobs:
1313
build:
1414
name: Build Java Helidon
@@ -17,10 +17,10 @@ jobs:
1717
fail-fast: false
1818
matrix:
1919
sample:
20-
- samples/client/petstore/java-helidon-client/mp
21-
- samples/client/petstore/java-helidon-client/se
22-
- samples/server/petstore/java-helidon-server/mp
23-
- samples/server/petstore/java-helidon-server/se
20+
- samples/client/petstore/java-helidon-client/v3/mp
21+
- samples/client/petstore/java-helidon-client/v3/se
22+
- samples/server/petstore/java-helidon-server/v3/mp
23+
- samples/server/petstore/java-helidon-server/v3/se
2424
version: [17]
2525
steps:
2626
- uses: actions/checkout@v4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: Samples Java Helidon v4
2+
3+
on:
4+
push:
5+
paths:
6+
- samples/client/petstore/java-helidon-client/v4/**
7+
- samples/server/petstore/java-helidon-server/v4/**
8+
pull_request:
9+
paths:
10+
- samples/client/petstore/java-helidon-client/v4/**
11+
- samples/server/petstore/java-helidon-server/v4/**
12+
jobs:
13+
build:
14+
name: Build Java Helidon
15+
runs-on: ubuntu-latest
16+
strategy:
17+
fail-fast: false
18+
matrix:
19+
sample:
20+
- samples/client/petstore/java-helidon-client/v4/mp
21+
- samples/server/petstore/java-helidon-server/v4/mp
22+
version: [21]
23+
steps:
24+
- uses: actions/checkout@v4
25+
- uses: actions/setup-java@v4
26+
with:
27+
distribution: 'temurin'
28+
java-version: ${{ matrix.version }}
29+
- name: Cache maven dependencies
30+
uses: actions/cache@v4
31+
env:
32+
cache-name: maven-repository
33+
with:
34+
path: |
35+
~/.m2
36+
key: ${{ runner.os }}-${{ github.job }}-${{ env.cache-name }}-${{ hashFiles('**/pom.xml') }}
37+
- name: Build
38+
working-directory: ${{ matrix.sample }}
39+
run: mvn clean package

.github/workflows/samples-jdk17.yaml

+12-12
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,28 @@ on:
44
paths:
55
# clients
66
- samples/openapi3/client/petstore/spring-cloud-3/**
7-
- samples/client/petstore/java-helidon-client/mp/**
8-
- samples/client/petstore/java-helidon-client/se/**
7+
- samples/client/petstore/java-helidon-client/v3/mp/**
8+
- samples/client/petstore/java-helidon-client/v3/se/**
99
- samples/client/petstore/spring-http-interface-reactive/**
1010
- samples/client/petstore/spring-http-interface/**
1111
- samples/client/petstore/java/webclient-jakarta/**
1212
# servers
1313
- samples/openapi3/server/petstore/springboot-3/**
14-
- samples/server/petstore/java-helidon-server/mp/**
15-
- samples/server/petstore/java-helidon-server/se/**
14+
- samples/server/petstore/java-helidon-server/v3/mp/**
15+
- samples/server/petstore/java-helidon-server/v3/se/**
1616
pull_request:
1717
paths:
1818
# clients
1919
- samples/openapi3/client/petstore/spring-cloud-3/**
20-
- samples/client/petstore/java-helidon-client/mp/**
21-
- samples/client/petstore/java-helidon-client/se/**
20+
- samples/client/petstore/java-helidon-client/v3/mp/**
21+
- samples/client/petstore/java-helidon-client/v3/se/**
2222
- samples/client/petstore/spring-http-interface-reactive/**
2323
- samples/client/petstore/spring-http-interface/**
2424
- samples/client/petstore/java/webclient-jakarta/**
2525
# servers
2626
- samples/openapi3/server/petstore/springboot-3/**
27-
- samples/server/petstore/java-helidon-server/mp/**
28-
- samples/server/petstore/java-helidon-server/se/**
27+
- samples/server/petstore/java-helidon-server/v3/mp/**
28+
- samples/server/petstore/java-helidon-server/v3/se/**
2929
jobs:
3030
build:
3131
name: Build with JDK17
@@ -36,15 +36,15 @@ jobs:
3636
sample:
3737
# clients
3838
- samples/openapi3/client/petstore/spring-cloud-3
39-
- samples/client/petstore/java-helidon-client/mp
40-
- samples/client/petstore/java-helidon-client/se
39+
- samples/client/petstore/java-helidon-client/v3/mp/
40+
- samples/client/petstore/java-helidon-client/v3/se
4141
- samples/client/petstore/spring-http-interface-reactive
4242
- samples/client/petstore/spring-http-interface
4343
- samples/client/petstore/java/webclient-jakarta
4444
# servers
4545
- samples/openapi3/server/petstore/springboot-3
46-
- samples/server/petstore/java-helidon-server/mp
47-
- samples/server/petstore/java-helidon-server/se
46+
- samples/server/petstore/java-helidon-server/v3/mp/
47+
- samples/server/petstore/java-helidon-server/v3/se
4848
- samples/client/petstore/spring-http-interface-reactive
4949
- samples/client/petstore/spring-http-interface
5050
steps:

.github/workflows/samples-jdk21.yaml

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: Samples JDK21
2+
on:
3+
push:
4+
paths:
5+
# clients
6+
- samples/client/petstore/java-helidon-client/v4/mp/**
7+
# servers
8+
- samples/server/petstore/java-helidon-server/v4/mp/**
9+
pull_request:
10+
paths:
11+
# clients
12+
- samples/client/petstore/java-helidon-client/v4/mp/**
13+
# servers
14+
- samples/server/petstore/java-helidon-server/v4/mp/**
15+
jobs:
16+
build:
17+
name: Build with JDK21
18+
runs-on: ubuntu-latest
19+
strategy:
20+
fail-fast: false
21+
matrix:
22+
sample:
23+
# clients
24+
- samples/client/petstore/java-helidon-client/v4/mp/
25+
# servers
26+
- samples/server/petstore/java-helidon-server/v4/mp/
27+
steps:
28+
- uses: actions/checkout@v4
29+
- uses: actions/setup-java@v4
30+
with:
31+
distribution: 'temurin'
32+
java-version: 21
33+
- name: Cache maven dependencies
34+
uses: actions/cache@v4
35+
env:
36+
cache-name: maven-repository
37+
with:
38+
path: |
39+
~/.m2
40+
key: ${{ runner.os }}-${{ github.job }}-${{ env.cache-name }}-${{ hashFiles('**/pom.xml') }}
41+
- name: Build
42+
working-directory: ${{ matrix.sample }}
43+
run: mvn clean package

bin/configs/java-helidon-client-mp.yaml renamed to bin/configs/java-helidon-client-mp_3.yaml

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
generatorName: java-helidon-client
22
library: mp
3-
outputDir: samples/client/petstore/java-helidon-client/mp
3+
outputDir: samples/client/petstore/java-helidon-client/v3/mp
44
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml
55
additionalProperties:
6+
helidonVersion: 3.2.7
67
artifactId: petstore-helidon-client-mp
78
hideGenerationTimestamp: "true"
89
configureAuth: "false"
+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
generatorName: java-helidon-client
2+
library: mp
3+
outputDir: samples/client/petstore/java-helidon-client/v4/mp
4+
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml
5+
additionalProperties:
6+
helidonVersion: 4.0.8
7+
artifactId: petstore-helidon-client-mp
8+
hideGenerationTimestamp: "true"
9+
configureAuth: "false"
10+
build: "all"
11+
test: "spock"
12+
requiredPropertiesInConstructor: "false"
13+
visitable: "true"
14+
fullProject: "true"

bin/configs/java-helidon-client-se.yaml renamed to bin/configs/java-helidon-client-se_3.yaml

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
generatorName: java-helidon-client
22
library: se
3-
outputDir: samples/client/petstore/java-helidon-client/se
3+
outputDir: samples/client/petstore/java-helidon-client/v3/se
44
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml
55
additionalProperties:
6+
helidonVersion: 3.2.7
67
artifactId: petstore-helidon-client-se
78
hideGenerationTimestamp: "true"
89
configureAuth: "false"

bin/configs/java-helidon-server-mp.yaml renamed to bin/configs/java-helidon-server-mp_3.yaml

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
generatorName: java-helidon-server
22
library: mp
3-
outputDir: samples/server/petstore/java-helidon-server/mp
3+
outputDir: samples/server/petstore/java-helidon-server/v3/mp
44
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml
55
templateDir: modules/openapi-generator/src/main/resources/java-helidon/server
66
additionalProperties:
7+
helidonVersion: 3.2.7
78
artifactId: petstore-helidon-server-mp
89
hideGenerationTimestamp: "true"
910
build: "all"
+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
generatorName: java-helidon-server
2+
library: mp
3+
outputDir: samples/server/petstore/java-helidon-server/v4/mp
4+
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml
5+
templateDir: modules/openapi-generator/src/main/resources/java-helidon/server
6+
additionalProperties:
7+
helidonVersion: 4.0.8
8+
artifactId: petstore-helidon-server-mp
9+
hideGenerationTimestamp: "true"
10+
build: "all"
11+
test: "spock"
12+
useAuth: "false"
13+
fullProject: "true"
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
generatorName: java-helidon-server
22
library: se
3-
outputDir: samples/server/petstore/java-helidon-server/se
3+
outputDir: samples/server/petstore/java-helidon-server/v3/se
44
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing.yaml
55
templateDir: modules/openapi-generator/src/main/resources/java-helidon/server
66
additionalProperties:
7+
helidonVersion: 3.2.7
78
artifactId: petstore-helidon-server-se
89
hideGenerationTimestamp: "true"
910
fullProject: "true"

docs/generators/java-helidon-client.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
4040
|fullProject|If set to true, it will generate all files; if set to false, it will only generate API files. If unspecified, the behavior depends on whether a project exists or not: if it does not, same as true; if it does, same as false. Note that test files are never overwritten.| ||
4141
|generateConstructorWithAllArgs|whether to generate a constructor for all arguments| |false|
4242
|groupId|groupId in generated pom.xml| |org.openapitools|
43-
|helidonVersion|Helidon version for generated code| |3.0.1|
43+
|helidonVersion|Helidon complete version identifier or major version number. The specified exact Helidon release or, if specified as a major version the latest release of that major version, is used in the generated code.| |Highest released version.|
4444
|hideGenerationTimestamp|Hides the generation timestamp when files are generated.| |false|
4545
|ignoreAnyOfInEnum|Ignore anyOf keyword in enum| |false|
4646
|implicitHeaders|Skip header parameters in the generated API methods using @ApiImplicitParams annotation.| |false|

docs/generators/java-helidon-server.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,14 @@ These options may be applied as additional-properties (cli) or configOptions (pl
4040
|generateConstructorWithAllArgs|whether to generate a constructor for all arguments| |false|
4141
|gradleProject|Whether to generate gradle project instead of maven.| |false|
4242
|groupId|groupId in generated pom.xml| |org.openapitools|
43-
|helidonVersion|Helidon version for generated code| |3.0.1|
43+
|helidonVersion|Helidon complete version identifier or major version number. The specified exact Helidon release or, if specified as a major version the latest release of that major version, is used in the generated code.| |Highest released version.|
4444
|hideGenerationTimestamp|Hides the generation timestamp when files are generated.| |false|
4545
|ignoreAnyOfInEnum|Ignore anyOf keyword in enum| |false|
4646
|implicitHeaders|Skip header parameters in the generated API methods using @ApiImplicitParams annotation.| |false|
4747
|implicitHeadersRegex|Skip header parameters that matches given regex in the generated API methods using @ApiImplicitParams annotation. Note: this parameter is ignored when implicitHeaders=true| |null|
4848
|invokerPackage|root package for generated code| |org.openapitools.server|
4949
|legacyDiscriminatorBehavior|Set to false for generators with better support for discriminators. (Python, Java, Go, PowerShell, C# have this enabled by default).|<dl><dt>**true**</dt><dd>The mapping in the discriminator includes descendent schemas that allOf inherit from self and the discriminator mapping schemas in the OAS document.</dd><dt>**false**</dt><dd>The mapping in the discriminator includes any descendent schemas that allOf inherit from self, any oneOf schemas, any anyOf schemas, any x-discriminator-values, and the discriminator mapping schemas in the OAS document AND Codegen validates that oneOf and anyOf schemas contain the required discriminator and throws an error if the discriminator is missing.</dd></dl>|true|
50-
|library|library template (sub-template) to use|<dl><dt>**mp**</dt><dd>Helidon MP Server</dd><dt>**se**</dt><dd>Helidon SE Server</dd><dt>**nima**</dt><dd>Helidon NIMA Server</dd><dt>**nima-annotations**</dt><dd>Helidon NIMA Annotations Server</dd></dl>|se|
50+
|library|library template (sub-template) to use|<dl><dt>**mp**</dt><dd>Helidon MP Server</dd><dt>**se**</dt><dd>Helidon SE Server</dd></dl>|se|
5151
|licenseName|The name of the license| |Unlicense|
5252
|licenseUrl|The URL of the license| |http://unlicense.org|
5353
|modelPackage|package for generated models| |org.openapitools.server.model|

modules/openapi-generator/pom.xml

+5
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,11 @@
299299
<artifactId>commons-text</artifactId>
300300
<version>${commons-text.version}</version>
301301
</dependency>
302+
<dependency>
303+
<groupId>org.apache.maven.resolver</groupId>
304+
<artifactId>maven-resolver-util</artifactId>
305+
<version>${resolver-util-version}</version>
306+
</dependency>
302307
<dependency>
303308
<groupId>commons-cli</groupId>
304309
<artifactId>commons-cli</artifactId>

0 commit comments

Comments
 (0)