use of org.springframework.web.servlet.mvc.method.RequestMappingInfo in project spring-framework by spring-projects.
the class RequestMappingHandlerMappingTests method getMappingOverridesConsumesFromTypeLevelAnnotation.
// SPR-14988
@Test
public void getMappingOverridesConsumesFromTypeLevelAnnotation() throws Exception {
RequestMappingInfo requestMappingInfo = assertComposedAnnotationMapping(RequestMethod.GET);
assertArrayEquals(new MediaType[] { MediaType.ALL }, new ArrayList<>(requestMappingInfo.getConsumesCondition().getConsumableMediaTypes()).toArray());
}
use of org.springframework.web.servlet.mvc.method.RequestMappingInfo in project spring-framework by spring-projects.
the class RequestMappingHandlerMappingTests method resolveRequestMappingViaComposedAnnotation.
@Test
public void resolveRequestMappingViaComposedAnnotation() throws Exception {
RequestMappingInfo info = assertComposedAnnotationMapping("postJson", "/postJson", RequestMethod.POST);
assertEquals(MediaType.APPLICATION_JSON_VALUE, info.getConsumesCondition().getConsumableMediaTypes().iterator().next().toString());
assertEquals(MediaType.APPLICATION_JSON_VALUE, info.getProducesCondition().getProducibleMediaTypes().iterator().next().toString());
}
use of org.springframework.web.servlet.mvc.method.RequestMappingInfo in project nikita-noark5-core by HiOA-ABI.
the class AfterApplicationStartup method afterApplicationStarts.
/**
* afterApplicationStarts, go through list of endpoints and make a list of endpoints and
* the HTTP methods they support.
*
*/
public void afterApplicationStarts() {
for (Map.Entry<RequestMappingInfo, HandlerMethod> entry : handlerMapping.getHandlerMethods().entrySet()) {
RequestMappingInfo requestMappingInfo = entry.getKey();
// Assuming there is always a non-null value
String servletPaths = requestMappingInfo.getPatternsCondition().toString();
// servletPath starts with "[" and ends with "]". Removing them if they are there
if (true == servletPaths.startsWith("[")) {
servletPaths = servletPaths.substring(1);
}
if (true == servletPaths.endsWith("]")) {
servletPaths = servletPaths.substring(0, servletPaths.length() - 1);
}
String[] servletPathList = servletPaths.split("\\s+");
for (String servletPath : servletPathList) {
if (servletPath != null && false == servletPath.contains("|")) {
// This is done to be consist on a lookup
if (false == servletPath.endsWith("/")) {
servletPath += SLASH;
}
Set<RequestMethod> httpMethodRequests = requestMappingInfo.getMethodsCondition().getMethods();
if (null != httpMethodRequests && null != servletPath) {
// RequestMethod and HTTPMethod are different types, have to convert them here
Set<HttpMethod> httpMethods = new TreeSet<>();
for (RequestMethod requestMethod : httpMethodRequests) {
if (requestMethod.equals(requestMethod.GET)) {
httpMethods.add(HttpMethod.GET);
} else if (requestMethod.equals(requestMethod.DELETE)) {
httpMethods.add(HttpMethod.DELETE);
} else if (requestMethod.equals(requestMethod.OPTIONS)) {
httpMethods.add(HttpMethod.OPTIONS);
} else if (requestMethod.equals(requestMethod.HEAD)) {
httpMethods.add(HttpMethod.HEAD);
} else if (requestMethod.equals(requestMethod.PATCH)) {
httpMethods.add(HttpMethod.PATCH);
} else if (requestMethod.equals(requestMethod.POST)) {
httpMethods.add(HttpMethod.POST);
} else if (requestMethod.equals(requestMethod.PUT)) {
httpMethods.add(HttpMethod.PUT);
} else if (requestMethod.equals(requestMethod.TRACE)) {
httpMethods.add(HttpMethod.TRACE);
}
}
out.println("Adding " + servletPath + " methods " + httpMethods);
CommonUtils.WebUtils.addRequestToMethodMap(servletPath, httpMethods);
} else {
logger.warn("Missing HTTP Methods for the following servletPath [" + servletPath + "]");
}
}
}
}
}
use of org.springframework.web.servlet.mvc.method.RequestMappingInfo in project dhis2-core by dhis2.
the class CustomRequestMappingHandlerMapping method getMappingForMethod.
@Override
protected RequestMappingInfo getMappingForMethod(Method method, Class<?> handlerType) {
RequestMappingInfo info = super.getMappingForMethod(method, handlerType);
if (info == null) {
return null;
}
ApiVersion typeApiVersion = AnnotationUtils.findAnnotation(handlerType, ApiVersion.class);
ApiVersion methodApiVersion = AnnotationUtils.findAnnotation(method, ApiVersion.class);
if (typeApiVersion == null && methodApiVersion == null) {
return info;
}
RequestMethodsRequestCondition methodsCondition = info.getMethodsCondition();
if (methodsCondition.getMethods().isEmpty()) {
methodsCondition = new RequestMethodsRequestCondition(RequestMethod.GET);
}
Set<String> rqmPatterns = info.getPatternsCondition().getPatterns();
Set<String> patterns = new HashSet<>();
Set<DhisApiVersion> versions = getVersions(typeApiVersion, methodApiVersion);
for (String pattern : rqmPatterns) {
versions.stream().filter(version -> !version.isIgnore()).forEach(version -> {
if (!pattern.startsWith(version.getVersionString())) {
if (pattern.startsWith("/"))
patterns.add("/" + version.getVersion() + pattern);
else
patterns.add("/" + version.getVersion() + "/" + pattern);
} else {
patterns.add(pattern);
}
});
}
PatternsRequestCondition patternsRequestCondition = new PatternsRequestCondition(patterns.toArray(new String[] {}), null, null, true, true, null);
return new RequestMappingInfo(null, patternsRequestCondition, methodsCondition, info.getParamsCondition(), info.getHeadersCondition(), info.getConsumesCondition(), info.getProducesCondition(), info.getCustomCondition());
}
Aggregations