Skip to content

Commit 8f77456

Browse files
committed
Merge branch 'master' into issue-21317
2 parents 4a6cc5a + 623463a commit 8f77456

File tree

145 files changed

+4136
-208
lines changed

Some content is hidden

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

145 files changed

+4136
-208
lines changed

.github/workflows/samples-java-client-jdk17.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,14 @@ on:
77
- samples/client/petstore/java/webclient-jakarta/**
88
- samples/client/petstore/java/restclient-*/**
99
- samples/client/petstore/java/webclient-useSingleRequestParameter/**
10+
- samples/client/others/java/restclient-enum-in-multipart/**
1011
pull_request:
1112
paths:
1213
- samples/client/petstore/java/resttemplate-jakarta/**
1314
- samples/client/petstore/java/webclient-jakarta/**
1415
- samples/client/petstore/java/restclient-*/**
1516
- samples/client/petstore/java/webclient-useSingleRequestParameter/**
17+
- samples/client/others/java/restclient-enum-in-multipart/**
1618
jobs:
1719
build:
1820
name: Build Java Client JDK17
@@ -30,6 +32,7 @@ jobs:
3032
- samples/client/petstore/java/restclient-useSingleRequestParameter
3133
- samples/client/petstore/java/restclient-useSingleRequestParameter-static
3234
- samples/client/petstore/java/webclient-useSingleRequestParameter
35+
- samples/client/others/java/restclient-enum-in-multipart
3336
steps:
3437
- uses: actions/checkout@v4
3538
- uses: actions/setup-java@v4

.github/workflows/samples-python-petstore.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,18 @@ on:
88
- .github/workflows/samples-python-petstore.yaml
99

1010
jobs:
11+
validate-pyproject-toml:
12+
name: Validate pyproject.toml
13+
runs-on: ubuntu-latest
14+
steps:
15+
- uses: actions/checkout@v4
16+
- uses: actions/setup-python@v5
17+
with:
18+
python-version: "3.13"
19+
- name: Install validator
20+
run: pip install 'validate-pyproject[all]'
21+
- name: Validate
22+
run: validate-pyproject samples/openapi3/client/petstore/python/pyproject.toml
1123
build:
1224
name: Test Python client
1325
runs-on: ubuntu-latest

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ If you find OpenAPI Generator useful for work, please consider asking your compa
7575
[<img src="https://openapi-generator.tech/img/companies/dm.png" width="128" height="128">](https://www.dotcom-monitor.com/sponsoring-open-source-projects/?utm_source=openapi-generator&utm_medium=sponsorship&utm_campaign=oss-sponsorship)
7676
[<img src="https://openapi-generator.tech/img/companies/clickit.jpg" width="128" height="128">](https://www.clickittech.com/?utm_source=openapi-generator&utm_medium=sponsorship&utm_campaign=oss-sponsorship)
7777
[<img src="https://openapi-generator.tech/img/companies/unified_to.jpg" width="128" height="128">](https://unified.to/?utm_source=openapi-generator&utm_medium=sponsorship&utm_campaign=oss-sponsorship)
78-
[<img src="https://openapi-generator.tech/img/companies/savetwt.jpg" width="128" height="128">](https://unified.to/?utm_source=openapi-generator&utm_medium=sponsorship&utm_campaign=oss-sponsorship)
78+
[<img src="https://openapi-generator.tech/img/companies/savetwt.jpg" width="128" height="128">](https://savetwt.com/?utm_source=openapi-generator&utm_medium=sponsorship&utm_campaign=oss-sponsorship)
7979

8080
#### Thank you GoDaddy for sponsoring the domain names, Linode for sponsoring the VPS, Checkly for sponsoring the API monitoring and Gradle for sponsoring Develocity
8181

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
generatorName: java
2+
outputDir: samples/client/others/java/restclient-enum-in-multipart
3+
library: restclient
4+
inputSpec: modules/openapi-generator/src/test/resources/3_1/enum-in-multipart.yaml
5+
templateDir: modules/openapi-generator/src/main/resources/Java
6+
additionalProperties:
7+
hideGenerationTimestamp: "true"

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustAxumServerCodegen.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,14 @@ public CodegenOperation fromOperation(String path, String httpMethod, Operation
429429
CodegenOperation op = super.fromOperation(path, httpMethod, operation, servers);
430430

431431
String underscoredOperationId = underscore(op.operationId);
432+
ArrayList<MethodOperation> pathMethods = pathMethodOpMap.get(path);
433+
434+
// Prevent multiple declarations of the same operation
435+
if (pathMethods != null && pathMethods.stream().anyMatch(pathMethod ->
436+
pathMethod.operationID.equals(underscoredOperationId))) {
437+
return op;
438+
}
439+
432440
op.vendorExtensions.put("x-operation-id", underscoredOperationId);
433441
op.vendorExtensions.put("x-uppercase-operation-id", underscoredOperationId.toUpperCase(Locale.ROOT));
434442

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaHttp4sServerCodegen.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -350,7 +350,16 @@ public Map<String, ModelsMap> postProcessAllModels(Map<String, ModelsMap> objs)
350350
// model oneOf as sealed trait
351351

352352
CodegenModel cModel = model.getModel();
353-
cModel.getVendorExtensions().put("x-isSealedTrait", !cModel.oneOf.isEmpty());
353+
354+
if (!cModel.oneOf.isEmpty()) {
355+
cModel.getVendorExtensions().put("x-isSealedTrait", true);
356+
}
357+
else if (cModel.isEnum) {
358+
cModel.getVendorExtensions().put("x-isEnum", true);
359+
360+
} else {
361+
cModel.getVendorExtensions().put("x-another", true);
362+
}
354363

355364
if (cModel.discriminator != null) {
356365
cModel.getVendorExtensions().put("x-use-discr", true);

modules/openapi-generator/src/main/resources/Java/libraries/restclient/ApiClient.mustache

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -685,6 +685,18 @@ public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} {
685685
addCookiesToRequest(cookieParams, requestBuilder);
686686
addCookiesToRequest(defaultCookies, requestBuilder);
687687
688+
if (MediaType.MULTIPART_FORM_DATA.isCompatibleWith(contentType)) {
689+
formParams.forEach(
690+
(k, v) -> {
691+
if (v instanceof java.util.ArrayList) {
692+
Object o = v.get(0);
693+
if (o != null && o.getClass().getEnumConstants() != null) {
694+
v.set(0, o.toString());
695+
}
696+
}
697+
});
698+
}
699+
688700
var selectedBody = selectBody(body, formParams, contentType);
689701
if (selectedBody != null) {
690702
requestBuilder.body(selectedBody);

modules/openapi-generator/src/main/resources/Java/libraries/resttemplate/build.gradle.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ ext {
126126
beanvalidation_version = "3.0.2"
127127
{{/useJakartaEe}}
128128
{{^useJakartaEe}}
129-
spring_web_version = "6.1.20"
129+
spring_web_version = "6.2.8"
130130
jakarta_annotation_version = "1.3.5"
131131
beanvalidation_version = "2.0.2"
132132
{{/useJakartaEe}}

modules/openapi-generator/src/main/resources/Java/libraries/resttemplate/pom.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -367,7 +367,7 @@
367367
<jackson-databind-nullable-version>0.2.6</jackson-databind-nullable-version>
368368
{{/openApiNullable}}
369369
{{#useJakartaEe}}
370-
<spring-web-version>6.1.20</spring-web-version>
370+
<spring-web-version>6.2.8</spring-web-version>
371371
<jakarta-annotation-version>2.1.1</jakarta-annotation-version>
372372
<beanvalidation-version>3.0.2</beanvalidation-version>
373373
{{/useJakartaEe}}

modules/openapi-generator/src/main/resources/Java/libraries/vertx/apiImpl.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ public class {{classname}}Impl implements {{classname}} {
112112

113113
private String encodeParameter(String parameter) {
114114
try {
115-
return URLEncoder.encode(parameter, StandardCharsets.UTF_8.name());
115+
return URLEncoder.encode(parameter, StandardCharsets.UTF_8.name()).replaceAll("\\+", "%20");
116116
} catch (UnsupportedEncodingException e) {
117117
return parameter;
118118
}

0 commit comments

Comments
 (0)