Skip to content

Commit 2852f74

Browse files
author
Phillip Webb
committed
Polish Spring Mobile Auto-configuration
Update Spring Mobile support with the following changes: - Apply source formatting - User lowercase property prefixes - Use dashed notation when accessing properties - Inline some constants See gh-1049
1 parent 6902f2a commit 2852f74

File tree

5 files changed

+146
-139
lines changed

5 files changed

+146
-139
lines changed

spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mobile/DeviceDelegatingViewResolverAutoConfiguration.java

Lines changed: 46 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
* {@link LiteDeviceDelegatingViewResolver}. If {@link ThymeleafViewResolver} is available
4646
* it is configured as the delegate view resolver. Otherwise,
4747
* {@link InternalResourceViewResolver} is used as a fallback.
48-
*
48+
*
4949
* @author Roy Clarkson
5050
* @since 1.1.0
5151
*/
@@ -57,21 +57,49 @@ public class DeviceDelegatingViewResolverAutoConfiguration {
5757

5858
private static Log logger = LogFactory.getLog(WebMvcConfigurerAdapter.class);
5959

60-
public static final String DEFAULT_NORMAL_PREFIX = "";
60+
private static abstract class AbstractDelegateConfiguration implements
61+
EnvironmentAware {
6162

62-
public static final String DEFAULT_MOBILE_PREFIX = "mobile/";
63+
private RelaxedPropertyResolver environment;
6364

64-
public static final String DEFAULT_TABLET_PREFIX = "tablet/";
65+
@Override
66+
public void setEnvironment(Environment environment) {
67+
this.environment = new RelaxedPropertyResolver(environment,
68+
"spring.mobile.devicedelegatingviewresolver.");
69+
}
6570

66-
public static final String DEFAULT_NORMAL_SUFFIX = "";
71+
protected LiteDeviceDelegatingViewResolver getConfiguredViewResolver(
72+
ViewResolver delegate, int delegateOrder) {
73+
LiteDeviceDelegatingViewResolver resolver = new LiteDeviceDelegatingViewResolver(
74+
delegate);
75+
resolver.setNormalPrefix(getProperty("normal-prefix", ""));
76+
resolver.setNormalSuffix(getProperty("normal-suffix", ""));
77+
resolver.setMobilePrefix(getProperty("mobile-prefix", "mobile/"));
78+
resolver.setMobileSuffix(getProperty("mobile-suffix", ""));
79+
resolver.setTabletPrefix(getProperty("tablet-prefix", "tablet/"));
80+
resolver.setTabletSuffix(getProperty("tablet-suffix", ""));
81+
resolver.setOrder(getAdjustedOrder(delegateOrder));
82+
return resolver;
83+
}
84+
85+
private String getProperty(String key, String defaultValue) {
86+
return this.environment.getProperty(key, defaultValue);
87+
}
6788

68-
public static final String DEFAULT_MOBILE_SUFFIX = "";
89+
private int getAdjustedOrder(int order) {
90+
if (order == Ordered.HIGHEST_PRECEDENCE) {
91+
return Ordered.HIGHEST_PRECEDENCE;
92+
}
93+
// The view resolver must be ordered higher than the delegate view
94+
// resolver, otherwise the view names will not be adjusted
95+
return order - 1;
96+
}
6997

70-
public static final String DEFAULT_TABLET_SUFFIX = "";
98+
}
7199

72100
@Configuration
73101
@ConditionalOnMissingBean(name = "deviceDelegatingViewResolver")
74-
@ConditionalOnExpression("${spring.mobile.deviceDelegatingViewResolver.enabled:false}")
102+
@ConditionalOnExpression("${spring.mobile.devicedelegatingviewresolver.enabled:false}")
75103
protected static class DeviceDelegatingViewResolverConfiguration {
76104

77105
@Configuration
@@ -81,15 +109,16 @@ protected static class ThymeleafViewResolverViewResolverDelegateConfiguration
81109
extends AbstractDelegateConfiguration {
82110

83111
@Autowired
84-
private ThymeleafViewResolver thymeleafViewResolver;
112+
private ThymeleafViewResolver viewResolver;
85113

86114
@Bean
87115
public LiteDeviceDelegatingViewResolver deviceDelegatingViewResolver() {
88116
if (logger.isDebugEnabled()) {
89-
logger.debug("LiteDeviceDelegatingViewResolver delegates to ThymeleafViewResolver");
117+
logger.debug("LiteDeviceDelegatingViewResolver delegates to "
118+
+ "ThymeleafViewResolver");
90119
}
91-
return getConfiguredViewResolver(thymeleafViewResolver,
92-
thymeleafViewResolver.getOrder());
120+
return getConfiguredViewResolver(this.viewResolver,
121+
this.viewResolver.getOrder());
93122
}
94123

95124
}
@@ -101,58 +130,16 @@ protected static class InternalResourceViewResolverDelegateConfiguration extends
101130
AbstractDelegateConfiguration {
102131

103132
@Autowired
104-
private InternalResourceViewResolver internalResourceViewResolver;
133+
private InternalResourceViewResolver viewResolver;
105134

106135
@Bean
107136
public LiteDeviceDelegatingViewResolver deviceDelegatingViewResolver() {
108137
if (logger.isDebugEnabled()) {
109-
logger.debug("LiteDeviceDelegatingViewResolver delegates to InternalResourceViewResolver");
110-
}
111-
return getConfiguredViewResolver(internalResourceViewResolver,
112-
internalResourceViewResolver.getOrder());
113-
}
114-
115-
}
116-
117-
private static abstract class AbstractDelegateConfiguration implements
118-
EnvironmentAware {
119-
120-
private RelaxedPropertyResolver environment;
121-
122-
@Override
123-
public void setEnvironment(Environment environment) {
124-
this.environment = new RelaxedPropertyResolver(environment,
125-
"spring.mobile.deviceDelegatingViewResolver.");
126-
}
127-
128-
protected LiteDeviceDelegatingViewResolver getConfiguredViewResolver(
129-
ViewResolver delegate, int delegateOrder) {
130-
LiteDeviceDelegatingViewResolver resolver = new LiteDeviceDelegatingViewResolver(
131-
delegate);
132-
resolver.setNormalPrefix(this.environment.getProperty("normalPrefix",
133-
DEFAULT_NORMAL_PREFIX));
134-
resolver.setMobilePrefix(this.environment.getProperty("mobilePrefix",
135-
DEFAULT_MOBILE_PREFIX));
136-
resolver.setTabletPrefix(this.environment.getProperty("tabletPrefix",
137-
DEFAULT_TABLET_PREFIX));
138-
resolver.setNormalSuffix(this.environment.getProperty("normalSuffix",
139-
DEFAULT_NORMAL_SUFFIX));
140-
resolver.setMobileSuffix(this.environment.getProperty("mobileSuffix",
141-
DEFAULT_MOBILE_SUFFIX));
142-
resolver.setTabletSuffix(this.environment.getProperty("tabletSuffix",
143-
DEFAULT_TABLET_SUFFIX));
144-
resolver.setOrder(getAdjustedOrder(delegateOrder));
145-
return resolver;
146-
}
147-
148-
private int getAdjustedOrder(int delegateViewResolverOrder) {
149-
if (delegateViewResolverOrder == Ordered.HIGHEST_PRECEDENCE) {
150-
return Ordered.HIGHEST_PRECEDENCE;
151-
} else {
152-
// The view resolver must be ordered higher than the delegate view
153-
// resolver, otherwise the view names will not be adjusted
154-
return delegateViewResolverOrder - 1;
138+
logger.debug("LiteDeviceDelegatingViewResolver delegates to "
139+
+ "InternalResourceViewResolver");
155140
}
141+
return getConfiguredViewResolver(this.viewResolver,
142+
this.viewResolver.getOrder());
156143
}
157144

158145
}

spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mobile/SitePreferenceAutoConfiguration.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,9 @@
4545
*/
4646
@Configuration
4747
@ConditionalOnClass({ SitePreferenceHandlerInterceptor.class,
48-
SitePreferenceHandlerMethodArgumentResolver.class })
48+
SitePreferenceHandlerMethodArgumentResolver.class })
4949
@AutoConfigureAfter(DeviceResolverAutoConfiguration.class)
50-
@ConditionalOnExpression("${spring.mobile.sitePreference.enabled:true}")
50+
@ConditionalOnExpression("${spring.mobile.sitepreference.enabled:true}")
5151
public class SitePreferenceAutoConfiguration {
5252

5353
@Configuration

0 commit comments

Comments
 (0)