Mantis - Resin
Viewing Issue Advanced Details
1626 minor always 02-26-07 09:29 06-05-07 12:17
none 3.1.2  
0001626: Hessianf or alrge input streams
(rep by Ben Hood)

I was wondering if anybody knows of any approaches to encode and
decode large object streams using Hessian.

The motivation is to be able to handle vast amounts of data without
having to materialize it into memory.

I've written a module to handle this (see attached maven project) as a
suggestion of how one may do this (with an example test case).

To create an input stream of encoded data, you supply an Iterator
which wraps your application data source. You also supply the method
for each data object to be invoked against. On the decoding side, the
method to be invoked is read, an implementation thereof is registered
and a stream handler decodes the objects in the stream, fires each one
against the registered interface until the stream is exhausted.

I've tried to reuse the hessian toolkit as much as possible. The only
problem I had was the method mangling routine as used by the
HessianSkeleton is a private method, so I lifted that source into a
separate class (homage goes to the author of that code).

06-05-07 12:17