> > It's mostly for the writing side of things. > Ok I just get this part, while looking at the code. Indeed the GZipInInterceptor doesn't have a GZipThresholdOutputStream nor a AbstractThresholdOutputStream exists. I just looked a the code, well for now the code is a bit obscure.
However on a different view and with my limited understanding, I really don't get why CXF requires to write gzip interceptors, why couldn't we rely on the transport layer wether it is jetty or commons-http. Thx On Fri, Aug 1, 2008 at 18:00, Daniel Kulp <[EMAIL PROTECTED]> wrote: > > On Aug 1, 2008, at 11:44 AM, Brice wrote: > >> OK, thx for the update, indeed our application will have to handle a big >> load for two reasons: >> first : our application and the server will have to handle a lot of >> request (~50 eventually more) per seconds >> second : the documents might weight from 200KB to several MB >> >> I guess we will switch to the 2.1.2. As this release is not yet ready (7 >> issues left), do you have an ETA and if not do you think the actual code >> on >> the trunk is stable enough to go in production? >> > > I wouldn't count on JIRA for this. For patch releases, I tend to do "time > based" releases instead of feature/issue based releases. Generally, I try > to do patch releases about every 8 weeks or so. Whatever JIRA items have > been fixed in that 8 weeks is included. Thus, if you REALLY want > something included, submit a patch. :-) Otherwise it might not get done > in time and may get pushed out. > > 2.1.1 was done mid June so probably mid August. > > > And finally just for my own information, when you talk about streaming, >> I'm >> guessing that the gzipped payload is stremed to the "xml handler" using >> stax >> to map the objects with Jaxb. Am I correct? >> > > > It's mostly for the writing side of things. Normally, the path is > basically: > JAXB -> Stax -> HttpOutputStream > While JAXB is writing to the Stax writer, it's streaming it directly onto > the wire. > > Ian's patch had this cool little feature where messages less than 1K in > size (configurable) don't get gzip compressed. However, to determine if it > is 1K in size, he basically did: > JAXB -> Stax -> Cache (byte[] for the first 64K, file on disk if larger) > then check the cache size and do: > (big) Cache -> GZipOutputStream -> HttpOutputStream > or > (little) Cache -> HttpOutputStream > > that's a bit inefficient as it involves using the disk for the large > messages, etc. > > The stuff on trunk sets it up like: > > JAXB -> Stax -> 1K buffer (-> GZIPOut if 1k exceeded) -> HttpOutputStream > > If the 1K buffer never overflows, it's flushed right out to the > HttpOutputStream at the end. If it does overflow, the gzip stream is > injected and from there on, all writing is immediately streamed out via > gzip. The large buffer/cache of the whole message does not take place. > > Does that help explain it? > > > Dan > > > > > >> >> Thx :) >> >> >> On Fri, Aug 1, 2008 at 17:19, Daniel Kulp <[EMAIL PROTECTED]> wrote: >> >> >>> On Aug 1, 2008, at 6:38 AM, Ian Roberts wrote: >>> >>> Brice wrote: >>> >>>> >>>> OK thx Google, >>>>> I found out that the GZip support is fixed for the 2.1.2 release: >>>>> https://issues.apache.org/jira/browse/CXF-1387 >>>>> However I wonder if this patch is available in 2.0.8. >>>>> >>>>> >>>> Not that I'm aware of, but if you're prepared to build CXF from source >>>> you >>>> should just be able to apply the patch from the JIRA issue directly onto >>>> the >>>> 2.0.x source code (I originally wrote the patch against the 2.0 branch >>>> as >>>> that's what I use). >>>> >>>> >>> Keep in mind, what's on trunk is a bit different than your original >>> patch. >>> The original patch was an EXCELLENT starting point, but what's on trunk >>> works quite a bit better for large messages in that it can stream instead >>> of >>> doing a "buffer than send" thing. That's partially why I didn't push >>> it >>> to 2.0.x. The classes used for the threshold management and such >>> aren't >>> available there so there is quite a bit more work to find everything that >>> would need to be merged. >>> >>> --- >>> Daniel Kulp >>> [EMAIL PROTECTED] >>> http://www.dankulp.com/blog >>> >>> >>> >>> >>> >>> >> >> -- >> Bryce >> > > --- > Daniel Kulp > [EMAIL PROTECTED] > http://www.dankulp.com/blog > > > > > -- Bryce
