From f58c322ae2c2500f14033f88eda10e7c20aaa3d9 Mon Sep 17 00:00:00 2001 From: sampadawagde Date: Thu, 14 May 2020 12:13:53 +0530 Subject: [PATCH] JAVA-943: Migrate spring-mobile to parent-boot-2 --- spring-mobile/pom.xml | 19 ++++++++-- .../src/main/java/com/baeldung/AppConfig.java | 36 +++++++++++++++++++ .../baeldung/controller/IndexController.java | 5 ++- .../src/main/resources/application.properties | 4 ++- 4 files changed, 59 insertions(+), 5 deletions(-) create mode 100644 spring-mobile/src/main/java/com/baeldung/AppConfig.java diff --git a/spring-mobile/pom.xml b/spring-mobile/pom.xml index ff90ac6ecb..465458ba49 100644 --- a/spring-mobile/pom.xml +++ b/spring-mobile/pom.xml @@ -10,9 +10,9 @@ com.baeldung - parent-boot-1 + parent-boot-2 0.0.1-SNAPSHOT - ../parent-boot-1 + ../parent-boot-2 @@ -23,11 +23,24 @@ org.springframework.mobile spring-mobile-device + ${spring-mobile-device.version} org.springframework.boot spring-boot-starter-freemarker - + + + spring-milestones + Spring Milestones + https://repo.spring.io/libs-milestone + + false + + + + + 2.0.0.M3 + diff --git a/spring-mobile/src/main/java/com/baeldung/AppConfig.java b/spring-mobile/src/main/java/com/baeldung/AppConfig.java new file mode 100644 index 0000000000..efa073ae11 --- /dev/null +++ b/spring-mobile/src/main/java/com/baeldung/AppConfig.java @@ -0,0 +1,36 @@ +package com.baeldung; + +import java.util.List; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.mobile.device.DeviceHandlerMethodArgumentResolver; +import org.springframework.mobile.device.DeviceResolverHandlerInterceptor; +import org.springframework.web.method.support.HandlerMethodArgumentResolver; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class AppConfig implements WebMvcConfigurer { + + @Bean + public DeviceResolverHandlerInterceptor deviceResolverHandlerInterceptor() { + return new DeviceResolverHandlerInterceptor(); + } + + @Bean + public DeviceHandlerMethodArgumentResolver deviceHandlerMethodArgumentResolver() { + return new DeviceHandlerMethodArgumentResolver(); + } + + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry.addInterceptor(deviceResolverHandlerInterceptor()); + } + + @Override + public void addArgumentResolvers(List argumentResolvers) { + argumentResolvers.add(deviceHandlerMethodArgumentResolver()); + } + +} diff --git a/spring-mobile/src/main/java/com/baeldung/controller/IndexController.java b/spring-mobile/src/main/java/com/baeldung/controller/IndexController.java index 196fb680e7..49880f355a 100644 --- a/spring-mobile/src/main/java/com/baeldung/controller/IndexController.java +++ b/spring-mobile/src/main/java/com/baeldung/controller/IndexController.java @@ -16,13 +16,16 @@ public class IndexController { String deviceType = "browser"; String platform = "browser"; + String viewName = "index"; if (device.isNormal()) { deviceType = "browser"; } else if (device.isMobile()) { deviceType = "mobile"; + viewName = "mobile/index"; } else if (device.isTablet()) { deviceType = "tablet"; + viewName = "tablet/index"; } platform = device.getDevicePlatform().name(); @@ -33,7 +36,7 @@ public class IndexController { LOGGER.info("Client Device Type: " + deviceType + ", Platform: " + platform); - return "index"; + return viewName; } } diff --git a/spring-mobile/src/main/resources/application.properties b/spring-mobile/src/main/resources/application.properties index c0bc91f9ac..7d964f48fb 100644 --- a/spring-mobile/src/main/resources/application.properties +++ b/spring-mobile/src/main/resources/application.properties @@ -1 +1,3 @@ -spring.mobile.devicedelegatingviewresolver.enabled: true \ No newline at end of file +spring.mobile.devicedelegatingviewresolver.enabled: true +spring.freemarker.template-loader-path: classpath:/templates +spring.freemarker.suffix: .ftl \ No newline at end of file