On Fri, Feb 19, 2010 at 17:30, Thomas Müller <thomas.muel...@day.com> wrote: >> I'd make node type constraints and security checks the responsibility >> of the client who commits the transaction. > > That's a solution :-) I'm not sure it's the _right_ solution, but we > can start like that.
At its heart I see JCR as an unstructured data storage. Node types are just an "add-on". So the core/micro-kernel should work fast and scale well with pure unstructured nodes & properties. It doesn't have to care about types, which leads to simpler code, and the kernel shouldn't be optimized for them; since it always has to support unstructured data, it cannot use constrained types to optimize the underlying data storage anyway. For example creating fixed-sized columns in a RDBMS. (Well, it could do that selectively, but that would lead to an enormous complexity). So all type checking should happen at the higher level. This is also good if you want to do imports that "violate" JCR level constraints (such as system props and versioning) - you get it for free at the lower layer (except for the data format, but this is another topic). Regards, Alex -- Alexander Klimetschek alexander.klimetsc...@day.com