Add @Override to remaining source files
Issue: SPR-10130
This commit is contained in:
@@ -29,10 +29,12 @@ public class DefaultCookie implements Cookie {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -57,6 +57,7 @@ public interface ClientHttpResponse extends HttpInputMessage, Closeable {
|
||||
/**
|
||||
* Closes this response, freeing any resources created.
|
||||
*/
|
||||
@Override
|
||||
void close();
|
||||
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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()) {
|
||||
|
||||
@@ -44,6 +44,7 @@ public interface ServerHttpResponse extends HttpOutputMessage, Closeable {
|
||||
/**
|
||||
* Close this response, freeing any resources created.
|
||||
*/
|
||||
@Override
|
||||
void close();
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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 - " +
|
||||
|
||||
@@ -50,6 +50,7 @@ public class BurlapExporter extends RemoteExporter implements InitializingBean {
|
||||
private BurlapSkeleton skeleton;
|
||||
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() {
|
||||
prepare();
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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 - " +
|
||||
|
||||
@@ -112,6 +112,7 @@ public class HessianExporter extends RemoteExporter implements InitializingBean
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() {
|
||||
prepare();
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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() + "]";
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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() + "]";
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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)");
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -181,6 +181,7 @@ public class ConfigurableWebBindingInitializer implements WebBindingInitializer
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void initBinder(WebDataBinder binder, WebRequest request) {
|
||||
binder.setAutoGrowNestedPaths(this.autoGrowNestedPaths);
|
||||
if (this.directFieldAccess) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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()) {
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -45,9 +45,11 @@ public class DestructionCallbackBindingListener implements HttpSessionBindingLis
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void valueBound(HttpSessionBindingEvent event) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void valueUnbound(HttpSessionBindingEvent event) {
|
||||
this.destructionCallback.run();
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -81,6 +81,7 @@ public class SessionScope extends AbstractRequestAttributesScope {
|
||||
return this.scope;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getConversationId() {
|
||||
return RequestContextHolder.currentRequestAttributes().getSessionId();
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
}
|
||||
|
||||
|
||||
@@ -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 {
|
||||
}
|
||||
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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()");
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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()) {
|
||||
|
||||
@@ -239,6 +239,7 @@ public class DelegatingFilterProxy extends GenericFilterBean {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)
|
||||
throws ServletException, IOException {
|
||||
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user