/** * Get media types for which the {@link org.glassfish.jersey.server.mvc.spi.ResolvedViewable resolved viewable} could be * produced. * * @param containerRequest request to obtain acceptable media types. * @param extendedUriInfo uri info to obtain resource method from and its producible media types. * @param varyHeaderValue Vary header reference. * @return list of producible media types. */ public static List<MediaType> getProducibleMediaTypes(final ContainerRequest containerRequest, final ExtendedUriInfo extendedUriInfo, final Ref<String> varyHeaderValue) { final List<MediaType> producedTypes = getResourceMethodProducibleTypes(extendedUriInfo); final MediaType[] mediaTypes = producedTypes.toArray(new MediaType[producedTypes.size()]); final List<Variant> variants = VariantSelector.selectVariants( containerRequest, Variant.mediaTypes(mediaTypes).build(), varyHeaderValue == null ? Refs.<String>emptyRef() : varyHeaderValue); return variants.stream() .map(variant -> MediaTypes.stripQualityParams(variant.getMediaType())) .collect(Collectors.toList()); }
final List<Variant> variants = Variant.mediaTypes( MediaType.TEXT_PLAIN_TYPE, MediaType.TEXT_HTML_TYPE,
List<Variant> vl = Variant.mediaTypes(MediaTypes.WADL, MediaTypes.WADL_JSON, MediaType.APPLICATION_XML_TYPE) .add().build(); Variant v = request.selectVariant(vl);
@GET @Produces({"application/hocon", "text/x-java-properties", "text/plain"}) @Path("/v2/tables/{tableName}") @ApiOperation("Displays the configuration of a table") public Response readTableConfiguration(@PathParam("tableName") String tableName, @Context Request request) { TableConfig offlineTableConfig = _resourceManager.getTableConfig(tableName, CommonConstants.Helix.TableType.OFFLINE); TableConfig realtimeTableConfig = _resourceManager.getTableConfig(tableName, CommonConstants.Helix.TableType.REALTIME); Schema tableSchema = _resourceManager.getTableSchema(tableName); if (offlineTableConfig == null && realtimeTableConfig == null) { return Response.status(Response.Status.NOT_FOUND).build(); } CombinedConfig combinedConfig = new CombinedConfig(offlineTableConfig, realtimeTableConfig, tableSchema); String serializedConfig; List<Variant> variants = Variant.mediaTypes(APPLICATION_HOCON, TEXT_JAVA_PROPERTIES, MediaType.TEXT_PLAIN_TYPE).build(); Variant variant = request.selectVariant(variants); if (variant == null) { return Response.notAcceptable(variants).build(); } else if (APPLICATION_HOCON.equals(variant.getMediaType()) || MediaType.TEXT_PLAIN_TYPE .equals(variant.getMediaType())) { serializedConfig = Serializer.serializeToString(combinedConfig); } else if (TEXT_JAVA_PROPERTIES.equals(variant.getMediaType())) { serializedConfig = Serializer.serializeToPropertiesString(combinedConfig); } else { return Response.notAcceptable(variants).build(); } return Response.ok(serializedConfig, variant).header("Content-Disposition", "inline").build(); }
resource, path); List<Variant> vl = Variant.mediaTypes(MediaTypes.WADL, MediaTypes.WADL_JSON, MediaType.APPLICATION_XML_TYPE) .add().build(); Variant v = context.getRequest().selectVariant(vl);
private static Variant compressedVariant(MediaType contentType, String contentEncoding) { return Variant.mediaTypes(contentType).encodings(contentEncoding).build().get(0); }
protected Variant getDefaultVariant() { return Variant.mediaTypes(MediaType.APPLICATION_JSON_TYPE).add().build().get(0); }
public FaultExceptionMapperSupport() { this.variants = Variant.mediaTypes( VND_ERROR_V1_JSON_TYPE, VND_ERROR_V1_XML_TYPE ).add().build(); }
public ValidationExceptionMapperSupport() { this.variants = Variant.mediaTypes( VND_VALIDATION_ERRORS_V1_JSON_TYPE, VND_VALIDATION_ERRORS_V1_XML_TYPE ).add().build(); }
public ErrorExceptionMapperSupport() { variants_v1 = Variant.mediaTypes( VND_ERROR_V1_JSON_TYPE, VND_ERROR_V1_XML_TYPE ).add().build(); }
public ValidationErrorsExceptionMappersSupport() { variants_v1 = Variant.mediaTypes( VND_VALIDATION_ERRORS_V1_JSON_TYPE, VND_VALIDATION_ERRORS_V1_XML_TYPE ).add().build(); }
public MediaType selectResponseType() { String format = uriInfo.getQueryParameters().getFirst(CASLoginProtocol.FORMAT_PARAM); if (format != null && !format.isEmpty()) { //if parameter is set, it overrides all header values (see spec section 2.5.1) request.getMutableHeaders().putSingle(HttpHeaders.ACCEPT, "application/" + format.toLowerCase()); } try { Variant variant = restRequest.selectVariant(Variant.mediaTypes(MediaType.APPLICATION_XML_TYPE, MediaType.APPLICATION_JSON_TYPE).build()); return variant == null ? MediaType.APPLICATION_XML_TYPE : variant.getMediaType(); } catch (BadRequestException e) { //the default Accept header set by java.net.HttpURLConnection is invalid (cf. RESTEASY-960) return MediaType.APPLICATION_XML_TYPE; } } }
public static Variant getVariant(HttpHeaders headers) { Variant v = RestEasy960Util.getVariant(headers); if( v == null ) { v = Variant.mediaTypes(getMediaType(headers)).add().build().get(0);; } return v; }
/** * Get media types for which the {@link org.glassfish.jersey.server.mvc.spi.ResolvedViewable resolved viewable} could be * produced. * * @param containerRequest request to obtain acceptable media types. * @param extendedUriInfo uri info to obtain resource method from and its producible media types. * @param varyHeaderValue Vary header reference. * @return list of producible media types. */ public static List<MediaType> getProducibleMediaTypes(final ContainerRequest containerRequest, final ExtendedUriInfo extendedUriInfo, final Ref<String> varyHeaderValue) { final List<MediaType> producedTypes = getResourceMethodProducibleTypes(extendedUriInfo); final MediaType[] mediaTypes = producedTypes.toArray(new MediaType[producedTypes.size()]); final List<Variant> variants = VariantSelector.selectVariants( containerRequest, Variant.mediaTypes(mediaTypes).build(), varyHeaderValue == null ? Refs.<String>emptyRef() : varyHeaderValue); return variants.stream() .map(variant -> MediaTypes.stripQualityParams(variant.getMediaType())) .collect(Collectors.toList()); }
private static MediaType selectVariant(Request request, ResourceInfo resourceInfo) { Produces produces = resourceInfo.getResourceMethod().getAnnotation(Produces.class); if (produces == null) { produces = getAnnotation(resourceInfo.getResourceClass(), Produces.class); } if (produces != null) { List<Variant> variants = Arrays.stream(produces.value()) .map((String mt) -> Variant.mediaTypes(MediaType.valueOf(mt)).build().get(0)) .collect(Collectors.toList()); Variant variant = request.selectVariant(variants); if (variant != null) { return variant.getMediaType(); } } return null; }
/** * Get media types for which the {@link org.glassfish.jersey.server.mvc.spi.ResolvedViewable resolved viewable} could be * produced. * * @param containerRequest request to obtain acceptable media types. * @param extendedUriInfo uri info to obtain resource method from and its producible media types. * @param varyHeaderValue Vary header reference. * @return list of producible media types. */ public static List<MediaType> getProducibleMediaTypes(final ContainerRequest containerRequest, final ExtendedUriInfo extendedUriInfo, final Ref<String> varyHeaderValue) { final List<MediaType> producedTypes = getResourceMethodProducibleTypes(extendedUriInfo); final MediaType[] mediaTypes = producedTypes.toArray(new MediaType[producedTypes.size()]); final List<Variant> variants = VariantSelector.selectVariants(containerRequest, Variant.mediaTypes(mediaTypes) .build(), varyHeaderValue == null ? Refs.emptyRef() : varyHeaderValue); return Lists.transform(variants, variant -> MediaTypes.stripQualityParams(variant.getMediaType())); }
/** * Get media types for which the {@link org.glassfish.jersey.server.mvc.spi.ResolvedViewable resolved viewable} could be * produced. * * @param containerRequest request to obtain acceptable media types. * @param extendedUriInfo uri info to obtain resource method from and its producible media types. * @param varyHeaderValue Vary header reference. * @return list of producible media types. */ public static List<MediaType> getProducibleMediaTypes(final ContainerRequest containerRequest, final ExtendedUriInfo extendedUriInfo, final Ref<String> varyHeaderValue) { final List<MediaType> producedTypes = getResourceMethodProducibleTypes(extendedUriInfo); final MediaType[] mediaTypes = producedTypes.toArray(new MediaType[producedTypes.size()]); final List<Variant> variants = VariantSelector.selectVariants(containerRequest, Variant.mediaTypes(mediaTypes) .build(), varyHeaderValue == null ? Refs.<String>emptyRef() : varyHeaderValue); return Lists.transform(variants, new Function<Variant, MediaType>() { @Override public MediaType apply(final Variant variant) { return MediaTypes.stripQualityParams(variant.getMediaType()); } }); }
private Variant contentVariant() { List<String> requestHeader= headers(). getRequestHeader(HttpHeaders.CONTENT_ENCODING); List<Variant> variants= Variant. mediaTypes(headers().getMediaType()). encodings(requestHeader.toArray(new String[requestHeader.size()])). languages(headers().getLanguage()). add(). build(); return variants.get(0); }
/** * Initialize result variants and save reference to repository. * @param rep reference to repository */ public AbstractSailResource(SailRepository rep) { this.rep = rep; rdfResultVariants = Variant.mediaTypes( MediaType.valueOf(RDFMediaType.RDF_TURTLE), MediaType.valueOf(RDFMediaType.RDF_NTRIPLES), MediaType.valueOf(RDFMediaType.RDF_XML), MediaType.valueOf(RDFMediaType.RDF_JSON) ).add().build(); }
protected Response getRequest(int requestId, List<MediaType> accept) throws SQLException, IOException, NotFoundException{ MediaType[] available = getTypeManager().createMediaTypes(getBroker().getRequestTypes(requestId)); if( available.length == 0 ){ throw new NotFoundException(); } // find acceptable request definition RequestConverter rc = getTypeManager().buildConverterChain(accept, Arrays.asList(available)); if( rc == null ){ // no acceptable response type available return Response.notAcceptable(Variant.mediaTypes(available).build()).build(); }else{ Reader def = getBroker().getRequestDefinition(requestId, rc.getConsumedType()); // transform def = rc.transform(def); // output using UTF-8. The HTTP default charset ISO-8859-1 has some missing characters like e.g Euro sign. return Response.ok(def, MediaType.valueOf(rc.getProducedType()).withCharset("UTF-8")).build(); } }