Skip to content

Commit

Permalink
[Spring] Fix reactive + delegatePattern option (OpenAPITools#978)
Browse files Browse the repository at this point in the history
  • Loading branch information
cbornet authored Sep 8, 2018
1 parent 3923160 commit 0e2e4ed
Show file tree
Hide file tree
Showing 33 changed files with 958 additions and 399 deletions.
2 changes: 1 addition & 1 deletion bin/springboot-petstore-server-reactive.sh
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ fi

# if you've executed sbt assembly previously it will use that instead.
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
ags="generate --artifact-id springboot-reactive -t modules/openapi-generator/src/main/resources/JavaSpring -i modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -g spring -o samples/server/petstore/springboot-reactive -Dreactive=true,hideGenerationTimestamp=true $@"
ags="generate --artifact-id springboot-reactive -t modules/openapi-generator/src/main/resources/JavaSpring -i modules/openapi-generator/src/test/resources/2_0/petstore-with-fake-endpoints-models-for-testing.yaml -g spring -o samples/server/petstore/springboot-reactive -Dreactive=true,delegatePattern=true,hideGenerationTimestamp=true $@"

echo "Removing files and folders under samples/server/petstore/springboot-reactive/src/main"
rm -rf samples/server/petstore/springboot-reactive/src/main
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ public interface {{classname}} {
{{>methodBody}}
{{/isDelegate}}
{{#isDelegate}}
return getDelegate().{{operationId}}({{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}{{#reactive}}, exchange{{/reactive}});
return getDelegate().{{operationId}}({{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}{{#reactive}}{{#hasParams}}, {{/hasParams}}exchange{{/reactive}});
{{/isDelegate}}
}{{/jdk8}}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,11 @@ import org.springframework.http.ResponseEntity;
import org.springframework.web.context.request.NativeWebRequest;
{{/jdk8}}
import org.springframework.web.multipart.MultipartFile;
{{#reactive}}
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
{{/reactive}}

import java.util.List;
import java.util.Map;
Expand Down Expand Up @@ -45,9 +50,9 @@ public interface {{classname}}Delegate {
/**
* @see {{classname}}#{{operationId}}
*/
{{#jdk8}}default {{/jdk8}}{{#responseWrapper}}{{.}}<{{/responseWrapper}}ResponseEntity<{{>returnTypes}}>{{#responseWrapper}}>{{/responseWrapper}} {{operationId}}({{#allParams}}{{^isFile}} {{>optionalDataType}} {{/isFile}}{{#isFile}}MultipartFile{{/isFile}} {{paramName}}{{#hasMore}},
{{/hasMore}}{{^hasMore}}{{#reactive}},
{{/reactive}}{{/hasMore}}{{/allParams}}{{#reactive}}ServerWebExchange exchange{{/reactive}}){{^jdk8}};{{/jdk8}}{{#jdk8}} {
{{#jdk8}}default {{/jdk8}}{{#responseWrapper}}{{.}}<{{/responseWrapper}}ResponseEntity<{{>returnTypes}}>{{#responseWrapper}}>{{/responseWrapper}} {{operationId}}({{#allParams}}{{^isFile}}{{^isBodyParam}}{{>optionalDataType}}{{/isBodyParam}}{{#isBodyParam}}{{^reactive}}{{{dataType}}}{{/reactive}}{{#reactive}}{{^isListContainer}}Mono{{/isListContainer}}{{#isListContainer}}Flux{{/isListContainer}}<{{{baseType}}}>{{/reactive}}{{/isBodyParam}}{{/isFile}}{{#isFile}}MultipartFile{{/isFile}} {{paramName}}{{#hasMore}},
{{/hasMore}}{{/allParams}}{{#reactive}}{{#hasParams}},
{{/hasParams}}ServerWebExchange exchange{{/reactive}}){{^jdk8}};{{/jdk8}}{{#jdk8}} {
{{>methodBody}}
}{{/jdk8}}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ default Optional<NativeWebRequest> getRequest() {
/**
* @see AnotherFakeApi#call123testSpecialTags
*/
default ResponseEntity<Client> call123testSpecialTags( Client client) {
default ResponseEntity<Client> call123testSpecialTags(Client client) {
getRequest().ifPresent(request -> {
for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) {
if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ default Optional<NativeWebRequest> getRequest() {
/**
* @see FakeApi#fakeOuterBooleanSerialize
*/
default ResponseEntity<Boolean> fakeOuterBooleanSerialize( Boolean body) {
default ResponseEntity<Boolean> fakeOuterBooleanSerialize(Boolean body) {
getRequest().ifPresent(request -> {
for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) {
if (mediaType.isCompatibleWith(MediaType.valueOf("*/*"))) {
Expand All @@ -51,7 +51,7 @@ default ResponseEntity<Boolean> fakeOuterBooleanSerialize( Boolean body) {
/**
* @see FakeApi#fakeOuterCompositeSerialize
*/
default ResponseEntity<OuterComposite> fakeOuterCompositeSerialize( OuterComposite outerComposite) {
default ResponseEntity<OuterComposite> fakeOuterCompositeSerialize(OuterComposite outerComposite) {
getRequest().ifPresent(request -> {
for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) {
if (mediaType.isCompatibleWith(MediaType.valueOf("*/*"))) {
Expand All @@ -67,7 +67,7 @@ default ResponseEntity<OuterComposite> fakeOuterCompositeSerialize( OuterComposi
/**
* @see FakeApi#fakeOuterNumberSerialize
*/
default ResponseEntity<BigDecimal> fakeOuterNumberSerialize( BigDecimal body) {
default ResponseEntity<BigDecimal> fakeOuterNumberSerialize(BigDecimal body) {
getRequest().ifPresent(request -> {
for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) {
if (mediaType.isCompatibleWith(MediaType.valueOf("*/*"))) {
Expand All @@ -83,7 +83,7 @@ default ResponseEntity<BigDecimal> fakeOuterNumberSerialize( BigDecimal body) {
/**
* @see FakeApi#fakeOuterStringSerialize
*/
default ResponseEntity<String> fakeOuterStringSerialize( String body) {
default ResponseEntity<String> fakeOuterStringSerialize(String body) {
getRequest().ifPresent(request -> {
for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) {
if (mediaType.isCompatibleWith(MediaType.valueOf("*/*"))) {
Expand All @@ -99,24 +99,24 @@ default ResponseEntity<String> fakeOuterStringSerialize( String body) {
/**
* @see FakeApi#testBodyWithFileSchema
*/
default ResponseEntity<Void> testBodyWithFileSchema( FileSchemaTestClass fileSchemaTestClass) {
default ResponseEntity<Void> testBodyWithFileSchema(FileSchemaTestClass fileSchemaTestClass) {
return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);

}

/**
* @see FakeApi#testBodyWithQueryParams
*/
default ResponseEntity<Void> testBodyWithQueryParams( String query,
User user) {
default ResponseEntity<Void> testBodyWithQueryParams(String query,
User user) {
return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);

}

/**
* @see FakeApi#testClientModel
*/
default ResponseEntity<Client> testClientModel( Client client) {
default ResponseEntity<Client> testClientModel(Client client) {
getRequest().ifPresent(request -> {
for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) {
if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
Expand All @@ -132,62 +132,62 @@ default ResponseEntity<Client> testClientModel( Client client) {
/**
* @see FakeApi#testEndpointParameters
*/
default ResponseEntity<Void> testEndpointParameters( BigDecimal number,
Double _double,
String patternWithoutDelimiter,
byte[] _byte,
Integer integer,
Integer int32,
Long int64,
Float _float,
String string,
default ResponseEntity<Void> testEndpointParameters(BigDecimal number,
Double _double,
String patternWithoutDelimiter,
byte[] _byte,
Integer integer,
Integer int32,
Long int64,
Float _float,
String string,
MultipartFile binary,
LocalDate date,
OffsetDateTime dateTime,
String password,
String paramCallback) {
LocalDate date,
OffsetDateTime dateTime,
String password,
String paramCallback) {
return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);

}

/**
* @see FakeApi#testEnumParameters
*/
default ResponseEntity<Void> testEnumParameters( List<String> enumHeaderStringArray,
String enumHeaderString,
List<String> enumQueryStringArray,
String enumQueryString,
Integer enumQueryInteger,
Double enumQueryDouble,
List<String> enumFormStringArray,
String enumFormString) {
default ResponseEntity<Void> testEnumParameters(List<String> enumHeaderStringArray,
String enumHeaderString,
List<String> enumQueryStringArray,
String enumQueryString,
Integer enumQueryInteger,
Double enumQueryDouble,
List<String> enumFormStringArray,
String enumFormString) {
return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);

}

/**
* @see FakeApi#testInlineAdditionalProperties
*/
default ResponseEntity<Void> testInlineAdditionalProperties( Map<String, String> requestBody) {
default ResponseEntity<Void> testInlineAdditionalProperties(Map<String, String> requestBody) {
return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);

}

/**
* @see FakeApi#testJsonFormData
*/
default ResponseEntity<Void> testJsonFormData( String param,
String param2) {
default ResponseEntity<Void> testJsonFormData(String param,
String param2) {
return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);

}

/**
* @see FakeApi#uploadFileWithRequiredFile
*/
default ResponseEntity<ModelApiResponse> uploadFileWithRequiredFile( Long petId,
default ResponseEntity<ModelApiResponse> uploadFileWithRequiredFile(Long petId,
MultipartFile requiredFile,
String additionalMetadata) {
String additionalMetadata) {
getRequest().ifPresent(request -> {
for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) {
if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ default Optional<NativeWebRequest> getRequest() {
/**
* @see FakeClassnameTestApi#testClassname
*/
default ResponseEntity<Client> testClassname( Client client) {
default ResponseEntity<Client> testClassname(Client client) {
getRequest().ifPresent(request -> {
for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) {
if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,24 +28,24 @@ default Optional<NativeWebRequest> getRequest() {
/**
* @see PetApi#addPet
*/
default ResponseEntity<Void> addPet( Pet pet) {
default ResponseEntity<Void> addPet(Pet pet) {
return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);

}

/**
* @see PetApi#deletePet
*/
default ResponseEntity<Void> deletePet( Long petId,
String apiKey) {
default ResponseEntity<Void> deletePet(Long petId,
String apiKey) {
return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);

}

/**
* @see PetApi#findPetsByStatus
*/
default ResponseEntity<List<Pet>> findPetsByStatus( List<String> status) {
default ResponseEntity<List<Pet>> findPetsByStatus(List<String> status) {
getRequest().ifPresent(request -> {
for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) {
if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
Expand All @@ -65,7 +65,7 @@ default ResponseEntity<List<Pet>> findPetsByStatus( List<String> status) {
/**
* @see PetApi#findPetsByTags
*/
default ResponseEntity<List<Pet>> findPetsByTags( List<String> tags) {
default ResponseEntity<List<Pet>> findPetsByTags(List<String> tags) {
getRequest().ifPresent(request -> {
for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) {
if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
Expand All @@ -85,7 +85,7 @@ default ResponseEntity<List<Pet>> findPetsByTags( List<String> tags) {
/**
* @see PetApi#getPetById
*/
default ResponseEntity<Pet> getPetById( Long petId) {
default ResponseEntity<Pet> getPetById(Long petId) {
getRequest().ifPresent(request -> {
for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) {
if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
Expand All @@ -105,26 +105,26 @@ default ResponseEntity<Pet> getPetById( Long petId) {
/**
* @see PetApi#updatePet
*/
default ResponseEntity<Void> updatePet( Pet pet) {
default ResponseEntity<Void> updatePet(Pet pet) {
return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);

}

/**
* @see PetApi#updatePetWithForm
*/
default ResponseEntity<Void> updatePetWithForm( Long petId,
String name,
String status) {
default ResponseEntity<Void> updatePetWithForm(Long petId,
String name,
String status) {
return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);

}

/**
* @see PetApi#uploadFile
*/
default ResponseEntity<ModelApiResponse> uploadFile( Long petId,
String additionalMetadata,
default ResponseEntity<ModelApiResponse> uploadFile(Long petId,
String additionalMetadata,
MultipartFile file) {
getRequest().ifPresent(request -> {
for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ default Optional<NativeWebRequest> getRequest() {
/**
* @see StoreApi#deleteOrder
*/
default ResponseEntity<Void> deleteOrder( String orderId) {
default ResponseEntity<Void> deleteOrder(String orderId) {
return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);

}
Expand All @@ -43,7 +43,7 @@ default ResponseEntity<Map<String, Integer>> getInventory() {
/**
* @see StoreApi#getOrderById
*/
default ResponseEntity<Order> getOrderById( Long orderId) {
default ResponseEntity<Order> getOrderById(Long orderId) {
getRequest().ifPresent(request -> {
for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) {
if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
Expand All @@ -63,7 +63,7 @@ default ResponseEntity<Order> getOrderById( Long orderId) {
/**
* @see StoreApi#placeOrder
*/
default ResponseEntity<Order> placeOrder( Order order) {
default ResponseEntity<Order> placeOrder(Order order) {
getRequest().ifPresent(request -> {
for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) {
if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,39 +27,39 @@ default Optional<NativeWebRequest> getRequest() {
/**
* @see UserApi#createUser
*/
default ResponseEntity<Void> createUser( User user) {
default ResponseEntity<Void> createUser(User user) {
return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);

}

/**
* @see UserApi#createUsersWithArrayInput
*/
default ResponseEntity<Void> createUsersWithArrayInput( List<User> user) {
default ResponseEntity<Void> createUsersWithArrayInput(List<User> user) {
return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);

}

/**
* @see UserApi#createUsersWithListInput
*/
default ResponseEntity<Void> createUsersWithListInput( List<User> user) {
default ResponseEntity<Void> createUsersWithListInput(List<User> user) {
return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);

}

/**
* @see UserApi#deleteUser
*/
default ResponseEntity<Void> deleteUser( String username) {
default ResponseEntity<Void> deleteUser(String username) {
return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);

}

/**
* @see UserApi#getUserByName
*/
default ResponseEntity<User> getUserByName( String username) {
default ResponseEntity<User> getUserByName(String username) {
getRequest().ifPresent(request -> {
for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) {
if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
Expand All @@ -79,8 +79,8 @@ default ResponseEntity<User> getUserByName( String username) {
/**
* @see UserApi#loginUser
*/
default ResponseEntity<String> loginUser( String username,
String password) {
default ResponseEntity<String> loginUser(String username,
String password) {
return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);

}
Expand All @@ -96,8 +96,8 @@ default ResponseEntity<Void> logoutUser() {
/**
* @see UserApi#updateUser
*/
default ResponseEntity<Void> updateUser( String username,
User user) {
default ResponseEntity<Void> updateUser(String username,
User user) {
return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,6 @@ public interface AnotherFakeApiDelegate {
/**
* @see AnotherFakeApi#call123testSpecialTags
*/
ResponseEntity<Client> call123testSpecialTags( Client client);
ResponseEntity<Client> call123testSpecialTags(Client client);

}
Loading

0 comments on commit 0e2e4ed

Please sign in to comment.