Apache Isis: Java Framework for Domain-Driven Design
Apache has released Apache Isis, a Java framework for rapidly developing domain-driven applications. Users focus on developing domain objects and Apache Isis takes care of persistence, security and the user interface. Apache Isis follows the hexagonal architecture pattern, placing the domain model in the middle, with presentation, persistence and other services dependent upon the domain model. Apache Isis became an Apache top-level project in October 2012 and version 1.0 was released on December 2012.
Apache Isis works using convention-over-configuration where developers write POJO domain objects following a set of conventions and annotations. These are then interpreted by the Isis framework, which then takes care of presentation, security and persistence. Apache Isis can generate a representation of the domain model, at runtime, as a web application or as a RESTful API following the Restful Objects specification. Development teams can use the auto generated web application and web service for rapid prototyping or even production deployments.
Apache Isis Architecture
Apache Isis is extensible and customizable. Development teams have the option of picking different viewers, object stores, security mechanisms, profile stores, and programming models. Available viewers include Wicket, RestfulObjects, Scimpi, DnD, HTML, JUnit and BDD Concordion. Available object stores include JDO, NoSQL, SQL and XML. Security can be implemented using File, Shiro, LDAP or SQL. Profiles can be stored as XML or in the database. Domain objects, normally written in Java, can also be written in Groovy, using the Groovy Programming Model component. Isis version 1.0 comes with released versions of Isis core, File-based security, JDO object store, Wicket viewer and Restful Objects viewer. Other components are still under incubation.
To get started, visit the Apache Isis Quickstart Archetype page, which walks you through creating a new Isis application using the Isis Maven archetype. This will generate a simple one-class domain model for tracking to-do items. It will consist of multiple Maven POM files, one for the parent POM, one for the domain object model, and the rest for the different components like the JDO object store and Wicket viewer. Isis also has a CheatSheet available, to help you recall what conventions to follow or annotations to use.
Java on Isis .. :)
Also have a look for similar stuff from JBoss .. JavaEE on Forge. (forge.jboss.org/)
Re: Java on Isis .. :)
Fyi, there is a .NET version of this but it is not OpenSource.
Re: Java on Isis .. :)
A correction though: the .NET version is also open source (though is not part of Apache).
Compared with other model-driven framework?
Nice CRUD tool
Object Orientation also bleeds:P
But still nice tool that solves some class of problems (but not problems that are aimed by DDD).
I guess that main reason for that is "Naked-Objects mindset" - which claims to support DDD, but it's actually the opposite...
Reading www.amazon.com/Domain-Driven-Design-Tackling-Co... *three* times should help...
Re: Nice CRUD tool
but actually promotes all DDD antipatters and does not support basic DDD techniques
What's the real goal when you write software? Applying patterns?
Isis has no (or at least has dropped) JPA-support
For me personally this is a bit of a bummer, since I have no JDO knowledge and I hesitate going over to plain old JDBC for persistency.
Is there anyone out there who knows whether and if yes when JPA will be supported in Isis again?
Re: Isis has no (or at least has dropped) JPA-support
If you are familiar with JPA, I don't think you'll have any problems with using JDO. The biggest downside is that there's somewhat less material out there on the internet to help out.
Incidentally, DataNucleus does also support JPA, so in theory adding support for JPA should be relatively easy. It might even "just work" if you add JPA annotations instead of JDO ones; I dunno, I haven't tried.
For more info, see  and