Hey, I just committed a rewrite of UnitOfWork. Apart from a bunch of performance fixes the main difference is that UnitOfWork now has two layers: one outer layer that the client holds on to, and which deals with lookup of EntityTypes and such, and then there's an inner layer which holds on to the changes in the UoW.
One of the main consequences of this is that now a client can start a UoW, then let it continue into Services, and when they do UoWF.currentUnitOfWork() they will get a UnitOfWork that can "see" all Entities in the Module *of the Service* (as opposed to the client as it was before). This makes using UnitOfWork much easier and natural, as before one had to create nestedUnitOfWork() just to get the proper visibility in the Service. This also cleared up some old UoW bugs. The new implementation is also, as noted above, considerably faster. I have added caches to all lookups too, so once an EntityType has been resolved for a mixintype in a Module, that result will be cached for subsequent calls. Muuuuch faster. I have also added caches for Composite, Value, Object and Service lookups. The last one means that if you do Module.serviceFinder().findService(SomeService.class) then a lookup will only be performed the first time. Any subsequent call with the same type in the same Module will return a cached result, which is way faster. /Rickard _______________________________________________ qi4j-dev mailing list [email protected] http://lists.ops4j.org/mailman/listinfo/qi4j-dev

