Interesting to hear your comment regarding Finders in Roo not
working. That mirrors my experience, and together with the inability to customise MyEntityRequest classes, makes Roo a bit of a showstopper. I posted this on the Roo forum: http://forum.springsource.org/showthread.php?124307-GWT-add-on-does-not-allow-*Request-classes-to-be-customised
I did get a response that Finders are implemented, they just need to be tweaked afterwards, but I could not get it to work at all.
I've only played with Roo for a couple of days so am no expert, but IMO, this currently makes it impossible to do round-trip development. It is still very useful if your domain model is already pretty well defined (or you have an existing db) to kickstart a project. But IMO after the initial setup, you'd have to disable Roo to continue development.
Which is a pity, because Roo seems quite close. They have done a lot of work with GWT to enable the developer to write custom code for Views, etc. without Roo wiping it out. Roo does a good job to take care of the tedious stuff - which if you are using MVP there is a lot of. I do like MVP very much BTW - it provides a nice structure for complex applications, especially for multi-member teams. (When I say MVP, I really mean MVP and a bunch of other stuff like EventBus, Places and Activities).
MVP can be a bit overwhelming for junior developers, but I would argue that that is all the more reason to be using it, because without it, those devs would not have magically come up with all those things by themselves. Roo would also make a nice tool to introduce junior devs to MVP, help them to get going, and give them good examples to learn from. Talking of which, I am not sure I am a fan of the inheritance/generic model Roo creates for Activities and Places (e.g. AbstractProxyListActivity and ProxyListPlace). There is a lot to keep track of for devs in 'MVP', without this additional abstraction and knowing which methods to override, etc. Seeing as Roo does all the scaffolding, why not just create a 'flat', non-generic Activity and Place for each Entity. It makes the code developers have to work with simpler (when they eventually have to customise it :) ), and it provides friendlier URLs.