[ https://issues.apache.org/jira/browse/CXF-1387?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Daniel Kulp resolved CXF-1387. ------------------------------ Resolution: Fixed Fix Version/s: 2.1.2 Assignee: Daniel Kulp Applied this patch for 2.1.2 and then updated to do the gzip threshold stuff in a streaming manner instead of buffering the whole request to determine if the threshold is reached. > 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 > Assignee: Daniel Kulp > Fix For: 2.1.2 > > Attachments: gzip-interceptors-v2.diff, 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.