cayenne-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mike Kienenberger <>
Subject Re: [jira] [Commented] (CAY-2038) Hessian serialization error when using JSR-310 Date types with ROP
Date Tue, 08 Dec 2015 14:50:48 GMT
I remember reading that, while kryonet uses kryo for serialization by
default, serialization is pluggable and jsonbeans was listed as the
alternative serialization framework which serializes to JSON
(including javascript variants).

Serialization interface here:

So this might be a good place to get ideas for creating pluggable
serialization.  I also noticed a number of other apache projects were
listed as already using either kyro or kryonet directly.

On Tue, Dec 8, 2015 at 7:46 AM, Michael Gentry <> wrote:
> I was thinking cgen could probably be used to generate JS classes for the
> entities.  A potential JSON issue is it is a flattened data stream, like
> XML, which means you don't get "free" relationships, so you'd need to
> correctly map that when you do a conversion (especially for
> reference/shared tables, like a Country or State table).
> On Tue, Dec 8, 2015 at 7:34 AM, Aristedes Maniatis <> wrote:
>> On 8/12/2015 10:36pm, Michael Gentry wrote:
>> > At the risk of muddying the thread, I think the biggest weakness/hole for
>> > Cayenne as an ROP server is dealing with the evolving JavaScript UI
>> > frameworks (AngularJS, KnockoutJS, etc).
>> The real advantage of Cayenne's ROP implementation is that the client code
>> looks a lot like code you'd write directly on the server. You manipulate
>> the same ObjectContexts. You get to roll back, validate records, use parent
>> contexts and all the same stuff you expect from Cayenne.
>> Mostly you can be unaware of the magic that happens to get your queries
>> and commits from the client to the server and back again.
>> Once you leave ROP, then you start to plan around RESTful url routing
>> paths, serialisation of objects into non-Java formats (often json into
>> Javascript) and a completely different environment between the server and
>> the client. Sometimes that's exactly what you need and the abstraction is
>> useful... you might have different development teams working on each end.
>> But ROP is also nice. You can (often) share code between client and server
>> and (mostly) ignore what happens in between. In our testing environment we
>> even glue together the client and server, bypassing the http connection, so
>> the we can run unit tests on the client code without starting up a separate
>> server.
>> Ari
>> --
>> -------------------------->
>> Aristedes Maniatis
>> GPG fingerprint CBFB 84B4 738D 4E87 5E5C  5EFA EF6A 7D2E 3E49 102A

View raw message