This module contains the classes that are used to build the internal metamodel by introspecting the domain classes.
Many of the services defined (as interfaces) in the applib have implementations defined in this module (the rest are defined in Runtime Services).
What makes up the metamodel
The classes in this module are used to build up the metamodel from a variety of inputs sources:
The metamodel itself consists of the following parts:
Domain Objects have Properties, Collections
Viewmodels and Entities are specializations of Domain Objects.
View Models are (lifecycle-) managed by Apache Isis
Entities are managed by the configured persistence layer (either JDO or JPA).
Services in general are (lifecycle-) managed by Spring.
Some Services are also included in the metamodel; we call these Domain Services (annotated with @DomainService). Their Actions (like Domain Objects') will be visible either Menu Actions in the Wicket UI and/or through the REST API.
Mixins contribute either a Property, a Collection or an Action to their Mixee (-type).