Hi, >The MicroKernel implementation has to parse and reserialize JSON >strings whenever it needs to process a diff or is given a nonstandard >set of depth, offset and count values in a getNodes() call.
Currently, the MicroKernel doesn't really parse the Json in this case. It only tokenizes the diff. It _is_ a loop over all bytes / characters, which could be avoided when using a different serialization. This would be a potential optimization for the future. What it does is create the Json result using the in-memory Json-snippets. This is basically three or four StringBuilder.append(..) calls per property. >This parsing and reserialization is exactly the same stuff that any >client needs to perform to use the API, which is duplication that >could and IMHO should be avoided. No matter what the MicroKernel API, the client will in many cases need a different in-memory representation. I did implement low level 'value' and 'bundle' classes, which could be used by both the client and the MicroKernel: org.apache.jackrabbit.j3.mc.Val org.apache.jackrabbit.j3.mc.Bundle Regards, Thomas
