Domain modeling with Gorm has been an absolute pleasure (especially from someone coming from hibernate/jpa). It's just so neat and concise... and there is also all these nice little freebies you keep discovering. Working with Tapestry (and the cool jquery flavored add-on tapestry5-jquery) was about as productive as I remembered. With the ability to write my pages/components in Groovy, the experience was even better. When the limitations of the java api became a burden, I always had the option of putting a thin layer of groovy in front to DSL'ify it to meet my expectations better. I suspect I will keep playing with this app to see where it leads. I'm also tempted to do a cousin implementation using grails sometime soon as well.
Did I have any problems along the way ? Sure did, but mostly in terms of things like:
- Unifying logging from all those external dependencies (yeah its a lot I'm afraid, and Gorm is the main culprit!). To make life hard I figured I wanted to use logback. Once I finally got my dependencies right, with bridges and all, it now works fine
- Setting up Spock tests with transactional support (proved to be a lot simpler than I initially thought)
- Intellij compilation error (which isn't really and error, but disrupts the flow). Keep getting a system.err when compiling groovy code. Unfortunately intellij insists its an error even though the compile actually succeeds. Something todo with groovy stubs and/or ast transformations I think.
If time permits I'm planning to do a few future posts that dig into some details from the sample app.
If you are interested in the sample app, feel free to pull it from github at https://github.com/rundis/TapestryGorm