/** * If client can accept text/html, always prefer it. WebKit-based browsers * claim to want application/xml, but we don't want to give it to them. See * <a href="https://webarchive.jira.com/browse/HER-1603">https://webarchive.jira.com/browse/HER-1603</a> */ public Variant getPreferredVariant() { boolean addExplicitTextHtmlPreference = false; for (Preference<MediaType> mediaTypePreference: getRequest().getClientInfo().getAcceptedMediaTypes()) { if (mediaTypePreference.getMetadata().equals(MediaType.TEXT_HTML)) { mediaTypePreference.setQuality(Float.MAX_VALUE); addExplicitTextHtmlPreference = false; break; } else if (mediaTypePreference.getMetadata().includes(MediaType.TEXT_HTML)) { addExplicitTextHtmlPreference = true; } } if (addExplicitTextHtmlPreference) { List<Preference<MediaType>> acceptedMediaTypes = getRequest().getClientInfo().getAcceptedMediaTypes(); acceptedMediaTypes.add(new Preference<MediaType>(MediaType.TEXT_HTML, Float.MAX_VALUE)); getRequest().getClientInfo().setAcceptedMediaTypes(acceptedMediaTypes); } return super.getPreferredVariant(); }
public void setAcceptedMediaTypes(MediaType... acceptedMediaTypes) { List<Preference<MediaType>> mediatypes = new ArrayList<>(); for( MediaType mediaType : acceptedMediaTypes ) { mediatypes.add( new Preference<>( mediaType ) ); } info.setAcceptedMediaTypes( mediatypes ); }
@Override protected int beforeHandle( Request request, Response response ) { String extensions = request.getResourceRef().getExtensions(); if ( extensions != null ) { int idx = extensions.lastIndexOf( '.' ); if ( idx != -1 ) { extensions = extensions.substring( idx + 1 ); } MetadataService metadataService = getApplication().getMetadataService(); Metadata metadata = metadataService.getMetadata( extensions ); if ( metadata instanceof MediaType ) { request.getClientInfo().setAcceptedMediaTypes( Collections.singletonList( new Preference<MediaType>( ( MediaType ) metadata ) ) ); String path = request.getResourceRef().getPath(); path = path.substring( 0, path.length() - extensions.length() - 1 ); request.getResourceRef().setPath( path ); } } return Filter.CONTINUE; }
.setAcceptedMediaTypes( Collections.singletonList( new Preference<>( (MediaType) metadata ) ) ); String path = request.getResourceRef().getPath(); path = path.substring( 0, path.length() - extensions.length() - 1 );
.setAcceptedMediaTypes( Collections.singletonList( new Preference<MediaType>( (MediaType) metadata ) ) ); String path = request.getResourceRef().getPath(); path = path.substring( 0, path.length() - extensions.length() - 1 );
.setAcceptedMediaTypes( Collections.singletonList( new Preference<MediaType>( (MediaType) metadata ) ) ); String path = request.getResourceRef().getPath(); path = path.substring( 0, path.length() - extensions.length() - 1 );
.setAcceptedMediaTypes( Collections.singletonList( new Preference<MediaType>( (MediaType) metadata ) ) ); String path = request.getResourceRef().getPath(); path = path.substring( 0, path.length() - extensions.length() - 1 );
/** * If client can accept text/html, always prefer it. WebKit-based browsers * claim to want application/xml, but we don't want to give it to them. See * <a href="https://webarchive.jira.com/browse/HER-1603">https://webarchive.jira.com/browse/HER-1603</a> */ public Variant getPreferredVariant() { boolean addExplicitTextHtmlPreference = false; for (Preference<MediaType> mediaTypePreference: getRequest().getClientInfo().getAcceptedMediaTypes()) { if (mediaTypePreference.getMetadata().equals(MediaType.TEXT_HTML)) { mediaTypePreference.setQuality(Float.MAX_VALUE); addExplicitTextHtmlPreference = false; break; } else if (mediaTypePreference.getMetadata().includes(MediaType.TEXT_HTML)) { addExplicitTextHtmlPreference = true; } } if (addExplicitTextHtmlPreference) { List<Preference<MediaType>> acceptedMediaTypes = getRequest().getClientInfo().getAcceptedMediaTypes(); acceptedMediaTypes.add(new Preference<MediaType>(MediaType.TEXT_HTML, Float.MAX_VALUE)); getRequest().getClientInfo().setAcceptedMediaTypes(acceptedMediaTypes); } return super.getPreferredVariant(); }
connNegList.add(new Preference<MediaType>(MediaType.TEXT_HTML, 1.0f)); creationClientResource.getClientInfo().setAcceptedMediaTypes(connNegList);
PreferenceReader.addMediaTypes( headerReplacer.getHeaderNew(), clientInfo); request.getClientInfo().setAcceptedMediaTypes( clientInfo.getAcceptedMediaTypes()); break;
connNegList.add(new Preference<MediaType>(MediaType.APPLICATION_JSON, 0.9f)); creationClientResource.getClientInfo().setAcceptedMediaTypes(connNegList);
connNegList.add(new Preference<MediaType>(MediaType.APPLICATION_JSON, 0.9f)); creationClientResource.getClientInfo().setAcceptedMediaTypes(connNegList);
connNegList.add(new Preference<MediaType>(MediaType.TEXT_HTML, 0.9f)); creationClientResource.getClientInfo().setAcceptedMediaTypes(connNegList);
connNegList.add(new Preference<MediaType>(RestletUtilMediaType.APPLICATION_RDF_JSON, 1.0f)); creationClientResource.getClientInfo().setAcceptedMediaTypes(connNegList);
connNegList.add(new Preference<MediaType>(MediaType.APPLICATION_RDF_XML, 1.0f)); creationClientResource.getClientInfo().setAcceptedMediaTypes(connNegList);
connNegList.add(new Preference<MediaType>(mediaType, 1.0f)); creationClientResource.getClientInfo().setAcceptedMediaTypes(connNegList);