Apache Isis Add-ons

Modules, plugins and add-ons to extend the capabilities of Apache Isis.

Each add-on is hosted in its own github repo:

  • isis-app-xxx : an example application to learn from/try out
  • isis-module-xxx : a "module" for a particular subdomain, eg security.
  • isis-metamodel-xxx : an extension to Isis metamodel, eg Java 8 parameter names.
  • isis-wicket-yyy : a component for Isis' Wicket viewer, eg maps.

Do note that the add-ons are not part of ASF, but are maintained by the Apache Isis committers.

Screenshots and READMEs

Each add-on has its own README that includes screenshots, API, usage and configuration instructions. Some add-ons also have wiki pages (linked from the README).

Ready to use, "out-of-the-box"

All add-ons are released to Maven central repo so that you can use them out-of-the-box.

Ready to fork

Alternatively, you can fork the entire repo. All repos follow a standard structure, with a demo webapp and tests, so you can start from a solid base.

This site catalogs a number of add-ons to Apache Isis for you to use either "out of the box", or as a starting point to modify and adapt to your own requirements. Each add-on has its own repo. All add-ons use the org.isisaddons package.

App Description Build
isis-app-dockertest A very simple app for testing docker support.
isis-app-kitchensink Regression testing app for Apache Isis.
isis-app-neoapp Example simpleapp for Apache Isis, configured to use Neo4j (through the JDO/DataNucleus Objectstore)
isis-app-quickstart The simpleapp application (as generated by Apache Isis' archetype), supplemented with a number of addons.
isis-app-simpledsl Apache Isis' simpleapp (as generated from the simpleapp archetype), converted to use the isis-script DSL (by vaulttec)
isis-app-todoapp Todo app for Apache Isis
Module Description Build
An implementation of Apache Isis' AuditingService3 API, persisting an AuditEntry record (through Isis' JDO ObjectStore) for each change to each object property.
An implementation of Apache Isis' CommandService and BackgroundCommandService APIs, providing profiling, enhanced auditing and background (async) execution, persisting Command records through Isis' JDO Objectstore.
isis-module-docx A domain service for Apache Isis that generate Word .docx documents from a template and HTML input (ie, mail merge). Supports repeating table rows and lists.
isis-module-excel A domain service for use within Apache Isis, providing the ability to perform bulk export/import of collections of objects to/from an Excel spreadsheet. Also provides ExcelFixture fixture script.
isis-module-fakedata A domain service for Apache Isis which generates random fake data for use in unit and integration tests.
isis-module-flywaydb (WIP) Integration between Apache Isis and FlywayDB
isis-module-freemarker A domain service for Apache Isis that wraps Freemarker templating library
isis-module-pdfbox A module for Apache Isis that acts as a wrapper around Apache PDFBox.
isis-module-poly Helper classes (with demo application) to support polymorphic relationships in Apache Isis domain apps using the "table-of-two-halves" pattern.
isis-module-publishing An implementation of Apache Isis' PublishingService and EventSerializer APIs, persisting a PublishedEvent record (through Isis' JDO Objectstore) for each changed published object or invoked published action, using a JSON format.
isis-module-publishmq An implementation of Apache Isis' PublishingService SPI that publishes an ActionInvocationMemento DTO to ActiveMQ. Also includes a fully worked out example of routing the message using Camel.
isis-module-quartz A module for Apache Isis that uses the Quartz scheduler for background processing, in combination the command module (isisaddons/isis-module-command).
A module for Apache Isis for administering users/roles/permissions and providing Shiro-based authentication and/or authorization.
isis-module-servletapi Module to expose aspects of the Java servlet API to Apache Isis domain object model.
isis-module-sessionlogger An implementation of Apache Isis' SessionLoggingService API, persisting a SessionLogEntry record (through Isis' JDO ObjectStore) each time a user logs in, logs out, or on session expiry.
isis-module-settings A module for Apache Isis to manage and persist both application and user settings (using Isis' JDO Objectstore).
isis-module-stringinterpolator A domain service for Apache Isis that interpolates strings using OGNL expressions applied to graphs of domain objects.
isis-module-structurizr An integration with structurizr.com
isis-module-tags A module for Apache Isis that allow tags (or labels) to be associated with other entities.
isis-module-togglz An integration of Togglz feature toggle library for Apache Isis.
isis-module-xdocreport A domain service for Apache Isis that wraps XDocReport (to generate PDFs or DOCXs), using Freemarker as the templating syntax.
MetaModel Description Build
isis-metamodel-paraname8 Named action parameters (requires JDK8).
Wicket UI Description Build
isis-wicket-excel A component for Apache Isis' Wicket viewer that allows parented and standalone collections to be downloaded as Excel spreadsheets.
isis-wicket-fullcalendar2 A component for Apache Isis' Wicket Viewer that render entities (implementing CalendarEvent) within a calendar.
isis-wicket-gmap3 A component for Apache Isis' Wicket viewer that renders a collection of entities upon a map.
(WIP) A component for Apache Isis' Wicket viewer that renders a BLOB containing a PDF as a panel, using pdf.js
isis-wicket-summernote Apache Isis module that provides WYSIWYG rich editor based on Summernote
isis-wicket-wickedcharts A number of components for Apache Isis' Wicket viewer to integrate with wicked-charts, a wrapper around highcharts JS charting library.
A component for Apache Isis' Wicket viewer that renders a wizard-like view model in a customized UI.
Obsolete Description  
ZZZ-DEFUNCT-isis-module-devutils A collection of domain services for Apache Isis providing access to an Isis application's metamodel, in support of various developer tasks.  

'WIP' indicates the add-on is still work-in-progress and hasn't yet been released.


All add-ons are released as a Maven artifact into the Maven central repo; just add the relevant dependencies to your project pom.xml, and (where required) register new domain services either using an AppManifest#getModules() or in Isis' isis.properties configuration files. The README for each add-on contains full details on how to do this.

Forking the add-on

Alternatively, if you do need to modify/adapt the provided functionality, then fork the entire repo. This way you also have fixtures and tests to ensure that your changes are properly tested.

The isis-app-xxx and isis-module-xxx add-ons have the following structure:

The isis-wicket-xxx add-ons have the structure:

Contributing back

If you fork an add-on and think others would benefit from your changes, please raise a pull request so that we can review and fold those changes back into the original.

Also of interest...

There are also a number of other repos which may nevertheless be of interest to developers building apps with Apache Isis.

Name Description Build
isis-jrebel-plugin Apache Isis plugin for JRebel.
template Template for creating a new isis-module-xxx add-on.