Jakarta EE 9 migration

Upgrades many dependency declarations; removes old EJB 2.x support and outdated Servlet-based integrations (Commons FileUpload, FreeMarker JSP support, Tiles).

Closes gh-22093
Closes gh-25354
Closes gh-26185
Closes gh-27423
See gh-27424
This commit is contained in:
Juergen Hoeller
2021-09-17 09:14:07 +02:00
parent 5822f1bf85
commit d84ca2ba90
1291 changed files with 4992 additions and 25322 deletions

View File

@@ -19,13 +19,13 @@ package org.springframework.web.testfixture.servlet;
import java.io.IOException;
import java.io.InputStream;
import javax.servlet.ReadListener;
import javax.servlet.ServletInputStream;
import jakarta.servlet.ReadListener;
import jakarta.servlet.ServletInputStream;
import org.springframework.util.Assert;
/**
* Delegating implementation of {@link javax.servlet.ServletInputStream}.
* Delegating implementation of {@link jakarta.servlet.ServletInputStream}.
*
* <p>Used by {@link MockHttpServletRequest}; typically not directly
* used for testing application controllers.

View File

@@ -19,13 +19,13 @@ package org.springframework.web.testfixture.servlet;
import java.io.IOException;
import java.io.OutputStream;
import javax.servlet.ServletOutputStream;
import javax.servlet.WriteListener;
import jakarta.servlet.ServletOutputStream;
import jakarta.servlet.WriteListener;
import org.springframework.util.Assert;
/**
* Delegating implementation of {@link javax.servlet.ServletOutputStream}.
* Delegating implementation of {@link jakarta.servlet.ServletOutputStream}.
*
* <p>Used by {@link MockHttpServletResponse}; typically not directly
* used for testing application controllers.

View File

@@ -20,15 +20,15 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.AsyncContext;
import javax.servlet.AsyncEvent;
import javax.servlet.AsyncListener;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.AsyncContext;
import jakarta.servlet.AsyncEvent;
import jakarta.servlet.AsyncListener;
import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.BeanUtils;
import org.springframework.lang.Nullable;

View File

@@ -21,14 +21,14 @@ import java.io.Reader;
import java.io.StringReader;
import java.io.Writer;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.BodyContent;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.jsp.JspWriter;
import jakarta.servlet.jsp.tagext.BodyContent;
import org.springframework.lang.Nullable;
/**
* Mock implementation of the {@link javax.servlet.jsp.tagext.BodyContent} class.
* Mock implementation of the {@link jakarta.servlet.jsp.tagext.BodyContent} class.
* Only necessary for testing applications when testing custom JSP tags.
*
* @author Juergen Hoeller

View File

@@ -20,7 +20,7 @@ import java.time.DateTimeException;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import javax.servlet.http.Cookie;
import jakarta.servlet.http.Cookie;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;

View File

@@ -1,84 +0,0 @@
/*
* Copyright 2002-2018 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.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.web.testfixture.servlet;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
import org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager;
/**
* Mock implementation of the JSP 2.0 {@link javax.servlet.jsp.el.ExpressionEvaluator}
* interface, delegating to the Apache JSTL {@link ExpressionEvaluatorManager}.
* Only necessary for testing applications when testing custom JSP tags.
*
* <p>Note that the Apache JSTL implementation (jstl.jar, standard.jar) has to be
* available on the classpath to use this expression evaluator.
*
* @author Juergen Hoeller
* @since 1.1.5
* @see org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager
*/
@SuppressWarnings("deprecation")
public class MockExpressionEvaluator extends javax.servlet.jsp.el.ExpressionEvaluator {
private final PageContext pageContext;
/**
* Create a new MockExpressionEvaluator for the given PageContext.
* @param pageContext the JSP PageContext to run in
*/
public MockExpressionEvaluator(PageContext pageContext) {
this.pageContext = pageContext;
}
@Override
@SuppressWarnings("rawtypes")
public javax.servlet.jsp.el.Expression parseExpression(final String expression, final Class expectedType,
final javax.servlet.jsp.el.FunctionMapper functionMapper) throws javax.servlet.jsp.el.ELException {
return new javax.servlet.jsp.el.Expression() {
@Override
public Object evaluate(javax.servlet.jsp.el.VariableResolver variableResolver) throws javax.servlet.jsp.el.ELException {
return doEvaluate(expression, expectedType, functionMapper);
}
};
}
@Override
@SuppressWarnings("rawtypes")
public Object evaluate(String expression, Class expectedType, javax.servlet.jsp.el.VariableResolver variableResolver,
javax.servlet.jsp.el.FunctionMapper functionMapper) throws javax.servlet.jsp.el.ELException {
return doEvaluate(expression, expectedType, functionMapper);
}
@SuppressWarnings("rawtypes")
protected Object doEvaluate(String expression, Class expectedType, javax.servlet.jsp.el.FunctionMapper functionMapper)
throws javax.servlet.jsp.el.ELException {
try {
return ExpressionEvaluatorManager.evaluate("JSP EL expression", expression, expectedType, this.pageContext);
}
catch (JspException ex) {
throw new javax.servlet.jsp.el.ELException("Parsing of JSP EL expression \"" + expression + "\" failed", ex);
}
}
}

