From cb19241c0d52550817676b61c8adf93866bbc4b8 Mon Sep 17 00:00:00 2001 From: AxelRay <110029405+axelray-dev@users.noreply.github.com> Date: Mon, 5 Oct 2026 19:10:16 +0800 Subject: [PATCH 1/3] fix(java-spring): mark HTTP interface configurators as generated --- .../httpInterfacesConfiguration.mustache | 3 ++ ...roxyFactoryInterfacesConfigurator.mustache | 3 ++ .../java/spring/SpringCodegenTest.java | 31 +++++++++++++++++++ 3 files changed, 37 insertions(+) diff --git a/modules/openapi-generator/src/main/resources/JavaSpring/libraries/spring-http-interface/httpInterfacesConfiguration.mustache b/modules/openapi-generator/src/main/resources/JavaSpring/libraries/spring-http-interface/httpInterfacesConfiguration.mustache index a3186536f28b..7a9f99f37efb 100644 --- a/modules/openapi-generator/src/main/resources/JavaSpring/libraries/spring-http-interface/httpInterfacesConfiguration.mustache +++ b/modules/openapi-generator/src/main/resources/JavaSpring/libraries/spring-http-interface/httpInterfacesConfiguration.mustache @@ -21,6 +21,9 @@ import org.springframework.web.client.RestClient; import org.springframework.web.client.support.RestClientAdapter; {{/reactive}} import org.springframework.web.service.invoker.HttpServiceProxyFactory; +import {{javaxPackage}}.annotation.Generated; + +{{>generatedAnnotation}} public abstract class HttpInterfacesAbstractConfigurator { diff --git a/modules/openapi-generator/src/main/resources/JavaSpring/libraries/spring-http-interface/httpServiceProxyFactoryInterfacesConfigurator.mustache b/modules/openapi-generator/src/main/resources/JavaSpring/libraries/spring-http-interface/httpServiceProxyFactoryInterfacesConfigurator.mustache index e18b071bf56a..e87449f3b5c1 100644 --- a/modules/openapi-generator/src/main/resources/JavaSpring/libraries/spring-http-interface/httpServiceProxyFactoryInterfacesConfigurator.mustache +++ b/modules/openapi-generator/src/main/resources/JavaSpring/libraries/spring-http-interface/httpServiceProxyFactoryInterfacesConfigurator.mustache @@ -13,6 +13,9 @@ import {{apiPackage}}.{{classname}}; import org.springframework.context.annotation.Bean; import org.springframework.web.service.invoker.HttpServiceProxyFactory; +import {{javaxPackage}}.annotation.Generated; + +{{>generatedAnnotation}} public abstract class HttpInterfacesAbstractConfigurator { diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java index 1185da2824c7..9d2aa7cbfe1f 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java @@ -7164,6 +7164,37 @@ public void testPathConstantGeneratedForSpringHttpInterfaceLibrary() throws IOEx .containsWithNameAndAttributes("HttpExchange", ImmutableMap.of("value", "PetApi.PATH_GET_PET_BY_ID")); } + @Test + public void testHttpInterfacesAbstractConfiguratorIsGenerated() throws IOException { + final SpringCodegen defaultConfiguratorCodegen = new SpringCodegen(); + defaultConfiguratorCodegen.setLibrary(SPRING_HTTP_INTERFACE); + defaultConfiguratorCodegen.setUseSpringBoot3(true); + + final Map defaultConfiguratorFiles = generateFiles( + defaultConfiguratorCodegen, "src/test/resources/3_0/petstore.yaml"); + + assertGeneratedAnnotation(defaultConfiguratorFiles.get("HttpInterfacesAbstractConfigurator.java")); + + final SpringCodegen proxyFactoryConfiguratorCodegen = new SpringCodegen(); + proxyFactoryConfiguratorCodegen.setLibrary(SPRING_HTTP_INTERFACE); + proxyFactoryConfiguratorCodegen.setUseSpringBoot3(true); + proxyFactoryConfiguratorCodegen.setUseHttpServiceProxyFactoryInterfacesConfigurator(true); + + final Map proxyFactoryConfiguratorFiles = generateFiles( + proxyFactoryConfiguratorCodegen, "src/test/resources/3_0/petstore.yaml"); + + assertGeneratedAnnotation(proxyFactoryConfiguratorFiles.get("HttpInterfacesAbstractConfigurator.java")); + } + + private void assertGeneratedAnnotation(File file) { + JavaFileAssert.assertThat(file) + .hasImports("jakarta.annotation.Generated") + .assertTypeAnnotations() + .containsWithNameAndAttributes("Generated", ImmutableMap.of( + "value", "\"org.openapitools.codegen.languages.SpringCodegen\"" + )); + } + @Test public void testClientRegistrationIdAnnotationNotPresentWhenNotConfigured() throws IOException { final SpringCodegen codegen = new SpringCodegen(); From 8d29b1002973761f660d5fda97ec35a71e47712a Mon Sep 17 00:00:00 2001 From: AxelRay <110029405+axelray-dev@users.noreply.github.com> Date: Tue, 6 Oct 2026 07:02:24 +0800 Subject: [PATCH 2/3] chore(java-spring): update HTTP interface samples --- .../configuration/HttpInterfacesAbstractConfigurator.java | 2 ++ .../configuration/HttpInterfacesAbstractConfigurator.java | 2 ++ .../configuration/HttpInterfacesAbstractConfigurator.java | 2 ++ .../configuration/HttpInterfacesAbstractConfigurator.java | 2 ++ .../configuration/HttpInterfacesAbstractConfigurator.java | 2 ++ .../configuration/HttpInterfacesAbstractConfigurator.java | 2 ++ .../configuration/HttpInterfacesAbstractConfigurator.java | 2 ++ .../configuration/HttpInterfacesAbstractConfigurator.java | 2 ++ .../configuration/HttpInterfacesAbstractConfigurator.java | 2 ++ 9 files changed, 18 insertions(+) diff --git a/samples/client/petstore/spring-http-interface-bean-validation/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java b/samples/client/petstore/spring-http-interface-bean-validation/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java index 41bd4967fd4c..6f6d4b7a3d96 100644 --- a/samples/client/petstore/spring-http-interface-bean-validation/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java +++ b/samples/client/petstore/spring-http-interface-bean-validation/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java @@ -16,7 +16,9 @@ import org.springframework.web.client.RestClient; import org.springframework.web.client.support.RestClientAdapter; import org.springframework.web.service.invoker.HttpServiceProxyFactory; +import jakarta.annotation.Generated; +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.26.0-SNAPSHOT") public abstract class HttpInterfacesAbstractConfigurator { private final RestClient client; diff --git a/samples/client/petstore/spring-http-interface-noResponseEntity/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java b/samples/client/petstore/spring-http-interface-noResponseEntity/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java index 41bd4967fd4c..6f6d4b7a3d96 100644 --- a/samples/client/petstore/spring-http-interface-noResponseEntity/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java +++ b/samples/client/petstore/spring-http-interface-noResponseEntity/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java @@ -16,7 +16,9 @@ import org.springframework.web.client.RestClient; import org.springframework.web.client.support.RestClientAdapter; import org.springframework.web.service.invoker.HttpServiceProxyFactory; +import jakarta.annotation.Generated; +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.26.0-SNAPSHOT") public abstract class HttpInterfacesAbstractConfigurator { private final RestClient client; diff --git a/samples/client/petstore/spring-http-interface-oauth/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java b/samples/client/petstore/spring-http-interface-oauth/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java index 1230a0a268d3..3d106f25e89b 100644 --- a/samples/client/petstore/spring-http-interface-oauth/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java +++ b/samples/client/petstore/spring-http-interface-oauth/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java @@ -11,7 +11,9 @@ import org.springframework.web.client.RestClient; import org.springframework.web.client.support.RestClientAdapter; import org.springframework.web.service.invoker.HttpServiceProxyFactory; +import jakarta.annotation.Generated; +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.26.0-SNAPSHOT") public abstract class HttpInterfacesAbstractConfigurator { private final RestClient client; diff --git a/samples/client/petstore/spring-http-interface-reactive-bean-validation/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java b/samples/client/petstore/spring-http-interface-reactive-bean-validation/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java index ea68da8d0f84..34b0d11a1766 100644 --- a/samples/client/petstore/spring-http-interface-reactive-bean-validation/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java +++ b/samples/client/petstore/spring-http-interface-reactive-bean-validation/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java @@ -16,7 +16,9 @@ import org.springframework.web.reactive.function.client.WebClient; import org.springframework.web.reactive.function.client.support.WebClientAdapter; import org.springframework.web.service.invoker.HttpServiceProxyFactory; +import jakarta.annotation.Generated; +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.26.0-SNAPSHOT") public abstract class HttpInterfacesAbstractConfigurator { private final WebClient client; diff --git a/samples/client/petstore/spring-http-interface-reactive-noResponseEntity/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java b/samples/client/petstore/spring-http-interface-reactive-noResponseEntity/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java index 0a0765feef9b..0b7da3ab24e1 100644 --- a/samples/client/petstore/spring-http-interface-reactive-noResponseEntity/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java +++ b/samples/client/petstore/spring-http-interface-reactive-noResponseEntity/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java @@ -16,7 +16,9 @@ import org.springframework.web.reactive.function.client.WebClient; import org.springframework.web.reactive.function.client.support.WebClientAdapter; import org.springframework.web.service.invoker.HttpServiceProxyFactory; +import jakarta.annotation.Generated; +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.26.0-SNAPSHOT") public abstract class HttpInterfacesAbstractConfigurator { private final WebClient client; diff --git a/samples/client/petstore/spring-http-interface-reactive/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java b/samples/client/petstore/spring-http-interface-reactive/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java index 0a0765feef9b..0b7da3ab24e1 100644 --- a/samples/client/petstore/spring-http-interface-reactive/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java +++ b/samples/client/petstore/spring-http-interface-reactive/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java @@ -16,7 +16,9 @@ import org.springframework.web.reactive.function.client.WebClient; import org.springframework.web.reactive.function.client.support.WebClientAdapter; import org.springframework.web.service.invoker.HttpServiceProxyFactory; +import jakarta.annotation.Generated; +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.26.0-SNAPSHOT") public abstract class HttpInterfacesAbstractConfigurator { private final WebClient client; diff --git a/samples/client/petstore/spring-http-interface-springboot-4/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java b/samples/client/petstore/spring-http-interface-springboot-4/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java index 41bd4967fd4c..6f6d4b7a3d96 100644 --- a/samples/client/petstore/spring-http-interface-springboot-4/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java +++ b/samples/client/petstore/spring-http-interface-springboot-4/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java @@ -16,7 +16,9 @@ import org.springframework.web.client.RestClient; import org.springframework.web.client.support.RestClientAdapter; import org.springframework.web.service.invoker.HttpServiceProxyFactory; +import jakarta.annotation.Generated; +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.26.0-SNAPSHOT") public abstract class HttpInterfacesAbstractConfigurator { private final RestClient client; diff --git a/samples/client/petstore/spring-http-interface-useHttpServiceProxyFactoryInterfacesConfigurator/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java b/samples/client/petstore/spring-http-interface-useHttpServiceProxyFactoryInterfacesConfigurator/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java index 45bffb902775..74c70f3712e3 100644 --- a/samples/client/petstore/spring-http-interface-useHttpServiceProxyFactoryInterfacesConfigurator/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java +++ b/samples/client/petstore/spring-http-interface-useHttpServiceProxyFactoryInterfacesConfigurator/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java @@ -14,7 +14,9 @@ import org.springframework.context.annotation.Bean; import org.springframework.web.service.invoker.HttpServiceProxyFactory; +import jakarta.annotation.Generated; +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.26.0-SNAPSHOT") public abstract class HttpInterfacesAbstractConfigurator { private final HttpServiceProxyFactory factory; diff --git a/samples/client/petstore/spring-http-interface/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java b/samples/client/petstore/spring-http-interface/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java index 14abfcdb5569..9064ef2544cc 100644 --- a/samples/client/petstore/spring-http-interface/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java +++ b/samples/client/petstore/spring-http-interface/src/main/java/org/openapitools/configuration/HttpInterfacesAbstractConfigurator.java @@ -16,7 +16,9 @@ import org.springframework.web.client.RestClient; import org.springframework.web.client.support.RestClientAdapter; import org.springframework.web.service.invoker.HttpServiceProxyFactory; +import jakarta.annotation.Generated; +@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", comments = "Generator version: 7.26.0-SNAPSHOT") public abstract class HttpInterfacesAbstractConfigurator { private final RestClient client; From eb895c233fb7cb73f3154cf74d24757efb75214e Mon Sep 17 00:00:00 2001 From: AxelRay <110029405+axelray-dev@users.noreply.github.com> Date: Tue, 6 Oct 2026 07:59:39 +0800 Subject: [PATCH 3/3] fix(samples): refresh nullable Go union docs --- .../others/go/oneof-not-enum/docs/EnumNullUnion.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/samples/client/others/go/oneof-not-enum/docs/EnumNullUnion.md b/samples/client/others/go/oneof-not-enum/docs/EnumNullUnion.md index 3dcae4fc7ccd..34b0d3134b3d 100644 --- a/samples/client/others/go/oneof-not-enum/docs/EnumNullUnion.md +++ b/samples/client/others/go/oneof-not-enum/docs/EnumNullUnion.md @@ -4,7 +4,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**Kind** | Pointer to **string** | | [optional] +**Kind** | Pointer to **NullableString** | | [optional] ## Methods @@ -50,6 +50,16 @@ SetKind sets Kind field to given value. HasKind returns a boolean if a field has been set. +### SetKindNil + +`func (o *EnumNullUnion) SetKindNil(b bool)` + + SetKindNil sets the value for Kind to be an explicit nil + +### UnsetKind +`func (o *EnumNullUnion) UnsetKind()` + +UnsetKind ensures that no value is present for Kind, not even an explicit nil [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)