Some comments abt Roo after Rod's JAOO presentation
I saw Rods presentation on roo at jaoo, during that and now while using it for a small project I came over a number of issues:
* aliases for common commands (e.g. "string <name>" for "field string --fieldName <name>"
* shortcuts for commonly used commands (see above) OR better aliases!
* current entity is already in scope OK
* tests are not genereated if entity already exists
* repeat text already visible in command line when showing other completions (--<tab>)
* optional completions are not shown on tab without leading --
* autodetection of classes, I don't want to repeat package time and again if class name is unabiguous
* please put .aj files in separate tree, e.g. src/main/aspectj/pa/cka/ges/*.aj so that they don't clutter the ide's navigation views (not everyone uses sts) and command line completion in a normal shell (if the aj files are not used by the idea it can ignore that subtree completely)
* why is roo's syntax not grails compatible? or at least have a grails compatibility mode (or alias set)
* the roo commands Rod showed where not obvious and rather cumbersome, and also not consistent (sometimes install sometimes new for installation of stuff) - seems to cleaned up a bit in the current version
* how are separate maven modules handled e.g. I want to put the domain and service-facades into a separate maven module and the server (controller) classes in another
* the version Rod showed had no concept of an entity in context so he had to retype it again and again (--type ...)
* isn't the toString Generation using AspectJ overkill? wouldn't a code generation into the javaclass suit better there?
* how do I mock the finders and persistence in a unit testing setup ? (Like it is possible in grails)
* how is the update of references handled with entityManager.persist ? All the references that where also updated by this operation become invalid and have to be reloaded ?
* how do you handle the default auto-flush on query behaviour of JPA queries? how is this customizable per finder (usage) ?
* is the Spring EL supported by Roo ?
* is Roo able to generate and use Spring Java Config instead of XML?
* is there any support for test data generation from roo? You have all the meta-informatione necessary for that
* Rods presentation had "install finder", that was cumbersome, seems to be replaced by "fnder add", more natural would be "finder" or "add finder"
* what happens when I edit the aspects ? are my changes overwritten ?
* are there architectural rules enforced by the AspectJ integration, as often shown by Rod (in eclipse / sts) - again you have all the metadata available
* what transaction settings apply for finders if there is no "outer" transaction?
* JPA 2 support ?
* what about rich client support / (Swing) and for instance Restlet integration?
* Exception after shell suspend:
roo.sh (wd: ~/java/mareprint/backend)
Exception in thread "main" java.lang.IllegalStateException: Shell line reading failure
at org.springframework.roo.shell.jline.JLineShell.pro mptLoop(JLineShell.java:85)
at org.springframework.roo.bootstrap.Bootstrap.run(Bo otstrap.java:112)
at org.springframework.roo.bootstrap.Bootstrap.main(B ootstrap.java:52)
Caused by: java.io.IOException: Interrupted system call
at java.io.FileInputStream.read(Native Method)
at jline.UnixTerminal.readVirtualKey(UnixTerminal.jav a:128)
at jline.ConsoleReader.readVirtualKey(ConsoleReader.j ava:1453)
at jline.ConsoleReader.readBinding(ConsoleReader.java :654)
at jline.ConsoleReader.readLine(ConsoleReader.java:49 4)
at jline.ConsoleReader.readLine(ConsoleReader.java:44 8)
at jline.ConsoleReader.readLine(ConsoleReader.java:30 0)
at org.springframework.roo.shell.jline.JLineShell.pro mptLoop(JLineShell.java:74)
... 2 more