PJL Compressing Filter / News: Recent posts

PJL Compressing Filter 1.7 released

Version 1.7 2009-05-11
- Now does not compress content types like application/gzip
- Won't compress responses that already have a Content-Encoding
like gzip

Posted by Sean Owen 2009-05-11

PJL Compressing Filter 1.7-rc1 released

Version 1.7 2009-05-01
- Attempt to accommodate very large responses whose Content-Length
header value exceeds Integer.MAX_VALUE
- Always set Vary header
- Now attempts to set a modified ETag header when compressing
- Now avoid compressing if Cache-Control: no-transform is set
- Correctly handle multiple values in Content-Encoding header; other
transforms are preserved
- Now should support deflated requests
- Update to latest support libs, like Mockrunner 0.4.1
- Various updates to match my current preferred coding style; small
code tweaks and additional logging

Posted by Sean Owen 2009-04-28

1.6.6 released

Version 1.6.6, 2007-09-20
- Bug fix: empty response is no longer compressed, avoiding exception
in compress/ZipOutputStream in this situation
- Modest code tweaks from static analysis

Posted by Sean Owen 2007-09-20

1.6.5 released

Version 1.6.5, 2007-07-14
- Added includeUserAgentPatterns and excludeUserAgentPatterns
parameters to compress based on User-Agent
- Minor updates to use generic types in Enumerator, Iterator
- Update to Mockrunner 0.4, newer IntelliJ annotations
- Properly included some licenses

Posted by Sean Owen 2007-07-15

1.6.4 released

Version 1.6.4, 2006-12-11
- Bug fix: close() and flush() implementations probably shouldn't
throw IllegalStateException if the stream is already closed.
In at least one case, Jetty gets confused by this.
- But they do need to throw IOException, apparently, if a write- or
print-like method is called. Jetty wants this.
- Small improvement: if compressionThreshold is 0, compression begins
earlier, saving a bit of overhead
- flush() implementations will now definitely flush all output to the
response, even if it means beginning compression early.

Posted by Sean Owen 2006-12-12

1.4.6 / 1.6.3 released

Version 1.4.6, 2006-11-17
- Bug fix / improvement: handles case where setContentType() is
called after getOutputStream(), such that parameters includeContentType
and excludeContentType work even in this case.
- Bug fix: response input/compressed bytes stats were swapped!

Posted by Sean Owen 2006-11-17

1.4.5 released too

Verison 1.4.5, 2006-10-15
- Backport of 1.6.2 to JDK 1.4

Posted by Sean Owen 2006-10-16

1.6.2 released

(1.6.1 never got released)

Version 1.6.2, 2006-10-15
- Fixed bug #1571644: JakartaCommonsLoggingImpl and JavaUtilLoggingImpl are now public so that they may be instantiated by reflection correctly.

Version 1.6.1, 2006-09-01
- Now prefers certain encodings to others when Accept-Encoding header says several are equally good. For example, Accept-Encoding: deflate,gzip now gets gzip rather than deflate.
- Also fixed a potential bug in a rare case where the most-preferred encoding in the header was not supported, even though a less preferred encoding was. Filter was not compressing in this case.

Posted by Sean Owen 2006-10-16

1.6 released

Version 1.6, 2006-07-05
- Added support for compressed requests, including stats
- X-Compressed-By header only enabled in debug mode now
- Accept-Encoding header suppressed downstream if filter is handling
- Minor unit tests fixes and improvements
- Update to latest JUnit, Mockrunner, Commons Logging

Posted by Sean Owen 2006-07-05

1.6 coming with compressed request support

1.6 is nearly ready (just needs unit testing), which includes support for compressed requests and a few other minor tweaks. This may be very useful to those running servlet-based web services engines like Axis; now large XML requests can be sent across the network compressed.

Posted by Sean Owen 2006-06-26

1.5.2 released

