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-module-xxx : a domain object "module" that implements business logic for a particular subdomain, eg application settings, or tags (labels).
  • isis-wicket-yyy : a component for Isis' Wicket viewer, eg for rendering calendars or maps.

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.

Name Description
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-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
WIP
Module to expose aspects of the Java servlet API to Apache Isis domain object model.
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.
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-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
isis-app-kitchensink Regression testing app for Apache Isis.
isis-jrebel-plugin Apache Isis plugin for JRebel.
isis-publishingservice-activemq-ra An implementation of an Apache Isis org.apache.isis.applib.services.publish.PublishingService that publishes to ActiveMQ using the RAR (JCA)
template Template for creating a new isis-module-xxx add-on.
isis-module-pdf An Apache Isis module that exports objects to PDF