Add @Override to remaining source files

Issue: SPR-10130
This commit is contained in:
Rob Winch
2013-05-13 16:47:34 -05:00
parent 30db112d37
commit 9468548116
1279 changed files with 5825 additions and 2 deletions

View File

@@ -29,10 +29,12 @@ public class DefaultCookie implements Cookie {
this.value = value;
}
@Override
public String getName() {
return name;
}
@Override
public String getValue() {
return value;
}

View File

@@ -692,6 +692,7 @@ public class HttpHeaders implements MultiValueMap<String, String>, Serializable
* @param headerName the header name
* @return the first header value; or {@code null}
*/
@Override
public String getFirst(String headerName) {
List<String> headerValues = headers.get(headerName);
return headerValues != null ? headerValues.get(0) : null;
@@ -705,6 +706,7 @@ public class HttpHeaders implements MultiValueMap<String, String>, Serializable
* @see #put(String, List)
* @see #set(String, String)
*/
@Override
public void add(String headerName, String headerValue) {
List<String> headerValues = headers.get(headerName);
if (headerValues == null) {
@@ -722,18 +724,21 @@ public class HttpHeaders implements MultiValueMap<String, String>, Serializable
* @see #put(String, List)
* @see #add(String, String)
*/
@Override
public void set(String headerName, String headerValue) {
List<String> headerValues = new LinkedList<String>();
headerValues.add(headerValue);
headers.put(headerName, headerValues);
}
@Override
public void setAll(Map<String, String> values) {
for (Entry<String, String> entry : values.entrySet()) {
set(entry.getKey(), entry.getValue());
}
}
@Override
public Map<String, String> toSingleValueMap() {
LinkedHashMap<String, String> singleValueMap = new LinkedHashMap<String,String>(this.headers.size());
for (Entry<String, List<String>> entry : headers.entrySet()) {
@@ -744,50 +749,62 @@ public class HttpHeaders implements MultiValueMap<String, String>, Serializable
// Map implementation
@Override
public int size() {
return this.headers.size();
}
@Override
public boolean isEmpty() {
return this.headers.isEmpty();
}
@Override
public boolean containsKey(Object key) {
return this.headers.containsKey(key);
}
@Override
public boolean containsValue(Object value) {
return this.headers.containsValue(value);
}
@Override
public List<String> get(Object key) {
return this.headers.get(key);
}
@Override
public List<String> put(String key, List<String> value) {
return this.headers.put(key, value);
}
@Override
public List<String> remove(Object key) {
return this.headers.remove(key);
}
@Override
public void putAll(Map<? extends String, ? extends List<String>> m) {
this.headers.putAll(m);
}
@Override
public void clear() {
this.headers.clear();
}
@Override
public Set<String> keySet() {
return this.headers.keySet();
}
@Override
public Collection<List<String>> values() {
return this.headers.values();
}
@Override
public Set<Entry<String, List<String>>> entrySet() {
return this.headers.entrySet();
}

View File

@@ -584,6 +584,7 @@ public class MediaType implements Comparable<MediaType> {
* @param other media type to compare to
* @see #sortBySpecificity(List)
*/
@Override
public int compareTo(MediaType other) {
int comp = this.type.compareToIgnoreCase(other.type);
if (comp != 0) {
@@ -850,6 +851,7 @@ public class MediaType implements Comparable<MediaType> {
*/
public static final Comparator<MediaType> SPECIFICITY_COMPARATOR = new Comparator<MediaType>() {
@Override
public int compare(MediaType mediaType1, MediaType mediaType2) {
if (mediaType1.isWildcardType() && !mediaType2.isWildcardType()) { // */* < audio/*
return 1;
@@ -893,6 +895,7 @@ public class MediaType implements Comparable<MediaType> {
*/
public static final Comparator<MediaType> QUALITY_VALUE_COMPARATOR = new Comparator<MediaType>() {
@Override
public int compare(MediaType mediaType1, MediaType mediaType2) {
double quality1 = mediaType1.getQualityValue();
double quality2 = mediaType2.getQualityValue();

View File

@@ -36,20 +36,24 @@ public abstract class AbstractClientHttpRequest implements ClientHttpRequest {
private boolean executed = false;
@Override
public final HttpHeaders getHeaders() {
return (this.executed ? HttpHeaders.readOnlyHttpHeaders(this.headers) : this.headers);
}
@Override
public final OutputStream getBody() throws IOException {
checkExecuted();
return getBodyInternal(this.headers);
}
@Override
public Cookies getCookies() {
// TODO
throw new UnsupportedOperationException();
}
@Override
public final ClientHttpResponse execute() throws IOException {
checkExecuted();
ClientHttpResponse result = executeInternal(this.headers);

View File

@@ -48,6 +48,7 @@ public abstract class AbstractClientHttpRequestFactoryWrapper implements ClientH
* with the wrapped request factory provided to the
* {@linkplain #AbstractClientHttpRequestFactoryWrapper(ClientHttpRequestFactory) constructor}.
*/
@Override
public final ClientHttpRequest createRequest(URI uri, HttpMethod httpMethod) throws IOException {
return createRequest(uri, httpMethod, requestFactory);
}

View File

@@ -29,10 +29,12 @@ import org.springframework.http.HttpStatus;
*/
public abstract class AbstractClientHttpResponse implements ClientHttpResponse {
@Override
public HttpStatus getStatusCode() throws IOException {
return HttpStatus.valueOf(getRawStatusCode());
}
@Override
public Cookies getCookies() {
// TODO
throw new UnsupportedOperationException();

View File

@@ -42,10 +42,12 @@ final class BufferingClientHttpRequestWrapper extends AbstractBufferingClientHtt
}
@Override
public HttpMethod getMethod() {
return this.request.getMethod();
}
@Override
public URI getURI() {
return this.request.getURI();
}

View File

@@ -44,22 +44,27 @@ final class BufferingClientHttpResponseWrapper implements ClientHttpResponse {
}
@Override
public HttpStatus getStatusCode() throws IOException {
return this.response.getStatusCode();
}
@Override
public int getRawStatusCode() throws IOException {
return this.response.getRawStatusCode();
}
@Override
public String getStatusText() throws IOException {
return this.response.getStatusText();
}
@Override
public HttpHeaders getHeaders() {
return this.response.getHeaders();
}
@Override
public InputStream getBody() throws IOException {
if (this.body == null) {
this.body = StreamUtils.copyToByteArray(this.response.getBody());
@@ -67,10 +72,12 @@ final class BufferingClientHttpResponseWrapper implements ClientHttpResponse {
return new ByteArrayInputStream(this.body);
}
@Override
public Cookies getCookies() {
return this.response.getCookies();
}
@Override
public void close() {
this.response.close();
}

View File

@@ -57,6 +57,7 @@ public interface ClientHttpResponse extends HttpInputMessage, Closeable {
/**
* Closes this response, freeing any resources created.
*/
@Override
void close();
}

View File

@@ -60,10 +60,12 @@ final class HttpComponentsClientHttpRequest extends AbstractBufferingClientHttpR
}
@Override
public HttpMethod getMethod() {
return HttpMethod.valueOf(this.httpRequest.getMethod());
}
@Override
public URI getURI() {
return this.httpRequest.getURI();
}

View File

@@ -128,6 +128,7 @@ public class HttpComponentsClientHttpRequestFactory implements ClientHttpRequest
getHttpClient().getParams().setIntParameter(CoreConnectionPNames.SO_TIMEOUT, timeout);
}
@Override
public ClientHttpRequest createRequest(URI uri, HttpMethod httpMethod) throws IOException {
HttpUriRequest httpRequest = createHttpUriRequest(httpMethod, uri);
postProcessHttpRequest(httpRequest);
@@ -188,6 +189,7 @@ public class HttpComponentsClientHttpRequestFactory implements ClientHttpRequest
* {@link org.apache.http.conn.ClientConnectionManager ClientConnectionManager}'s
* connection pool, if any.
*/
@Override
public void destroy() {
getHttpClient().getConnectionManager().shutdown();
}

View File

@@ -49,14 +49,17 @@ final class HttpComponentsClientHttpResponse extends AbstractClientHttpResponse
}
@Override
public int getRawStatusCode() throws IOException {
return this.httpResponse.getStatusLine().getStatusCode();
}
@Override
public String getStatusText() throws IOException {
return this.httpResponse.getStatusLine().getReasonPhrase();
}
@Override
public HttpHeaders getHeaders() {
if (this.headers == null) {
this.headers = new HttpHeaders();
@@ -67,11 +70,13 @@ final class HttpComponentsClientHttpResponse extends AbstractClientHttpResponse
return this.headers;
}
@Override
public InputStream getBody() throws IOException {
HttpEntity entity = this.httpResponse.getEntity();
return entity != null ? entity.getContent() : null;
}
@Override
public void close() {
HttpEntity entity = this.httpResponse.getEntity();
if (entity != null) {

View File

@@ -52,10 +52,12 @@ class InterceptingClientHttpRequest extends AbstractBufferingClientHttpRequest {
this.uri = uri;
}
@Override
public HttpMethod getMethod() {
return method;
}
@Override
public URI getURI() {
return uri;
}
@@ -75,6 +77,7 @@ class InterceptingClientHttpRequest extends AbstractBufferingClientHttpRequest {
this.iterator = interceptors.iterator();
}
@Override
public ClientHttpResponse execute(HttpRequest request, byte[] body) throws IOException {
if (iterator.hasNext()) {
ClientHttpRequestInterceptor nextInterceptor = iterator.next();

View File

@@ -48,10 +48,12 @@ final class SimpleBufferingClientHttpRequest extends AbstractBufferingClientHttp
}
@Override
public HttpMethod getMethod() {
return HttpMethod.valueOf(this.connection.getRequestMethod());
}
@Override
public URI getURI() {
try {
return this.connection.getURL().toURI();

View File

@@ -122,6 +122,7 @@ public class SimpleClientHttpRequestFactory implements ClientHttpRequestFactory
}
@Override
public ClientHttpRequest createRequest(URI uri, HttpMethod httpMethod) throws IOException {
HttpURLConnection connection = openConnection(uri.toURL(), this.proxy);
prepareConnection(connection, httpMethod.name());

View File

@@ -43,14 +43,17 @@ final class SimpleClientHttpResponse extends AbstractClientHttpResponse {
}
@Override
public int getRawStatusCode() throws IOException {
return this.connection.getResponseCode();
}
@Override
public String getStatusText() throws IOException {
return this.connection.getResponseMessage();
}
@Override
public HttpHeaders getHeaders() {
if (this.headers == null) {
this.headers = new HttpHeaders();
@@ -72,11 +75,13 @@ final class SimpleClientHttpResponse extends AbstractClientHttpResponse {
return this.headers;
}
@Override
public InputStream getBody() throws IOException {
InputStream errorStream = this.connection.getErrorStream();
return (errorStream != null ? errorStream : this.connection.getInputStream());
}
@Override
public void close() {
this.connection.disconnect();
}

View File

@@ -54,10 +54,12 @@ final class SimpleStreamingClientHttpRequest extends AbstractClientHttpRequest {
this.outputStreaming = outputStreaming;
}
@Override
public HttpMethod getMethod() {
return HttpMethod.valueOf(this.connection.getRequestMethod());
}
@Override
public URI getURI() {
try {
return this.connection.getURL().toURI();

View File

@@ -56,6 +56,7 @@ public class HttpRequestWrapper implements HttpRequest {
/**
* Returns the method of the wrapped request.
*/
@Override
public HttpMethod getMethod() {
return this.request.getMethod();
}
@@ -63,6 +64,7 @@ public class HttpRequestWrapper implements HttpRequest {
/**
* Returns the URI of the wrapped request.
*/
@Override
public URI getURI() {
return this.request.getURI();
}
@@ -70,6 +72,7 @@ public class HttpRequestWrapper implements HttpRequest {
/**
* Returns the headers of the wrapped request.
*/
@Override
public HttpHeaders getHeaders() {
return this.request.getHeaders();
}
@@ -77,6 +80,7 @@ public class HttpRequestWrapper implements HttpRequest {
/**
* Returns the cookies of the wrapped request.
*/
@Override
public Cookies getCookies() {
return this.request.getCookies();
}

View File

@@ -63,6 +63,7 @@ public class ProxyFactoryBean implements FactoryBean<Proxy>, InitializingBean {
this.port = port;
}
@Override
public void afterPropertiesSet() throws IllegalArgumentException {
Assert.notNull(type, "'type' must not be null");
Assert.hasLength(hostname, "'hostname' must not be empty");
@@ -73,14 +74,17 @@ public class ProxyFactoryBean implements FactoryBean<Proxy>, InitializingBean {
}
@Override
public Proxy getObject() {
return proxy;
}
@Override
public Class<?> getObjectType() {
return Proxy.class;
}
@Override
public boolean isSingleton() {
return true;
}

View File

@@ -82,6 +82,7 @@ public abstract class AbstractHttpMessageConverter<T> implements HttpMessageConv
this.supportedMediaTypes = new ArrayList<MediaType>(supportedMediaTypes);
}
@Override
public List<MediaType> getSupportedMediaTypes() {
return Collections.unmodifiableList(this.supportedMediaTypes);
}
@@ -92,6 +93,7 @@ public abstract class AbstractHttpMessageConverter<T> implements HttpMessageConv
* and if the {@linkplain #getSupportedMediaTypes() supported media types}
* {@linkplain MediaType#includes(MediaType) include} the given media type.
*/
@Override
public boolean canRead(Class<?> clazz, MediaType mediaType) {
return supports(clazz) && canRead(mediaType);
}
@@ -121,6 +123,7 @@ public abstract class AbstractHttpMessageConverter<T> implements HttpMessageConv
* and if the {@linkplain #getSupportedMediaTypes() supported media types}
* {@linkplain MediaType#includes(MediaType) include} the given media type.
*/
@Override
public boolean canWrite(Class<?> clazz, MediaType mediaType) {
return supports(clazz) && canWrite(mediaType);
}
@@ -149,6 +152,7 @@ public abstract class AbstractHttpMessageConverter<T> implements HttpMessageConv
* This implementation simple delegates to {@link #readInternal(Class, HttpInputMessage)}.
* Future implementations might add some default behavior, however.
*/
@Override
public final T read(Class<? extends T> clazz, HttpInputMessage inputMessage) throws IOException {
return readInternal(clazz, inputMessage);
}
@@ -158,6 +162,7 @@ public abstract class AbstractHttpMessageConverter<T> implements HttpMessageConv
* type was not provided, calls {@link #getContentLength}, and sets the corresponding headers
* on the output message. It then calls {@link #writeInternal}.
*/
@Override
public final void write(T t, MediaType contentType, HttpOutputMessage outputMessage)
throws IOException, HttpMessageNotWritableException {

View File

@@ -115,6 +115,7 @@ public class BufferedImageHttpMessageConverter implements HttpMessageConverter<B
}
@Override
public boolean canRead(Class<?> clazz, MediaType mediaType) {
return (BufferedImage.class.equals(clazz) && isReadable(mediaType));
}
@@ -127,6 +128,7 @@ public class BufferedImageHttpMessageConverter implements HttpMessageConverter<B
return imageReaders.hasNext();
}
@Override
public boolean canWrite(Class<?> clazz, MediaType mediaType) {
return (BufferedImage.class.equals(clazz) && isWritable(mediaType));
}
@@ -139,10 +141,12 @@ public class BufferedImageHttpMessageConverter implements HttpMessageConverter<B
return imageWriters.hasNext();
}
@Override
public List<MediaType> getSupportedMediaTypes() {
return Collections.unmodifiableList(this.readableMediaTypes);
}
@Override
public BufferedImage read(Class<? extends BufferedImage> clazz, HttpInputMessage inputMessage)
throws IOException, HttpMessageNotReadableException {
@@ -188,6 +192,7 @@ public class BufferedImageHttpMessageConverter implements HttpMessageConverter<B
}
}
@Override
public void write(BufferedImage image, MediaType contentType, HttpOutputMessage outputMessage)
throws IOException, HttpMessageNotWritableException {

View File

@@ -122,6 +122,7 @@ public class FormHttpMessageConverter implements HttpMessageConverter<MultiValue
this.charset = charset;
}
@Override
public boolean canRead(Class<?> clazz, MediaType mediaType) {
if (!MultiValueMap.class.isAssignableFrom(clazz)) {
return false;
@@ -139,6 +140,7 @@ public class FormHttpMessageConverter implements HttpMessageConverter<MultiValue
return false;
}
@Override
public boolean canWrite(Class<?> clazz, MediaType mediaType) {
if (!MultiValueMap.class.isAssignableFrom(clazz)) {
return false;
@@ -161,10 +163,12 @@ public class FormHttpMessageConverter implements HttpMessageConverter<MultiValue
this.supportedMediaTypes = supportedMediaTypes;
}
@Override
public List<MediaType> getSupportedMediaTypes() {
return Collections.unmodifiableList(this.supportedMediaTypes);
}
@Override
public MultiValueMap<String, String> read(Class<? extends MultiValueMap<String, ?>> clazz,
HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException {
@@ -190,6 +194,7 @@ public class FormHttpMessageConverter implements HttpMessageConverter<MultiValue
return result;
}
@Override
@SuppressWarnings("unchecked")
public void write(MultiValueMap<String, ?> map, MediaType contentType, HttpOutputMessage outputMessage)
throws IOException, HttpMessageNotWritableException {
@@ -375,15 +380,18 @@ public class FormHttpMessageConverter implements HttpMessageConverter<MultiValue
this.os = os;
}
@Override
public HttpHeaders getHeaders() {
return headersWritten ? HttpHeaders.readOnlyHttpHeaders(headers) : this.headers;
}
@Override
public OutputStream getBody() throws IOException {
writeHeaders();
return this.os;
}
@Override
public Cookies getCookies() {
// TODO
throw new UnsupportedOperationException();

View File

@@ -248,6 +248,7 @@ public class Jackson2ObjectMapperFactoryBean implements FactoryBean<ObjectMapper
}
@Override
public void afterPropertiesSet() {
if (this.objectMapper == null) {
this.objectMapper = new ObjectMapper();
@@ -312,14 +313,17 @@ public class Jackson2ObjectMapperFactoryBean implements FactoryBean<ObjectMapper
/**
* Return the singleton ObjectMapper.
*/
@Override
public ObjectMapper getObject() {
return this.objectMapper;
}
@Override
public Class<?> getObjectType() {
return ObjectMapper.class;
}
@Override
public boolean isSingleton() {
return true;
}

View File

@@ -196,6 +196,7 @@ public class JacksonObjectMapperFactoryBean implements FactoryBean<ObjectMapper>
}
@Override
public void afterPropertiesSet() {
if (this.objectMapper == null) {
this.objectMapper = new ObjectMapper();
@@ -236,14 +237,17 @@ public class JacksonObjectMapperFactoryBean implements FactoryBean<ObjectMapper>
/**
* Return the singleton ObjectMapper.
*/
@Override
public ObjectMapper getObject() {
return this.objectMapper;
}
@Override
public Class<?> getObjectType() {
return ObjectMapper.class;
}
@Override
public boolean isSingleton() {
return true;
}

View File

@@ -134,6 +134,7 @@ public class MappingJackson2HttpMessageConverter extends AbstractHttpMessageConv
return canRead(clazz, null, mediaType);
}
@Override
public boolean canRead(Type type, Class<?> contextClass, MediaType mediaType) {
JavaType javaType = getJavaType(type, contextClass);
return (this.objectMapper.canDeserialize(javaType) && canRead(mediaType));
@@ -158,6 +159,7 @@ public class MappingJackson2HttpMessageConverter extends AbstractHttpMessageConv
return readJavaType(javaType, inputMessage);
}
@Override
public Object read(Type type, Class<?> contextClass, HttpInputMessage inputMessage)
throws IOException, HttpMessageNotReadableException {

View File

@@ -133,6 +133,7 @@ public class MappingJacksonHttpMessageConverter extends AbstractHttpMessageConve
return canRead(clazz, null, mediaType);
}
@Override
public boolean canRead(Type type, Class<?> contextClass, MediaType mediaType) {
JavaType javaType = getJavaType(type, contextClass);
return (this.objectMapper.canDeserialize(javaType) && canRead(mediaType));
@@ -157,6 +158,7 @@ public class MappingJacksonHttpMessageConverter extends AbstractHttpMessageConve
return readJavaType(javaType, inputMessage);
}
@Override
public Object read(Type type, Class<?> contextClass, HttpInputMessage inputMessage)
throws IOException, HttpMessageNotReadableException {

View File

@@ -74,6 +74,7 @@ public class Jaxb2CollectionHttpMessageConverter<T extends Collection>
* {@link Collection} where the generic type is a JAXB type annotated with
* {@link XmlRootElement} or {@link XmlType}.
*/
@Override
public boolean canRead(Type type, Class<?> contextClass, MediaType mediaType) {
if (!(type instanceof ParameterizedType)) {
return false;
@@ -119,6 +120,7 @@ public class Jaxb2CollectionHttpMessageConverter<T extends Collection>
throw new UnsupportedOperationException();
}
@Override
public T read(Type type, Class<?> contextClass, HttpInputMessage inputMessage)
throws IOException, HttpMessageNotReadableException {

View File

@@ -57,6 +57,7 @@ public class AsyncServletServerHttpRequest extends ServletServerHttpRequest
/**
* Timeout period begins after the container thread has exited.
*/
@Override
public void setTimeout(long timeout) {
Assert.state(!isAsyncStarted(), "Cannot change the timeout with concurrent handling in progress");
this.timeout = timeout;
@@ -70,6 +71,7 @@ public class AsyncServletServerHttpRequest extends ServletServerHttpRequest
this.completionHandlers.add(runnable);
}
@Override
public boolean isAsyncStarted() {
return ((this.asyncContext != null) && getServletRequest().isAsyncStarted());
}
@@ -79,10 +81,12 @@ public class AsyncServletServerHttpRequest extends ServletServerHttpRequest
* <p>It is important to avoid use of request and response objects after async
* processing has completed. Servlet containers often re-use them.
*/
@Override
public boolean isAsyncCompleted() {
return this.asyncCompleted.get();
}
@Override
public void startAsync() {
Assert.state(getServletRequest().isAsyncSupported(),
"Async support must be enabled on a servlet and for all filters involved " +
@@ -100,6 +104,7 @@ public class AsyncServletServerHttpRequest extends ServletServerHttpRequest
}
}
@Override
public void completeAsync() {
Assert.notNull(this.asyncContext, "Cannot dispatch without an AsyncContext");
if (isAsyncStarted() && !isAsyncCompleted()) {

View File

@@ -44,6 +44,7 @@ public interface ServerHttpResponse extends HttpOutputMessage, Closeable {
/**
* Close this response, freeing any resources created.
*/
@Override
void close();
}

View File

@@ -85,10 +85,12 @@ public class ServletServerHttpRequest implements ServerHttpRequest {
return this.servletRequest;
}
@Override
public HttpMethod getMethod() {
return HttpMethod.valueOf(this.servletRequest.getMethod());
}
@Override
public URI getURI() {
try {
return new URI(this.servletRequest.getScheme(), null, this.servletRequest.getServerName(),
@@ -100,6 +102,7 @@ public class ServletServerHttpRequest implements ServerHttpRequest {
}
}
@Override
public HttpHeaders getHeaders() {
if (this.headers == null) {
this.headers = new HttpHeaders();
@@ -147,6 +150,7 @@ public class ServletServerHttpRequest implements ServerHttpRequest {
return this.servletRequest.getRemoteAddr();
}
@Override
public Cookies getCookies() {
if (this.cookies == null) {
this.cookies = new Cookies();
@@ -159,6 +163,7 @@ public class ServletServerHttpRequest implements ServerHttpRequest {
return this.cookies;
}
@Override
public MultiValueMap<String, String> getQueryParams() {
if (this.queryParams == null) {
this.queryParams = new LinkedMultiValueMap<String, String>(this.servletRequest.getParameterMap().size());
@@ -171,6 +176,7 @@ public class ServletServerHttpRequest implements ServerHttpRequest {
return this.queryParams;
}
@Override
public InputStream getBody() throws IOException {
if (isFormPost(this.servletRequest)) {
return getBodyFromServletRequestParameters(this.servletRequest);

View File

@@ -62,18 +62,22 @@ public class ServletServerHttpResponse implements ServerHttpResponse {
return this.servletResponse;
}
@Override
public void setStatusCode(HttpStatus status) {
this.servletResponse.setStatus(status.value());
}
@Override
public HttpHeaders getHeaders() {
return (this.headersWritten ? HttpHeaders.readOnlyHttpHeaders(this.headers) : this.headers);
}
@Override
public Cookies getCookies() {
return (this.headersWritten ? Cookies.readOnlyCookies(this.cookies) : this.cookies);
}
@Override
public OutputStream getBody() throws IOException {
writeCookies();
writeHeaders();
@@ -87,6 +91,7 @@ public class ServletServerHttpResponse implements ServerHttpResponse {
this.servletResponse.flushBuffer();
}
@Override
public void close() {
writeCookies();
writeHeaders();

View File

@@ -140,6 +140,7 @@ public class BurlapClientInterceptor extends UrlBasedRemoteAccessor implements M
}
@Override
public Object invoke(MethodInvocation invocation) throws Throwable {
if (this.burlapProxy == null) {
throw new IllegalStateException("BurlapClientInterceptor is not properly initialized - " +

View File

@@ -50,6 +50,7 @@ public class BurlapExporter extends RemoteExporter implements InitializingBean {
private BurlapSkeleton skeleton;
@Override
public void afterPropertiesSet() {
prepare();
}

View File

@@ -55,14 +55,17 @@ public class BurlapProxyFactoryBean extends BurlapClientInterceptor implements F
}
@Override
public Object getObject() {
return this.serviceProxy;
}
@Override
public Class<?> getObjectType() {
return getServiceInterface();
}
@Override
public boolean isSingleton() {
return true;
}

View File

@@ -57,6 +57,7 @@ public class BurlapServiceExporter extends BurlapExporter implements HttpRequest
/**
* Processes the incoming Burlap request and creates a Burlap response.
*/
@Override
public void handleRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

View File

@@ -236,6 +236,7 @@ public class HessianClientInterceptor extends UrlBasedRemoteAccessor implements
}
@Override
public Object invoke(MethodInvocation invocation) throws Throwable {
if (this.hessianProxy == null) {
throw new IllegalStateException("HessianClientInterceptor is not properly initialized - " +

View File

@@ -112,6 +112,7 @@ public class HessianExporter extends RemoteExporter implements InitializingBean
}
@Override
public void afterPropertiesSet() {
prepare();
}

View File

@@ -52,14 +52,17 @@ public class HessianProxyFactoryBean extends HessianClientInterceptor implements
}
@Override
public Object getObject() {
return this.serviceProxy;
}
@Override
public Class<?> getObjectType() {
return getServiceInterface();
}
@Override
public boolean isSingleton() {
return true;
}

View File

@@ -52,6 +52,7 @@ public class HessianServiceExporter extends HessianExporter implements HttpReque
/**
* Processes the incoming Hessian request and creates a Hessian response.
*/
@Override
public void handleRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

View File

@@ -53,6 +53,7 @@ public class SimpleBurlapServiceExporter extends BurlapExporter implements HttpH
/**
* Processes the incoming Burlap request and creates a Burlap response.
*/
@Override
public void handle(HttpExchange exchange) throws IOException {
if (!"POST".equals(exchange.getRequestMethod())) {
exchange.getResponseHeaders().set("Allow", "POST");

View File

@@ -49,6 +49,7 @@ public class SimpleHessianServiceExporter extends HessianExporter implements Htt
/**
* Processes the incoming Hessian request and creates a Hessian response.
*/
@Override
public void handle(HttpExchange exchange) throws IOException {
if (!"POST".equals(exchange.getRequestMethod())) {
exchange.getResponseHeaders().set("Allow", "POST");

View File

@@ -113,6 +113,7 @@ public abstract class AbstractHttpInvokerRequestExecutor
return this.acceptGzipEncoding;
}
@Override
public void setBeanClassLoader(ClassLoader classLoader) {
this.beanClassLoader = classLoader;
}
@@ -125,6 +126,7 @@ public abstract class AbstractHttpInvokerRequestExecutor
}
@Override
public final RemoteInvocationResult executeRequest(
HttpInvokerClientConfiguration config, RemoteInvocation invocation) throws Exception {

View File

@@ -91,6 +91,7 @@ public class HttpInvokerClientInterceptor extends RemoteInvocationBasedAccessor
/**
* Return the codebase URL to download classes from if not found locally.
*/
@Override
public String getCodebaseUrl() {
return this.codebaseUrl;
}
@@ -131,6 +132,7 @@ public class HttpInvokerClientInterceptor extends RemoteInvocationBasedAccessor
}
@Override
public Object invoke(MethodInvocation methodInvocation) throws Throwable {
if (AopUtils.isToStringMethod(methodInvocation.getMethod())) {
return "HTTP invoker proxy for service URL [" + getServiceUrl() + "]";

View File

@@ -63,14 +63,17 @@ public class HttpInvokerProxyFactoryBean extends HttpInvokerClientInterceptor
}
@Override
public Object getObject() {
return this.serviceProxy;
}
@Override
public Class<?> getObjectType() {
return getServiceInterface();
}
@Override
public boolean isSingleton() {
return true;
}

View File

@@ -65,6 +65,7 @@ public class HttpInvokerServiceExporter extends RemoteInvocationSerializingExpor
* @see #invokeAndCreateResult(org.springframework.remoting.support.RemoteInvocation, Object)
* @see #writeRemoteInvocationResult(HttpServletRequest, HttpServletResponse, RemoteInvocationResult)
*/
@Override
public void handleRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

View File

@@ -61,6 +61,7 @@ public class SimpleHttpInvokerServiceExporter extends RemoteInvocationSerializin
* @see #invokeAndCreateResult(org.springframework.remoting.support.RemoteInvocation, Object)
* @see #writeRemoteInvocationResult(com.sun.net.httpserver.HttpExchange, org.springframework.remoting.support.RemoteInvocationResult)
*/
@Override
public void handle(HttpExchange exchange) throws IOException {
try {
RemoteInvocation invocation = readRemoteInvocation(exchange);

View File

@@ -109,6 +109,7 @@ public abstract class AbstractJaxWsServiceExporter implements BeanFactoryAware,
/**
* Obtains all web service beans and publishes them as JAX-WS endpoints.
*/
@Override
public void setBeanFactory(BeanFactory beanFactory) {
if (!(beanFactory instanceof ListableBeanFactory)) {
throw new IllegalStateException(getClass().getSimpleName() + " requires a ListableBeanFactory");
@@ -121,6 +122,7 @@ public abstract class AbstractJaxWsServiceExporter implements BeanFactoryAware,
* Immediately publish all endpoints when fully configured.
* @see #publishEndpoints()
*/
@Override
public void afterPropertiesSet() throws Exception {
publishEndpoints();
}
@@ -201,6 +203,7 @@ public abstract class AbstractJaxWsServiceExporter implements BeanFactoryAware,
/**
* Stops all published endpoints, taking the web services offline.
*/
@Override
public void destroy() {
for (Endpoint endpoint : this.publishedEndpoints) {
endpoint.stop();

View File

@@ -319,6 +319,7 @@ public class JaxWsPortClientInterceptor extends LocalJaxWsServiceFactory
* {@link #setWebServiceFeatures}, and also for building a client
* proxy in the {@link JaxWsPortProxyFactoryBean} subclass.
*/
@Override
public void setBeanClassLoader(ClassLoader classLoader) {
this.beanClassLoader = classLoader;
}
@@ -331,6 +332,7 @@ public class JaxWsPortClientInterceptor extends LocalJaxWsServiceFactory
}
@Override
public void afterPropertiesSet() {
if (this.lookupServiceOnStartup) {
prepare();
@@ -524,6 +526,7 @@ public class JaxWsPortClientInterceptor extends LocalJaxWsServiceFactory
}
@Override
public Object invoke(MethodInvocation invocation) throws Throwable {
if (AopUtils.isToStringMethod(invocation.getMethod())) {
return "JAX-WS proxy for port [" + getPortName() + "] of service [" + getServiceName() + "]";

View File

@@ -50,14 +50,17 @@ public class JaxWsPortProxyFactoryBean extends JaxWsPortClientInterceptor
}
@Override
public Object getObject() {
return this.serviceProxy;
}
@Override
public Class<?> getObjectType() {
return getServiceInterface();
}
@Override
public boolean isSingleton() {
return true;
}

View File

@@ -41,18 +41,22 @@ public class LocalJaxWsServiceFactoryBean extends LocalJaxWsServiceFactory
private Service service;
@Override
public void afterPropertiesSet() {
this.service = createJaxWsService();
}
@Override
public Service getObject() {
return this.service;
}
@Override
public Class<? extends Service> getObjectType() {
return (this.service != null ? this.service.getClass() : Service.class);
}
@Override
public boolean isSingleton() {
return true;
}

View File

@@ -147,6 +147,7 @@ public class SpringServletContainerInitializer implements ServletContainerInitia
* @see WebApplicationInitializer#onStartup(ServletContext)
* @see AnnotationAwareOrderComparator
*/
@Override
public void onStartup(Set<Class<?>> webAppInitializerClasses, ServletContext servletContext)
throws ServletException {

View File

@@ -42,6 +42,7 @@ public abstract class AbstractMappingContentNegotiationStrategy extends MappingM
super(mediaTypes);
}
@Override
public List<MediaType> resolveMediaTypes(NativeWebRequest webRequest) {
String key = getMediaTypeKey(webRequest);
if (StringUtils.hasText(key)) {

View File

@@ -118,6 +118,7 @@ public class ContentNegotiationManager implements ContentNegotiationStrategy, Me
* @return the requested media types or an empty list, never {@code null}
* @throws HttpMediaTypeNotAcceptableException if the requested media types cannot be parsed
*/
@Override
public List<MediaType> resolveMediaTypes(NativeWebRequest webRequest) throws HttpMediaTypeNotAcceptableException {
for (ContentNegotiationStrategy strategy : this.contentNegotiationStrategies) {
List<MediaType> mediaTypes = strategy.resolveMediaTypes(webRequest);
@@ -133,6 +134,7 @@ public class ContentNegotiationManager implements ContentNegotiationStrategy, Me
* Delegate to all configured MediaTypeFileExtensionResolver instances and aggregate
* the list of all file extensions found.
*/
@Override
public List<String> resolveFileExtensions(MediaType mediaType) {
Set<String> result = new LinkedHashSet<String>();
for (MediaTypeFileExtensionResolver resolver : this.fileExtensionResolvers) {
@@ -145,6 +147,7 @@ public class ContentNegotiationManager implements ContentNegotiationStrategy, Me
* Delegate to all configured MediaTypeFileExtensionResolver instances and aggregate
* the list of all known file extensions.
*/
@Override
public List<String> getAllFileExtensions() {
Set<String> result = new LinkedHashSet<String>();
for (MediaTypeFileExtensionResolver resolver : this.fileExtensionResolvers) {

View File

@@ -174,11 +174,13 @@ public class ContentNegotiationManagerFactoryBean
this.defaultContentType = defaultContentType;
}
@Override
public void setServletContext(ServletContext servletContext) {
this.servletContext = servletContext;
}
@Override
public void afterPropertiesSet() {
List<ContentNegotiationStrategy> strategies = new ArrayList<ContentNegotiationStrategy>();
@@ -213,14 +215,17 @@ public class ContentNegotiationManagerFactoryBean
}
@Override
public ContentNegotiationManager getObject() {
return this.contentNegotiationManager;
}
@Override
public Class<?> getObjectType() {
return ContentNegotiationManager.class;
}
@Override
public boolean isSingleton() {
return true;
}

View File

@@ -43,6 +43,7 @@ public class FixedContentNegotiationStrategy implements ContentNegotiationStrate
this.defaultContentType = defaultContentType;
}
@Override
public List<MediaType> resolveMediaTypes(NativeWebRequest webRequest) {
if (logger.isDebugEnabled()) {
logger.debug("Requested media types is " + this.defaultContentType + " (based on default MediaType)");

View File

@@ -38,6 +38,7 @@ public class HeaderContentNegotiationStrategy implements ContentNegotiationStrat
* {@inheritDoc}
* @throws HttpMediaTypeNotAcceptableException if the 'Accept' header cannot be parsed.
*/
@Override
public List<MediaType> resolveMediaTypes(NativeWebRequest webRequest) throws HttpMediaTypeNotAcceptableException {
String acceptHeader = webRequest.getHeader(ACCEPT_HEADER);
try {

View File

@@ -63,11 +63,13 @@ public class MappingMediaTypeFileExtensionResolver implements MediaTypeFileExten
* Find the file extensions mapped to the given MediaType.
* @return 0 or more extensions, never {@code null}
*/
@Override
public List<String> resolveFileExtensions(MediaType mediaType) {
List<String> fileExtensions = this.fileExtensions.get(mediaType);
return (fileExtensions != null) ? fileExtensions : Collections.<String>emptyList();
}
@Override
public List<String> getAllFileExtensions() {
return Collections.unmodifiableList(this.allFileExtensions);
}

View File

@@ -58,121 +58,150 @@ public class EscapedErrors implements Errors {
}
@Override
public String getObjectName() {
return this.source.getObjectName();
}
@Override
public void setNestedPath(String nestedPath) {
this.source.setNestedPath(nestedPath);
}
@Override
public String getNestedPath() {
return this.source.getNestedPath();
}
@Override
public void pushNestedPath(String subPath) {
this.source.pushNestedPath(subPath);
}
@Override
public void popNestedPath() throws IllegalStateException {
this.source.popNestedPath();
}
@Override
public void reject(String errorCode) {
this.source.reject(errorCode);
}
@Override
public void reject(String errorCode, String defaultMessage) {
this.source.reject(errorCode, defaultMessage);
}
@Override
public void reject(String errorCode, Object[] errorArgs, String defaultMessage) {
this.source.reject(errorCode, errorArgs, defaultMessage);
}
@Override
public void rejectValue(String field, String errorCode) {
this.source.rejectValue(field, errorCode);
}
@Override
public void rejectValue(String field, String errorCode, String defaultMessage) {
this.source.rejectValue(field, errorCode, defaultMessage);
}
@Override
public void rejectValue(String field, String errorCode, Object[] errorArgs, String defaultMessage) {
this.source.rejectValue(field, errorCode, errorArgs, defaultMessage);
}
@Override
public void addAllErrors(Errors errors) {
this.source.addAllErrors(errors);
}
@Override
public boolean hasErrors() {
return this.source.hasErrors();
}
@Override
public int getErrorCount() {
return this.source.getErrorCount();
}
@Override
public List<ObjectError> getAllErrors() {
return escapeObjectErrors(this.source.getAllErrors());
}
@Override
public boolean hasGlobalErrors() {
return this.source.hasGlobalErrors();
}
@Override
public int getGlobalErrorCount() {
return this.source.getGlobalErrorCount();
}
@Override
public List<ObjectError> getGlobalErrors() {
return escapeObjectErrors(this.source.getGlobalErrors());
}
@Override
public ObjectError getGlobalError() {
return escapeObjectError(this.source.getGlobalError());
}
@Override
public boolean hasFieldErrors() {
return this.source.hasFieldErrors();
}
@Override
public int getFieldErrorCount() {
return this.source.getFieldErrorCount();
}
@Override
public List<FieldError> getFieldErrors() {
return this.source.getFieldErrors();
}
@Override
public FieldError getFieldError() {
return this.source.getFieldError();
}
@Override
public boolean hasFieldErrors(String field) {
return this.source.hasFieldErrors(field);
}
@Override
public int getFieldErrorCount(String field) {
return this.source.getFieldErrorCount(field);
}
@Override
public List<FieldError> getFieldErrors(String field) {
return escapeObjectErrors(this.source.getFieldErrors(field));
}
@Override
public FieldError getFieldError(String field) {
return escapeObjectError(this.source.getFieldError(field));
}
@Override
public Object getFieldValue(String field) {
Object value = this.source.getFieldValue(field);
return (value instanceof String ? HtmlUtils.htmlEscape((String) value) : value);
}
@Override
public Class getFieldType(String field) {
return this.source.getFieldType(field);
}

View File

@@ -84,6 +84,7 @@ public class HandlerMethodResolver {
for (Class<?> currentHandlerType : handlerTypes) {
final Class<?> targetClass = (specificHandlerType != null ? specificHandlerType : currentHandlerType);
ReflectionUtils.doWithMethods(currentHandlerType, new ReflectionUtils.MethodCallback() {
@Override
public void doWith(Method method) {
Method specificMethod = ClassUtils.getMostSpecificMethod(method, targetClass);
Method bridgedMethod = BridgeMethodResolver.findBridgedMethod(specificMethod);

View File

@@ -181,6 +181,7 @@ public class ConfigurableWebBindingInitializer implements WebBindingInitializer
}
@Override
public void initBinder(WebDataBinder binder, WebRequest request) {
binder.setAutoGrowNestedPaths(this.autoGrowNestedPaths);
if (this.directFieldAccess) {

View File

@@ -43,6 +43,7 @@ public class DefaultDataBinderFactory implements WebDataBinderFactory {
* initialize it through a {@link WebBindingInitializer}.
* @throws Exception in case of invalid state or arguments
*/
@Override
public final WebDataBinder createBinder(NativeWebRequest webRequest, Object target, String objectName)
throws Exception {
WebDataBinder dataBinder = createBinderInstance(target, objectName, webRequest);

View File

@@ -46,6 +46,7 @@ public class DefaultSessionAttributeStore implements SessionAttributeStore {
}
@Override
public void storeAttribute(WebRequest request, String attributeName, Object attributeValue) {
Assert.notNull(request, "WebRequest must not be null");
Assert.notNull(attributeName, "Attribute name must not be null");
@@ -54,6 +55,7 @@ public class DefaultSessionAttributeStore implements SessionAttributeStore {
request.setAttribute(storeAttributeName, attributeValue, WebRequest.SCOPE_SESSION);
}
@Override
public Object retrieveAttribute(WebRequest request, String attributeName) {
Assert.notNull(request, "WebRequest must not be null");
Assert.notNull(attributeName, "Attribute name must not be null");
@@ -61,6 +63,7 @@ public class DefaultSessionAttributeStore implements SessionAttributeStore {
return request.getAttribute(storeAttributeName, WebRequest.SCOPE_SESSION);
}
@Override
public void cleanupAttribute(WebRequest request, String attributeName) {
Assert.notNull(request, "WebRequest must not be null");
Assert.notNull(attributeName, "Attribute name must not be null");

View File

@@ -28,10 +28,12 @@ public class SimpleSessionStatus implements SessionStatus {
private boolean complete = false;
@Override
public void setComplete() {
this.complete = true;
}
@Override
public boolean isComplete() {
return this.complete;
}

View File

@@ -45,6 +45,7 @@ public class DefaultResponseErrorHandler implements ResponseErrorHandler {
/**
* Delegates to {@link #hasError(HttpStatus)} with the response status code.
*/
@Override
public boolean hasError(ClientHttpResponse response) throws IOException {
return hasError(getHttpStatusCode(response));
}
@@ -81,6 +82,7 @@ public class DefaultResponseErrorHandler implements ResponseErrorHandler {
* if it is {@link org.springframework.http.HttpStatus.Series#SERVER_ERROR},
* and a {@link RestClientException} in other cases.
*/
@Override
public void handleError(ClientHttpResponse response) throws IOException {
HttpStatus statusCode = getHttpStatusCode(response);
switch (statusCode.series()) {

View File

@@ -76,6 +76,7 @@ public class HttpMessageConverterExtractor<T> implements ResponseExtractor<T> {
this.logger = logger;
}
@Override
@SuppressWarnings("unchecked")
public T extractData(ClientHttpResponse response) throws IOException {
if (!hasMessageBody(response)) {

View File

@@ -215,6 +215,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
// GET
@Override
public <T> T getForObject(String url, Class<T> responseType, Object... urlVariables) throws RestClientException {
AcceptHeaderRequestCallback requestCallback = new AcceptHeaderRequestCallback(responseType);
HttpMessageConverterExtractor<T> responseExtractor =
@@ -222,6 +223,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
return execute(url, HttpMethod.GET, requestCallback, responseExtractor, urlVariables);
}
@Override
public <T> T getForObject(String url, Class<T> responseType, Map<String, ?> urlVariables) throws RestClientException {
AcceptHeaderRequestCallback requestCallback = new AcceptHeaderRequestCallback(responseType);
HttpMessageConverterExtractor<T> responseExtractor =
@@ -229,6 +231,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
return execute(url, HttpMethod.GET, requestCallback, responseExtractor, urlVariables);
}
@Override
public <T> T getForObject(URI url, Class<T> responseType) throws RestClientException {
AcceptHeaderRequestCallback requestCallback = new AcceptHeaderRequestCallback(responseType);
HttpMessageConverterExtractor<T> responseExtractor =
@@ -236,6 +239,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
return execute(url, HttpMethod.GET, requestCallback, responseExtractor);
}
@Override
public <T> ResponseEntity<T> getForEntity(String url, Class<T> responseType, Object... urlVariables)
throws RestClientException {
AcceptHeaderRequestCallback requestCallback = new AcceptHeaderRequestCallback(responseType);
@@ -244,6 +248,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
return execute(url, HttpMethod.GET, requestCallback, responseExtractor, urlVariables);
}
@Override
public <T> ResponseEntity<T> getForEntity(String url, Class<T> responseType, Map<String, ?> urlVariables)
throws RestClientException {
AcceptHeaderRequestCallback requestCallback = new AcceptHeaderRequestCallback(responseType);
@@ -252,6 +257,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
return execute(url, HttpMethod.GET, requestCallback, responseExtractor, urlVariables);
}
@Override
public <T> ResponseEntity<T> getForEntity(URI url, Class<T> responseType) throws RestClientException {
AcceptHeaderRequestCallback requestCallback = new AcceptHeaderRequestCallback(responseType);
ResponseEntityResponseExtractor<T> responseExtractor =
@@ -261,26 +267,31 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
// HEAD
@Override
public HttpHeaders headForHeaders(String url, Object... urlVariables) throws RestClientException {
return execute(url, HttpMethod.HEAD, null, this.headersExtractor, urlVariables);
}
@Override
public HttpHeaders headForHeaders(String url, Map<String, ?> urlVariables) throws RestClientException {
return execute(url, HttpMethod.HEAD, null, this.headersExtractor, urlVariables);
}
@Override
public HttpHeaders headForHeaders(URI url) throws RestClientException {
return execute(url, HttpMethod.HEAD, null, this.headersExtractor);
}
// POST
@Override
public URI postForLocation(String url, Object request, Object... urlVariables) throws RestClientException {
HttpEntityRequestCallback requestCallback = new HttpEntityRequestCallback(request);
HttpHeaders headers = execute(url, HttpMethod.POST, requestCallback, this.headersExtractor, urlVariables);
return headers.getLocation();
}
@Override
public URI postForLocation(String url, Object request, Map<String, ?> urlVariables)
throws RestClientException {
HttpEntityRequestCallback requestCallback = new HttpEntityRequestCallback(request);
@@ -288,12 +299,14 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
return headers.getLocation();
}
@Override
public URI postForLocation(URI url, Object request) throws RestClientException {
HttpEntityRequestCallback requestCallback = new HttpEntityRequestCallback(request);
HttpHeaders headers = execute(url, HttpMethod.POST, requestCallback, this.headersExtractor);
return headers.getLocation();
}
@Override
public <T> T postForObject(String url, Object request, Class<T> responseType, Object... uriVariables)
throws RestClientException {
HttpEntityRequestCallback requestCallback = new HttpEntityRequestCallback(request, responseType);
@@ -302,6 +315,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
return execute(url, HttpMethod.POST, requestCallback, responseExtractor, uriVariables);
}
@Override
public <T> T postForObject(String url, Object request, Class<T> responseType, Map<String, ?> uriVariables)
throws RestClientException {
HttpEntityRequestCallback requestCallback = new HttpEntityRequestCallback(request, responseType);
@@ -310,6 +324,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
return execute(url, HttpMethod.POST, requestCallback, responseExtractor, uriVariables);
}
@Override
public <T> T postForObject(URI url, Object request, Class<T> responseType) throws RestClientException {
HttpEntityRequestCallback requestCallback = new HttpEntityRequestCallback(request, responseType);
HttpMessageConverterExtractor<T> responseExtractor =
@@ -317,6 +332,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
return execute(url, HttpMethod.POST, requestCallback, responseExtractor);
}
@Override
public <T> ResponseEntity<T> postForEntity(String url, Object request, Class<T> responseType, Object... uriVariables)
throws RestClientException {
@@ -326,6 +342,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
return execute(url, HttpMethod.POST, requestCallback, responseExtractor, uriVariables);
}
@Override
public <T> ResponseEntity<T> postForEntity(String url, Object request, Class<T> responseType, Map<String, ?> uriVariables)
throws RestClientException {
@@ -335,6 +352,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
return execute(url, HttpMethod.POST, requestCallback, responseExtractor, uriVariables);
}
@Override
public <T> ResponseEntity<T> postForEntity(URI url, Object request, Class<T> responseType) throws RestClientException {
HttpEntityRequestCallback requestCallback = new HttpEntityRequestCallback(request, responseType);
ResponseEntityResponseExtractor<T> responseExtractor =
@@ -344,16 +362,19 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
// PUT
@Override
public void put(String url, Object request, Object... urlVariables) throws RestClientException {
HttpEntityRequestCallback requestCallback = new HttpEntityRequestCallback(request);
execute(url, HttpMethod.PUT, requestCallback, null, urlVariables);
}
@Override
public void put(String url, Object request, Map<String, ?> urlVariables) throws RestClientException {
HttpEntityRequestCallback requestCallback = new HttpEntityRequestCallback(request);
execute(url, HttpMethod.PUT, requestCallback, null, urlVariables);
}
@Override
public void put(URI url, Object request) throws RestClientException {
HttpEntityRequestCallback requestCallback = new HttpEntityRequestCallback(request);
execute(url, HttpMethod.PUT, requestCallback, null);
@@ -361,30 +382,36 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
// DELETE
@Override
public void delete(String url, Object... urlVariables) throws RestClientException {
execute(url, HttpMethod.DELETE, null, null, urlVariables);
}
@Override
public void delete(String url, Map<String, ?> urlVariables) throws RestClientException {
execute(url, HttpMethod.DELETE, null, null, urlVariables);
}
@Override
public void delete(URI url) throws RestClientException {
execute(url, HttpMethod.DELETE, null, null);
}
// OPTIONS
@Override
public Set<HttpMethod> optionsForAllow(String url, Object... urlVariables) throws RestClientException {
HttpHeaders headers = execute(url, HttpMethod.OPTIONS, null, this.headersExtractor, urlVariables);
return headers.getAllow();
}
@Override
public Set<HttpMethod> optionsForAllow(String url, Map<String, ?> urlVariables) throws RestClientException {
HttpHeaders headers = execute(url, HttpMethod.OPTIONS, null, this.headersExtractor, urlVariables);
return headers.getAllow();
}
@Override
public Set<HttpMethod> optionsForAllow(URI url) throws RestClientException {
HttpHeaders headers = execute(url, HttpMethod.OPTIONS, null, this.headersExtractor);
return headers.getAllow();
@@ -392,6 +419,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
// exchange
@Override
public <T> ResponseEntity<T> exchange(String url, HttpMethod method,
HttpEntity<?> requestEntity, Class<T> responseType, Object... uriVariables) throws RestClientException {
@@ -400,6 +428,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
return execute(url, method, requestCallback, responseExtractor, uriVariables);
}
@Override
public <T> ResponseEntity<T> exchange(String url, HttpMethod method,
HttpEntity<?> requestEntity, Class<T> responseType, Map<String, ?> uriVariables) throws RestClientException {
@@ -408,6 +437,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
return execute(url, method, requestCallback, responseExtractor, uriVariables);
}
@Override
public <T> ResponseEntity<T> exchange(URI url, HttpMethod method, HttpEntity<?> requestEntity,
Class<T> responseType) throws RestClientException {
@@ -416,6 +446,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
return execute(url, method, requestCallback, responseExtractor);
}
@Override
public <T> ResponseEntity<T> exchange(String url, HttpMethod method, HttpEntity<?> requestEntity,
ParameterizedTypeReference<T> responseType, Object... uriVariables) throws RestClientException {
@@ -425,6 +456,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
return execute(url, method, requestCallback, responseExtractor, uriVariables);
}
@Override
public <T> ResponseEntity<T> exchange(String url, HttpMethod method, HttpEntity<?> requestEntity,
ParameterizedTypeReference<T> responseType, Map<String, ?> uriVariables) throws RestClientException {
@@ -434,6 +466,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
return execute(url, method, requestCallback, responseExtractor, uriVariables);
}
@Override
public <T> ResponseEntity<T> exchange(URI url, HttpMethod method, HttpEntity<?> requestEntity,
ParameterizedTypeReference<T> responseType) throws RestClientException {
@@ -445,6 +478,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
// general execution
@Override
public <T> T execute(String url, HttpMethod method, RequestCallback requestCallback,
ResponseExtractor<T> responseExtractor, Object... urlVariables) throws RestClientException {
@@ -452,6 +486,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
return doExecute(expanded, method, requestCallback, responseExtractor);
}
@Override
public <T> T execute(String url, HttpMethod method, RequestCallback requestCallback,
ResponseExtractor<T> responseExtractor, Map<String, ?> urlVariables) throws RestClientException {
@@ -459,6 +494,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
return doExecute(expanded, method, requestCallback, responseExtractor);
}
@Override
public <T> T execute(URI url, HttpMethod method, RequestCallback requestCallback,
ResponseExtractor<T> responseExtractor) throws RestClientException {
@@ -549,6 +585,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
this.responseType = responseType;
}
@Override
@SuppressWarnings("unchecked")
public void doWithRequest(ClientHttpRequest request) throws IOException {
if (responseType != null) {
@@ -688,6 +725,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
}
}
@Override
public ResponseEntity<T> extractData(ClientHttpResponse response) throws IOException {
if (this.delegate != null) {
T body = this.delegate.extractData(response);
@@ -705,6 +743,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
*/
private static class HeadersExtractor implements ResponseExtractor<HttpHeaders> {
@Override
public HttpHeaders extractData(ClientHttpResponse response) throws IOException {
return response.getHeaders();
}

View File

@@ -41,6 +41,7 @@ public abstract class AbstractContextLoaderInitializer implements WebApplication
/** Logger available to subclasses. */
protected final Log logger = LogFactory.getLog(getClass());
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
this.registerContextLoaderListener(servletContext);
}

View File

@@ -43,9 +43,11 @@ public class ContextCleanupListener implements ServletContextListener {
private static final Log logger = LogFactory.getLog(ContextCleanupListener.class);
@Override
public void contextInitialized(ServletContextEvent event) {
}
@Override
public void contextDestroyed(ServletContextEvent event) {
cleanupAttributes(event.getServletContext());
}

View File

@@ -101,6 +101,7 @@ public class ContextLoaderListener extends ContextLoader implements ServletConte
/**
* Initialize the root web application context.
*/
@Override
public void contextInitialized(ServletContextEvent event) {
initWebApplicationContext(event.getServletContext());
}
@@ -109,6 +110,7 @@ public class ContextLoaderListener extends ContextLoader implements ServletConte
/**
* Close the root web application context.
*/
@Override
public void contextDestroyed(ServletContextEvent event) {
closeWebApplicationContext(event.getServletContext());
ContextCleanupListener.cleanupAttributes(event.getServletContext());

View File

@@ -36,6 +36,7 @@ import org.springframework.beans.factory.config.Scope;
*/
public abstract class AbstractRequestAttributesScope implements Scope {
@Override
public Object get(String name, ObjectFactory objectFactory) {
RequestAttributes attributes = RequestContextHolder.currentRequestAttributes();
Object scopedObject = attributes.getAttribute(name, getScope());
@@ -46,6 +47,7 @@ public abstract class AbstractRequestAttributesScope implements Scope {
return scopedObject;
}
@Override
public Object remove(String name) {
RequestAttributes attributes = RequestContextHolder.currentRequestAttributes();
Object scopedObject = attributes.getAttribute(name, getScope());
@@ -58,11 +60,13 @@ public abstract class AbstractRequestAttributesScope implements Scope {
}
}
@Override
public void registerDestructionCallback(String name, Runnable callback) {
RequestAttributes attributes = RequestContextHolder.currentRequestAttributes();
attributes.registerDestructionCallback(name, callback, getScope());
}
@Override
public Object resolveContextualObject(String key) {
RequestAttributes attributes = RequestContextHolder.currentRequestAttributes();
return attributes.resolveReference(key);

View File

@@ -45,9 +45,11 @@ public class DestructionCallbackBindingListener implements HttpSessionBindingLis
}
@Override
public void valueBound(HttpSessionBindingEvent event) {
}
@Override
public void valueUnbound(HttpSessionBindingEvent event) {
this.destructionCallback.run();
}

View File

@@ -106,6 +106,7 @@ public class FacesRequestAttributes implements RequestAttributes {
}
@Override
public Object getAttribute(String name, int scope) {
if (scope == SCOPE_GLOBAL_SESSION && portletApiPresent) {
return PortletSessionAccessor.getAttribute(name, getExternalContext());
@@ -115,6 +116,7 @@ public class FacesRequestAttributes implements RequestAttributes {
}
}
@Override
public void setAttribute(String name, Object value, int scope) {
if (scope == SCOPE_GLOBAL_SESSION && portletApiPresent) {
PortletSessionAccessor.setAttribute(name, value, getExternalContext());
@@ -124,6 +126,7 @@ public class FacesRequestAttributes implements RequestAttributes {
}
}
@Override
public void removeAttribute(String name, int scope) {
if (scope == SCOPE_GLOBAL_SESSION && portletApiPresent) {
PortletSessionAccessor.removeAttribute(name, getExternalContext());
@@ -133,6 +136,7 @@ public class FacesRequestAttributes implements RequestAttributes {
}
}
@Override
public String[] getAttributeNames(int scope) {
if (scope == SCOPE_GLOBAL_SESSION && portletApiPresent) {
return PortletSessionAccessor.getAttributeNames(getExternalContext());
@@ -142,6 +146,7 @@ public class FacesRequestAttributes implements RequestAttributes {
}
}
@Override
public void registerDestructionCallback(String name, Runnable callback, int scope) {
if (logger.isWarnEnabled()) {
logger.warn("Could not register destruction callback [" + callback + "] for attribute '" + name +
@@ -149,6 +154,7 @@ public class FacesRequestAttributes implements RequestAttributes {
}
}
@Override
public Object resolveReference(String key) {
if (REFERENCE_REQUEST.equals(key)) {
return getExternalContext().getRequest();
@@ -221,6 +227,7 @@ public class FacesRequestAttributes implements RequestAttributes {
}
}
@Override
public String getSessionId() {
Object session = getExternalContext().getSession(true);
try {
@@ -233,6 +240,7 @@ public class FacesRequestAttributes implements RequestAttributes {
}
}
@Override
public Object getSessionMutex() {
// Enforce presence of a session first to allow listeners
// to create the mutex attribute, if any.

View File

@@ -43,14 +43,17 @@ public class FacesWebRequest extends FacesRequestAttributes implements NativeWeb
}
@Override
public Object getNativeRequest() {
return getExternalContext().getRequest();
}
@Override
public Object getNativeResponse() {
return getExternalContext().getResponse();
}
@Override
@SuppressWarnings("unchecked")
public <T> T getNativeRequest(Class<T> requiredType) {
if (requiredType != null) {
@@ -62,6 +65,7 @@ public class FacesWebRequest extends FacesRequestAttributes implements NativeWeb
return null;
}
@Override
@SuppressWarnings("unchecked")
public <T> T getNativeResponse(Class<T> requiredType) {
if (requiredType != null) {
@@ -74,66 +78,82 @@ public class FacesWebRequest extends FacesRequestAttributes implements NativeWeb
}
@Override
public String getHeader(String headerName) {
return getExternalContext().getRequestHeaderMap().get(headerName);
}
@Override
public String[] getHeaderValues(String headerName) {
return getExternalContext().getRequestHeaderValuesMap().get(headerName);
}
@Override
public Iterator<String> getHeaderNames() {
return getExternalContext().getRequestHeaderMap().keySet().iterator();
}
@Override
public String getParameter(String paramName) {
return getExternalContext().getRequestParameterMap().get(paramName);
}
@Override
public Iterator<String> getParameterNames() {
return getExternalContext().getRequestParameterNames();
}
@Override
public String[] getParameterValues(String paramName) {
return getExternalContext().getRequestParameterValuesMap().get(paramName);
}
@Override
public Map<String, String[]> getParameterMap() {
return getExternalContext().getRequestParameterValuesMap();
}
@Override
public Locale getLocale() {
return getFacesContext().getExternalContext().getRequestLocale();
}
@Override
public String getContextPath() {
return getFacesContext().getExternalContext().getRequestContextPath();
}
@Override
public String getRemoteUser() {
return getFacesContext().getExternalContext().getRemoteUser();
}
@Override
public Principal getUserPrincipal() {
return getFacesContext().getExternalContext().getUserPrincipal();
}
@Override
public boolean isUserInRole(String role) {
return getFacesContext().getExternalContext().isUserInRole(role);
}
@Override
public boolean isSecure() {
return false;
}
@Override
public boolean checkNotModified(long lastModifiedTimestamp) {
return false;
}
@Override
public boolean checkNotModified(String eTag) {
return false;
}
@Override
public String getDescription(boolean includeClientInfo) {
ExternalContext externalContext = getExternalContext();
StringBuilder sb = new StringBuilder();

View File

@@ -58,6 +58,7 @@ public class Log4jNestedDiagnosticContextInterceptor implements AsyncWebRequestI
/**
* Adds a message the Log4J NDC before the request is processed.
*/
@Override
public void preHandle(WebRequest request) throws Exception {
NDC.push(getNestedDiagnosticContextMessage(request));
}
@@ -74,12 +75,14 @@ public class Log4jNestedDiagnosticContextInterceptor implements AsyncWebRequestI
return request.getDescription(isIncludeClientInfo());
}
@Override
public void postHandle(WebRequest request, ModelMap model) throws Exception {
}
/**
* Removes the log message from the Log4J NDC after the request is processed.
*/
@Override
public void afterCompletion(WebRequest request, Exception ex) throws Exception {
NDC.pop();
if (NDC.getDepth() == 0) {
@@ -91,6 +94,7 @@ public class Log4jNestedDiagnosticContextInterceptor implements AsyncWebRequestI
* Removes the log message from the Log4J NDC when the processing thread is
* exited after the start of asynchronous request handling.
*/
@Override
public void afterConcurrentHandlingStarted(WebRequest request) {
NDC.pop();
if (NDC.getDepth() == 0) {

View File

@@ -49,6 +49,7 @@ public class RequestContextListener implements ServletRequestListener {
RequestContextListener.class.getName() + ".REQUEST_ATTRIBUTES";
@Override
public void requestInitialized(ServletRequestEvent requestEvent) {
if (!(requestEvent.getServletRequest() instanceof HttpServletRequest)) {
throw new IllegalArgumentException(
@@ -61,6 +62,7 @@ public class RequestContextListener implements ServletRequestListener {
RequestContextHolder.setRequestAttributes(attributes);
}
@Override
public void requestDestroyed(ServletRequestEvent requestEvent) {
ServletRequestAttributes attributes =
(ServletRequestAttributes) requestEvent.getServletRequest().getAttribute(REQUEST_ATTRIBUTES_ATTRIBUTE);

View File

@@ -52,6 +52,7 @@ public class RequestScope extends AbstractRequestAttributesScope {
* There is no conversation id concept for a request, so this method
* returns {@code null}.
*/
@Override
public String getConversationId() {
return null;
}

View File

@@ -89,6 +89,7 @@ public class ServletRequestAttributes extends AbstractRequestAttributes {
}
@Override
public Object getAttribute(String name, int scope) {
if (scope == SCOPE_REQUEST) {
if (!isRequestActive()) {
@@ -117,6 +118,7 @@ public class ServletRequestAttributes extends AbstractRequestAttributes {
}
}
@Override
public void setAttribute(String name, Object value, int scope) {
if (scope == SCOPE_REQUEST) {
if (!isRequestActive()) {
@@ -134,6 +136,7 @@ public class ServletRequestAttributes extends AbstractRequestAttributes {
}
}
@Override
public void removeAttribute(String name, int scope) {
if (scope == SCOPE_REQUEST) {
if (isRequestActive()) {
@@ -159,6 +162,7 @@ public class ServletRequestAttributes extends AbstractRequestAttributes {
}
}
@Override
public String[] getAttributeNames(int scope) {
if (scope == SCOPE_REQUEST) {
if (!isRequestActive()) {
@@ -181,6 +185,7 @@ public class ServletRequestAttributes extends AbstractRequestAttributes {
}
}
@Override
public void registerDestructionCallback(String name, Runnable callback, int scope) {
if (scope == SCOPE_REQUEST) {
registerRequestDestructionCallback(name, callback);
@@ -190,6 +195,7 @@ public class ServletRequestAttributes extends AbstractRequestAttributes {
}
}
@Override
public Object resolveReference(String key) {
if (REFERENCE_REQUEST.equals(key)) {
return this.request;
@@ -202,10 +208,12 @@ public class ServletRequestAttributes extends AbstractRequestAttributes {
}
}
@Override
public String getSessionId() {
return getSession(true).getId();
}
@Override
public Object getSessionMutex() {
return WebUtils.getSessionMutex(getSession(true));
}

View File

@@ -79,76 +79,94 @@ public class ServletWebRequest extends ServletRequestAttributes implements Nativ
return this.response;
}
@Override
public Object getNativeRequest() {
return getRequest();
}
@Override
public Object getNativeResponse() {
return getResponse();
}
@Override
public <T> T getNativeRequest(Class<T> requiredType) {
return WebUtils.getNativeRequest(getRequest(), requiredType);
}
@Override
public <T> T getNativeResponse(Class<T> requiredType) {
return WebUtils.getNativeResponse(getResponse(), requiredType);
}
@Override
public String getHeader(String headerName) {
return getRequest().getHeader(headerName);
}
@Override
public String[] getHeaderValues(String headerName) {
String[] headerValues = StringUtils.toStringArray(getRequest().getHeaders(headerName));
return (!ObjectUtils.isEmpty(headerValues) ? headerValues : null);
}
@Override
public Iterator<String> getHeaderNames() {
return CollectionUtils.toIterator(getRequest().getHeaderNames());
}
@Override
public String getParameter(String paramName) {
return getRequest().getParameter(paramName);
}
@Override
public String[] getParameterValues(String paramName) {
return getRequest().getParameterValues(paramName);
}
@Override
public Iterator<String> getParameterNames() {
return CollectionUtils.toIterator(getRequest().getParameterNames());
}
@Override
public Map<String, String[]> getParameterMap() {
return getRequest().getParameterMap();
}
@Override
public Locale getLocale() {
return getRequest().getLocale();
}
@Override
public String getContextPath() {
return getRequest().getContextPath();
}
@Override
public String getRemoteUser() {
return getRequest().getRemoteUser();
}
@Override
public Principal getUserPrincipal() {
return getRequest().getUserPrincipal();
}
@Override
public boolean isUserInRole(String role) {
return getRequest().isUserInRole(role);
}
@Override
public boolean isSecure() {
return getRequest().isSecure();
}
@Override
public boolean checkNotModified(long lastModifiedTimestamp) {
if (lastModifiedTimestamp >= 0 && !this.notModified &&
(this.response == null || !this.response.containsHeader(HEADER_LAST_MODIFIED))) {
@@ -166,6 +184,7 @@ public class ServletWebRequest extends ServletRequestAttributes implements Nativ
return this.notModified;
}
@Override
public boolean checkNotModified(String eTag) {
if (StringUtils.hasLength(eTag) && !this.notModified &&
(this.response == null || !this.response.containsHeader(HEADER_ETAG))) {
@@ -188,6 +207,7 @@ public class ServletWebRequest extends ServletRequestAttributes implements Nativ
return this.notModified;
}
@Override
public String getDescription(boolean includeClientInfo) {
HttpServletRequest request = getRequest();
StringBuilder sb = new StringBuilder();

View File

@@ -81,6 +81,7 @@ public class SessionScope extends AbstractRequestAttributesScope {
return this.scope;
}
@Override
public String getConversationId() {
return RequestContextHolder.currentRequestAttributes().getSessionId();
}

View File

@@ -32,18 +32,21 @@ public abstract class CallableProcessingInterceptorAdapter implements CallablePr
/**
* This implementation is empty.
*/
@Override
public <T> void beforeConcurrentHandling(NativeWebRequest request, Callable<T> task) throws Exception {
}
/**
* This implementation is empty.
*/
@Override
public <T> void preProcess(NativeWebRequest request, Callable<T> task) throws Exception {
}
/**
* This implementation is empty.
*/
@Override
public <T> void postProcess(NativeWebRequest request, Callable<T> task, Object concurrentResult) throws Exception {
}
@@ -51,6 +54,7 @@ public abstract class CallableProcessingInterceptorAdapter implements CallablePr
* This implementation always returns
* {@link CallableProcessingInterceptor#RESULT_NONE RESULT_NONE}.
*/
@Override
public <T> Object handleTimeout(NativeWebRequest request, Callable<T> task) throws Exception {
return RESULT_NONE;
}
@@ -58,6 +62,7 @@ public abstract class CallableProcessingInterceptorAdapter implements CallablePr
/**
* This implementation is empty.
*/
@Override
public <T> void afterCompletion(NativeWebRequest request, Callable<T> task) throws Exception {
}

View File

@@ -30,18 +30,21 @@ public abstract class DeferredResultProcessingInterceptorAdapter implements Defe
/**
* This implementation is empty.
*/
@Override
public <T> void beforeConcurrentHandling(NativeWebRequest request, DeferredResult<T> deferredResult) throws Exception {
}
/**
* This implementation is empty.
*/
@Override
public <T> void preProcess(NativeWebRequest request, DeferredResult<T> deferredResult) throws Exception {
}
/**
* This implementation is empty.
*/
@Override
public <T> void postProcess(NativeWebRequest request, DeferredResult<T> deferredResult,
Object concurrentResult) throws Exception {
}
@@ -49,6 +52,7 @@ public abstract class DeferredResultProcessingInterceptorAdapter implements Defe
/**
* This implementation returns {@code true} by default.
*/
@Override
public <T> boolean handleTimeout(NativeWebRequest request, DeferredResult<T> deferredResult) throws Exception {
return true;
}
@@ -56,6 +60,7 @@ public abstract class DeferredResultProcessingInterceptorAdapter implements Defe
/**
* This implementation is empty.
*/
@Override
public <T> void afterCompletion(NativeWebRequest request, DeferredResult<T> deferredResult) throws Exception {
}

View File

@@ -33,32 +33,39 @@ public class NoSupportAsyncWebRequest extends ServletWebRequest implements Async
super(request, response);
}
@Override
public void addCompletionHandler(Runnable runnable) {
// ignored
}
@Override
public void setTimeout(Long timeout) {
// ignored
}
@Override
public void addTimeoutHandler(Runnable runnable) {
// ignored
}
@Override
public boolean isAsyncStarted() {
return false;
}
// Not supported
@Override
public void startAsync() {
throw new UnsupportedOperationException("No async support in a pre-Servlet 3.0 runtime");
}
@Override
public boolean isAsyncComplete() {
throw new UnsupportedOperationException("No async support in a pre-Servlet 3.0 runtime");
}
@Override
public void dispatch() {
throw new UnsupportedOperationException("No async support in a pre-Servlet 3.0 runtime");
}

View File

@@ -68,19 +68,23 @@ public class StandardServletAsyncWebRequest extends ServletWebRequest implements
* <p>In Servlet 3 async processing, the timeout period begins after the
* container processing thread has exited.
*/
@Override
public void setTimeout(Long timeout) {
Assert.state(!isAsyncStarted(), "Cannot change the timeout with concurrent handling in progress");
this.timeout = timeout;
}
@Override
public void addTimeoutHandler(Runnable timeoutHandler) {
this.timeoutHandlers.add(timeoutHandler);
}
@Override
public void addCompletionHandler(Runnable runnable) {
this.completionHandlers.add(runnable);
}
@Override
public boolean isAsyncStarted() {
return ((this.asyncContext != null) && getRequest().isAsyncStarted());
}
@@ -90,10 +94,12 @@ public class StandardServletAsyncWebRequest extends ServletWebRequest implements
* <p>It is important to avoid use of request and response objects after async
* processing has completed. Servlet containers often re-use them.
*/
@Override
public boolean isAsyncComplete() {
return this.asyncCompleted.get();
}
@Override
public void startAsync() {
Assert.state(getRequest().isAsyncSupported(),
"Async support must be enabled on a servlet and for all filters involved " +
@@ -111,6 +117,7 @@ public class StandardServletAsyncWebRequest extends ServletWebRequest implements
}
}
@Override
public void dispatch() {
Assert.notNull(this.asyncContext, "Cannot dispatch without an AsyncContext");
this.asyncContext.dispatch();
@@ -120,18 +127,22 @@ public class StandardServletAsyncWebRequest extends ServletWebRequest implements
// Implementation of AsyncListener methods
// ---------------------------------------------------------------------
@Override
public void onStartAsync(AsyncEvent event) throws IOException {
}
@Override
public void onError(AsyncEvent event) throws IOException {
}
@Override
public void onTimeout(AsyncEvent event) throws IOException {
for (Runnable handler : this.timeoutHandlers) {
handler.run();
}
}
@Override
public void onComplete(AsyncEvent event) throws IOException {
for (Runnable handler : this.completionHandlers) {
handler.run();

View File

@@ -107,6 +107,7 @@ public final class WebAsyncManager {
Assert.state(!isConcurrentHandlingStarted(), "Can't set AsyncWebRequest with concurrent handling in progress");
this.asyncWebRequest = asyncWebRequest;
this.asyncWebRequest.addCompletionHandler(new Runnable() {
@Override
public void run() {
asyncWebRequest.removeAttribute(WebAsyncUtils.WEB_ASYNC_MANAGER_ATTRIBUTE, RequestAttributes.SCOPE_REQUEST);
}
@@ -291,6 +292,7 @@ public final class WebAsyncManager {
final CallableInterceptorChain interceptorChain = new CallableInterceptorChain(interceptors);
this.asyncWebRequest.addTimeoutHandler(new Runnable() {
@Override
public void run() {
logger.debug("Processing timeout");
Object result = interceptorChain.triggerAfterTimeout(asyncWebRequest, callable);
@@ -301,6 +303,7 @@ public final class WebAsyncManager {
});
this.asyncWebRequest.addCompletionHandler(new Runnable() {
@Override
public void run() {
interceptorChain.triggerAfterCompletion(asyncWebRequest, callable);
}
@@ -311,6 +314,7 @@ public final class WebAsyncManager {
startAsyncProcessing(processingContext);
this.taskExecutor.submit(new Runnable() {
@Override
public void run() {
Object result = null;
try {
@@ -382,6 +386,7 @@ public final class WebAsyncManager {
final DeferredResultInterceptorChain interceptorChain = new DeferredResultInterceptorChain(interceptors);
this.asyncWebRequest.addTimeoutHandler(new Runnable() {
@Override
public void run() {
try {
interceptorChain.triggerAfterTimeout(asyncWebRequest, deferredResult);
@@ -393,6 +398,7 @@ public final class WebAsyncManager {
});
this.asyncWebRequest.addCompletionHandler(new Runnable() {
@Override
public void run() {
interceptorChain.triggerAfterCompletion(asyncWebRequest, deferredResult);
}
@@ -405,6 +411,7 @@ public final class WebAsyncManager {
try {
interceptorChain.applyPreProcess(this.asyncWebRequest, deferredResult);
deferredResult.setResultHandler(new DeferredResultHandler() {
@Override
public void handleResult(Object result) {
result = interceptorChain.applyPostProcess(asyncWebRequest, deferredResult, result);
setConcurrentResultAndDispatch(result);

View File

@@ -97,14 +97,17 @@ public abstract class AbstractRefreshableWebApplicationContext extends AbstractR
}
@Override
public void setServletContext(ServletContext servletContext) {
this.servletContext = servletContext;
}
@Override
public ServletContext getServletContext() {
return this.servletContext;
}
@Override
public void setServletConfig(ServletConfig servletConfig) {
this.servletConfig = servletConfig;
if (servletConfig != null && this.servletContext == null) {
@@ -112,10 +115,12 @@ public abstract class AbstractRefreshableWebApplicationContext extends AbstractR
}
}
@Override
public ServletConfig getServletConfig() {
return this.servletConfig;
}
@Override
public void setNamespace(String namespace) {
this.namespace = namespace;
if (namespace != null) {
@@ -123,6 +128,7 @@ public abstract class AbstractRefreshableWebApplicationContext extends AbstractR
}
}
@Override
public String getNamespace() {
return this.namespace;
}
@@ -209,6 +215,7 @@ public abstract class AbstractRefreshableWebApplicationContext extends AbstractR
}
}
@Override
public Theme getTheme(String themeName) {
return this.themeSource.getTheme(themeName);
}

View File

@@ -116,10 +116,12 @@ public class GenericWebApplicationContext extends GenericApplicationContext
/**
* Set the ServletContext that this WebApplicationContext runs in.
*/
@Override
public void setServletContext(ServletContext servletContext) {
this.servletContext = servletContext;
}
@Override
public ServletContext getServletContext() {
return this.servletContext;
}
@@ -200,6 +202,7 @@ public class GenericWebApplicationContext extends GenericApplicationContext
}
}
@Override
public Theme getTheme(String themeName) {
return this.themeSource.getTheme(themeName);
}
@@ -209,24 +212,29 @@ public class GenericWebApplicationContext extends GenericApplicationContext
// Pseudo-implementation of ConfigurableWebApplicationContext
// ---------------------------------------------------------------------
@Override
public void setServletConfig(ServletConfig servletConfig) {
// no-op
}
@Override
public ServletConfig getServletConfig() {
throw new UnsupportedOperationException(
"GenericWebApplicationContext does not support getServletConfig()");
}
@Override
public void setNamespace(String namespace) {
// no-op
}
@Override
public String getNamespace() {
throw new UnsupportedOperationException(
"GenericWebApplicationContext does not support getNamespace()");
}
@Override
public void setConfigLocation(String configLocation) {
if (StringUtils.hasText(configLocation)) {
throw new UnsupportedOperationException(
@@ -235,6 +243,7 @@ public class GenericWebApplicationContext extends GenericApplicationContext
}
}
@Override
public void setConfigLocations(String[] configLocations) {
if (!ObjectUtils.isEmpty(configLocations)) {
throw new UnsupportedOperationException(
@@ -243,6 +252,7 @@ public class GenericWebApplicationContext extends GenericApplicationContext
}
}
@Override
public String[] getConfigLocations() {
throw new UnsupportedOperationException(
"GenericWebApplicationContext does not support getConfigLocations()");

View File

@@ -63,6 +63,7 @@ public class ServletContextAttributeExporter implements ServletContextAware {
this.attributes = attributes;
}
@Override
public void setServletContext(ServletContext servletContext) {
for (Map.Entry<String, Object> entry : attributes.entrySet()) {
String attributeName = entry.getKey();

View File

@@ -55,6 +55,7 @@ public class ServletContextAttributeFactoryBean implements FactoryBean<Object>,
this.attributeName = attributeName;
}
@Override
public void setServletContext(ServletContext servletContext) {
if (this.attributeName == null) {
throw new IllegalArgumentException("Property 'attributeName' is required");
@@ -66,14 +67,17 @@ public class ServletContextAttributeFactoryBean implements FactoryBean<Object>,
}
@Override
public Object getObject() throws Exception {
return this.attribute;
}
@Override
public Class<?> getObjectType() {
return (this.attribute != null ? this.attribute.getClass() : null);
}
@Override
public boolean isSingleton() {
return true;
}

View File

@@ -97,6 +97,7 @@ public class ServletContextAwareProcessor implements BeanPostProcessor {
return this.servletConfig;
}
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
if (getServletContext() != null && bean instanceof ServletContextAware) {
((ServletContextAware) bean).setServletContext(getServletContext());
@@ -107,6 +108,7 @@ public class ServletContextAwareProcessor implements BeanPostProcessor {
return bean;
}
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) {
return bean;
}

View File

@@ -50,6 +50,7 @@ public class ServletContextParameterFactoryBean implements FactoryBean<String>,
this.initParamName = initParamName;
}
@Override
public void setServletContext(ServletContext servletContext) {
if (this.initParamName == null) {
throw new IllegalArgumentException("initParamName is required");
@@ -61,14 +62,17 @@ public class ServletContextParameterFactoryBean implements FactoryBean<String>,
}
@Override
public String getObject() {
return this.paramValue;
}
@Override
public Class<String> getObjectType() {
return String.class;
}
@Override
public boolean isSingleton() {
return true;
}

View File

@@ -109,6 +109,7 @@ public class ServletContextPropertyPlaceholderConfigurer extends PropertyPlaceho
* against the ServletContext: It will effectively behave like a plain
* PropertyPlaceholderConfigurer in such a scenario.
*/
@Override
public void setServletContext(ServletContext servletContext) {
this.servletContext = servletContext;
}

View File

@@ -134,6 +134,7 @@ public class ServletContextResource extends AbstractFileResolvingResource implem
* but throws a FileNotFoundException if no resource found.
* @see javax.servlet.ServletContext#getResourceAsStream(String)
*/
@Override
public InputStream getInputStream() throws IOException {
InputStream is = this.servletContext.getResourceAsStream(this.path);
if (is == null) {
@@ -202,10 +203,12 @@ public class ServletContextResource extends AbstractFileResolvingResource implem
* This implementation returns a description that includes the ServletContext
* resource location.
*/
@Override
public String getDescription() {
return "ServletContext resource [" + this.path + "]";
}
@Override
public String getPathWithinContext() {
return this.path;
}

View File

@@ -62,6 +62,7 @@ public class ServletContextScope implements Scope, DisposableBean {
}
@Override
public Object get(String name, ObjectFactory<?> objectFactory) {
Object scopedObject = this.servletContext.getAttribute(name);
if (scopedObject == null) {
@@ -71,6 +72,7 @@ public class ServletContextScope implements Scope, DisposableBean {
return scopedObject;
}
@Override
public Object remove(String name) {
Object scopedObject = this.servletContext.getAttribute(name);
if (scopedObject != null) {
@@ -83,14 +85,17 @@ public class ServletContextScope implements Scope, DisposableBean {
}
}
@Override
public void registerDestructionCallback(String name, Runnable callback) {
this.destructionCallbacks.put(name, callback);
}
@Override
public Object resolveContextualObject(String key) {
return null;
}
@Override
public String getConversationId() {
return null;
}
@@ -101,6 +106,7 @@ public class ServletContextScope implements Scope, DisposableBean {
* To be called on ServletContext shutdown.
* @see org.springframework.web.context.ContextCleanupListener
*/
@Override
public void destroy() {
for (Runnable runnable : this.destructionCallbacks.values()) {
runnable.run();

View File

@@ -90,6 +90,7 @@ public class StandardServletEnvironment extends StandardEnvironment
super.customizePropertySources(propertySources);
}
@Override
public void initPropertySources(ServletContext servletContext, ServletConfig servletConfig) {
WebApplicationContextUtils.initServletPropertySources(
this.getPropertySources(), servletContext, servletConfig);

View File

@@ -73,14 +73,17 @@ public class StaticWebApplicationContext extends StaticApplicationContext
/**
* Set the ServletContext that this WebApplicationContext runs in.
*/
@Override
public void setServletContext(ServletContext servletContext) {
this.servletContext = servletContext;
}
@Override
public ServletContext getServletContext() {
return this.servletContext;
}
@Override
public void setServletConfig(ServletConfig servletConfig) {
this.servletConfig = servletConfig;
if (servletConfig != null && this.servletContext == null) {
@@ -88,10 +91,12 @@ public class StaticWebApplicationContext extends StaticApplicationContext
}
}
@Override
public ServletConfig getServletConfig() {
return this.servletConfig;
}
@Override
public void setNamespace(String namespace) {
this.namespace = namespace;
if (namespace != null) {
@@ -99,6 +104,7 @@ public class StaticWebApplicationContext extends StaticApplicationContext
}
}
@Override
public String getNamespace() {
return this.namespace;
}
@@ -107,6 +113,7 @@ public class StaticWebApplicationContext extends StaticApplicationContext
* The {@link StaticWebApplicationContext} class does not support this method.
* @throws UnsupportedOperationException <b>always</b>
*/
@Override
public void setConfigLocation(String configLocation) {
if (configLocation != null) {
throw new UnsupportedOperationException("StaticWebApplicationContext does not support config locations");
@@ -117,12 +124,14 @@ public class StaticWebApplicationContext extends StaticApplicationContext
* The {@link StaticWebApplicationContext} class does not support this method.
* @throws UnsupportedOperationException <b>always</b>
*/
@Override
public void setConfigLocations(String[] configLocations) {
if (configLocations != null) {
throw new UnsupportedOperationException("StaticWebApplicationContext does not support config locations");
}
}
@Override
public String[] getConfigLocations() {
return null;
}
@@ -182,6 +191,7 @@ public class StaticWebApplicationContext extends StaticApplicationContext
this.getEnvironment().getPropertySources(), this.servletContext, this.servletConfig);
}
@Override
public Theme getTheme(String themeName) {
return this.themeSource.getTheme(themeName);
}

View File

@@ -292,6 +292,7 @@ public abstract class WebApplicationContextUtils {
@SuppressWarnings("serial")
private static class RequestObjectFactory implements ObjectFactory<ServletRequest>, Serializable {
@Override
public ServletRequest getObject() {
return currentRequestAttributes().getRequest();
}
@@ -309,6 +310,7 @@ public abstract class WebApplicationContextUtils {
@SuppressWarnings("serial")
private static class SessionObjectFactory implements ObjectFactory<HttpSession>, Serializable {
@Override
public HttpSession getObject() {
return currentRequestAttributes().getRequest().getSession();
}
@@ -326,6 +328,7 @@ public abstract class WebApplicationContextUtils {
@SuppressWarnings("serial")
private static class WebRequestObjectFactory implements ObjectFactory<WebRequest>, Serializable {
@Override
public WebRequest getObject() {
return new ServletWebRequest(currentRequestAttributes().getRequest());
}
@@ -344,6 +347,7 @@ public abstract class WebApplicationContextUtils {
public static void registerFacesDependencies(ConfigurableListableBeanFactory beanFactory) {
beanFactory.registerResolvableDependency(FacesContext.class, new ObjectFactory<FacesContext>() {
@Override
public FacesContext getObject() {
return FacesContext.getCurrentInstance();
}
@@ -353,6 +357,7 @@ public abstract class WebApplicationContextUtils {
}
});
beanFactory.registerResolvableDependency(ExternalContext.class, new ObjectFactory<ExternalContext>() {
@Override
public ExternalContext getObject() {
return FacesContext.getCurrentInstance().getExternalContext();
}

View File

@@ -40,6 +40,7 @@ public abstract class WebApplicationObjectSupport extends ApplicationObjectSuppo
private ServletContext servletContext;
@Override
public final void setServletContext(ServletContext servletContext) {
if (servletContext != this.servletContext) {
this.servletContext = servletContext;

View File

@@ -52,6 +52,7 @@ public class CompositeFilter implements Filter {
*
* @see Filter#init(FilterConfig)
*/
@Override
public void destroy() {
for (int i = filters.size(); i-- > 0;) {
Filter filter = filters.get(i);
@@ -64,6 +65,7 @@ public class CompositeFilter implements Filter {
*
* @see Filter#init(FilterConfig)
*/
@Override
public void init(FilterConfig config) throws ServletException {
for (Filter filter : filters) {
filter.init(config);
@@ -77,6 +79,7 @@ public class CompositeFilter implements Filter {
*
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
*/
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,
ServletException {
new VirtualFilterChain(chain, filters).doFilter(request, response);
@@ -92,6 +95,7 @@ public class CompositeFilter implements Filter {
this.additionalFilters = additionalFilters;
}
@Override
public void doFilter(final ServletRequest request, final ServletResponse response) throws IOException,
ServletException {
if (currentPosition == additionalFilters.size()) {

View File

@@ -239,6 +239,7 @@ public class DelegatingFilterProxy extends GenericFilterBean {
}
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)
throws ServletException, IOException {

View File

@@ -103,6 +103,7 @@ public abstract class GenericFilterBean implements
* @see org.springframework.beans.factory.BeanNameAware
* @see #getFilterName()
*/
@Override
public final void setBeanName(String beanName) {
this.beanName = beanName;
}
@@ -116,6 +117,7 @@ public abstract class GenericFilterBean implements
* used, this {@code Environment} can be essentially ignored.
* @see #init(FilterConfig)
*/
@Override
public void setEnvironment(Environment environment) {
this.environment = environment;
}
@@ -127,6 +129,7 @@ public abstract class GenericFilterBean implements
* @see org.springframework.web.context.ServletContextAware
* @see #getServletContext()
*/
@Override
public final void setServletContext(ServletContext servletContext) {
this.servletContext = servletContext;
}
@@ -139,6 +142,7 @@ public abstract class GenericFilterBean implements
* @see #initFilterBean()
* @see #init(javax.servlet.FilterConfig)
*/
@Override
public void afterPropertiesSet() throws ServletException {
initFilterBean();
}
@@ -166,6 +170,7 @@ public abstract class GenericFilterBean implements
* properties are missing), or if subclass initialization fails.
* @see #initFilterBean
*/
@Override
public final void init(FilterConfig filterConfig) throws ServletException {
Assert.notNull(filterConfig, "FilterConfig must not be null");
if (logger.isDebugEnabled()) {
@@ -274,6 +279,7 @@ public abstract class GenericFilterBean implements
* as well as filter bean destruction in a Spring application context.
* <p>This default implementation is empty.
*/
@Override
public void destroy() {
}

Some files were not shown because too many files have changed in this diff Show More