List of usage examples for org.springframework.http MediaType removeQualityValue
public MediaType removeQualityValue()
From source file:org.craftercms.commons.rest.HttpMessageConvertingResponseWriter.java
public <T> void writeWithMessageConverters(T returnValue, HttpServletRequest request, HttpServletResponse response) throws IOException, HttpMediaTypeNotAcceptableException { Class<?> returnValueClass = returnValue.getClass(); List<MediaType> requestedMediaTypes = getAcceptableMediaTypes(request); List<MediaType> producibleMediaTypes = getProducibleMediaTypes(returnValueClass); Set<MediaType> compatibleMediaTypes = new LinkedHashSet<MediaType>(); for (MediaType r : requestedMediaTypes) { for (MediaType p : producibleMediaTypes) { if (r.isCompatibleWith(p)) { compatibleMediaTypes.add(getMostSpecificMediaType(r, p)); }/*from w ww .j a va 2 s .c o m*/ } } if (compatibleMediaTypes.isEmpty()) { throw new HttpMediaTypeNotAcceptableException(producibleMediaTypes); } List<MediaType> mediaTypes = new ArrayList<MediaType>(compatibleMediaTypes); MediaType.sortBySpecificityAndQuality(mediaTypes); MediaType selectedMediaType = null; for (MediaType mediaType : mediaTypes) { if (mediaType.isConcrete()) { selectedMediaType = mediaType; break; } else if (mediaType.equals(MediaType.ALL) || mediaType.equals(MEDIA_TYPE_APPLICATION)) { selectedMediaType = MediaType.APPLICATION_OCTET_STREAM; break; } } if (selectedMediaType != null) { selectedMediaType = selectedMediaType.removeQualityValue(); for (HttpMessageConverter<?> messageConverter : messageConverters) { if (messageConverter.canWrite(returnValueClass, selectedMediaType)) { ((HttpMessageConverter<T>) messageConverter).write(returnValue, selectedMediaType, new ServletServerHttpResponse(response)); logger.debug(LOG_KEY_WRITTEN_WITH_MESSAGE_CONVERTER, returnValue, selectedMediaType, messageConverter); return; } } } throw new HttpMediaTypeNotAcceptableException(allSupportedMediaTypes); }
From source file:org.springframework.boot.actuate.endpoint.mvc.EndpointHandlerAdapter.java
@SuppressWarnings("unchecked") private void handle(HttpServletRequest request, HttpServletResponse response, Endpoint<?> endpoint) throws Exception { Object result = endpoint.invoke(); Class<?> resultClass = result.getClass(); List<MediaType> mediaTypes = getMediaTypes(request, endpoint, resultClass); MediaType selectedMediaType = selectMediaType(mediaTypes); ServletServerHttpResponse outputMessage = new ServletServerHttpResponse(response); try {//from w w w.ja v a 2s .c o m if (selectedMediaType != null) { selectedMediaType = selectedMediaType.removeQualityValue(); for (HttpMessageConverter<?> messageConverter : this.messageConverters) { if (messageConverter.canWrite(resultClass, selectedMediaType)) { ((HttpMessageConverter<Object>) messageConverter).write(result, selectedMediaType, outputMessage); if (this.logger.isDebugEnabled()) { this.logger.debug("Written [" + result + "] as \"" + selectedMediaType + "\" using [" + messageConverter + "]"); } return; } } } throw new HttpMediaTypeNotAcceptableException(this.allSupportedMediaTypes); } finally { outputMessage.close(); } }