Contributors Guide

This guide provides guidance to those looking to build the platform from source, either to contribute back pull requests and enhancements, or just to fork for their own purposes.

Directory Structure

_mothballed/           # unused from previous demo apps (eg fake SOAP external system)
adocs/
├── documentation/     # docs and website source
├── search/            # node.js scripts to generate searchable index
└── template/          # HTML template/styling for website
ex/
├── app/
│   ├── quickstart/    # quickstart application
│   └── extended/      # extended quickstart, with example subdomain modules
└── arch/
    └── quickstart/    # quickstart archetype
mavenmixins/
modules/               # modules making up the platform
├── pom.xml            # org.incode:incode-parent
├── dom/               # example subdomains
├── ext/               # extensions
├── lib/               # libraries
├── mml/               # metamodel facets
├── spi/               # Core framework SPI (hook) implementations
└── wkt/               # Wicket viewer components

Building

The platform must be built in the following order:

  • mavenmixins/ - maven mixins, which is depended on by:

  • modules/ - modules, which is depended on by:

  • ex/app/quickstart/ - quickstart example app, which is used as the template for:

  • ex/app/archetype/ - quickstart archetype

Building the mavenmixins

These must be built first, because the modules depend upon them.

cd mavenmixins
mvn clean install -Dskip.isis-validate -Dskip.isis-swagger -o

Building Modules

To build all modules, use:

cd modules
mvn clean install -o

Running in parallel requires disabling the Apache Isis Maven plugin (it is currently not thread-safe):

mvn clean install -o -T1C -Dskip.isis-validate -Dskip.isis-swagger

To build an individual module, use:

mvn clean install  -D dom-alias -Dskip.default -o -Dskip.isis-validate -Dskip.isis-swagger

Building Quickstart App

Finally, build the example quickstart app

cd ex/app/quickstart
mvn clean install -o