This is a separate task (not that it is not important), so I'd not mix it with serialVersionUID discussion.
I have similar ideas about changing internal structure of CayenneDataObject (using [] instead of a map). This is a big change (and should give a big performance boost not just during serialization, but in general), but that is more of a long term future... Andrus On Oct 4, 2011, at 6:39 PM, Durchholz, Joachim wrote: > If the plan is to get the whole serialization stuff right at this time, maybe > it's best to go the extra mile and avoid serializing the Map keys. > > Prerequisite 1: You need to know the field names, both on the sending and the > receiving end. > > Prerequisite 2: You need a way to iterate over all field values, in the same > order as the field names; or you need a way to access the field values given > a field name in String form. > > If these are given, you can transfer just the values and do not need to > transfer the keys. > > Win: Halve the amount of data that needs to be transferred. Give or take a > few, depending on circumstances. > > Maybe win: If you're taking the format of serialized data into your own > hands, it could be made identical for the ROP and non-ROP case. This would > make it easy to record serialized data in one environment and replay it in > another, which might help folks who are setting up diagnostics and unit tests. > > Nonproblem: Now that SerialVersionUID takes care that the field structure and > hence the Map keys are the same on both sides, transferring keys is indeed > redundant. > > Disclaimer: I know next to nothing about the internals of Cayenne, so this > may be much work than it's worth. > > So, just my 2 cents worth here. > > Regards, > Jo >
