Browse Source

Deprecate LastModified

See gh-27075
pull/27165/head
Rossen Stoyanchev 4 years ago
parent
commit
95d7f883ae
  1. 1
      spring-webmvc/src/main/java/org/springframework/web/servlet/DispatcherServlet.java
  2. 7
      spring-webmvc/src/main/java/org/springframework/web/servlet/HandlerAdapter.java
  3. 3
      spring-webmvc/src/main/java/org/springframework/web/servlet/function/support/HandlerFunctionAdapter.java
  4. 3
      spring-webmvc/src/main/java/org/springframework/web/servlet/handler/SimpleServletHandlerAdapter.java
  5. 7
      spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/Controller.java
  6. 4
      spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/HttpRequestHandlerAdapter.java
  7. 8
      spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/LastModified.java
  8. 4
      spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/SimpleControllerHandlerAdapter.java
  9. 6
      spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/AbstractHandlerMethodAdapter.java
  10. 1
      spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/RequestMappingHandlerAdapter.java
  11. 6
      spring-webmvc/src/test/java/org/springframework/web/servlet/SimpleWebApplicationContext.java
  12. 10
      src/docs/asciidoc/web/webmvc.adoc

1
spring-webmvc/src/main/java/org/springframework/web/servlet/DispatcherServlet.java