Added a new feature, include/excludePathPatterns parameters, and cleaned up unit test situation while upgrading to mockrunner 0.6.3

Posted by Sean Owen 2006-02-20

1.5.1, 1.4.4 released

Version 1.5.1, 2005-08-06
- More code cleanup following my update to IntelliJ 5.0
- Added ability to also log messages to java.util.logging.Logger
or a Jakarta Commons Log

1.4.4 simply backports the logging feature. 1.4.4 continues to be compatible with JDK 1.3.

Posted by Sean Owen 2005-08-05

1.5 also released

I've also released version 1.5, which is identical to 1.4.3 except that it takes full advantage of new language features from JDK 1.4 and 1.5. It is also now guaranteed compatible with J2EE 1.4.

I will continue to back port bug fixes to 1.4.x for some time -- users that can't update to JDK 1.5, don't worry.

Posted by Sean Owen 2005-05-15

1.4.3 released

This release just contains a minor workaround -- I won't call it a bug fix -- for users of OC4J. It seems to want to close() and flush() a closed ServletOutputStream. The code now silently ignores this rather than throw an exception. The code around close() and flush() was streamlined a little bit too, and I added a load testing test class.

Posted by Sean Owen 2005-05-15

Switch to JDK 5.0?

Hello all. I'm considering using JDK 5.0 features in this project. I'd like to use assert again, and possibly some generics, and other language features to improve the code. This wouldn't happen any time soon since it would require JDK 5.0 to compile and use the filter. Out of curiosity, how many users are not on JDK 5.0 and don't plan to migrate soon?

Don't worry, I'd continue to maintain a JDK 1.3-friendly version for a while too.

Posted by Sean Owen 2005-05-06

1.4.2 released

A few good bug fixes and better unit tests this time. Enjoy.

Posted by Sean Owen 2005-04-02

1.4 is out

This version is a little smarter about content length -- if it's told upfront that the response is large, it will skip straight to compression.

This change required me to rewrite and simplify other code to get right. As a result the filter is a little stricter about setting headers *before* writing content. This shouldn't affect well-behaved apps.

Also included are a pair of minor fixes. Post feedback or problems to the forums please.

Posted by Sean Owen 2005-02-02

1.3 is out

Get 1.3 now! This release includes some important bug fixes, as well as the ability to include/exclude certain content types. Enjoy and report any trouble.

Posted by Sean Owen 2004-12-29

1.3 really is coming soon

This version is taking several tries to get right. I have just sent the latest release to some users who are testing this new version for me; if all is well it will be released before the new year.

Posted by Sean Owen 2004-12-28

1.3 coming shortly

I have completed fixes for a few recently reported bugs, and have add the include/exclude content type parameters. I will send the update to those who have reported bugs and requested this feature for quick testing, then release it if all is well.

Posted by Sean Owen 2004-12-19

1.2 released

Version 1.2, 2004-11-26
- Fixed bug that arose when application closed the output stream
- Application can now force encoding used in response
- Commented out assertions in released code to allow compilation under JDK 1.3
- Serializable classes now better follow conventions (e.g. include a serialVersionUID field)

Posted by Sean Owen 2004-11-26

1.1.1 released

This release was prompted by a bug fix: CompressingFilter will work correctly when app server applies this filter multiples times to the same request. I've also fixed the license so that the Apache 2.0 license is used everywhere -- use of the GPL was my mistake. Also I reorganized the code a little in this release.

Posted by Sean Owen 2004-11-06

1.1 released

1.1 is out, so soon! This release includes stats and some minor bug fixes. Please don't hesitate to post feedback or bugs here.

Posted by Sean Owen 2004-06-11

1.0 coming shortly

Welcome! Version 1.0 is complete and looking good, and will be released in the next day or so, once I package up the release nicely.

I'm expecting some possible problems with particular app servers, or particular browsers that I have not been able to test, so please report any issues in Tracker.

Posted by Sean Owen 2004-06-04

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.

No, thanks