INT-3709: Fix HTTP module according SF changes

JIRA: https://jira.spring.io/browse/INT-3709
This commit is contained in:
Artem Bilan
2015-04-25 20:00:11 +03:00
committed by Gary Russell
parent 183941ec07
commit 6302c86fb8
2 changed files with 25 additions and 52 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2013-2014 the original author or authors.
* Copyright 2013-2015 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.
@@ -16,8 +16,9 @@
package org.springframework.integration.http.inbound;
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.atomic.AtomicBoolean;
import javax.servlet.http.HttpServletRequest;
@@ -25,10 +26,10 @@ import javax.servlet.http.HttpServletResponse;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.core.annotation.AnnotationAttributes;
import org.springframework.util.ObjectUtils;
import org.springframework.util.ReflectionUtils;
import org.springframework.web.HttpRequestHandler;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.HandlerExecutionChain;
import org.springframework.web.servlet.mvc.method.RequestMappingInfo;
@@ -113,51 +114,17 @@ public final class IntegrationRequestMappingHandlerMapping extends RequestMappin
return null;
}
org.springframework.web.bind.annotation.RequestMapping requestMappingAnnotation =
new org.springframework.web.bind.annotation.RequestMapping() {
Map<String, Object> requestMappingAttributes = new HashMap<String, Object>();
requestMappingAttributes.put("name", endpoint.getComponentName());
requestMappingAttributes.put("path", requestMapping.getPathPatterns());
requestMappingAttributes.put("method", requestMapping.getRequestMethods());
requestMappingAttributes.put("params", requestMapping.getParams());
requestMappingAttributes.put("headers", requestMapping.getHeaders());
requestMappingAttributes.put("consumes", requestMapping.getConsumes());
requestMappingAttributes.put("produces", requestMapping.getProduces());
//TODO consider add 'name' support when SF 4.1 will be minimal
public String name() {
return null;
}
@Override
public String[] value() {
return requestMapping.getPathPatterns();
}
@Override
public RequestMethod[] method() {
return requestMapping.getRequestMethods();
}
@Override
public String[] params() {
return requestMapping.getParams();
}
@Override
public String[] headers() {
return requestMapping.getHeaders();
}
@Override
public String[] consumes() {
return requestMapping.getConsumes();
}
@Override
public String[] produces() {
return requestMapping.getProduces();
}
@Override
public Class<? extends Annotation> annotationType() {
return org.springframework.web.bind.annotation.RequestMapping.class;
}
};
return this.createRequestMappingInfo(requestMappingAnnotation, this.getCustomTypeCondition(endpoint.getClass()));
return createRequestMappingInfo(AnnotationAttributes.fromMap(requestMappingAttributes),
getCustomTypeCondition(endpoint.getClass()));
}
@Override

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2013 the original author or authors.
* Copyright 2013-2015 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.
@@ -13,6 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.integration.http.inbound;
import org.springframework.http.HttpMethod;
@@ -36,15 +37,16 @@ public class RequestMapping {
private HttpMethod[] methods = new HttpMethod[]{HttpMethod.GET, HttpMethod.POST};
private String[] params;
private String[] params = new String[0];
private String[] headers;
private String[] headers = new String[0];
private String[] consumes;
private String[] consumes = new String[0];
private String[] produces;
private String[] produces = new String[0];
public void setPathPatterns(String... pathPatterns) {
Assert.notEmpty(pathPatterns, "at least one path pattern is required");
this.pathPatterns = pathPatterns;
}
@@ -62,6 +64,7 @@ public class RequestMapping {
}
public void setParams(String... params) {
Assert.notEmpty(params, "at least one param is required");
this.params = params;
}
@@ -70,6 +73,7 @@ public class RequestMapping {
}
public void setHeaders(String... headers) {
Assert.notEmpty(headers, "at least one header is required");
this.headers = headers;
}
@@ -78,6 +82,7 @@ public class RequestMapping {
}
public void setConsumes(String... consumes) {
Assert.notEmpty(consumes, "at least one consume value is required");
this.consumes = consumes;
}
@@ -86,6 +91,7 @@ public class RequestMapping {
}
public void setProduces(String... produces) {
Assert.notEmpty(produces, "at least one produce value is required");
this.produces = produces;
}