Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News jMatter: Naked Objects with Swing, Hibernate, and Web Start

jMatter: Naked Objects with Swing, Hibernate, and Web Start

The jMatter framework,  Eitan Suez' modern implementation of the Naked Objects Architectural Pattern using Swing, Hibernate, and deployed with Java WebStart, has been open-sourced this week. jMatter produces 2-tier workgroup apps (Swing  front-ends  that  talk  to rdbms  back-ends) intended to be used in a LAN or VPN environment.  Developers using a Naked Objects style framework focus on building a behaviourally complete domain model and leave everything else (UI, persistence, etc) to the framework.  jMatter takes a domain model and then automatically provides the following services around the domain model:
  • A rich GUI built on top of Swing with support for CRUD operations. The GUI is constructed dynamically at runtime from the introspected model.
  • Persistence (by leveraging Hibernate)
  • Authentication -  the ability to login and to manage users.
  • Built-in support for query construction, invocation and query persistence in GUI
  • Support for the construction of wizards, calendaring (calendaring components), and more.

InfoQ spoke to Eitan Suez to find out more.  According to Eitan "The essence of JMatter is the generic implementation of aspects of business software applications" (the ones listed above)...Developers employing the JMatter framework do not write a single line of GUI code. Application development consists of modeling the domain in question.  Then one simply types "ant schema-export" followed by "ant run" and you're basically done.  So JMatter considers the GUI, the persistence, the query construction as plumbing, plumbing that it offers out of the box. Today, projects dedicate perhaps 80% of their development budgets to the construction of such plumbing, on a per-project basis.  JMatter's vision then is to free developers to concentrate on their customers' business domain."

By focusing on the domain model only, jMatter claims to offer 10x productivity for building Swing workgroup apps.  Jared Richardson (the author of "Dealing with Legacy Code" as recently published on InfoQ) called jMatter Naked Objects that actually work saying that it reminded him of Dave Thomas giving a Rails demo.

Naked Objects focus on the domain model sounds a lot like Eric Evan's vision of Domain Driven Design. On the similarities, Eitan said "Both advocate the same approach:  that to solve a customer's business problem, one must work closely and in collaboration with domain experts, to develop a model of the domain in question.  It is a process of exploration and it focuses on the domain.  Frameworks that follow the NakedObjects architectural pattern aim to provide the means necessary for developers turn that object model, complete with behaviours, into a running application."

On why jMatter was open sourced, Eitan said that one of his "aims is to build a community around this framework, strong enough to extend and evolve JMatter to support other architectures and different front-ends.  I am considering the construction of viewing mechanism targeting the web, based on GWT or a similar technology (such as Echo or wingS)." jMatter is currently licensed under either the GPL or its own commercial license. Eitan hopes to take jMatter n-tier within a year if the community is interested in it.

Rate this Article