Description
The ContentNegotiationService SPI allows multiple implementations to be installed, and each are checked in turn (chain of responsibility pattern). If any can generate a representation of the result then this is used rather than the default RepresentationService.
The framework provides one default implementation: ContentNegotiationServiceXRoDomainType that handles "application/...;profile=...;x-ro-domain-type=..." for either XML or JSON, and for the main representations (object, property, collection, detail, action-result)
As a further sub-SPI, the ContentMappingService is used by the afore-mentioned ContentNegotiationServiceXRoDomainType to attempt to map the result domain object to another object before rendering. Typically this is to map a domain object to a corresponding DTO.
Commit 1f02eec8a3cf909b94be42efb8437804799b49ce in isis's branch refs/heads/master from danhaywood
[ https://git-wip-us.apache.org/repos/asf?p=isis.git;h=1f02eec ]
ISIS-1149: take-on of the ContentNegotiationService and ContentMappingService.