From c1c07bbeb231bd245308f874194b7cf4038776f8 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Wed, 28 Oct 2015 14:00:20 +0100 Subject: [PATCH] AbstractDispatcherServletInitializer allows for registering any FrameworkServlet subclass Issue: SPR-13616 --- .../support/AbstractDispatcherServletInitializer.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/support/AbstractDispatcherServletInitializer.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/support/AbstractDispatcherServletInitializer.java index 6a29c1a8e5..3fe22004ef 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/support/AbstractDispatcherServletInitializer.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/support/AbstractDispatcherServletInitializer.java @@ -32,6 +32,7 @@ import org.springframework.util.ObjectUtils; import org.springframework.web.context.AbstractContextLoaderInitializer; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.servlet.DispatcherServlet; +import org.springframework.web.servlet.FrameworkServlet; /** * Base class for {@link org.springframework.web.WebApplicationInitializer} @@ -90,7 +91,7 @@ public abstract class AbstractDispatcherServletInitializer extends AbstractConte "createServletApplicationContext() did not return an application " + "context for servlet [" + servletName + "]"); - DispatcherServlet dispatcherServlet = createDispatcherServlet(servletAppContext); + FrameworkServlet dispatcherServlet = createDispatcherServlet(servletAppContext); dispatcherServlet.setContextInitializers(getServletApplicationContextInitializers()); ServletRegistration.Dynamic registration = servletContext.addServlet(servletName, dispatcherServlet); @@ -132,9 +133,12 @@ public abstract class AbstractDispatcherServletInitializer extends AbstractConte protected abstract WebApplicationContext createServletApplicationContext(); /** - * Create a {@link DispatcherServlet} with the specified {@link WebApplicationContext}. + * Create a {@link DispatcherServlet} (or other kind of {@link FrameworkServlet}-derived + * dispatcher) with the specified {@link WebApplicationContext}. + *

Note: This allows for any {@link FrameworkServlet} subclass as of 4.2.3. + * Previously, it insisted on returning a {@link DispatcherServlet} or subclass thereof. */ - protected DispatcherServlet createDispatcherServlet(WebApplicationContext servletAppContext) { + protected FrameworkServlet createDispatcherServlet(WebApplicationContext servletAppContext) { return new DispatcherServlet(servletAppContext); }