Skip to content

Commit

Permalink
Deprecate LastModified
Browse files Browse the repository at this point in the history
  • Loading branch information
rstoyanchev authored and lxbzmy committed Mar 26, 2022
1 parent 8f215df commit 28e1749
Show file tree
Hide file tree
Showing 12 changed files with 36 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1020,6 +1020,7 @@ private void logRequest(HttpServletRequest request) {
* @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;
Expand Down
Original file line number Diff line number Diff line change
@@ -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.
Expand Down Expand Up @@ -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);

}
Original file line number Diff line number Diff line change
@@ -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.
Expand Down Expand Up @@ -157,6 +157,7 @@ else if (result == null) {
}

@Override
@SuppressWarnings("deprecation")
public long getLastModified(HttpServletRequest request, Object handler) {
return -1L;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -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.
Expand Down Expand Up @@ -69,6 +69,7 @@ public ModelAndView handle(HttpServletRequest request, HttpServletResponse respo
}

@Override
@SuppressWarnings("deprecation")
public long getLastModified(HttpServletRequest request, Object handler) {
return -1;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -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.
Expand Down Expand Up @@ -93,11 +93,12 @@
* 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
Expand Down
Original file line number Diff line number Diff line change
@@ -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.
Expand Down Expand Up @@ -35,7 +35,6 @@
* @since 2.0
* @see org.springframework.web.servlet.DispatcherServlet
* @see org.springframework.web.HttpRequestHandler
* @see LastModified
* @see SimpleControllerHandlerAdapter
*/
public class HttpRequestHandlerAdapter implements HandlerAdapter {
Expand All @@ -55,6 +54,7 @@ public ModelAndView handle(HttpServletRequest request, HttpServletResponse respo
}

@Override
@SuppressWarnings("deprecation")
public long getLastModified(HttpServletRequest request, Object handler) {
if (handler instanceof LastModified) {
return ((LastModified) handler).getLastModified(request);
Expand Down
Original file line number Diff line number Diff line change
@@ -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.
Expand Down Expand Up @@ -34,12 +34,18 @@
*
* @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 {

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -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.
Expand Down Expand Up @@ -34,7 +34,6 @@
* @author Juergen Hoeller
* @see org.springframework.web.servlet.DispatcherServlet
* @see Controller
* @see LastModified
* @see HttpRequestHandlerAdapter
*/
public class SimpleControllerHandlerAdapter implements HandlerAdapter {
Expand All @@ -53,6 +52,7 @@ public ModelAndView handle(HttpServletRequest request, HttpServletResponse respo
}

@Override
@SuppressWarnings("deprecation")
public long getLastModified(HttpServletRequest request, Object handler) {
if (handler instanceof LastModified) {
return ((LastModified) handler).getLastModified(request);
Expand Down
Original file line number Diff line number Diff line change
@@ -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.
Expand Down Expand Up @@ -105,6 +105,7 @@ protected abstract ModelAndView handleInternal(HttpServletRequest request,
* 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);
}
Expand All @@ -114,7 +115,10 @@ public final long getLastModified(HttpServletRequest request, Object handler) {
* @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);

}
Original file line number Diff line number Diff line change
Expand Up @@ -826,6 +826,7 @@ protected ModelAndView handleInternal(HttpServletRequest request,
* 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;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -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.
Expand Down Expand Up @@ -34,7 +34,6 @@
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;
Expand Down Expand Up @@ -68,7 +67,8 @@ public void refresh() throws BeansException {
}


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)
Expand Down
10 changes: 3 additions & 7 deletions src/docs/asciidoc/web/webmvc.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 28e1749

Please sign in to comment.