[
https://issues.apache.org/jira/browse/SLING-6183?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Justin Edelson updated SLING-6183:
----------------------------------
Attachment: SLING-6183.patch
> 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
>
> Attachments: SLING-6183.patch
>
>
> 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)