001package org.nuxeo.template.xdocreport.jaxrs;
002
003import java.io.IOException;
004import java.io.OutputStream;
005import java.lang.annotation.Annotation;
006import java.lang.reflect.Type;
007
008import javax.ws.rs.WebApplicationException;
009import javax.ws.rs.core.MediaType;
010import javax.ws.rs.core.MultivaluedMap;
011import javax.ws.rs.ext.Provider;
012
013import org.nuxeo.ecm.platform.web.common.requestcontroller.filter.BufferingServletOutputStream;
014
015import fr.opensagres.xdocreport.remoting.resources.domain.LargeBinaryData;
016import fr.opensagres.xdocreport.remoting.resources.services.jaxrs.LargeBinaryDataMessageBodyWriter;
017
018@Provider
019public class NuxeoLargeBinaryDataMessageWriter extends LargeBinaryDataMessageBodyWriter {
020
021    @Override
022    public void writeTo(LargeBinaryData t, Class<?> type, Type genericType, Annotation[] annotations,
023            MediaType mediaType, MultivaluedMap<String, Object> httpHeaders, OutputStream entityStream)
024            throws IOException, WebApplicationException {
025        BufferingServletOutputStream.stopBufferingThread();
026        httpHeaders.add("X-Nuxeo", "WebEngine-JAXRS");
027        super.writeTo(t, type, genericType, annotations, mediaType, httpHeaders, entityStream);
028    }
029}