Get the book!

JMatter is a software framework for constructing workgroup business applications based on the Naked Objects Architectural Pattern.

Software developers:

Have you ever wished you could focus on your customers' requirements instead of spending an inordinate amount of time on software infrastructure? JMatter provides more software infrastructure than you can imagine possible.

The principal advantage of developing a business application with JMatter is a dramatic reduction in development time. It is not an exaggeration to say that the difference in development time compared to traditional methods is roughly a factor of 10! That is, one order of magnitude.

JMatter is open source. See License for details.

What is it?

The JMatter framework is Eitan Suez' modern implementation of the Naked Objects Architectural Pattern using Swing, Hibernate, and deployed with Java WebStart. 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.

The essence of JMatter is the generic implementation of aspects of business software applications. 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 called JMatter Naked Objects that actually work saying that it reminded him of Dave Thomas giving a Rails demo.