Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Apache Isis: Java Framework for Domain-Driven Design

Apache Isis: Java Framework for Domain-Driven Design

Leia em Português

This item in japanese

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

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.

For more information, visit the official Apache Isis documentation, screencasts, demo and tutorial. Source code is available from the Isis Apache repository, which is also mirrored on GitHub.

Rate this Article