Fixed setFavorPathExtension delegation code

This commit is contained in:
Juergen Hoeller 2013-02-06 20:57:45 +01:00 committed by unknown
parent ab3aa6c8c2
commit 188a11bdb9
1 changed files with 8 additions and 17 deletions

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2012 the original author or authors. * Copyright 2002-2013 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -25,7 +25,6 @@ import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.Properties; import java.util.Properties;
import java.util.Set; import java.util.Set;
import javax.activation.FileTypeMap; import javax.activation.FileTypeMap;
import javax.servlet.ServletContext; import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@ -33,6 +32,7 @@ import javax.servlet.http.HttpServletResponse;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.BeanFactoryUtils; import org.springframework.beans.factory.BeanFactoryUtils;
import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.InitializingBean;
import org.springframework.core.OrderComparator; import org.springframework.core.OrderComparator;
@ -95,7 +95,7 @@ public class ContentNegotiatingViewResolver extends WebApplicationObjectSupport
private ContentNegotiationManager contentNegotiationManager; private ContentNegotiationManager contentNegotiationManager;
private ContentNegotiationManagerFactoryBean cnManagerFactoryBean = new ContentNegotiationManagerFactoryBean(); private final ContentNegotiationManagerFactoryBean cnManagerFactoryBean = new ContentNegotiationManagerFactoryBean();
private boolean useNotAcceptableStatusCode = false; private boolean useNotAcceptableStatusCode = false;
@ -104,10 +104,6 @@ public class ContentNegotiatingViewResolver extends WebApplicationObjectSupport
private List<ViewResolver> viewResolvers; private List<ViewResolver> viewResolvers;
public ContentNegotiatingViewResolver() {
super();
}
public void setOrder(int order) { public void setOrder(int order) {
this.order = order; this.order = order;
} }
@ -118,7 +114,9 @@ public class ContentNegotiatingViewResolver extends WebApplicationObjectSupport
/** /**
* Set the {@link ContentNegotiationManager} to use to determine requested media types. * Set the {@link ContentNegotiationManager} to use to determine requested media types.
* If not set, the default constructor is used. * <p>If not set, ContentNegotiationManager's default constructor will be used,
* applying a {@link org.springframework.web.accept.HeaderContentNegotiationStrategy}.
* @see ContentNegotiationManager#ContentNegotiationManager()
*/ */
public void setContentNegotiationManager(ContentNegotiationManager contentNegotiationManager) { public void setContentNegotiationManager(ContentNegotiationManager contentNegotiationManager) {
this.contentNegotiationManager = contentNegotiationManager; this.contentNegotiationManager = contentNegotiationManager;
@ -130,18 +128,16 @@ public class ContentNegotiatingViewResolver extends WebApplicationObjectSupport
* <p>For instance, when this flag is {@code true} (the default), a request for {@code /hotels.pdf} * <p>For instance, when this flag is {@code true} (the default), a request for {@code /hotels.pdf}
* will result in an {@code AbstractPdfView} being resolved, while the {@code Accept} header can be the * will result in an {@code AbstractPdfView} being resolved, while the {@code Accept} header can be the
* browser-defined {@code text/html,application/xhtml+xml}. * browser-defined {@code text/html,application/xhtml+xml}.
*
* @deprecated use {@link #setContentNegotiationManager(ContentNegotiationManager)} * @deprecated use {@link #setContentNegotiationManager(ContentNegotiationManager)}
*/ */
@Deprecated @Deprecated
public void setFavorPathExtension(boolean favorPathExtension) { public void setFavorPathExtension(boolean favorPathExtension) {
this.cnManagerFactoryBean.setFavorParameter(favorPathExtension); this.cnManagerFactoryBean.setFavorPathExtension(favorPathExtension);
} }
/** /**
* Indicate whether to use the Java Activation Framework to map from file extensions to media types. * Indicate whether to use the Java Activation Framework to map from file extensions to media types.
* <p>Default is {@code true}, i.e. the Java Activation Framework is used (if available). * <p>Default is {@code true}, i.e. the Java Activation Framework is used (if available).
*
* @deprecated use {@link #setContentNegotiationManager(ContentNegotiationManager)} * @deprecated use {@link #setContentNegotiationManager(ContentNegotiationManager)}
*/ */
@Deprecated @Deprecated
@ -155,7 +151,6 @@ public class ContentNegotiatingViewResolver extends WebApplicationObjectSupport
* <p>For instance, when this flag is {@code true}, a request for {@code /hotels?format=pdf} will result * <p>For instance, when this flag is {@code true}, a request for {@code /hotels?format=pdf} will result
* in an {@code AbstractPdfView} being resolved, while the {@code Accept} header can be the browser-defined * in an {@code AbstractPdfView} being resolved, while the {@code Accept} header can be the browser-defined
* {@code text/html,application/xhtml+xml}. * {@code text/html,application/xhtml+xml}.
*
* @deprecated use {@link #setContentNegotiationManager(ContentNegotiationManager)} * @deprecated use {@link #setContentNegotiationManager(ContentNegotiationManager)}
*/ */
@Deprecated @Deprecated
@ -166,7 +161,6 @@ public class ContentNegotiatingViewResolver extends WebApplicationObjectSupport
/** /**
* Set the parameter name that can be used to determine the requested media type if the {@link * Set the parameter name that can be used to determine the requested media type if the {@link
* #setFavorParameter} property is {@code true}. The default parameter name is {@code format}. * #setFavorParameter} property is {@code true}. The default parameter name is {@code format}.
*
* @deprecated use {@link #setContentNegotiationManager(ContentNegotiationManager)} * @deprecated use {@link #setContentNegotiationManager(ContentNegotiationManager)}
*/ */
@Deprecated @Deprecated
@ -179,7 +173,6 @@ public class ContentNegotiatingViewResolver extends WebApplicationObjectSupport
* <p>If set to {@code true}, this view resolver will only refer to the file extension and/or * <p>If set to {@code true}, this view resolver will only refer to the file extension and/or
* parameter, as indicated by the {@link #setFavorPathExtension favorPathExtension} and * parameter, as indicated by the {@link #setFavorPathExtension favorPathExtension} and
* {@link #setFavorParameter favorParameter} properties. * {@link #setFavorParameter favorParameter} properties.
*
* @deprecated use {@link #setContentNegotiationManager(ContentNegotiationManager)} * @deprecated use {@link #setContentNegotiationManager(ContentNegotiationManager)}
*/ */
@Deprecated @Deprecated
@ -191,7 +184,6 @@ public class ContentNegotiatingViewResolver extends WebApplicationObjectSupport
* Set the mapping from file extensions to media types. * Set the mapping from file extensions to media types.
* <p>When this mapping is not set or when an extension is not present, this view resolver * <p>When this mapping is not set or when an extension is not present, this view resolver
* will fall back to using a {@link FileTypeMap} when the Java Action Framework is available. * will fall back to using a {@link FileTypeMap} when the Java Action Framework is available.
*
* @deprecated use {@link #setContentNegotiationManager(ContentNegotiationManager)} * @deprecated use {@link #setContentNegotiationManager(ContentNegotiationManager)}
*/ */
@Deprecated @Deprecated
@ -207,7 +199,6 @@ public class ContentNegotiatingViewResolver extends WebApplicationObjectSupport
* Set the default content type. * Set the default content type.
* <p>This content type will be used when file extension, parameter, nor {@code Accept} * <p>This content type will be used when file extension, parameter, nor {@code Accept}
* header define a content-type, either through being disabled or empty. * header define a content-type, either through being disabled or empty.
*
* @deprecated use {@link #setContentNegotiationManager(ContentNegotiationManager)} * @deprecated use {@link #setContentNegotiationManager(ContentNegotiationManager)}
*/ */
@Deprecated @Deprecated
@ -275,7 +266,7 @@ public class ContentNegotiatingViewResolver extends WebApplicationObjectSupport
this.cnManagerFactoryBean.setServletContext(servletContext); this.cnManagerFactoryBean.setServletContext(servletContext);
} }
public void afterPropertiesSet() throws Exception { public void afterPropertiesSet() {
if (this.contentNegotiationManager == null) { if (this.contentNegotiationManager == null) {
this.cnManagerFactoryBean.afterPropertiesSet(); this.cnManagerFactoryBean.afterPropertiesSet();
this.contentNegotiationManager = this.cnManagerFactoryBean.getObject(); this.contentNegotiationManager = this.cnManagerFactoryBean.getObject();