Skip to content

Commit e87cfcf

Browse files
committed
fix compilation
1 parent 9026044 commit e87cfcf

14 files changed

Lines changed: 362 additions & 173 deletions

File tree

modules/openapi-generator/src/main/resources/JavaSpring/methodBody.mustache

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ return CompletableFuture.supplyAsync(()-> {
3535
{{#reactive}}
3636
{{^vendorExtensions.x-sse}}
3737
Mono<Void> result = Mono.empty();
38-
{{#examples}}
38+
{{#includeHttpRequestContext}} {{#examples}}
3939
{{#-first}}
4040
exchange.getResponse().setStatusCode({{#returnSuccessCode}}HttpStatus.valueOf({{{statusCode}}}){{/returnSuccessCode}}{{^returnSuccessCode}}HttpStatus.NOT_IMPLEMENTED{{/returnSuccessCode}});
4141
for (MediaType mediaType : exchange.getRequest().getHeaders().getAccept()) {
@@ -48,14 +48,14 @@ Mono<Void> result = Mono.empty();
4848
{{#-last}}
4949
}
5050
{{/-last}}
51-
{{/examples}}
52-
{{^examples}}
51+
{{/examples}}{{/includeHttpRequestContext}}
52+
{{^examples}}{{#includeHttpRequestContext}}
5353
exchange.getResponse().setStatusCode({{#returnSuccessCode}}HttpStatus.OK{{/returnSuccessCode}}{{^returnSuccessCode}}HttpStatus.NOT_IMPLEMENTED{{/returnSuccessCode}});
54-
{{/examples}}
54+
{{/includeHttpRequestContext}}{{/examples}}
5555
return result{{#allParams}}{{#isBodyParam}}{{^isArray}}{{#paramName}}.then({{.}}){{/paramName}}{{/isArray}}{{#isArray}}{{#paramName}}.thenMany({{.}}){{/paramName}}{{/isArray}}{{/isBodyParam}}{{/allParams}}{{#isArray}}{{#useResponseEntity}}.then(Mono.empty()){{/useResponseEntity}}{{^useResponseEntity}}.thenMany(Flux.empty()){{/useResponseEntity}}{{/isArray}}{{^isArray}}.then(Mono.empty()){{/isArray}};
5656
{{/vendorExtensions.x-sse}}
5757
{{#vendorExtensions.x-sse}}
58-
exchange.getResponse().setStatusCode({{#returnSuccessCode}}HttpStatus.valueOf({{{statusCode}}}){{/returnSuccessCode}}{{^returnSuccessCode}}HttpStatus.NOT_IMPLEMENTED{{/returnSuccessCode}});
58+
{{#includeHttpRequestContext}}exchange.getResponse().setStatusCode({{#returnSuccessCode}}HttpStatus.valueOf({{{statusCode}}}){{/returnSuccessCode}}{{^returnSuccessCode}}HttpStatus.NOT_IMPLEMENTED{{/returnSuccessCode}});{{/includeHttpRequestContext}}
5959
return Flux.empty();
6060
{{/vendorExtensions.x-sse}}
6161
{{/reactive}}

modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java

Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -734,6 +734,157 @@ public void testMultipartBoot() throws IOException {
734734
.containsWithNameAndAttributes("RequestPart", ImmutableMap.of("value", "\"statusArray\"", "required", "false"));
735735
}
736736

737+
@Test
738+
public void testSpringBoot3ReactiveDefaultsToIncludeHttpRequestContextTrue() throws IOException {
739+
final SpringCodegen codegen = new SpringCodegen();
740+
codegen.setReactive(true);
741+
codegen.setLibrary("spring-boot");
742+
codegen.setUseSpringBoot3(true);
743+
744+
final Map<String, File> files = generateFiles(codegen, "src/test/resources/3_0/petstore.yaml");
745+
JavaFileAssert.assertThat(files.get("UserApi.java"))
746+
.assertMethod("createUser", "Mono<User>", "ServerWebExchange")
747+
.assertParameter("exchange").hasType("ServerWebExchange")
748+
.assertParameterAnnotations()
749+
.containsWithNameAndAttributes("Parameter", ImmutableMap.of("hidden", "true"))
750+
.doesNotContainWithName("ApiIgnore");
751+
752+
JavaFileAssert.assertThat(files.get("UserApi.java"))
753+
.hasNoImports("jakarta.servlet.http.HttpServletRequest", "javax.servlet.http.HttpServletRequest")
754+
.hasImports("org.springframework.web.server.ServerWebExchange");
755+
}
756+
757+
@Test
758+
public void testSpringBootReactiveDefaultsToIncludeHttpRequestContextTrue() throws IOException {
759+
final SpringCodegen codegen = new SpringCodegen();
760+
codegen.setReactive(true);
761+
codegen.setLibrary("spring-boot");
762+
codegen.setUseSpringBoot3(false);
763+
codegen.additionalProperties().put(DOCUMENTATION_PROVIDER, "springfox");
764+
765+
final Map<String, File> files = generateFiles(codegen, "src/test/resources/3_0/petstore.yaml");
766+
JavaFileAssert.assertThat(files.get("UserApi.java"))
767+
.assertMethod("createUser", "Mono<User>", "ServerWebExchange")
768+
.assertParameter("exchange").hasType("ServerWebExchange")
769+
.assertParameterAnnotations()
770+
.containsWithName("ApiIgnore")
771+
.doesNotContainWithName("Parameter");
772+
773+
JavaFileAssert.assertThat(files.get("UserApi.java"))
774+
.hasNoImports("jakarta.servlet.http.HttpServletRequest", "javax.servlet.http.HttpServletRequest")
775+
.hasImports("org.springframework.web.server.ServerWebExchange");
776+
}
777+
778+
779+
@Test
780+
public void testSpringBoot3ReactiveIncludeHttpRequestContextFalse() throws IOException {
781+
final SpringCodegen codegen = new SpringCodegen();
782+
codegen.setReactive(true);
783+
codegen.setLibrary("spring-boot");
784+
codegen.setUseSpringBoot3(true);
785+
codegen.additionalProperties().put(INCLUDE_HTTP_REQUEST_CONTEXT, "false");
786+
787+
final Map<String, File> files = generateFiles(codegen, "src/test/resources/3_0/petstore.yaml");
788+
JavaFileAssert.assertThat(files.get("UserApi.java"))
789+
.assertMethod("createUser", "Mono<User>");
790+
791+
JavaFileAssert.assertThat(files.get("UserApi.java"))
792+
.hasNoMethod("createUser", "Mono<User>", "ServerWebExchange");
793+
794+
JavaFileAssert.assertThat(files.get("UserApi.java"))
795+
.hasNoImports("jakarta.servlet.http.HttpServletRequest", "javax.servlet.http.HttpServletRequest", "org.springframework.web.server.ServerWebExchange");
796+
}
797+
798+
@Test
799+
public void testSpringBootReactiveIncludeHttpRequestContextFalse() throws IOException {
800+
final SpringCodegen codegen = new SpringCodegen();
801+
codegen.setReactive(true);
802+
codegen.setLibrary("spring-boot");
803+
codegen.setUseSpringBoot3(false);
804+
codegen.additionalProperties().put(DOCUMENTATION_PROVIDER, "springfox");
805+
codegen.additionalProperties().put(INCLUDE_HTTP_REQUEST_CONTEXT, "false");
806+
807+
final Map<String, File> files = generateFiles(codegen, "src/test/resources/3_0/petstore.yaml");
808+
JavaFileAssert.assertThat(files.get("UserApi.java"))
809+
.assertMethod("createUser", "Mono<User>");
810+
811+
JavaFileAssert.assertThat(files.get("UserApi.java"))
812+
.hasNoMethod("createUser", "Mono<User>", "ServerWebExchange");
813+
814+
JavaFileAssert.assertThat(files.get("UserApi.java"))
815+
.hasNoImports("jakarta.servlet.http.HttpServletRequest", "javax.servlet.http.HttpServletRequest", "org.springframework.web.server.ServerWebExchange");
816+
}
817+
818+
@Test
819+
public void testSpringBoot3BlockingDefaultsToIncludeHttpRequestContextFalse() throws IOException {
820+
final SpringCodegen codegen = new SpringCodegen();
821+
codegen.setReactive(false);
822+
codegen.setLibrary("spring-boot");
823+
codegen.setUseSpringBoot3(true);
824+
825+
final Map<String, File> files = generateFiles(codegen, "src/test/resources/3_0/petstore.yaml");
826+
JavaFileAssert.assertThat(files.get("UserApi.java"))
827+
.assertMethod("createUser", "User");
828+
829+
JavaFileAssert.assertThat(files.get("UserApi.java"))
830+
.hasNoImports("jakarta.servlet.http.HttpServletRequest", "javax.servlet.http.HttpServletRequest", "org.springframework.web.server.ServerWebExchange");
831+
832+
JavaFileAssert.assertThat(files.get("UserApi.java"))
833+
.hasNoMethod("createUser", "User", "HttpServletRequest");
834+
}
835+
836+
837+
@Test
838+
public void testSpringBoot3BlockingIncludeHttpRequestContextTrue() throws IOException {
839+
final SpringCodegen codegen = new SpringCodegen();
840+
codegen.setReactive(false);
841+
codegen.setLibrary("spring-boot");
842+
codegen.setUseSpringBoot3(true);
843+
codegen.additionalProperties().put(INCLUDE_HTTP_REQUEST_CONTEXT, "true");
844+
845+
final Map<String, File> files = generateFiles(codegen, "src/test/resources/3_0/petstore.yaml");
846+
JavaFileAssert.assertThat(files.get("UserApi.java"))
847+
.hasNoMethod("createUser", "User");
848+
849+
JavaFileAssert.assertThat(files.get("UserApi.java"))
850+
.hasImports("jakarta.servlet.http.HttpServletRequest")
851+
.hasNoImports("javax.servlet.http.HttpServletRequest", "org.springframework.web.server.ServerWebExchange");
852+
853+
JavaFileAssert.assertThat(files.get("UserApi.java"))
854+
.assertMethod("createUser", "User", "HttpServletRequest")
855+
.assertParameter("servletRequest").hasType("HttpServletRequest")
856+
.assertParameterAnnotations()
857+
.containsWithNameAndAttributes("Parameter", ImmutableMap.of("hidden", "true"))
858+
.doesNotContainWithName("ApiIgnore");
859+
}
860+
861+
862+
@Test
863+
public void testSpringBootBlockingIncludeHttpRequestContextTrue() throws IOException {
864+
final SpringCodegen codegen = new SpringCodegen();
865+
codegen.setReactive(false);
866+
codegen.setLibrary("spring-boot");
867+
codegen.setUseSpringBoot3(false);
868+
codegen.additionalProperties().put(DOCUMENTATION_PROVIDER, "springfox");
869+
codegen.additionalProperties().put(INCLUDE_HTTP_REQUEST_CONTEXT, "true");
870+
871+
final Map<String, File> files = generateFiles(codegen, "src/test/resources/3_0/petstore.yaml");
872+
JavaFileAssert.assertThat(files.get("UserApi.java"))
873+
.hasNoMethod("createUser", "User");
874+
875+
JavaFileAssert.assertThat(files.get("UserApi.java"))
876+
.hasImports("jakarta.servlet.http.HttpServletRequest")
877+
.hasNoImports("javax.servlet.http.HttpServletRequest", "org.springframework.web.server.ServerWebExchange");
878+
879+
JavaFileAssert.assertThat(files.get("UserApi.java"))
880+
.assertMethod("createUser", "User", "HttpServletRequest")
881+
.assertParameter("servletRequest").hasType("HttpServletRequest")
882+
.assertParameterAnnotations()
883+
.containsWithName("ApiIgnore")
884+
.doesNotContainWithName("Parameter");
885+
}
886+
887+
737888
@Test
738889
public void testReactiveMultipartBoot() throws IOException {
739890
final SpringCodegen codegen = new SpringCodegen();

samples/server/petstore/springboot-reactive-noResponseEntity/src/main/java/org/openapitools/api/AnotherFakeApiDelegate.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,8 @@ default Optional<NativeWebRequest> getRequest() {
3838
*/
3939
default Mono<Client> call123testSpecialTags(Mono<Client> client) {
4040
Mono<Void> result = Mono.empty();
41-
exchange.getResponse().setStatusCode(HttpStatus.NOT_IMPLEMENTED);
42-
for (MediaType mediaType : exchange.getRequest().getHeaders().getAccept()) {
43-
if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
44-
String exampleString = "{ \"client\" : \"client\" }";
45-
result = ApiUtil.getExampleResponse(exchange, MediaType.valueOf("application/json"), exampleString);
46-
break;
47-
}
48-
}
41+
42+
4943
return result.then(client).then(Mono.empty());
5044

5145
}

0 commit comments

Comments
 (0)