From 4767f44671e60a83fbae2c8a7aea78765f277d21 Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Thu, 20 Sep 2012 17:25:00 -0700 Subject: [PATCH] Delete CopyOfRequestMappingHandlerMapping class Previously committed in error. Issue: SPR-9814 --- .../CopyOfRequestMappingHandlerMapping.java | 199 ------------------ 1 file changed, 199 deletions(-) delete mode 100644 spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/CopyOfRequestMappingHandlerMapping.java diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/CopyOfRequestMappingHandlerMapping.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/CopyOfRequestMappingHandlerMapping.java deleted file mode 100644 index 6a7333a62e..0000000000 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/CopyOfRequestMappingHandlerMapping.java +++ /dev/null @@ -1,199 +0,0 @@ -/* - * Copyright 2002-2012 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.web.servlet.mvc.method.annotation; - -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.List; - -import org.springframework.core.annotation.AnnotationUtils; -import org.springframework.stereotype.Controller; -import org.springframework.util.Assert; -import org.springframework.web.accept.ContentNegotiationManager; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.servlet.mvc.condition.AbstractRequestCondition; -import org.springframework.web.servlet.mvc.condition.CompositeRequestCondition; -import org.springframework.web.servlet.mvc.condition.ConsumesRequestCondition; -import org.springframework.web.servlet.mvc.condition.HeadersRequestCondition; -import org.springframework.web.servlet.mvc.condition.ParamsRequestCondition; -import org.springframework.web.servlet.mvc.condition.PatternsRequestCondition; -import org.springframework.web.servlet.mvc.condition.ProducesRequestCondition; -import org.springframework.web.servlet.mvc.condition.RequestCondition; -import org.springframework.web.servlet.mvc.condition.RequestMethodsRequestCondition; -import org.springframework.web.servlet.mvc.method.RequestMappingInfo; -import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping; - -/** - * Creates {@link RequestMappingInfo} instances from type and method-level - * {@link RequestMapping @RequestMapping} annotations in - * {@link Controller @Controller} classes. - * - * @author Arjen Poutsma - * @author Rossen Stoyanchev - * @since 3.1 - */ -public class CopyOfRequestMappingHandlerMapping extends RequestMappingInfoHandlerMapping { - - private boolean useSuffixPatternMatch = true; - - private boolean useTrailingSlashMatch = true; - - private ContentNegotiationManager contentNegotiationManager = new ContentNegotiationManager(); - - private final List contentNegotiationFileExtensions = new ArrayList(); - - /** - * Whether to use suffix pattern match (".*") when matching patterns to - * requests. If enabled a method mapped to "/users" also matches to "/users.*". - *

The default value is {@code true}. - */ - public void setUseSuffixPatternMatch(boolean useSuffixPatternMatch) { - this.useSuffixPatternMatch = useSuffixPatternMatch; - } - - /** - * Whether to match to URLs irrespective of the presence of a trailing slash. - * If enabled a method mapped to "/users" also matches to "/users/". - *

The default value is {@code true}. - */ - public void setUseTrailingSlashMatch(boolean useTrailingSlashMatch) { - this.useTrailingSlashMatch = useTrailingSlashMatch; - } - - /** - * Set the {@link ContentNegotiationManager} to use to determine requested media types. - * If not set, the default constructor is used. - */ - public void setContentNegotiationManager(ContentNegotiationManager contentNegotiationManager) { - Assert.notNull(contentNegotiationManager); - this.contentNegotiationManager = contentNegotiationManager; - this.contentNegotiationFileExtensions.addAll(contentNegotiationManager.getAllFileExtensions()); - } - - /** - * Whether to use suffix pattern matching. - */ - public boolean useSuffixPatternMatch() { - return this.useSuffixPatternMatch; - } - /** - * Whether to match to URLs irrespective of the presence of a trailing slash. - */ - public boolean useTrailingSlashMatch() { - return this.useTrailingSlashMatch; - } - - /** - * Return the configured {@link ContentNegotiationManager}. - */ - public ContentNegotiationManager getContentNegotiationManager() { - return this.contentNegotiationManager; - } - - /** - * Return the known file extensions for content negotiation. - */ - public List getContentNegotiationFileExtensions() { - return this.contentNegotiationFileExtensions; - } - - /** - * {@inheritDoc} - * Expects a handler to have a type-level @{@link Controller} annotation. - */ - @Override - protected boolean isHandler(Class beanType) { - return ((AnnotationUtils.findAnnotation(beanType, Controller.class) != null) || - (AnnotationUtils.findAnnotation(beanType, RequestMapping.class) != null)); - } - - /** - * Uses method and type-level @{@link RequestMapping} annotations to create - * the RequestMappingInfo. - * - * @return the created RequestMappingInfo, or {@code null} if the method - * does not have a {@code @RequestMapping} annotation. - * - * @see #getCustomMethodCondition(Method) - * @see #getCustomTypeCondition(Class) - */ - @Override - protected RequestMappingInfo getMappingForMethod(Method method, Class handlerType) { - RequestMappingInfo info = null; - RequestMapping methodAnnotation = AnnotationUtils.findAnnotation(method, RequestMapping.class); - if (methodAnnotation != null) { - RequestCondition methodCondition = getCustomMethodCondition(method); - info = createRequestMappingInfo(methodAnnotation, methodCondition); - RequestMapping typeAnnotation = AnnotationUtils.findAnnotation(handlerType, RequestMapping.class); - if (typeAnnotation != null) { - RequestCondition typeCondition = getCustomTypeCondition(handlerType); - info = createRequestMappingInfo(typeAnnotation, typeCondition).combine(info); - } - } - return info; - } - - /** - * Provide a custom type-level request condition. - * The custom {@link RequestCondition} can be of any type so long as the - * same condition type is returned from all calls to this method in order - * to ensure custom request conditions can be combined and compared. - * - *

Consider extending {@link AbstractRequestCondition} for custom - * condition types and using {@link CompositeRequestCondition} to provide - * multiple custom conditions. - * - * @param handlerType the handler type for which to create the condition - * @return the condition, or {@code null} - */ - protected RequestCondition getCustomTypeCondition(Class handlerType) { - return null; - } - - /** - * Provide a custom method-level request condition. - * The custom {@link RequestCondition} can be of any type so long as the - * same condition type is returned from all calls to this method in order - * to ensure custom request conditions can be combined and compared. - * - *

Consider extending {@link AbstractRequestCondition} for custom - * condition types and using {@link CompositeRequestCondition} to provide - * multiple custom conditions. - * - * @param method the handler method for which to create the condition - * @return the condition, or {@code null} - */ - protected RequestCondition getCustomMethodCondition(Method method) { - return null; - } - - /** - * Created a RequestMappingInfo from a RequestMapping annotation. - */ - private RequestMappingInfo createRequestMappingInfo(RequestMapping annotation, RequestCondition customCondition) { - return new RequestMappingInfo( - new PatternsRequestCondition(annotation.value(), getUrlPathHelper(), getPathMatcher(), - this.useSuffixPatternMatch, this.useTrailingSlashMatch, this.contentNegotiationFileExtensions), - new RequestMethodsRequestCondition(annotation.method()), - new ParamsRequestCondition(annotation.params()), - new HeadersRequestCondition(annotation.headers()), - new ConsumesRequestCondition(annotation.consumes(), annotation.headers()), - new ProducesRequestCondition(annotation.produces(), annotation.headers(), getContentNegotiationManager()), - customCondition); - } - -}