diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 8ea2cbfcb..17df3eac7 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -15,7 +15,7 @@ dependencies { implementation("io.github.gradle-nexus:publish-plugin:2.0.0") implementation("org.openapitools:openapi-generator-gradle-plugin:7.17.0") implementation("com.github.spotbugs.snom:spotbugs-gradle-plugin:6.4.7") - implementation("org.springframework.boot:spring-boot-gradle-plugin:3.5.8") + implementation("org.springframework.boot:spring-boot-gradle-plugin:4.0.0") // workaround to use libs in a precompiled script plugin. // https://github.com/gradle/gradle/issues/15383 diff --git a/spring-boot/line-bot-spring-boot-client/build.gradle.kts b/spring-boot/line-bot-spring-boot-client/build.gradle.kts index d7da3108a..8cee51416 100644 --- a/spring-boot/line-bot-spring-boot-client/build.gradle.kts +++ b/spring-boot/line-bot-spring-boot-client/build.gradle.kts @@ -32,6 +32,7 @@ dependencies { api(project(":clients:line-bot-shop-client")) api(project(":clients:line-channel-access-token-client")) api(project(":clients:line-liff-client")) + api(project(":line-bot-jackson")) implementation("org.springframework.boot:spring-boot-autoconfigure") implementation("org.springframework.boot:spring-boot-starter") diff --git a/spring-boot/line-bot-spring-boot-client/src/main/java/com/linecorp/bot/spring/boot/core/configuration/LineBotAutoConfiguration.java b/spring-boot/line-bot-spring-boot-client/src/main/java/com/linecorp/bot/spring/boot/core/configuration/LineBotAutoConfiguration.java index 37488bf35..36cd891f7 100644 --- a/spring-boot/line-bot-spring-boot-client/src/main/java/com/linecorp/bot/spring/boot/core/configuration/LineBotAutoConfiguration.java +++ b/spring-boot/line-bot-spring-boot-client/src/main/java/com/linecorp/bot/spring/boot/core/configuration/LineBotAutoConfiguration.java @@ -21,11 +21,14 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import com.fasterxml.jackson.databind.ObjectMapper; + import com.linecorp.bot.audience.client.ManageAudienceBlobClient; import com.linecorp.bot.audience.client.ManageAudienceClient; import com.linecorp.bot.client.base.channel.ChannelTokenSupplier; import com.linecorp.bot.client.base.channel.FixedChannelTokenSupplier; import com.linecorp.bot.insight.client.InsightClient; +import com.linecorp.bot.jackson.ModelObjectMapper; import com.linecorp.bot.liff.client.LiffClient; import com.linecorp.bot.messaging.client.MessagingApiBlobClient; import com.linecorp.bot.messaging.client.MessagingApiClient; @@ -47,6 +50,16 @@ public LineBotAutoConfiguration(LineBotProperties lineBotProperties) { this.lineBotProperties = lineBotProperties; } + /** + * Expose {@link ObjectMapper} as {@link Bean} + * in case of no other definition for {@link ObjectMapper} type. + */ + @Bean + @ConditionalOnMissingBean(ObjectMapper.class) + public ObjectMapper objectMapper() { + return ModelObjectMapper.createNewObjectMapper(); + } + /** * Expose {@link FixedChannelTokenSupplier} as {@link Bean} * in case of no other definition for {@link ChannelTokenSupplier} type.