Skip to content

Commit e427ec4

Browse files
authored
Merge branch 'OpenAPITools:master' into fix/19973
2 parents ded833e + dbc5d09 commit e427ec4

File tree

53 files changed

+266
-99
lines changed

Some content is hidden

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

53 files changed

+266
-99
lines changed

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

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,8 @@ public String getTypeDeclaration(Schema p) {
387387
|| ModelUtils.isFileSchema(p) || ModelUtils.isUUIDSchema(p)
388388
|| languageSpecificPrimitives.contains(openAPIType)) {
389389
return toModelName(openAPIType);
390+
} else if (ModelUtils.isObjectSchema(p)) {
391+
return "std::shared_ptr<Object>";
390392
} else if(typeMapping.containsKey(super.getSchemaType(p))) {
391393
return openAPIType;
392394
}

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/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
}

modules/openapi-generator/src/main/resources/JavaJaxRS/spec/libraries/quarkus/apiInterface.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,4 @@
4141
{{^vendorExtensions.x-java-is-response-void}}@org.eclipse.microprofile.openapi.annotations.media.Content(schema = @org.eclipse.microprofile.openapi.annotations.media.Schema(implementation = {{{baseType}}}.class{{#vendorExtensions.x-microprofile-open-api-return-schema-container}}, type = {{{.}}} {{/vendorExtensions.x-microprofile-open-api-return-schema-container}}{{#vendorExtensions.x-microprofile-open-api-return-unique-items}}, uniqueItems = true {{/vendorExtensions.x-microprofile-open-api-return-unique-items}})){{/vendorExtensions.x-java-is-response-void}}
4242
}){{^-last}},{{/-last}}{{/responses}}
4343
}){{/hasProduces}}{{/useMicroProfileOpenAPIAnnotations}}
44-
{{#supportAsync}}{{>returnAsyncTypeInterface}}{{/supportAsync}}{{^supportAsync}}{{#returnResponse}}Response{{/returnResponse}}{{^returnResponse}}{{>returnTypeInterface}}{{/returnResponse}}{{/supportAsync}} {{nickname}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{^-last}},{{/-last}}{{/allParams}});
44+
{{#supportAsync}}{{>returnAsyncTypeInterface}}{{/supportAsync}}{{^supportAsync}}{{#returnResponse}}Response{{/returnResponse}}{{^returnResponse}}{{>returnTypeInterface}}{{/returnResponse}}{{/supportAsync}} {{nickname}}({{#allParams}}{{>queryParams}}{{>pathParams}}{{>cookieParams}}{{>headerParams}}{{>bodyParams}}{{>formParams}}{{^-last}},{{/-last}}{{/allParams}});

modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/model-header.mustache

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ public:
123123
/// {{.}}
124124
/// </summary>
125125
{{/enumDescription}}
126-
{{classname}}_{{{name}}}{{^last}},{{/last}}
126+
{{{name}}}{{^last}},{{/last}}
127127
{{/enumVars}}
128128
{{/allowableValues}}
129129
};
@@ -136,14 +136,14 @@ public:
136136
std::map<e{{classname}},utility::string_t> enumToStrMap = {
137137
{{#allowableValues}}
138138
{{#enumVars}}
139-
{ e{{classname}}::{{classname}}_{{{name}}}, "{{{name}}}" }{{^-last}},{{/-last}}
139+
{ e{{classname}}::{{{name}}}, _XPLATSTR("{{{name}}}") }{{^-last}},{{/-last}}
140140
{{/enumVars}}
141141
{{/allowableValues}}
142142
};
143143
std::map<utility::string_t,e{{classname}}> strToEnumMap = {
144144
{{#allowableValues}}
145145
{{#enumVars}}
146-
{ "{{{name}}}", e{{classname}}::{{classname}}_{{{name}}} }{{^-last}},{{/-last}}
146+
{ _XPLATSTR("{{{name}}}"), e{{classname}}::{{{name}}} }{{^-last}},{{/-last}}
147147
{{/enumVars}}
148148
{{/allowableValues}}
149149
};
@@ -185,8 +185,11 @@ public:
185185
{{#isEnum}}
186186
enum class {{#isContainer}}{{{enumName}}}{{/isContainer}}{{^isContainer}}{{{datatypeWithEnum}}}{{/isContainer}}
187187
{
188-
{{#allowableValues}}{{#enumVars}}{{value}},
189-
{{/enumVars}}{{/allowableValues}}
188+
{{#allowableValues}}
189+
{{#enumVars}}
190+
{{{name}}}{{^last}},{{/last}}
191+
{{/enumVars}}
192+
{{/allowableValues}}
190193
};
191194
{{#description}}
192195
/// <summary>

modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/model-source.mustache

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ using EnumUnderlyingType = {{#isNumeric}}int64_t{{/isNumeric}}{{^isNumeric}}util
7272
{
7373
{{#enumVars}}
7474
case {{value}}:
75-
return {{classname}}::e{{classname}}::{{classname}}_{{name}};
75+
return {{classname}}::e{{classname}}::{{name}};
7676
{{#-last}}
7777
default:
7878
break;
@@ -83,7 +83,7 @@ using EnumUnderlyingType = {{#isNumeric}}int64_t{{/isNumeric}}{{^isNumeric}}util
8383
{{^isNumeric}}
8484
{{#enumVars}}
8585
if (val == utility::conversions::to_string_t(_XPLATSTR("{{{value}}}")))
86-
return {{classname}}::e{{classname}}::{{classname}}_{{name}};
86+
return {{classname}}::e{{classname}}::{{name}};
8787
{{/enumVars}}
8888
{{/isNumeric}}
8989
{{/allowableValues}}
@@ -96,7 +96,7 @@ EnumUnderlyingType fromEnum({{classname}}::e{{classname}} e)
9696
switch (e)
9797
{
9898
{{#enumVars}}
99-
case {{classname}}::e{{classname}}::{{classname}}_{{name}}:
99+
case {{classname}}::e{{classname}}::{{name}}:
100100
return {{#isNumeric}}{{value}}{{/isNumeric}}{{^isNumeric}}_XPLATSTR("{{value}}"){{/isNumeric}};
101101
{{#-last}}
102102
default:
@@ -354,7 +354,7 @@ bool {{classname}}::fromMultiPart(std::shared_ptr<MultipartFormData> multipart,
354354
{
355355
{{#allowableValues}}{{#enumVars}}
356356
if (value == utility::conversions::to_string_t("{{value}}")) {
357-
return {{#isContainer}}{{{enumName}}}{{/isContainer}}{{^isContainer}}{{{datatypeWithEnum}}}{{/isContainer}}::{{value}};
357+
return {{#isContainer}}{{{enumName}}}{{/isContainer}}{{^isContainer}}{{{datatypeWithEnum}}}{{/isContainer}}::{{name}};
358358
}
359359
{{/enumVars}}{{/allowableValues}}
360360
throw std::invalid_argument("Invalid value for conversion to {{{datatypeWithEnum}}}");
@@ -369,7 +369,7 @@ const {{dataType}} {{classname}}::from{{{datatypeWithEnum}}}(const {{{datatypeWi
369369
switch(value)
370370
{
371371
{{#allowableValues}}{{#enumVars}}
372-
case {{#isContainer}}{{{enumName}}}{{/isContainer}}{{^isContainer}}{{{datatypeWithEnum}}}{{/isContainer}}::{{value}}: return utility::conversions::to_string_t("{{value}}");
372+
case {{#isContainer}}{{{enumName}}}{{/isContainer}}{{^isContainer}}{{{datatypeWithEnum}}}{{/isContainer}}::{{name}}: return utility::conversions::to_string_t("{{value}}");
373373
{{/enumVars}}{{/allowableValues}}
374374
}
375375
}

0 commit comments

Comments
 (0)