Justin Edelson created SLING-6183:
-------------------------------------
Summary: Sling Models - Provide a mechanism to export model
objects via servlets
Key: SLING-6183
URL: https://issues.apache.org/jira/browse/SLING-6183
Project: Sling
Issue Type: New Feature
Components: Extensions
Reporter: Justin Edelson
Fix For: Sling Models API 1.3.0, Sling Models Impl 1.3.0
I would like to introduce a new feature to Sling Models named Exporters.
Exporters allow for a model class to be exported into a specific Java object
type in a automated fashion. The simplest example is to support String
serialization, although different Exporters may support whatever target classes
they see fit.
Exporters are implemented through an SPI. This initial contribution includes an
exporter using the Jackson library which supports both `String` and `Map`
exports.
Interfacing with the registered Exporters is done through three new methods on
the ModelFactory interface:
* `exportModel`
* `exportModelForResource`
* `exportModelForRequest`
In addition, using these functionality, model objects can have
automatically-registered servlets which export the model (from either the
request or the request's resource) as a String and then serve that String to
the client.
Registering these servlets is done through a new annotation named `@Exporter`
For example, you might add this annotation to a Model class
`@Exporter(name = 'jackson', extension = 'json')`
This will register a servlet for the model's resource type with the extension
`json` and a selector of `model` (by default).
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)