At Broadchoice, we've set up a systems architecture for Workspace that makes that I find downright dreamy.  We write our business objects in Groovy (or Java), using a mix of JPA and Hibernate annotations to map persistent objects to a database schema.  Next, we use a Spring application context to serve up services around these objects.  A standard ColdSpring / Model-Glue / CFML stack lets us rapidly develop HTML / JavaScript interfaces for these services.  Last, JMS + Swiz + some Swiz extension code I've written makes it very easy to push to a client RIA from either the server or another client.  It's very fun to work with, but a living nightmare to learn how to configure and deploy.

My OSS focus over the next months is to make this easy in a way that benefits the CFML community at large, not just Model-Glue users.  Alagad is graciously providing SVN hosting for a project known as "Hoagie" (an Americanism for a really large, tasty sandwich).  The goal of Hoagie is simple:  provide an Ant-based installer that gets you up and running with all of these things in a decent configuration in just a few minutes.  You'll have options along the way (Tomcat?  JBoss?  Railo?  OpenBD?), and your configuration would be known as a "Hoagie Stack."

When it's made available, you'll be able to do the following:

  1. Check out a small project into (CF)Eclipse containing an Ant build.xml and a few Java jars
  2. Run the build.xml
  3. Choose between Railo, OpenBD, or an existing ColdFusion installation.  If you choose Railo or OpenBD, we'll install and configure Apache Tomcat.
  4. Wait 4-5 minutes while it gets bits. 
  5. Choose whether or not you want the installer to create a Java/Groovy project preconfigured for Spring-based unit tests and building into your Hoagie stack
  6. Choose if you'd like to create a Model-Glue or Mach-ii HTML application template (others can eventually be supported, too!)
  7. Choose if you'd like to create a (Swiz, maybe Mate or Cairngorm) Flex project that's already configured to communicate with the Hoagie stack
  8. Configure Tomcat within Eclipse
  9. Start the server
  10. Write code

All in all, the goal is to get up and running with an enterprise-grade full stack in ten minutes or less.  Other things I'd like to support (and am currently working on) are:

  1. A video tutorial showing how to use a Hoagie-provided, Hibernate-powered generic DAO that'll let you write an object and save it to a database within minutes of installing a Hoagie stack
  2. An option to create a templated Eclipse project that builds into the WEB-INF/lib directory of your Hoagie stack and includes unit test stubs that hook into your application context
  3. A "Enterprise RIA" Hoagie stack that installs BlazeDS and Spring's newfangled BlazeDS integration, making it easy to expose what you've written to Flex or AIR.  It'd also give you preconfigured JMS/BlazeDS "push" capabilities via AMF polling.
  4. A Flex project template for the "Enterprise RIA" Hoagie stack including the Swiz framework and extensions I've written to make client-to-client and server-to-client pushing of Swiz events super-simple.

At this minute Hoagie is coming along nicely but only supports Railo + Model-Glue.  The foundations are in place for OpenBD and ColdFusion "installers," and I need to refactor my Model-Glue specific rewrite of Spring's OpenSessionInViewFilter into a form that'll work with any of the CFML MVC frameworks.

If you've got interest in being an early tester or getting involved, please let me know!  My intent is to most strongly support the stack I'd use (Model-Glue, Adobe ColdFusion or Railo, and Swiz-based RIAs) and allow others to support further "toppings" for the Hoagie stack (Mach-ii, ColdBox, Cairngorm, Mate, etc.).