Many organizations need desktop-like, data-driven applications, but coding what looks like a simple page can sometimes be a complex task. Jspresso‘s goal is to shorten the gap between domain and process analysis and application deployment by supporting agile development cycles.
With Jspresso you capture your application requirements using a Groovy-based domain-specific language and an Eclipse plugin. The description you create covers multiple application layers, from the domain model to the views, including the application modules and workspaces. In this way all the cross-domain concerns a corporate business application requires, including internationalization, security, key performance indicators, and so on, are handled from the very beginning. Jspresso then takes care of all the plumbing to make your application ready to deploy in a minimal stack that consists of a servlet container and a database. A Jspresso application will instantly run using under a variety of user interfaces, including Adobe Flex, qooxdoo, Swing, Canoo ULC, and WingS, and can be deployed in more full-fledged J2EE application servers depending on the project technical requirements.
By using Jspresso as a design and execution framework, developing a Java application becomes more about specifying the “what” than the “how.” You still have to code application-specific behavior for things like services and domain integrity rules using plain Java. In that process you usually develop, test, and debug using a two-tier architecture such as a Swing UI directly talking to a database, and you deploy using a three-tier architecture. The role of the framework is to guarantee the correct translation between the different supported UI channels.
French developer Vincent Vandenschrick began putting Jspresso together in 2005 because he was “fed up with trying to reinvent the wheel all the time with repetitive tasks. I believe in software best practices capitalization; but it’s even better if you can get it written into the execution framework, no? That’s the prescriptive approach. You can hardly develop faster.” The framework was open-sourced in 2008.
Though it was more than a year between the last official release and the current one, which arrived last month, Vandenschrick says “that should not happen anymore. Releases should ideally come out every two to three months now.” He doesn’t have any changes as major as the recent addition of DSL or the qooxdoo UI planned for the next versions; rather, “we are entering a consolidation phase where we’re going stabilize, support our customers, listen to the community, and continue to improve the existing code.”