@ -1020,6 +1020,7 @@ public class DispatcherServlet extends FrameworkServlet { @@ -1020,6 +1020,7 @@ public class DispatcherServlet extends FrameworkServlet {
* @param response current HTTP response
* @throws Exception in case of any kind of processing failure
*/
@SuppressWarnings("deprecation")
protected void doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exception {
HttpServletRequest processedRequest = request;
HandlerExecutionChain mappedHandler = null;

7
spring-webmvc/src/main/java/org/springframework/web/servlet/HandlerAdapter.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2018 the original author or authors.
* Copyright 2002-2021 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -83,9 +83,10 @@ public interface HandlerAdapter { @@ -83,9 +83,10 @@ public interface HandlerAdapter {
* @param request current HTTP request
* @param handler the handler to use
* @return the lastModified value for the given handler
* @see javax.servlet.http.HttpServlet#getLastModified
* @see org.springframework.web.servlet.mvc.LastModified#getLastModified
* @deprecated as of 5.3.9 along with
* {@link org.springframework.web.servlet.mvc.LastModified}.
*/
@Deprecated
long getLastModified(HttpServletRequest request, Object handler);
}

3
spring-webmvc/src/main/java/org/springframework/web/servlet/function/support/HandlerFunctionAdapter.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2019 the original author or authors.
* Copyright 2002-2021 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -157,6 +157,7 @@ public class HandlerFunctionAdapter implements HandlerAdapter, Ordered { @@ -157,6 +157,7 @@ public class HandlerFunctionAdapter implements HandlerAdapter, Ordered {
}
@Override
@SuppressWarnings("deprecation")
public long getLastModified(HttpServletRequest request, Object handler) {
return -1L;
}

3
spring-webmvc/src/main/java/org/springframework/web/servlet/handler/SimpleServletHandlerAdapter.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2021 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -69,6 +69,7 @@ public class SimpleServletHandlerAdapter implements HandlerAdapter { @@ -69,6 +69,7 @@ public class SimpleServletHandlerAdapter implements HandlerAdapter {
}
@Override
@SuppressWarnings("deprecation")
public long getLastModified(HttpServletRequest request, Object handler) {
return -1;
}

7
spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/Controller.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2016 the original author or authors.
* Copyright 2002-2021 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -93,11 +93,12 @@ import org.springframework.web.servlet.ModelAndView; @@ -93,11 +93,12 @@ import org.springframework.web.servlet.ModelAndView;
* you all those references through convenient accessors but requires an
* ApplicationContext reference on initialization.
*
* <p>Controllers can optionally implement the {@link LastModified} interface.
* <p>Controllers can use the {@code checkNotModified} methods on
* {@link org.springframework.web.context.request.WebRequest} for HTTP caching
* support.
*
* @author Rod Johnson
* @author Juergen Hoeller
* @see LastModified
* @see SimpleControllerHandlerAdapter
* @see AbstractController
* @see org.springframework.mock.web.MockHttpServletRequest

4
spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/HttpRequestHandlerAdapter.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2021 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -35,7 +35,6 @@ import org.springframework.web.servlet.ModelAndView; @@ -35,7 +35,6 @@ import org.springframework.web.servlet.ModelAndView;
* @since 2.0
* @see org.springframework.web.servlet.DispatcherServlet
* @see org.springframework.web.HttpRequestHandler
* @see LastModified
* @see SimpleControllerHandlerAdapter
*/
public class HttpRequestHandlerAdapter implements HandlerAdapter {
@ -55,6 +54,7 @@ public class HttpRequestHandlerAdapter implements HandlerAdapter { @@ -55,6 +54,7 @@ public class HttpRequestHandlerAdapter implements HandlerAdapter {
}
@Override
@SuppressWarnings("deprecation")
public long getLastModified(HttpServletRequest request, Object handler) {
if (handler instanceof LastModified) {
return ((LastModified) handler).getLastModified(request);

8
spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/LastModified.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2021 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -34,12 +34,18 @@ import javax.servlet.http.HttpServletRequest; @@ -34,12 +34,18 @@ import javax.servlet.http.HttpServletRequest;
*
* @author Rod Johnson
* @author Juergen Hoeller
* @deprecated as of 5.3.9 in favor of using the {@code checkNotModified} methods
* in {@link org.springframework.web.context.request.WebRequest}, or from an
* annotated controller method, returning a
* {@link org.springframework.http.ResponseEntity} with an "ETag" and/or
* "Last-Modified" headers set.
* @see javax.servlet.http.HttpServlet#getLastModified
* @see Controller
* @see SimpleControllerHandlerAdapter
* @see org.springframework.web.HttpRequestHandler
* @see HttpRequestHandlerAdapter
*/
@Deprecated
public interface LastModified {
/**

4
spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/SimpleControllerHandlerAdapter.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2021 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -34,7 +34,6 @@ import org.springframework.web.servlet.ModelAndView; @@ -34,7 +34,6 @@ import org.springframework.web.servlet.ModelAndView;
* @author Juergen Hoeller
* @see org.springframework.web.servlet.DispatcherServlet
* @see Controller
* @see LastModified
* @see HttpRequestHandlerAdapter
*/
public class SimpleControllerHandlerAdapter implements HandlerAdapter {
@ -53,6 +52,7 @@ public class SimpleControllerHandlerAdapter implements HandlerAdapter { @@ -53,6 +52,7 @@ public class SimpleControllerHandlerAdapter implements HandlerAdapter {
}
@Override
@SuppressWarnings("deprecation")
public long getLastModified(HttpServletRequest request, Object handler) {
if (handler instanceof LastModified) {
return ((LastModified) handler).getLastModified(request);

6
spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/AbstractHandlerMethodAdapter.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2018 the original author or authors.
* Copyright 2002-2021 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -105,6 +105,7 @@ public abstract class AbstractHandlerMethodAdapter extends WebContentGenerator i @@ -105,6 +105,7 @@ public abstract class AbstractHandlerMethodAdapter extends WebContentGenerator i
* This implementation expects the handler to be an {@link HandlerMethod}.
*/
@Override
@SuppressWarnings("deprecation")
public final long getLastModified(HttpServletRequest request, Object handler) {
return getLastModifiedInternal(request, (HandlerMethod) handler);
}
@ -114,7 +115,10 @@ public abstract class AbstractHandlerMethodAdapter extends WebContentGenerator i @@ -114,7 +115,10 @@ public abstract class AbstractHandlerMethodAdapter extends WebContentGenerator i
* @param request current HTTP request
* @param handlerMethod handler method to use
* @return the lastModified value for the given handler
* @deprecated as of 5.3.9 along with
* {@link org.springframework.web.servlet.mvc.LastModified}.
*/
@Deprecated
protected abstract long getLastModifiedInternal(HttpServletRequest request, HandlerMethod handlerMethod);
}

1
spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/RequestMappingHandlerAdapter.java

@ -826,6 +826,7 @@ public class RequestMappingHandlerAdapter extends AbstractHandlerMethodAdapter @@ -826,6 +826,7 @@ public class RequestMappingHandlerAdapter extends AbstractHandlerMethodAdapter
* and return {@code null} if the result of that call is {@code true}.
*/
@Override
@SuppressWarnings("deprecation")
protected long getLastModifiedInternal(HttpServletRequest request, HandlerMethod handlerMethod) {
return -1;
}

6
spring-webmvc/src/test/java/org/springframework/web/servlet/SimpleWebApplicationContext.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2019 the original author or authors.
* Copyright 2002-2021 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -34,7 +34,6 @@ import org.springframework.web.context.support.StaticWebApplicationContext; @@ -34,7 +34,6 @@ import org.springframework.web.context.support.StaticWebApplicationContext;
import org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping;
import org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver;
import org.springframework.web.servlet.mvc.Controller;
import org.springframework.web.servlet.mvc.LastModified;
import org.springframework.web.servlet.support.RequestContextUtils;
import org.springframework.web.servlet.theme.AbstractThemeResolver;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
@ -68,7 +67,8 @@ public class SimpleWebApplicationContext extends StaticWebApplicationContext { @@ -68,7 +67,8 @@ public class SimpleWebApplicationContext extends StaticWebApplicationContext {
}
public static class LocaleChecker implements Controller, LastModified {
@SuppressWarnings("deprecation")
public static class LocaleChecker implements Controller, org.springframework.web.servlet.mvc.LastModified {
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)

10
src/docs/asciidoc/web/webmvc.adoc

@ -527,13 +527,9 @@ The `HandlerExceptionResolver` beans declared in the `WebApplicationContext` are @@ -527,13 +527,9 @@ The `HandlerExceptionResolver` beans declared in the `WebApplicationContext` are
resolve exceptions thrown during request processing. Those exception resolvers allow
customizing the logic to address exceptions. See <<mvc-exceptionhandlers>> for more details.
The Spring `DispatcherServlet` also supports the return of the
`last-modification-date`, as specified by the Servlet API. The process of determining
the last modification date for a specific request is straightforward: The
`DispatcherServlet` looks up an appropriate handler mapping and tests whether the
handler that is found implements the `LastModified` interface. If so, the value of the
`long getLastModified(request)` method of the `LastModified` interface is returned to
the client.
For HTTP caching support, handlers can use the `checkNotModified` methods of `WebRequest`,
along with further options for annoated controllers as described in
<<mvc-caching-etag-lastmodified,HTTP Caching for Controllers>>.
You can customize individual `DispatcherServlet` instances by adding Servlet
initialization parameters (`init-param` elements) to the Servlet declaration in the

Loading…
Cancel
Save