Skip to content

Commit 4183bfc

Browse files
committed
updated Java8 spring sample with CompletableFuture feature #3190
1 parent 2b22efc commit 4183bfc

File tree

3 files changed

+43
-50
lines changed

3 files changed

+43
-50
lines changed

samples/server/petstore/spring-mvc-j8-async/src/main/java/io/swagger/api/PetApi.java

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
import org.springframework.web.multipart.MultipartFile;
1818

1919
import java.util.List;
20-
import java.util.concurrent.Callable;
20+
import java.util.concurrent.CompletableFuture;
2121

2222

2323
@Api(value = "pet", description = "the pet API")
@@ -35,9 +35,9 @@ public interface PetApi {
3535
produces = { "application/xml", "application/json" },
3636
consumes = { "application/json", "application/xml" },
3737
method = RequestMethod.POST)
38-
default Callable<ResponseEntity<Void>> addPet(@ApiParam(value = "Pet object that needs to be added to the store" ,required=true ) @RequestBody Pet body) {
38+
default CompletableFuture<ResponseEntity<Void>> addPet(@ApiParam(value = "Pet object that needs to be added to the store" ,required=true ) @RequestBody Pet body) {
3939
// do some magic!
40-
return () -> new ResponseEntity<Void>(HttpStatus.OK);
40+
return CompletableFuture.completedFuture(new ResponseEntity<Void>(HttpStatus.OK));
4141
}
4242

4343

@@ -52,10 +52,9 @@ default Callable<ResponseEntity<Void>> addPet(@ApiParam(value = "Pet object that
5252
@RequestMapping(value = "/pet/{petId}",
5353
produces = { "application/xml", "application/json" },
5454
method = RequestMethod.DELETE)
55-
default Callable<ResponseEntity<Void>> deletePet(@ApiParam(value = "Pet id to delete",required=true ) @PathVariable("petId") Long petId,
56-
@ApiParam(value = "" ) @RequestHeader(value="api_key", required=false) String apiKey) {
55+
default CompletableFuture<ResponseEntity<Void>> deletePet(@ApiParam(value = "Pet id to delete",required=true ) @PathVariable("petId") Long petId,@ApiParam(value = "" ) @RequestHeader(value="api_key", required=false) String apiKey) {
5756
// do some magic!
58-
return () -> new ResponseEntity<Void>(HttpStatus.OK);
57+
return CompletableFuture.completedFuture(new ResponseEntity<Void>(HttpStatus.OK));
5958
}
6059

6160

@@ -71,9 +70,9 @@ default Callable<ResponseEntity<Void>> deletePet(@ApiParam(value = "Pet id to de
7170
@RequestMapping(value = "/pet/findByStatus",
7271
produces = { "application/xml", "application/json" },
7372
method = RequestMethod.GET)
74-
default Callable<ResponseEntity<List<Pet>>> findPetsByStatus(@ApiParam(value = "Status values that need to be considered for filter", required = true) @RequestParam(value = "status", required = true) List<String> status) {
73+
default CompletableFuture<ResponseEntity<List<Pet>>> findPetsByStatus(@ApiParam(value = "Status values that need to be considered for filter", required = true) @RequestParam(value = "status", required = true) List<String> status) {
7574
// do some magic!
76-
return () -> new ResponseEntity<List<Pet>>(HttpStatus.OK);
75+
return CompletableFuture.completedFuture(new ResponseEntity<List<Pet>>(HttpStatus.OK));
7776
}
7877

7978

@@ -89,9 +88,9 @@ default Callable<ResponseEntity<List<Pet>>> findPetsByStatus(@ApiParam(value = "
8988
@RequestMapping(value = "/pet/findByTags",
9089
produces = { "application/xml", "application/json" },
9190
method = RequestMethod.GET)
92-
default Callable<ResponseEntity<List<Pet>>> findPetsByTags(@ApiParam(value = "Tags to filter by", required = true) @RequestParam(value = "tags", required = true) List<String> tags) {
91+
default CompletableFuture<ResponseEntity<List<Pet>>> findPetsByTags(@ApiParam(value = "Tags to filter by", required = true) @RequestParam(value = "tags", required = true) List<String> tags) {
9392
// do some magic!
94-
return () -> new ResponseEntity<List<Pet>>(HttpStatus.OK);
93+
return CompletableFuture.completedFuture(new ResponseEntity<List<Pet>>(HttpStatus.OK));
9594
}
9695

9796

@@ -105,9 +104,9 @@ default Callable<ResponseEntity<List<Pet>>> findPetsByTags(@ApiParam(value = "Ta
105104
@RequestMapping(value = "/pet/{petId}",
106105
produces = { "application/xml", "application/json" },
107106
method = RequestMethod.GET)
108-
default Callable<ResponseEntity<Pet>> getPetById(@ApiParam(value = "ID of pet to return",required=true ) @PathVariable("petId") Long petId) {
107+
default CompletableFuture<ResponseEntity<Pet>> getPetById(@ApiParam(value = "ID of pet to return",required=true ) @PathVariable("petId") Long petId) {
109108
// do some magic!
110-
return () -> new ResponseEntity<Pet>(HttpStatus.OK);
109+
return CompletableFuture.completedFuture(new ResponseEntity<Pet>(HttpStatus.OK));
111110
}
112111

113112

@@ -125,9 +124,9 @@ default Callable<ResponseEntity<Pet>> getPetById(@ApiParam(value = "ID of pet to
125124
produces = { "application/xml", "application/json" },
126125
consumes = { "application/json", "application/xml" },
127126
method = RequestMethod.PUT)
128-
default Callable<ResponseEntity<Void>> updatePet(@ApiParam(value = "Pet object that needs to be added to the store" ,required=true ) @RequestBody Pet body) {
127+
default CompletableFuture<ResponseEntity<Void>> updatePet(@ApiParam(value = "Pet object that needs to be added to the store" ,required=true ) @RequestBody Pet body) {
129128
// do some magic!
130-
return () -> new ResponseEntity<Void>(HttpStatus.OK);
129+
return CompletableFuture.completedFuture(new ResponseEntity<Void>(HttpStatus.OK));
131130
}
132131

133132

@@ -143,11 +142,9 @@ default Callable<ResponseEntity<Void>> updatePet(@ApiParam(value = "Pet object t
143142
produces = { "application/xml", "application/json" },
144143
consumes = { "application/x-www-form-urlencoded" },
145144
method = RequestMethod.POST)
146-
default Callable<ResponseEntity<Void>> updatePetWithForm(@ApiParam(value = "ID of pet that needs to be updated",required=true ) @PathVariable("petId") Long petId,
147-
@ApiParam(value = "Updated name of the pet" ) @RequestPart(value="name", required=false) String name,
148-
@ApiParam(value = "Updated status of the pet" ) @RequestPart(value="status", required=false) String status) {
145+
default CompletableFuture<ResponseEntity<Void>> updatePetWithForm(@ApiParam(value = "ID of pet that needs to be updated",required=true ) @PathVariable("petId") Long petId,@ApiParam(value = "Updated name of the pet" ) @RequestPart(value="name", required=false) String name,@ApiParam(value = "Updated status of the pet" ) @RequestPart(value="status", required=false) String status) {
149146
// do some magic!
150-
return () -> new ResponseEntity<Void>(HttpStatus.OK);
147+
return CompletableFuture.completedFuture(new ResponseEntity<Void>(HttpStatus.OK));
151148
}
152149

153150

@@ -163,11 +160,9 @@ default Callable<ResponseEntity<Void>> updatePetWithForm(@ApiParam(value = "ID o
163160
produces = { "application/json" },
164161
consumes = { "multipart/form-data" },
165162
method = RequestMethod.POST)
166-
default Callable<ResponseEntity<ModelApiResponse>> uploadFile(@ApiParam(value = "ID of pet to update",required=true ) @PathVariable("petId") Long petId,
167-
@ApiParam(value = "Additional data to pass to server" ) @RequestPart(value="additionalMetadata", required=false) String additionalMetadata,
168-
@ApiParam(value = "file detail") @RequestPart("file") MultipartFile file) {
163+
default CompletableFuture<ResponseEntity<ModelApiResponse>> uploadFile(@ApiParam(value = "ID of pet to update",required=true ) @PathVariable("petId") Long petId,@ApiParam(value = "Additional data to pass to server" ) @RequestPart(value="additionalMetadata", required=false) String additionalMetadata,@ApiParam(value = "file detail") @RequestPart("file") MultipartFile file) {
169164
// do some magic!
170-
return () -> new ResponseEntity<ModelApiResponse>(HttpStatus.OK);
165+
return CompletableFuture.completedFuture(new ResponseEntity<ModelApiResponse>(HttpStatus.OK));
171166
}
172167

173168
}

samples/server/petstore/spring-mvc-j8-async/src/main/java/io/swagger/api/StoreApi.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
import org.springframework.web.multipart.MultipartFile;
1717

1818
import java.util.List;
19-
import java.util.concurrent.Callable;
19+
import java.util.concurrent.CompletableFuture;
2020

2121

2222
@Api(value = "store", description = "the store API")
@@ -29,9 +29,9 @@ public interface StoreApi {
2929
@RequestMapping(value = "/store/order/{orderId}",
3030
produces = { "application/xml", "application/json" },
3131
method = RequestMethod.DELETE)
32-
default Callable<ResponseEntity<Void>> deleteOrder(@ApiParam(value = "ID of the order that needs to be deleted",required=true ) @PathVariable("orderId") String orderId) {
32+
default CompletableFuture<ResponseEntity<Void>> deleteOrder(@ApiParam(value = "ID of the order that needs to be deleted",required=true ) @PathVariable("orderId") String orderId) {
3333
// do some magic!
34-
return () -> new ResponseEntity<Void>(HttpStatus.OK);
34+
return CompletableFuture.completedFuture(new ResponseEntity<Void>(HttpStatus.OK));
3535
}
3636

3737

@@ -43,9 +43,9 @@ default Callable<ResponseEntity<Void>> deleteOrder(@ApiParam(value = "ID of the
4343
@RequestMapping(value = "/store/inventory",
4444
produces = { "application/json" },
4545
method = RequestMethod.GET)
46-
default Callable<ResponseEntity<Map<String, Integer>>> getInventory() {
46+
default CompletableFuture<ResponseEntity<Map<String, Integer>>> getInventory() {
4747
// do some magic!
48-
return () -> new ResponseEntity<Map<String, Integer>>(HttpStatus.OK);
48+
return CompletableFuture.completedFuture(new ResponseEntity<Map<String, Integer>>(HttpStatus.OK));
4949
}
5050

5151

@@ -57,9 +57,9 @@ default Callable<ResponseEntity<Map<String, Integer>>> getInventory() {
5757
@RequestMapping(value = "/store/order/{orderId}",
5858
produces = { "application/xml", "application/json" },
5959
method = RequestMethod.GET)
60-
default Callable<ResponseEntity<Order>> getOrderById(@ApiParam(value = "ID of pet that needs to be fetched",required=true ) @PathVariable("orderId") Long orderId) {
60+
default CompletableFuture<ResponseEntity<Order>> getOrderById(@ApiParam(value = "ID of pet that needs to be fetched",required=true ) @PathVariable("orderId") Long orderId) {
6161
// do some magic!
62-
return () -> new ResponseEntity<Order>(HttpStatus.OK);
62+
return CompletableFuture.completedFuture(new ResponseEntity<Order>(HttpStatus.OK));
6363
}
6464

6565

@@ -70,9 +70,9 @@ default Callable<ResponseEntity<Order>> getOrderById(@ApiParam(value = "ID of pe
7070
@RequestMapping(value = "/store/order",
7171
produces = { "application/xml", "application/json" },
7272
method = RequestMethod.POST)
73-
default Callable<ResponseEntity<Order>> placeOrder(@ApiParam(value = "order placed for purchasing the pet" ,required=true ) @RequestBody Order body) {
73+
default CompletableFuture<ResponseEntity<Order>> placeOrder(@ApiParam(value = "order placed for purchasing the pet" ,required=true ) @RequestBody Order body) {
7474
// do some magic!
75-
return () -> new ResponseEntity<Order>(HttpStatus.OK);
75+
return CompletableFuture.completedFuture(new ResponseEntity<Order>(HttpStatus.OK));
7676
}
7777

7878
}

samples/server/petstore/spring-mvc-j8-async/src/main/java/io/swagger/api/UserApi.java

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
import org.springframework.web.multipart.MultipartFile;
1717

1818
import java.util.List;
19-
import java.util.concurrent.Callable;
19+
import java.util.concurrent.CompletableFuture;
2020

2121

2222
@Api(value = "user", description = "the user API")
@@ -28,9 +28,9 @@ public interface UserApi {
2828
@RequestMapping(value = "/user",
2929
produces = { "application/xml", "application/json" },
3030
method = RequestMethod.POST)
31-
default Callable<ResponseEntity<Void>> createUser(@ApiParam(value = "Created user object" ,required=true ) @RequestBody User body) {
31+
default CompletableFuture<ResponseEntity<Void>> createUser(@ApiParam(value = "Created user object" ,required=true ) @RequestBody User body) {
3232
// do some magic!
33-
return () -> new ResponseEntity<Void>(HttpStatus.OK);
33+
return CompletableFuture.completedFuture(new ResponseEntity<Void>(HttpStatus.OK));
3434
}
3535

3636

@@ -40,9 +40,9 @@ default Callable<ResponseEntity<Void>> createUser(@ApiParam(value = "Created use
4040
@RequestMapping(value = "/user/createWithArray",
4141
produces = { "application/xml", "application/json" },
4242
method = RequestMethod.POST)
43-
default Callable<ResponseEntity<Void>> createUsersWithArrayInput(@ApiParam(value = "List of user object" ,required=true ) @RequestBody List<User> body) {
43+
default CompletableFuture<ResponseEntity<Void>> createUsersWithArrayInput(@ApiParam(value = "List of user object" ,required=true ) @RequestBody List<User> body) {
4444
// do some magic!
45-
return () -> new ResponseEntity<Void>(HttpStatus.OK);
45+
return CompletableFuture.completedFuture(new ResponseEntity<Void>(HttpStatus.OK));
4646
}
4747

4848

@@ -52,9 +52,9 @@ default Callable<ResponseEntity<Void>> createUsersWithArrayInput(@ApiParam(value
5252
@RequestMapping(value = "/user/createWithList",
5353
produces = { "application/xml", "application/json" },
5454
method = RequestMethod.POST)
55-
default Callable<ResponseEntity<Void>> createUsersWithListInput(@ApiParam(value = "List of user object" ,required=true ) @RequestBody List<User> body) {
55+
default CompletableFuture<ResponseEntity<Void>> createUsersWithListInput(@ApiParam(value = "List of user object" ,required=true ) @RequestBody List<User> body) {
5656
// do some magic!
57-
return () -> new ResponseEntity<Void>(HttpStatus.OK);
57+
return CompletableFuture.completedFuture(new ResponseEntity<Void>(HttpStatus.OK));
5858
}
5959

6060

@@ -65,9 +65,9 @@ default Callable<ResponseEntity<Void>> createUsersWithListInput(@ApiParam(value
6565
@RequestMapping(value = "/user/{username}",
6666
produces = { "application/xml", "application/json" },
6767
method = RequestMethod.DELETE)
68-
default Callable<ResponseEntity<Void>> deleteUser(@ApiParam(value = "The name that needs to be deleted",required=true ) @PathVariable("username") String username) {
68+
default CompletableFuture<ResponseEntity<Void>> deleteUser(@ApiParam(value = "The name that needs to be deleted",required=true ) @PathVariable("username") String username) {
6969
// do some magic!
70-
return () -> new ResponseEntity<Void>(HttpStatus.OK);
70+
return CompletableFuture.completedFuture(new ResponseEntity<Void>(HttpStatus.OK));
7171
}
7272

7373

@@ -79,9 +79,9 @@ default Callable<ResponseEntity<Void>> deleteUser(@ApiParam(value = "The name th
7979
@RequestMapping(value = "/user/{username}",
8080
produces = { "application/xml", "application/json" },
8181
method = RequestMethod.GET)
82-
default Callable<ResponseEntity<User>> getUserByName(@ApiParam(value = "The name that needs to be fetched. Use user1 for testing. ",required=true ) @PathVariable("username") String username) {
82+
default CompletableFuture<ResponseEntity<User>> getUserByName(@ApiParam(value = "The name that needs to be fetched. Use user1 for testing. ",required=true ) @PathVariable("username") String username) {
8383
// do some magic!
84-
return () -> new ResponseEntity<User>(HttpStatus.OK);
84+
return CompletableFuture.completedFuture(new ResponseEntity<User>(HttpStatus.OK));
8585
}
8686

8787

@@ -92,10 +92,9 @@ default Callable<ResponseEntity<User>> getUserByName(@ApiParam(value = "The name
9292
@RequestMapping(value = "/user/login",
9393
produces = { "application/xml", "application/json" },
9494
method = RequestMethod.GET)
95-
default Callable<ResponseEntity<String>> loginUser(@ApiParam(value = "The user name for login", required = true) @RequestParam(value = "username", required = true) String username,
96-
@ApiParam(value = "The password for login in clear text", required = true) @RequestParam(value = "password", required = true) String password) {
95+
default CompletableFuture<ResponseEntity<String>> loginUser(@ApiParam(value = "The user name for login", required = true) @RequestParam(value = "username", required = true) String username,@ApiParam(value = "The password for login in clear text", required = true) @RequestParam(value = "password", required = true) String password) {
9796
// do some magic!
98-
return () -> new ResponseEntity<String>(HttpStatus.OK);
97+
return CompletableFuture.completedFuture(new ResponseEntity<String>(HttpStatus.OK));
9998
}
10099

101100

@@ -105,9 +104,9 @@ default Callable<ResponseEntity<String>> loginUser(@ApiParam(value = "The user n
105104
@RequestMapping(value = "/user/logout",
106105
produces = { "application/xml", "application/json" },
107106
method = RequestMethod.GET)
108-
default Callable<ResponseEntity<Void>> logoutUser() {
107+
default CompletableFuture<ResponseEntity<Void>> logoutUser() {
109108
// do some magic!
110-
return () -> new ResponseEntity<Void>(HttpStatus.OK);
109+
return CompletableFuture.completedFuture(new ResponseEntity<Void>(HttpStatus.OK));
111110
}
112111

113112

@@ -118,10 +117,9 @@ default Callable<ResponseEntity<Void>> logoutUser() {
118117
@RequestMapping(value = "/user/{username}",
119118
produces = { "application/xml", "application/json" },
120119
method = RequestMethod.PUT)
121-
default Callable<ResponseEntity<Void>> updateUser(@ApiParam(value = "name that need to be deleted",required=true ) @PathVariable("username") String username,
122-
@ApiParam(value = "Updated user object" ,required=true ) @RequestBody User body) {
120+
default CompletableFuture<ResponseEntity<Void>> updateUser(@ApiParam(value = "name that need to be deleted",required=true ) @PathVariable("username") String username,@ApiParam(value = "Updated user object" ,required=true ) @RequestBody User body) {
123121
// do some magic!
124-
return () -> new ResponseEntity<Void>(HttpStatus.OK);
122+
return CompletableFuture.completedFuture(new ResponseEntity<Void>(HttpStatus.OK));
125123
}
126124

127125
}

0 commit comments

Comments
 (0)