[ https://issues.apache.org/jira/browse/CXF-1387?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ian Roberts updated CXF-1387: ----------------------------- Attachment: gzip-interceptors.diff Diff with the GZIP interceptors. I'm not really sure whereabouts in the CXF tree they belong - in this diff they're in rt/core under org.apache.cxf.interceptor but as they use the PROTOCOL_HEADERS they might be better off somewhere specific to HTTP, you're a better judge of that than I am. > Support for GZIP compression of HTTP payloads > --------------------------------------------- > > Key: CXF-1387 > URL: https://issues.apache.org/jira/browse/CXF-1387 > Project: CXF > Issue Type: New Feature > Components: Core > Reporter: Ian Roberts > Attachments: gzip-interceptors.diff > > > This patch contains a pair of interceptors I wrote to provide support for > proper GZIP compression of request and response messages. I originally > started from the configuration_interceptor sample but the code has evolved > quite a long way from there now. > There are two separate interceptors. GZIPInInterceptor looks in the > PROTOCOL_HEADERS for a Content-Encoding of "gzip", and if found it wraps the > message's InputStream with a GZIPInputStream to uncompress the payload. It > restores the original input stream at the end of processing (failure to do > that originally left me with lots of stale HTTP connections). > GZIPOutInterceptor applies gzip compression to outgoing messages whose > payload is larger than a configurable threshold (default 1kB), and sets their > Content-Encoding in the PROTOCOL_HEADERS to "gzip". Smaller messages are not > compressed as it's probably not worth the overhead. > As currently written, these interceptors are only for use on the client side > (compress the request, uncompress the response). In my services I implement > the server-side compression outside of CXF via a servlet filter > (http://sourceforge.net/projects/pjl-comp-filter), but if you think it would > be useful I can modify the interceptors to support this too - the "in" > interceptor should work as-is, the "out" one would have to be made > conditional on the Accept-Encoding header supplied in the client request. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.