Deprecate support for theme

As seen in gh-28868, the support for Themes is now deprecated as of
Spring Framework 6.0 and will be removed in a future release.

Closes gh-29114
This commit is contained in:
Nheyll
2022-09-09 09:12:52 +02:00
committed by Brian Clozel
parent 5e1b5af0e0
commit 058109315d
33 changed files with 120 additions and 50 deletions

View File

@@ -64,8 +64,6 @@ import org.springframework.web.servlet.mvc.ParameterizableViewController;
import org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter;
import org.springframework.web.servlet.support.RequestContext;
import org.springframework.web.servlet.support.RequestContextUtils;
import org.springframework.web.servlet.theme.SessionThemeResolver;
import org.springframework.web.servlet.theme.ThemeChangeInterceptor;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.util.WebUtils;
@@ -79,13 +77,16 @@ public class ComplexWebApplicationContext extends StaticWebApplicationContext {
@SuppressWarnings("deprecation")
public void refresh() throws BeansException {
registerSingleton(DispatcherServlet.LOCALE_RESOLVER_BEAN_NAME, SessionLocaleResolver.class);
registerSingleton(DispatcherServlet.THEME_RESOLVER_BEAN_NAME, SessionThemeResolver.class);
registerSingleton(DispatcherServlet.THEME_RESOLVER_BEAN_NAME,
org.springframework.web.servlet.theme.SessionThemeResolver.class);
LocaleChangeInterceptor interceptor1 = new LocaleChangeInterceptor();
LocaleChangeInterceptor interceptor2 = new LocaleChangeInterceptor();
interceptor2.setParamName("locale2");
ThemeChangeInterceptor interceptor3 = new ThemeChangeInterceptor();
ThemeChangeInterceptor interceptor4 = new ThemeChangeInterceptor();
org.springframework.web.servlet.theme.ThemeChangeInterceptor interceptor3 =
new org.springframework.web.servlet.theme.ThemeChangeInterceptor();
org.springframework.web.servlet.theme.ThemeChangeInterceptor interceptor4 =
new org.springframework.web.servlet.theme.ThemeChangeInterceptor();
interceptor4.setParamName("theme2");
UserRoleAuthorizationInterceptor interceptor5 = new UserRoleAuthorizationInterceptor();
interceptor5.setAuthorizedRoles("role1", "role2");
@@ -126,7 +127,8 @@ public class ComplexWebApplicationContext extends StaticWebApplicationContext {
pvs = new MutablePropertyValues();
pvs.add("order", 0);
pvs.add("basename", "org.springframework.web.servlet.complexviews");
registerSingleton("viewResolver", org.springframework.web.servlet.view.ResourceBundleViewResolver.class, pvs);
registerSingleton("viewResolver",
org.springframework.web.servlet.view.ResourceBundleViewResolver.class, pvs);
pvs = new MutablePropertyValues();
pvs.add("suffix", ".jsp");
@@ -410,6 +412,7 @@ public class ComplexWebApplicationContext extends StaticWebApplicationContext {
public static class ComplexLocaleChecker implements MyHandler {
@Override
@SuppressWarnings("deprecation")
public void doSomething(HttpServletRequest request) throws ServletException, IllegalAccessException {
WebApplicationContext wac = RequestContextUtils.findWebApplicationContext(request);
if (!(wac instanceof ComplexWebApplicationContext)) {
@@ -445,7 +448,8 @@ public class ComplexWebApplicationContext extends StaticWebApplicationContext {
if (!TimeZone.getDefault().equals(LocaleContextHolder.getTimeZone())) {
throw new ServletException("Incorrect TimeZone");
}
if (!(RequestContextUtils.getThemeResolver(request) instanceof SessionThemeResolver)) {
if (!(RequestContextUtils.getThemeResolver(request)
instanceof org.springframework.web.servlet.theme.SessionThemeResolver)) {
throw new ServletException("Incorrect ThemeResolver");
}
if (!"theme".equals(RequestContextUtils.getThemeResolver(request).resolveThemeName(request))) {

View File

@@ -42,10 +42,10 @@ import org.springframework.web.servlet.view.InternalResourceViewResolver;
* @author Juergen Hoeller
* @since 21.05.2003
*/
@SuppressWarnings("deprecation")
public class SimpleWebApplicationContext extends StaticWebApplicationContext {
@Override
@SuppressWarnings("deprecation")
public void refresh() throws BeansException {
registerSingleton("/locale.do", LocaleChecker.class);
@@ -67,7 +67,6 @@ public class SimpleWebApplicationContext extends StaticWebApplicationContext {
}
@SuppressWarnings("deprecation")
public static class LocaleChecker implements Controller, org.springframework.web.servlet.mvc.LastModified {
@Override

View File

@@ -161,6 +161,8 @@ import static org.assertj.core.api.InstanceOfAssertFactories.BOOLEAN;
* @author Sam Brannen
* @author Marten Deinum
*/
@SuppressWarnings("deprecation")
public class MvcNamespaceTests {
public static final String VIEWCONTROLLER_BEAN_NAME =

View File

@@ -50,12 +50,14 @@ import static org.assertj.core.api.Assertions.fail;
* @author Rossen Stoyanchev
* @author Eko Kurniawan Khannedy
*/
@SuppressWarnings("deprecation")
public class InterceptorRegistryTests {
private InterceptorRegistry registry;
private final HandlerInterceptor interceptor1 = new LocaleChangeInterceptor();
@Deprecated
private final HandlerInterceptor interceptor2 = new ThemeChangeInterceptor();
private TestWebRequestInterceptor webInterceptor1;
@@ -177,7 +179,6 @@ public class InterceptorRegistryTests {
}
@SuppressWarnings("deprecation")
private List<HandlerInterceptor> getInterceptorsForPath(String lookupPath) {
PathMatcher pathMatcher = new AntPathMatcher();
List<HandlerInterceptor> result = new ArrayList<>();

View File

@@ -69,7 +69,6 @@ import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.HandlerMapping;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.RequestToViewNameTranslator;
import org.springframework.web.servlet.ThemeResolver;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping;
import org.springframework.web.servlet.handler.ConversionServiceExposingInterceptor;
@@ -85,7 +84,6 @@ import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandl
import org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver;
import org.springframework.web.servlet.resource.ResourceUrlProviderExposingInterceptor;
import org.springframework.web.servlet.support.SessionFlashMapManager;
import org.springframework.web.servlet.theme.FixedThemeResolver;
import org.springframework.web.servlet.view.BeanNameViewResolver;
import org.springframework.web.servlet.view.DefaultRequestToViewNameTranslator;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
@@ -335,12 +333,14 @@ public class WebMvcConfigurationSupportTests {
}
@Test
@SuppressWarnings("deprecation")
public void defaultThemeResolverConfiguration() {
ApplicationContext context = initContext(WebConfig.class);
ThemeResolver themeResolver = context.getBean(THEME_RESOLVER_BEAN_NAME, ThemeResolver.class);
org.springframework.web.servlet.ThemeResolver themeResolver =
context.getBean(THEME_RESOLVER_BEAN_NAME, org.springframework.web.servlet.ThemeResolver.class);
assertThat(themeResolver).isNotNull();
assertThat(themeResolver).isInstanceOf(FixedThemeResolver.class);
assertThat(themeResolver).isInstanceOf(org.springframework.web.servlet.theme.FixedThemeResolver.class);
}
@Test

View File

@@ -35,6 +35,7 @@ import org.springframework.web.testfixture.servlet.MockServletContext;
* @author Juergen Hoeller
* @author Sam Brannen
*/
@SuppressWarnings("deprecation")
public abstract class AbstractTagTests {
protected MockPageContext createPageContext() {

View File

@@ -36,6 +36,7 @@ import static org.assertj.core.api.Assertions.assertThat;
* @author Juergen Hoeller
* @author Alef Arendsen
*/
@SuppressWarnings("deprecation")
class ThemeTagTests extends AbstractTagTests {
@Test

View File

@@ -30,6 +30,7 @@ import static org.assertj.core.api.Assertions.assertThat;
* @author Juergen Hoeller
* @since 19.06.2003
*/
@SuppressWarnings("deprecation")
public class ThemeResolverTests {
private static final String TEST_THEME_NAME = "test.theme";

View File

@@ -64,6 +64,7 @@ import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
* @author Sam Brannen
* @since 18.06.2003
*/
@SuppressWarnings("deprecation")
public class ViewResolverTests {
private final StaticWebApplicationContext wac = new StaticWebApplicationContext();

View File

@@ -57,6 +57,7 @@ import static org.assertj.core.api.Assertions.assertThat;
* @author Sam Brannen
* @since 25.01.2005
*/
@SuppressWarnings("deprecation")
public class FreeMarkerMacroTests {
private static final String TEMPLATE_FILE = "test.ftl";