[ 
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)

Reply via email to