Skip to content

Commit d95a702

Browse files
committed
Upgrade to Spring Boot 2.2.0 M5
1 parent c360bab commit d95a702

File tree

32 files changed

+84
-88
lines changed

32 files changed

+84
-88
lines changed

autoconfigure-adapter/src/main/java/org/springframework/boot/autoconfigure/data/cassandra/CassandraDataInitializer.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public CassandraDataInitializer(CassandraProperties properties) {
2626

2727
@Override
2828
public void initialize(GenericApplicationContext context) {
29-
Supplier<CassandraDataAutoConfiguration> configurationSupplier = () -> new CassandraDataAutoConfiguration(context.getBeanFactory(), properties, context.getBean(Cluster.class), context.getEnvironment());
29+
Supplier<CassandraDataAutoConfiguration> configurationSupplier = () -> new CassandraDataAutoConfiguration(properties, context.getBean(Cluster.class));
3030

3131
context.registerBean(CassandraCustomConversions.class, () -> configurationSupplier.get().cassandraCustomConversions());
3232
context.registerBean(CassandraMappingContext.class, () -> getCassandraMappingContext(context, configurationSupplier));

autoconfigure-adapter/src/main/java/org/springframework/boot/autoconfigure/web/servlet/ServletWebServerInitializer.java

+4-10
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@
4343
import org.springframework.web.servlet.function.support.RouterFunctionMapping;
4444
import org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping;
4545
import org.springframework.web.servlet.handler.HandlerMappingIntrospector;
46-
import org.springframework.web.servlet.handler.SimpleUrlHandlerMapping;
4746
import org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter;
4847
import org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter;
4948
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;
@@ -59,8 +58,6 @@
5958
import static org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration.ResourceChainResourceHandlerRegistrationCustomizer;
6059
import static org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration.ResourceHandlerRegistrationCustomizer;
6160
import static org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter;
62-
import static org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter.FaviconConfiguration;
63-
import static org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter.FaviconRequestHandler;
6461

6562
public class ServletWebServerInitializer implements ApplicationContextInitializer<GenericApplicationContext> {
6663

@@ -111,7 +108,6 @@ public void initialize(GenericApplicationContext context) {
111108
public WebMvcAutoConfigurationAdapter get() {
112109
if (configuration == null) {
113110
configuration = new WebMvcAutoConfigurationAdapter(resourceProperties, webMvcProperties, context, context.getBeanProvider(HttpMessageConverters.class), context.getBeanProvider(ResourceHandlerRegistrationCustomizer.class));
114-
configuration.setResourceLoader(context);
115111
return configuration;
116112
}
117113
return configuration;
@@ -121,12 +117,8 @@ public WebMvcAutoConfigurationAdapter get() {
121117
context.registerBean(BeanNameViewResolver.class, () -> webMvcConfigurationAdapter.get().beanNameViewResolver());
122118
context.registerBean("viewResolver", ContentNegotiatingViewResolver.class, () -> webMvcConfigurationAdapter.get().viewResolver(context));
123119
context.registerBean(LocaleResolver.class, () -> webMvcConfigurationAdapter.get().localeResolver());
124-
context.registerBean(WelcomePageHandlerMapping.class, () -> webMvcConfigurationAdapter.get().welcomePageHandlerMapping(context));
125120
context.registerBean(RequestContextFilter.class, WebMvcAutoConfigurationAdapter::requestContextFilter);
126-
FaviconConfiguration faviconConfiguration = new FaviconConfiguration(resourceProperties);
127-
faviconConfiguration.setResourceLoader(context);
128-
context.registerBean(FaviconRequestHandler.class, faviconConfiguration::faviconRequestHandler);
129-
context.registerBean(SimpleUrlHandlerMapping.class, () -> faviconConfiguration.faviconHandlerMapping(context.getBean(FaviconRequestHandler.class)));
121+
// TODO Favicon management
130122

131123
Supplier<EnableWebMvcConfiguration> enableWebMvcConfiguration = new Supplier<EnableWebMvcConfiguration>() {
132124

@@ -138,6 +130,7 @@ public EnableWebMvcConfiguration get() {
138130
configuration = new EnableWebMvcConfigurationWrapper(context.getBeanProvider(WebMvcProperties.class), context.getBeanProvider(WebMvcRegistrations.class), context);
139131
configuration.setApplicationContext(context);
140132
configuration.setServletContext(((WebApplicationContext) context).getServletContext());
133+
configuration.setResourceLoader(context);
141134
}
142135
return configuration;
143136
}
@@ -163,12 +156,13 @@ public EnableWebMvcConfiguration get() {
163156
context.registerBean(HandlerExceptionResolver.class, () -> enableWebMvcConfiguration.get().handlerExceptionResolver(context.getBean(ContentNegotiationManager.class)));
164157
context.registerBean(ViewResolver.class, () -> enableWebMvcConfiguration.get().mvcViewResolver(context.getBean(ContentNegotiationManager.class)));
165158
context.registerBean(HandlerMappingIntrospector.class, () -> enableWebMvcConfiguration.get().mvcHandlerMappingIntrospector(), bd -> bd.setLazyInit(true));
159+
context.registerBean(WelcomePageHandlerMapping.class, () -> enableWebMvcConfiguration.get().welcomePageHandlerMapping(context, context.getBean(FormattingConversionService.class), context.getBean(ResourceUrlProvider.class)));
166160
}
167161

168162
private class EnableWebMvcConfigurationWrapper extends EnableWebMvcConfiguration {
169163

170164
public EnableWebMvcConfigurationWrapper(ObjectProvider<WebMvcProperties> mvcPropertiesProvider, ObjectProvider<WebMvcRegistrations> mvcRegistrationsProvider, ListableBeanFactory beanFactory) {
171-
super(mvcPropertiesProvider, mvcRegistrationsProvider, beanFactory);
165+
super(resourceProperties, mvcPropertiesProvider, mvcRegistrationsProvider, beanFactory);
172166
}
173167

174168
@Override

build.gradle.kts

+2-5
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
22

33
plugins {
4-
id("org.jetbrains.kotlin.jvm") version "1.3.31" apply false
5-
id("org.springframework.boot") version "2.2.0.M3" apply false
4+
id("org.jetbrains.kotlin.jvm") version "1.3.41" apply false
5+
id("org.springframework.boot") version "2.2.0.M5" apply false
66
id("org.jetbrains.dokka") version "0.9.18" apply false
77
id("io.spring.dependency-management") version "1.0.7.RELEASE"
88
id("maven-publish")
@@ -19,16 +19,13 @@ allprojects {
1919

2020
dependencyManagement {
2121
val bootVersion: String by project
22-
val coroutinesVersion: String by project
2322
val springDataR2dbcVersion: String by project
2423
val r2dbcVersion: String by project
2524
imports {
2625
mavenBom("org.springframework.boot:spring-boot-dependencies:$bootVersion")
2726
mavenBom("io.r2dbc:r2dbc-bom:$r2dbcVersion")
2827
}
2928
dependencies {
30-
dependency("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion")
31-
dependency("org.jetbrains.kotlinx:kotlinx-coroutines-reactor:$coroutinesVersion")
3229
dependency("org.springframework.data:spring-data-r2dbc:$springDataR2dbcVersion")
3330
}
3431
}

gradle.properties

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
bootVersion=2.2.0.M3
2-
coroutinesVersion=1.2.1
3-
kotlin.version=1.3.31
4-
springDataR2dbcVersion=1.0.0.M2
1+
bootVersion=2.2.0.M5
2+
kotlin.version=1.3.41
3+
springDataR2dbcVersion=1.0.0.BUILD-SNAPSHOT
54
r2dbcVersion=Arabba-M8

kofu/src/test/kotlin/org/springframework/fu/kofu/samples/webflux.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ private fun webFluxApplicationDsl() {
180180
enable(webConfiguration)
181181
}
182182

183-
fun main(args: Array<String>) = app.run(profiles = "data, webflux")
183+
fun main() = app.run(profiles = "data, webflux")
184184
}
185185

186186

kofu/src/test/kotlin/org/springframework/fu/kofu/webflux/JacksonDslTests.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ class JacksonDslTests {
4848
}
4949
router {
5050
GET("/user") {
51-
ok().header(CONTENT_TYPE, APPLICATION_JSON_VALUE).syncBody(User("Brian"))
51+
ok().header(CONTENT_TYPE, APPLICATION_JSON_VALUE).body(User("Brian"))
5252
}
5353
}
5454
}
@@ -74,7 +74,7 @@ class JacksonDslTests {
7474
}
7575
router {
7676
GET("/user") {
77-
ok().header(CONTENT_TYPE, APPLICATION_JSON_VALUE).syncBody(User("Brian"))
77+
ok().header(CONTENT_TYPE, APPLICATION_JSON_VALUE).body(User("Brian"))
7878
}
7979
}
8080
}
@@ -106,7 +106,7 @@ class JacksonDslTests {
106106
port = 0
107107
router {
108108
GET("/user") {
109-
ok().header(CONTENT_TYPE, APPLICATION_JSON_VALUE).syncBody(User("Brian"))
109+
ok().header(CONTENT_TYPE, APPLICATION_JSON_VALUE).body(User("Brian"))
110110
}
111111
}
112112
}

kofu/src/test/kotlin/org/springframework/fu/kofu/webmvc/JacksonDslTests.kt

+3-4
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import org.springframework.fu.kofu.localServerPort
2727
import org.springframework.fu.kofu.webflux.webClient
2828
import org.springframework.http.HttpHeaders.CONTENT_TYPE
2929
import org.springframework.http.HttpStatus
30+
import org.springframework.http.MediaType
3031
import org.springframework.http.MediaType.APPLICATION_JSON_VALUE
3132
import org.springframework.test.web.reactive.server.WebTestClient
3233
import org.springframework.test.web.reactive.server.expectBody
@@ -57,8 +58,7 @@ class JacksonDslTests {
5758
val client = WebTestClient.bindToServer().baseUrl("http://127.0.0.1:$localServerPort").build()
5859
client.get().uri("/user").exchange()
5960
.expectStatus().is2xxSuccessful
60-
// TODO Use MediaType.APPLICATION_JSON when spring-projects/spring-framework#22954 will be fixed
61-
.expectHeader().contentType("application/json;charset=UTF-8")
61+
.expectHeader().contentType(MediaType.APPLICATION_JSON)
6262
.expectBody<User>()
6363
.isEqualTo(User("Brian"))
6464
close()
@@ -91,8 +91,7 @@ class JacksonDslTests {
9191
response.test()
9292
.consumeNextWith {
9393
assertEquals(HttpStatus.OK, it.statusCode())
94-
// TODO Use MediaType.APPLICATION_JSON when spring-projects/spring-framework#22954 will be fixed
95-
assertEquals("application/json;charset=UTF-8", it.headers().contentType().get().toString())
94+
assertEquals(MediaType.APPLICATION_JSON_VALUE, it.headers().contentType().get().toString())
9695
}
9796
.verifyComplete()
9897
val mappers = getBeanProvider<ObjectMapper>().toList()

samples/kofu-coroutines-mongodb/build.gradle.kts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
22

33
plugins {
4-
id("org.jetbrains.kotlin.jvm") version "1.3.31"
4+
id("org.jetbrains.kotlin.jvm") version "1.3.41"
55
id("io.spring.dependency-management") version "1.0.7.RELEASE"
6-
id("org.springframework.boot") version "2.2.0.M3"
6+
id("org.springframework.boot") version "2.2.0.M5"
77
}
88

99
dependencies {
@@ -13,8 +13,8 @@ dependencies {
1313
implementation("org.springframework.boot:spring-boot-starter-data-mongodb-reactive")
1414
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
1515
implementation("de.flapdoodle.embed:de.flapdoodle.embed.mongo")
16-
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.2.1")
17-
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-reactor:1.2.1")
16+
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core")
17+
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-reactor")
1818

1919
testImplementation("org.springframework.boot:spring-boot-starter-test")
2020
}

samples/kofu-coroutines-r2dbc/build.gradle.kts

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
22

33
plugins {
4-
id("org.jetbrains.kotlin.jvm") version "1.3.31"
4+
id("org.jetbrains.kotlin.jvm") version "1.3.41"
55
id("io.spring.dependency-management") version "1.0.7.RELEASE"
6-
id("org.springframework.boot") version "2.2.0.M3"
6+
id("org.springframework.boot") version "2.2.0.M5"
77
}
88

99
dependencies {
1010
implementation("org.springframework.fu:spring-fu-kofu:0.2.BUILD-SNAPSHOT")
1111
implementation("org.springframework.boot:spring-boot-starter-webflux")
1212
implementation("org.springframework.boot:spring-boot-starter-mustache")
1313
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
14-
implementation("org.springframework.data:spring-data-r2dbc:1.0.0.M2")
15-
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.2.1")
16-
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-reactor:1.2.1")
14+
implementation("org.springframework.data:spring-data-r2dbc:1.0.0.BUILD-SNAPSHOT")
15+
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core")
16+
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-reactor")
1717
implementation("io.r2dbc:r2dbc-h2")
1818

1919
testImplementation("org.springframework.boot:spring-boot-starter-test")

samples/kofu-coroutines-r2dbc/src/main/kotlin/com/sample/Configurations.kt

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.sample
22

3+
import kotlinx.coroutines.ExperimentalCoroutinesApi
34
import kotlinx.coroutines.FlowPreview
45
import kotlinx.coroutines.runBlocking
56
import org.springframework.boot.context.event.ApplicationReadyEvent
@@ -21,6 +22,7 @@ val dataConfig = configuration {
2122
}
2223

2324
@FlowPreview
25+
@ExperimentalCoroutinesApi
2426
val webConfig = configuration {
2527
beans {
2628
bean<UserHandler>()

samples/kofu-coroutines-r2dbc/src/main/kotlin/com/sample/Handlers.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
package com.sample
22

3+
import kotlinx.coroutines.ExperimentalCoroutinesApi
34
import kotlinx.coroutines.FlowPreview
45
import org.springframework.http.MediaType
56
import org.springframework.web.reactive.function.server.ServerRequest
67
import org.springframework.web.reactive.function.server.ServerResponse.ok
78
import org.springframework.web.reactive.function.server.bodyAndAwait
8-
import org.springframework.web.reactive.function.server.bodyFlowAndAwait
99
import org.springframework.web.reactive.function.server.renderAndAwait
1010

1111
@FlowPreview
12+
@ExperimentalCoroutinesApi
1213
@Suppress("UNUSED_PARAMETER")
1314
class UserHandler(
1415
private val repository: UserRepository,
1516
private val configuration: SampleProperties) {
1617

1718
suspend fun listApi(request: ServerRequest) =
18-
ok().contentType(MediaType.APPLICATION_JSON)
19-
.bodyFlowAndAwait(repository.findAll())
19+
ok().contentType(MediaType.APPLICATION_JSON).bodyAndAwait<User>(repository.findAll())
2020

2121
suspend fun userApi(request: ServerRequest) =
2222
ok().contentType(MediaType.APPLICATION_JSON)

samples/kofu-coroutines-r2dbc/src/main/kotlin/com/sample/Repositories.kt

+4-4
Original file line numberDiff line numberDiff line change
@@ -11,23 +11,23 @@ import org.springframework.data.r2dbc.core.into
1111
class UserRepository(private val client: DatabaseClient) {
1212

1313
suspend fun count() =
14-
client.execute().sql("SELECT COUNT(*) FROM users").asType<Long>().fetch().awaitOne()
14+
client.execute("SELECT COUNT(*) FROM users").asType<Long>().fetch().awaitOne()
1515

1616
@FlowPreview
1717
fun findAll() = client.select().from("users").asType<User>().fetch().flow()
1818

1919
suspend fun findOne(id: String) =
20-
client.execute().sql("SELECT * FROM users WHERE login = :login").bind("login", id).asType<User>().fetch().awaitOne()
20+
client.execute("SELECT * FROM users WHERE login = :login").bind("login", id).asType<User>().fetch().awaitOne()
2121

2222
suspend fun deleteAll() =
23-
client.execute().sql("DELETE FROM users").await()
23+
client.execute("DELETE FROM users").await()
2424

2525
suspend fun save(user: User)=
2626
client.insert().into<User>().table("users").using(user).await()
2727

2828

2929
suspend fun init() {
30-
client.execute().sql("CREATE TABLE IF NOT EXISTS users (login varchar PRIMARY KEY, firstname varchar, lastname varchar);").await()
30+
client.execute("CREATE TABLE IF NOT EXISTS users (login varchar PRIMARY KEY, firstname varchar, lastname varchar);").await()
3131
deleteAll()
3232
save(User("smaldini", "Stéphane", "Maldini"))
3333
save(User("sdeleuze", "Sébastien", "Deleuze"))

samples/kofu-coroutines-validation/build.gradle.kts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
22

33
plugins {
4-
id("org.jetbrains.kotlin.jvm") version "1.3.31"
4+
id("org.jetbrains.kotlin.jvm") version "1.3.41"
55
id("io.spring.dependency-management") version "1.0.7.RELEASE"
6-
id("org.springframework.boot") version "2.2.0.M3"
6+
id("org.springframework.boot") version "2.2.0.M5"
77
}
88

99
dependencies {
1010
implementation("org.springframework.fu:spring-fu-kofu:0.2.BUILD-SNAPSHOT")
1111
implementation("org.springframework.boot:spring-boot-starter-webflux")
1212
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
13-
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.2.1")
14-
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-reactor:1.2.1")
13+
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core")
14+
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-reactor")
1515
implementation("am.ik.yavi:yavi:0.2.1")
1616

1717
testImplementation("org.springframework.boot:spring-boot-starter-test")

samples/kofu-coroutines-validation/src/main/kotlin/com/sample/Handlers.kt

+2-1
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,6 @@ class UserHandler {
1717
request.awaitBody<User>()
1818
.validate()
1919
.leftMap { mapOf("details" to it.details()) }
20-
.awaitFold(badRequest()::bodyAndAwait, ok()::bodyAndAwait)
20+
// TODO Fix reference ambiguity on Spring Framework side
21+
.awaitFold({ badRequest().bodyAndAwait(it) }, { ok().bodyAndAwait(it) })
2122
}

samples/kofu-coroutines-validation/src/test/kotlin/com/sample/IntegrationTests.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class IntegrationTests {
2424
@Test
2525
fun `Create a user successfully`() {
2626
client.post().uri("/api/user")
27-
.syncBody(User("demo", "John", "Doe"))
27+
.body(User("demo", "John", "Doe"))
2828
.exchange()
2929
.expectStatus().isOk
3030
.expectBody<User>().isEqualTo(User("demo", "John", "Doe"))
@@ -33,7 +33,7 @@ class IntegrationTests {
3333
@Test
3434
fun `Empty fields request should fail`() {
3535
client.post().uri("/api/user")
36-
.syncBody(User("", "", ""))
36+
.body(User("", "", ""))
3737
.exchange()
3838
.expectStatus().isBadRequest
3939
.expectBody<Map<String, List<Map<String, String>>>>()

samples/kofu-reactive-cassandra/build.gradle.kts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
22

33
plugins {
4-
id("org.jetbrains.kotlin.jvm") version "1.3.31"
4+
id("org.jetbrains.kotlin.jvm") version "1.3.41"
55
id("io.spring.dependency-management") version "1.0.7.RELEASE"
6-
id("org.springframework.boot") version "2.2.0.M3"
6+
id("org.springframework.boot") version "2.2.0.M5"
77
}
88

99
dependencies {

samples/kofu-reactive-cassandra/src/main/kotlin/com/sample/Handlers.kt

+3-2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import org.springframework.http.MediaType
44
import org.springframework.web.reactive.function.server.ServerRequest
55
import org.springframework.web.reactive.function.server.ServerResponse
66
import org.springframework.web.reactive.function.server.body
7+
import org.springframework.web.reactive.function.server.bodyWithType
78

89
@Suppress("UNUSED_PARAMETER")
910
class UserHandler(
@@ -14,7 +15,7 @@ class UserHandler(
1415
fun listApi(request: ServerRequest) = ServerResponse
1516
.ok()
1617
.contentType(MediaType.APPLICATION_JSON)
17-
.body(repository.findAll())
18+
.bodyWithType(repository.findAll())
1819

1920
fun listView(request: ServerRequest) = ServerResponse
2021
.ok()
@@ -23,6 +24,6 @@ class UserHandler(
2324

2425
fun conf(request: ServerRequest) = ServerResponse
2526
.ok()
26-
.syncBody(configuration.message)
27+
.body(configuration.message)
2728

2829
}

samples/kofu-reactive-minimal/build.gradle.kts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
22

33
plugins {
4-
id("org.jetbrains.kotlin.jvm") version "1.3.31"
4+
id("org.jetbrains.kotlin.jvm") version "1.3.41"
55
id("io.spring.dependency-management") version "1.0.7.RELEASE"
6-
id("org.springframework.boot") version "2.2.0.M3"
6+
id("org.springframework.boot") version "2.2.0.M5"
77
}
88

99
dependencies {

samples/kofu-reactive-minimal/src/main/kotlin/com/sample/Application.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ class SampleService {
3333

3434
@Suppress("UNUSED_PARAMETER")
3535
class SampleHandler(private val sampleService: SampleService) {
36-
fun hello(request: ServerRequest)= ok().syncBody(sampleService.generateMessage())
37-
fun json(request: ServerRequest) = ok().syncBody(Sample(sampleService.generateMessage()))
36+
fun hello(request: ServerRequest)= ok().body(sampleService.generateMessage())
37+
fun json(request: ServerRequest) = ok().body(Sample(sampleService.generateMessage()))
3838
}
3939

4040
fun main() {

0 commit comments

Comments
 (0)