I have been in process of moving from Taiwan back to California recently. I'm finally settled in for now. My partner and I finally had acquired some hours to work on the Stripes on Rails idea. The prototype includes features:
- Maven2 Webtype Plugin
- Maven2 Stripes-on-Rails Configuration Archetype
- Corresponding Templates
- Other quirks
- Override default templates
- Inherit configuration to make new configuration
- Add webtype to existing projects
I have yet to become a Ruby fan. But it does make me, a Java developer, envy some of its perceived simplicity. I do want a framework that is flexible and configurable. I do want my Java compiler and IDE catching errors for me at compile time or before that. There are a few frameworks out there currently that put together many other frameworks and has the ability to generate CRUD code: JBoss IDE for JBoss Seam? Appfuse's Appgen for variety of frameworks.
But sometimes I can't help but to think if we can get any simpler? I say yes we can! How simple can we get? Obviously, from the basic domain entity classes, we should be able to generate at runtime all the things we ever need for basic CRUD operations (including screen, sql). This has been done and that's what made other frameworks (even language) popular. However, we are Java developers. We want to do this while maintaining good multi-teired POJO architecture and its flexibility!
I finally got some time to implement the idea that I mentioned in previous blog. After struggling for hours with Spring AOP, I realized I needed CGLIB to proxy abstract class!
Although EJB is moving forward to 3.0, and everyone seems to enjoy the POJO ORM stuff. I do miss some EJB 2.0 features. Particularly, being able to use the ejbSelect and finder methods! With xdoclet, one could easily annotate a method with its corresponding query.
* @ejb.select query="...."
public abstract Collection ejbSelectWithKey(String key)
Although it seems like named queries are to replace the use of this kind of methods. I still enjoyed the fact that the method is, afterall, a Java method. The Java language can provide name, parameter, and type checkings to this method, where named queries can't.
I could imaging something similar w/ Spring and DAO, and some simple AOP/proxy to achieve the following:
Hello World! After my first contact w/ Flickr just a week ago, I decided to give blogging a try as well.