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-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-kitchensink Regression testing app for Apache Isis.
isis-app-neoapp
WIP
Example simpleapp for Apache Isis, configured to use Neo4j (through the JDO/DataNucleus Objectstore)
isis-app-todoapp Todo app for Apache Isis
Module Description Build
isis-module-audit
An implementation of Apache Isis' AuditingService3 API, persisting an AuditEntry record (through Isis' JDO ObjectStore) for each change to each object property.
isis-module-command
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-devutils A collection of domain services for Apache Isis providing access to an Isis application's metamodel, in support of various developer tasks.
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.
isis-module-fakedata A domain service for Apache Isis which generates random fake data for use in unit and integration tests.
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-security
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-tags A module for Apache Isis that allow tags (or labels) to be associated with other entities.
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.
isis-wicket-wickedcharts A number of components for Apache Isis' Wicket viewer to integrate with wicked-charts, a wrapper around highcharts JS charting library.
isis-wicket-wizard
WIP
A component for Apache Isis' Wicket viewer that renders a wizard-like view model in a customized UI.

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

"Out-of-the-box"

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 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:

Only the dom (for module add-ons) or cpt (for wicket add-ons) are released the Maven central repo.

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.
isis-publishingservice-activemq-ra An implementation of an Apache Isis PublishingService that publishes to ActiveMQ using RAR (JCA)
template Template for creating a new isis-module-xxx add-on.