Fork me on GitHub

Isis has one mandatory configuration file, isis.properties. For the webapp viewers, this typically lives alongside the web.xml file in the WEB-INF directory.

In addition, Isis will also read from a number of supplementary configuration files (if present), for each of the configured components. For example:

This approach allows configuration to be partitioned by component.

It is also possible to externalize all configuration files so that they reside outside of WEB-INF directory; this is discussed here.

Specifying Components

A running Isis instance requires a persistor (aka objectstore), the authentication mechanism, the authorization mechanism, and a user profile store. It also requires some sort of viewer or viewers.

The objectstore, authentication, authorization and profilestore are specified in the isis.properties file. For example, this is the configuration of the simple archetype:

isis.persistor=datanucleus
isis.authentication=shiro
isis.authorization=shiro
isis.user-profile-store=in-memory

The available values are registered in installer-registry.properties; alternatively the fully qualified class name can be specified. In either case the appropriate component must also (of course) be added as a dependency to the pom.xml files.

The viewer is not specified in the isis.properties file; rather it is implied by the configuration of WEB-INF/web.xml file. The archetypes are a good point of reference for the required servlet context listeners and servlets; every viewer has its own requirements.

Componentized configuration Files by component

As noted in the introduction, the configuration can optionally be broken out by component and also component implementation.

This is also supported for the configured viewer(s). However, because the configured viewer(s) is/are not listed in isis.properties, an additional hint is required in the web.xml file to tell Isis which viewers are in use.

For example, to specify that the Wicket viewer and Restful Objects viewers are configured, specify:

<context-param>
    <param-name>isis.viewers</param-name>
    <param-value>wicket,restfulobjects</param-value>
</context-param>

The table below summarizes the additional configuration files that are searched for the most commonly configured components:

Component type Component implementation Additional configuration files
Object Store JDO (DataNucleus) persistor_datanucleus.properties
persistor.properties
Authentication Shiro authentication_shiro.properties
authentication.properties
Authorization Shiro authorization_shiro.properties
authorization.properties
Viewer Wicket viewer_wicket.properties
viewer.properties
Viewer Restful Objects viewer_restfulobjects.properties
viewer.properties
Profile Store In-memory user-profile-store_in-memory.properties
user-profile-store.properties