[
https://issues.apache.org/jira/browse/SLING-6183?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Justin Edelson updated SLING-6183:
----------------------------------
Fix Version/s: Sling Models Jackson Exporter 1.0.0
> 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, Sling
> Models Jackson Exporter 1.0.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:
> * {{exportMode}}
> * {{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, the {{@Exporter}} annotation
> can also define a different selector).
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)