Add @Override annotations to main sources

Issue: SPR-10130
This commit is contained in:
Chris Beams
2012-12-28 14:00:16 +01:00
parent 9c2046c3ee
commit 3b40ce76bf
1256 changed files with 5716 additions and 0 deletions

View File

@@ -507,6 +507,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;
@@ -520,6 +521,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) {
@@ -537,18 +539,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()) {
@@ -559,50 +564,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

@@ -583,6 +583,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) {
@@ -841,6 +842,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;
@@ -884,6 +886,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

@@ -35,15 +35,18 @@ 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 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

@@ -28,6 +28,7 @@ import org.springframework.http.HttpStatus;
*/
public abstract class AbstractClientHttpResponse implements ClientHttpResponse {
@Override
public HttpStatus getStatusCode() throws IOException {
return HttpStatus.valueOf(getRawStatusCode());
}

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

@@ -43,22 +43,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 = FileCopyUtils.copyToByteArray(this.response.getBody());
@@ -66,6 +71,7 @@ final class BufferingClientHttpResponseWrapper implements ClientHttpResponse {
return new ByteArrayInputStream(this.body);
}
@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

@@ -56,10 +56,12 @@ final class CommonsClientHttpRequest extends AbstractBufferingClientHttpRequest
}
@Override
public HttpMethod getMethod() {
return HttpMethod.valueOf(this.httpMethod.getName());
}
@Override
public URI getURI() {
try {
return URI.create(this.httpMethod.getURI().getEscapedURI());

View File

@@ -112,6 +112,7 @@ public class CommonsClientHttpRequestFactory implements ClientHttpRequestFactory
}
@Override
public ClientHttpRequest createRequest(URI uri, HttpMethod httpMethod) throws IOException {
HttpMethodBase commonsHttpMethod = createCommonsHttpMethod(httpMethod, uri.toString());
postProcessCommonsHttpMethod(commonsHttpMethod);
@@ -162,6 +163,7 @@ public class CommonsClientHttpRequestFactory implements ClientHttpRequestFactory
* Shutdown hook that closes the underlying {@link HttpConnectionManager}'s
* connection pool, if any.
*/
@Override
public void destroy() {
HttpConnectionManager connectionManager = getHttpClient().getHttpConnectionManager();
if (connectionManager instanceof MultiThreadedHttpConnectionManager) {

View File

@@ -48,14 +48,17 @@ final class CommonsClientHttpResponse extends AbstractClientHttpResponse {
}
@Override
public int getRawStatusCode() {
return this.httpMethod.getStatusCode();
}
@Override
public String getStatusText() {
return this.httpMethod.getStatusText();
}
@Override
public HttpHeaders getHeaders() {
if (this.headers == null) {
this.headers = new HttpHeaders();
@@ -66,10 +69,12 @@ final class CommonsClientHttpResponse extends AbstractClientHttpResponse {
return this.headers;
}
@Override
public InputStream getBody() throws IOException {
return this.httpMethod.getResponseBodyAsStream();
}
@Override
public void close() {
this.httpMethod.releaseConnection();
}

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

@@ -45,10 +45,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

@@ -105,6 +105,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

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

View File

@@ -55,6 +55,7 @@ public class HttpRequestWrapper implements HttpRequest {
/**
* Returns the method of the wrapped request.
*/
@Override
public HttpMethod getMethod() {
return this.request.getMethod();
}
@@ -62,6 +63,7 @@ public class HttpRequestWrapper implements HttpRequest {
/**
* Returns the URI of the wrapped request.
*/
@Override
public URI getURI() {
return this.request.getURI();
}
@@ -69,6 +71,7 @@ public class HttpRequestWrapper implements HttpRequest {
/**
* Returns the headers of the wrapped request.
*/
@Override
public HttpHeaders getHeaders() {
return this.request.getHeaders();
}

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 {
@@ -373,10 +378,12 @@ 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;

View File

@@ -249,6 +249,7 @@ public class Jackson2ObjectMapperFactoryBean implements FactoryBean<ObjectMapper
}
}
@Override
public void afterPropertiesSet() throws FatalBeanException {
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

@@ -191,6 +191,7 @@ public class JacksonObjectMapperFactoryBean implements FactoryBean<ObjectMapper>
}
}
@Override
public void afterPropertiesSet() {
if (this.objectMapper == null) {
this.objectMapper = new ObjectMapper();
@@ -229,14 +230,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

@@ -132,6 +132,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));
@@ -156,6 +157,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

@@ -130,6 +130,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));
@@ -154,6 +155,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

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

View File

@@ -76,10 +76,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(),
@@ -91,6 +93,7 @@ public class ServletServerHttpRequest implements ServerHttpRequest {
}
}
@Override
public HttpHeaders getHeaders() {
if (this.headers == null) {
this.headers = new HttpHeaders();
@@ -123,6 +126,7 @@ public class ServletServerHttpRequest implements ServerHttpRequest {
return this.headers;
}
@Override
public InputStream getBody() throws IOException {
if (isFormPost(this.servletRequest)) {
return getBodyFromServletRequestParameters(this.servletRequest);

View File

@@ -58,19 +58,23 @@ 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 OutputStream getBody() throws IOException {
writeHeaders();
return this.servletResponse.getOutputStream();
}
@Override
public void close() {
writeHeaders();
}

View File

@@ -137,6 +137,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

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

View File

@@ -52,14 +52,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

@@ -54,6 +54,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

@@ -211,6 +211,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

@@ -93,6 +93,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

@@ -53,6 +53,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

@@ -50,6 +50,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

@@ -50,6 +50,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

@@ -344,6 +344,7 @@ public class JaxRpcPortClientInterceptor extends LocalJaxRpcServiceFactory
* Prepares the JAX-RPC service and port if the "lookupServiceOnStartup"
* is turned on (which it is by default).
*/
@Override
public void afterPropertiesSet() {
if (this.lookupServiceOnStartup) {
prepare();
@@ -542,6 +543,7 @@ public class JaxRpcPortClientInterceptor extends LocalJaxRpcServiceFactory
* @see #prepare()
* @see #doInvoke
*/
@Override
public Object invoke(MethodInvocation invocation) throws Throwable {
if (AopUtils.isToStringMethod(invocation.getMethod())) {
return "JAX-RPC proxy for port [" + getPortName() + "] of service [" + getServiceName() + "]";

View File

@@ -54,6 +54,7 @@ public class JaxRpcPortProxyFactoryBean extends JaxRpcPortClientInterceptor
private Object serviceProxy;
@Override
public void setBeanClassLoader(ClassLoader classLoader) {
this.beanClassLoader = classLoader;
}
@@ -75,14 +76,17 @@ public class JaxRpcPortProxyFactoryBean extends JaxRpcPortClientInterceptor
}
@Override
public Object getObject() {
return this.serviceProxy;
}
@Override
public Class<?> getObjectType() {
return getServiceInterface();
}
@Override
public boolean isSingleton() {
return true;
}

View File

@@ -44,19 +44,23 @@ public class LocalJaxRpcServiceFactoryBean extends LocalJaxRpcServiceFactory
private Service service;
@Override
public void afterPropertiesSet() throws ServiceException {
this.service = createJaxRpcService();
}
@Override
public Service getObject() throws Exception {
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

@@ -77,6 +77,7 @@ public abstract class ServletEndpointSupport implements ServiceLifecycle {
* @throws ServiceException if the context is not a ServletEndpointContext
* @see #onInit
*/
@Override
public final void init(Object context) throws ServiceException {
if (!(context instanceof ServletEndpointContext)) {
throw new ServiceException("ServletEndpointSupport needs ServletEndpointContext, not [" + context + "]");
@@ -145,6 +146,7 @@ public abstract class ServletEndpointSupport implements ServiceLifecycle {
* This implementation of destroy is empty.
* Can be overridden in subclasses.
*/
@Override
public void destroy() {
}

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

@@ -299,6 +299,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;
}
@@ -311,6 +312,7 @@ public class JaxWsPortClientInterceptor extends LocalJaxWsServiceFactory
}
@Override
public void afterPropertiesSet() {
if (this.lookupServiceOnStartup) {
prepare();
@@ -474,6 +476,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

@@ -97,6 +97,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);
@@ -111,6 +112,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) {
@@ -123,6 +125,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

@@ -150,10 +150,12 @@ public class ContentNegotiationManagerFactoryBean
this.defaultContentType = defaultContentType;
}
@Override
public void setServletContext(ServletContext servletContext) {
this.servletContext = servletContext;
}
@Override
public void afterPropertiesSet() throws Exception {
List<ContentNegotiationStrategy> strategies = new ArrayList<ContentNegotiationStrategy>();
@@ -192,14 +194,17 @@ public class ContentNegotiationManagerFactoryBean
this.contentNegotiationManager = new ContentNegotiationManager(array);
}
@Override
public Class<?> getObjectType() {
return ContentNegotiationManager.class;
}
@Override
public boolean isSingleton() {
return true;
}
@Override
public ContentNegotiationManager getObject() throws Exception {
return this.contentNegotiationManager;
}

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

@@ -207,6 +207,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 =
@@ -214,6 +215,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 =
@@ -221,6 +223,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 =
@@ -228,6 +231,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);
@@ -236,6 +240,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);
@@ -244,6 +249,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 =
@@ -253,26 +259,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);
@@ -280,12 +291,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);
@@ -294,6 +307,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);
@@ -302,6 +316,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 =
@@ -309,6 +324,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 {
HttpEntityRequestCallback requestCallback = new HttpEntityRequestCallback(request, responseType);
@@ -317,6 +333,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,
@@ -328,6 +345,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 =
@@ -337,16 +355,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);
@@ -354,30 +375,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();
@@ -385,6 +412,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 {
@@ -393,6 +421,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 {
@@ -401,6 +430,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 {
@@ -409,6 +439,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 {
@@ -418,6 +449,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 {
@@ -427,6 +459,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 {
@@ -438,6 +471,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 {
@@ -446,6 +480,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 {
@@ -454,6 +489,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 {
@@ -544,6 +580,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
this.responseType = responseType;
}
@Override
@SuppressWarnings("unchecked")
public void doWithRequest(ClientHttpRequest request) throws IOException {
if (responseType != null) {
@@ -682,6 +719,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
}
}
@Override
public ResponseEntity<T> extractData(ClientHttpResponse response) throws IOException {
if (delegate != null) {
T body = delegate.extractData(response);
@@ -699,6 +737,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

@@ -74,6 +74,7 @@ public interface ConfigurableWebApplicationContext extends WebApplicationContext
/**
* Return the {@link ConfigurableWebEnvironment} used by this web application context.
*/
@Override
ConfigurableWebEnvironment getEnvironment();
/**

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

@@ -104,6 +104,7 @@ public class ContextLoaderListener extends ContextLoader implements ServletConte
/**
* Initialize the root web application context.
*/
@Override
public void contextInitialized(ServletContextEvent event) {
this.contextLoader = createContextLoader();
if (this.contextLoader == null) {
@@ -138,6 +139,7 @@ public class ContextLoaderListener extends ContextLoader implements ServletConte
/**
* Close the root web application context.
*/
@Override
public void contextDestroyed(ServletContextEvent event) {
if (this.contextLoader != null) {
this.contextLoader.closeWebApplicationContext(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

@@ -98,14 +98,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) {
@@ -113,10 +116,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) {
@@ -124,6 +129,7 @@ public abstract class AbstractRefreshableWebApplicationContext extends AbstractR
}
}
@Override
public String getNamespace() {
return this.namespace;
}
@@ -215,6 +221,7 @@ public abstract class AbstractRefreshableWebApplicationContext extends AbstractR
this.getEnvironment().initPropertySources(this.servletContext, this.servletConfig);
}
@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;
}
@@ -205,6 +207,7 @@ public class GenericWebApplicationContext extends GenericApplicationContext
this.getEnvironment().initPropertySources(this.servletContext, null);
}
@Override
public Theme getTheme(String themeName) {
return this.themeSource.getTheme(themeName);
}
@@ -214,24 +217,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(
@@ -240,6 +248,7 @@ public class GenericWebApplicationContext extends GenericApplicationContext
}
}
@Override
public void setConfigLocations(String[] configLocations) {
if (!ObjectUtils.isEmpty(configLocations)) {
throw new UnsupportedOperationException(
@@ -248,6 +257,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

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

View File

@@ -49,19 +49,23 @@ public class ServletContextFactoryBean implements FactoryBean<ServletContext>, S
private ServletContext servletContext;
@Override
public void setServletContext(ServletContext servletContext) {
this.servletContext = servletContext;
}
@Override
public ServletContext getObject() {
return this.servletContext;
}
@Override
public Class<? extends ServletContext> getObjectType() {
return (this.servletContext != null ? this.servletContext.getClass() : ServletContext.class);
}
@Override
public boolean isSingleton() {
return true;
}

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();

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