View File

@@ -22,20 +22,20 @@ import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.Servlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import jakarta.servlet.Filter;
import jakarta.servlet.FilterChain;
import jakarta.servlet.FilterConfig;
import jakarta.servlet.Servlet;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
import org.springframework.util.ObjectUtils;
/**
* Mock implementation of the {@link javax.servlet.FilterChain} interface.
* Mock implementation of the {@link jakarta.servlet.FilterChain} interface.
*
* <p>A {@link MockFilterChain} can be configured with one or more filters and a
* Servlet to invoke. The first time the chain is called, it invokes all filters

View File

@@ -21,17 +21,17 @@ import java.util.Enumeration;
import java.util.LinkedHashMap;
import java.util.Map;
import javax.servlet.FilterConfig;
import javax.servlet.ServletContext;
import jakarta.servlet.FilterConfig;
import jakarta.servlet.ServletContext;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
/**
* Mock implementation of the {@link javax.servlet.FilterConfig} interface.
* Mock implementation of the {@link jakarta.servlet.FilterConfig} interface.
*
* <p>Used for testing the web framework; also useful for testing
* custom {@link javax.servlet.Filter} implementations.
* custom {@link jakarta.servlet.Filter} implementations.
*
* @author Juergen Hoeller
* @since 1.0.2

View File

@@ -16,8 +16,8 @@
package org.springframework.web.testfixture.servlet;
import javax.servlet.http.HttpServletMapping;
import javax.servlet.http.MappingMatch;
import jakarta.servlet.http.HttpServletMapping;
import jakarta.servlet.http.MappingMatch;
import org.springframework.lang.Nullable;

View File

@@ -43,21 +43,21 @@ import java.util.Set;
import java.util.TimeZone;
import java.util.stream.Collectors;
import javax.servlet.AsyncContext;
import javax.servlet.DispatcherType;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletInputStream;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletMapping;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpUpgradeHandler;
import javax.servlet.http.Part;
import jakarta.servlet.AsyncContext;
import jakarta.servlet.DispatcherType;
import jakarta.servlet.RequestDispatcher;
import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletInputStream;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.http.Cookie;
import jakarta.servlet.http.HttpServletMapping;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import jakarta.servlet.http.HttpUpgradeHandler;
import jakarta.servlet.http.Part;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
@@ -72,7 +72,7 @@ import org.springframework.util.StreamUtils;
import org.springframework.util.StringUtils;
/**
* Mock implementation of the {@link javax.servlet.http.HttpServletRequest} interface.
* Mock implementation of the {@link jakarta.servlet.http.HttpServletRequest} interface.
*
* <p>The default, preferred {@link Locale} for the <em>server</em> mocked by this request
* is {@link Locale#ENGLISH}. This value can be changed via {@link #addPreferredLocale}
@@ -823,7 +823,7 @@ public class MockHttpServletRequest implements HttpServletRequest {
* <p>In contrast to the Servlet specification, this mock implementation
* does <strong>not</strong> take into consideration any locales
* specified via the {@code Accept-Language} header.
* @see javax.servlet.ServletRequest#getLocale()
* @see jakarta.servlet.ServletRequest#getLocale()
* @see #addPreferredLocale(Locale)
* @see #setPreferredLocales(List)
*/
@@ -841,7 +841,7 @@ public class MockHttpServletRequest implements HttpServletRequest {
* <p>In contrast to the Servlet specification, this mock implementation
* does <strong>not</strong> take into consideration any locales
* specified via the {@code Accept-Language} header.
* @see javax.servlet.ServletRequest#getLocales()
* @see jakarta.servlet.ServletRequest#getLocales()
* @see #addPreferredLocale(Locale)
* @see #setPreferredLocales(List)
*/
@@ -864,7 +864,7 @@ public class MockHttpServletRequest implements HttpServletRequest {
/**
* Return {@code true} if the {@link #setSecure secure} flag has been set
* to {@code true} or if the {@link #getScheme scheme} is {@code https}.
* @see javax.servlet.ServletRequest#isSecure()
* @see jakarta.servlet.ServletRequest#isSecure()
*/
@Override
public boolean isSecure() {

View File

@@ -38,9 +38,9 @@ import java.util.Locale;
import java.util.Map;
import java.util.TimeZone;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.ServletOutputStream;
import jakarta.servlet.http.Cookie;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
@@ -51,7 +51,7 @@ import org.springframework.util.StringUtils;
import org.springframework.web.util.WebUtils;
/**
* Mock implementation of the {@link javax.servlet.http.HttpServletResponse} interface.
* Mock implementation of the {@link jakarta.servlet.http.HttpServletResponse} interface.
*
* <p>As of Spring Framework 5.0, this set of mocks is designed on a Servlet 4.0 baseline.
*
@@ -383,7 +383,7 @@ public class MockHttpServletResponse implements HttpServletResponse {
@Override
public void setLocale(@Nullable Locale locale) {
// Although the Javadoc for javax.servlet.ServletResponse.setLocale(Locale) does not
// Although the Javadoc for jakarta.servlet.ServletResponse.setLocale(Locale) does not
// state how a null value for the supplied Locale should be handled, both Tomcat and
// Jetty simply ignore a null value. So we do the same here.
if (locale == null) {

View File

@@ -25,17 +25,17 @@ import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.Map;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionBindingListener;
import jakarta.servlet.ServletContext;
import jakarta.servlet.http.HttpSession;
import jakarta.servlet.http.HttpSessionBindingEvent;
import jakarta.servlet.http.HttpSessionBindingListener;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
import org.springframework.util.StringUtils;
/**
* Mock implementation of the {@link javax.servlet.http.HttpSession} interface.
* Mock implementation of the {@link jakarta.servlet.http.HttpSession} interface.
*
* <p>As of Spring 5.0, this set of mocks is designed on a Servlet 4.0 baseline.
*
@@ -149,7 +149,7 @@ public class MockHttpSession implements HttpSession {
}
@Override
public javax.servlet.http.HttpSessionContext getSessionContext() {
public jakarta.servlet.http.HttpSessionContext getSessionContext() {
throw new UnsupportedOperationException("getSessionContext");
}

View File

@@ -20,13 +20,13 @@ import java.io.IOException;
import java.io.PrintWriter;
import java.io.Writer;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.JspWriter;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.jsp.JspWriter;
import org.springframework.lang.Nullable;
/**
* Mock implementation of the {@link javax.servlet.jsp.JspWriter} class.
* Mock implementation of the {@link jakarta.servlet.jsp.JspWriter} class.
* Only necessary for testing applications when testing custom JSP tags.
*
* @author Juergen Hoeller

View File

@@ -24,9 +24,9 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.Part;
import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.Part;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;

View File

@@ -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.
@@ -24,24 +24,24 @@ import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.Map;
import javax.el.ELContext;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
import jakarta.el.ELContext;
import jakarta.servlet.Servlet;
import jakarta.servlet.ServletConfig;
import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import jakarta.servlet.jsp.JspWriter;
import jakarta.servlet.jsp.PageContext;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
/**
* Mock implementation of the {@link javax.servlet.jsp.PageContext} interface.
* Mock implementation of the {@link jakarta.servlet.jsp.PageContext} interface.
* Only necessary for testing applications when testing custom JSP tags.
*
* <p>Note: Expects initialization via the constructor rather than via the
@@ -293,8 +293,9 @@ public class MockPageContext extends PageContext {
@Override
@Deprecated
public javax.servlet.jsp.el.ExpressionEvaluator getExpressionEvaluator() {
return new MockExpressionEvaluator(this);
@Nullable
public jakarta.servlet.jsp.el.ExpressionEvaluator getExpressionEvaluator() {
return null;
}
@Override
@@ -306,7 +307,7 @@ public class MockPageContext extends PageContext {
@Override
@Deprecated
@Nullable
public javax.servlet.jsp.el.VariableResolver getVariableResolver() {
public jakarta.servlet.jsp.el.VariableResolver getVariableResolver() {
return null;
}

View File

@@ -22,7 +22,7 @@ import java.io.InputStream;
import java.util.Collection;
import java.util.Collections;
import javax.servlet.http.Part;
import jakarta.servlet.http.Part;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
@@ -30,7 +30,7 @@ import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
/**
* Mock implementation of {@code javax.servlet.http.Part}.
* Mock implementation of {@code jakarta.servlet.http.Part}.
*
* @author Rossen Stoyanchev
* @author Juergen Hoeller

View File

@@ -16,18 +16,17 @@
package org.springframework.web.testfixture.servlet;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;
import jakarta.servlet.RequestDispatcher;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.http.HttpServletResponseWrapper;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.util.Assert;
/**
* Mock implementation of the {@link javax.servlet.RequestDispatcher} interface.
* Mock implementation of the {@link jakarta.servlet.RequestDispatcher} interface.
*
* @author Rod Johnson
* @author Juergen Hoeller

View File

@@ -21,14 +21,14 @@ import java.util.Enumeration;
import java.util.LinkedHashMap;
import java.util.Map;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import jakarta.servlet.ServletConfig;
import jakarta.servlet.ServletContext;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
/**
* Mock implementation of the {@link javax.servlet.ServletConfig} interface.
* Mock implementation of the {@link jakarta.servlet.ServletConfig} interface.
*
* @author Rod Johnson
* @author Juergen Hoeller

View File

@@ -31,17 +31,16 @@ import java.util.LinkedHashSet;
import java.util.Map;
import java.util.Set;
import javax.servlet.Filter;
import javax.servlet.FilterRegistration;
import javax.servlet.RequestDispatcher;
import javax.servlet.Servlet;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration;
import javax.servlet.SessionCookieConfig;
import javax.servlet.SessionTrackingMode;
import javax.servlet.descriptor.JspConfigDescriptor;
import jakarta.servlet.Filter;
import jakarta.servlet.FilterRegistration;
import jakarta.servlet.RequestDispatcher;
import jakarta.servlet.Servlet;
import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRegistration;
import jakarta.servlet.SessionCookieConfig;
import jakarta.servlet.SessionTrackingMode;
import jakarta.servlet.descriptor.JspConfigDescriptor;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -59,7 +58,7 @@ import org.springframework.util.StringUtils;
import org.springframework.web.util.WebUtils;
/**
* Mock implementation of the {@link javax.servlet.ServletContext} interface.
* Mock implementation of the {@link jakarta.servlet.ServletContext} interface.
*
* <p>As of Spring 5.0, this set of mocks is designed on a Servlet 4.0 baseline.
*
@@ -663,7 +662,7 @@ public class MockServletContext implements ServletContext {
/**
* This method always returns {@code null}.
* @see javax.servlet.ServletContext#getServletRegistration(java.lang.String)
* @see jakarta.servlet.ServletContext#getServletRegistration(java.lang.String)
*/
@Override
@Nullable
@@ -673,7 +672,7 @@ public class MockServletContext implements ServletContext {
/**
* This method always returns an {@linkplain Collections#emptyMap empty map}.
* @see javax.servlet.ServletContext#getServletRegistrations()
* @see jakarta.servlet.ServletContext#getServletRegistrations()
*/
@Override
public Map<String, ? extends ServletRegistration> getServletRegistrations() {
@@ -702,7 +701,7 @@ public class MockServletContext implements ServletContext {
/**
* This method always returns {@code null}.
* @see javax.servlet.ServletContext#getFilterRegistration(java.lang.String)
* @see jakarta.servlet.ServletContext#getFilterRegistration(java.lang.String)
*/
@Override
@Nullable
@@ -712,7 +711,7 @@ public class MockServletContext implements ServletContext {
/**
* This method always returns an {@linkplain Collections#emptyMap empty map}.
* @see javax.servlet.ServletContext#getFilterRegistrations()
* @see jakarta.servlet.ServletContext#getFilterRegistrations()
*/
@Override
public Map<String, ? extends FilterRegistration> getFilterRegistrations() {

View File

@@ -16,16 +16,16 @@
package org.springframework.web.testfixture.servlet;
import javax.servlet.SessionCookieConfig;
import jakarta.servlet.SessionCookieConfig;
import org.springframework.lang.Nullable;
/**
* Mock implementation of the {@link javax.servlet.SessionCookieConfig} interface.
* Mock implementation of the {@link jakarta.servlet.SessionCookieConfig} interface.
*
* @author Juergen Hoeller
* @since 4.0
* @see javax.servlet.ServletContext#getSessionCookieConfig()
* @see jakarta.servlet.ServletContext#getSessionCookieConfig()
*/
public class MockSessionCookieConfig implements SessionCookieConfig {

View File

@@ -18,26 +18,26 @@ package org.springframework.web.testfixture.servlet;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.Servlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import jakarta.servlet.Filter;
import jakarta.servlet.FilterChain;
import jakarta.servlet.Servlet;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import org.springframework.lang.Nullable;
import org.springframework.util.Assert;
/**
* Implementation of the {@link javax.servlet.FilterConfig} interface which
* Implementation of the {@link jakarta.servlet.FilterConfig} interface which
* simply passes the call through to a given Filter/FilterChain combination
* (indicating the next Filter in the chain along with the FilterChain that it is
* supposed to work on) or to a given Servlet (indicating the end of the chain).
*
* @author Juergen Hoeller
* @since 2.0.3
* @see javax.servlet.Filter
* @see javax.servlet.Servlet
* @see jakarta.servlet.Filter
* @see jakarta.servlet.Servlet
* @see MockFilterChain
*/
public class PassThroughFilterChain implements FilterChain {

View File

@@ -16,7 +16,7 @@
package org.springframework.web.testfixture.xml;
import javax.xml.bind.annotation.XmlRootElement;
import jakarta.xml.bind.annotation.XmlRootElement;
/**
* @author Sebastien Deleuze